Do you create an extra database for each site running on same drupal core or use replication, what is the best practice at the outset for setting up multisite databases on a vps centos server?
This question is dangerously off-topic, but as far as Drupal is concerned there are two primary things to consider.
True multisite (multiple independent sites running our of the same DOCROOT) versus multiple sites on the same server don't really come into play. In fact, you could also apply this to multiple sites using the same database server instance.
Running multiple sites out of the same database catalog is used when
- You only have one catalog to use and need to share it (eg, shared hosting).
- You want to share some tables between instances.
However, as those state, this isn't a good idea. Apart from the stability issues with sharing tables, you also have the security issue of an exploit in one site potentially getting at the data from another site.
Ideally, each site should have its own catalog in your database server, and each of these should have a unique user associated with it that has full access (minus
GRANT) with connections limited to where the site is running from (either localhost or the IP address of the webserver). This is the username/password that you should use in your settings.php
Database replication doesn't really factor into the decision here. It is use for performance and/or redundancy reasons. Drupal has some support for master/slave arrangements, but it is not really transparent.