We are in the juncture (I'm able to even say, proper time) that we have to separate our database server aside from our application web server. This we showed up at after careful &lifier thorough monitoring from the server (load average, CPU usage, etc.) itself.

Once the database server is separated:

  1. What will be the ideal setup/best practice for network communication path between 2 servers? Whether it were running on a single server, connectivity between database and application would take advantage of TCP/IP communication, but exactly how it ought to be running/setup when it's separated, to ensure that performance isn't majorly affected? For instance, presently our JDBC URL appears like jdbc:postgresql://localhost:9999/ourproductiondb, most likely this localhost could be transformed to personal Ip from the database server.

  2. Within our application, we allow application customers to submit/attach accessories (.txt, .doc, .pdf, .xls, etc.), that are really saved physically in server disk and just its file path is saved within the database. The ideal place/method for maintaining/keeping documents physically, in both application web server or perhaps in database server?

We are very new into el born area of separating database like a separate server and our understanding on this is limited. Therefore, any assets, links, documentation, articles, recommendations, suggestion etc. in connection with this are highly welcome and extremely appreciated.

NOTE: Our tools of trade are: RHEL5 64-bit, Apache Tomcat 6..10, JDK 1.6, PostgreSQL 8.2.22, pgpool 2..1

I received an answer with this exact same question after posting in serverfault. Here may be the answer. Am writing this being an answer here with the expectation this might be helpful for other customers who may have similar type of question.