have you done the uptime/availability math? like figured out the cost/min of downtime?
Last I checked, PostgreSQL doesnt have any replication. This means keeping a hot-standby or loadbalancing selects wont be possible. Which means you'll be relying on how quality your hardware and datacenter is, and how fast you can get replacement parts for your cost-of-downtime equation.
I'm not sure if MS SQL can do regular replication either. I've only ever seen examples of clustering with some kind of shared-storage equipment.
This is one thing MySQL does very well. Using their
binary log replication (also good
walkthrough/tutorial here), and
heartbeat, you can failover from your primary to a hot-backup server in about 4 seconds, all automatically.
[edit] Plus if you're really tricky, you can seperate your selects from your insterts at the application level, and use
LVS to load balance your selects. This scales
extremely well, as you can practically slap any old hardware in as an extra "select" db server, and heavily tweak your "insert" server for that purpose. Anyway, this is probably getting beyond what you're interested, and the biggest caveat of all for mysql is that if you need this kind of database availability, you usualy also need features like transaction support and others that mysql doesnt support (dont give me that InnoDB or MySQL4 cruft).[/edit]
bart