Best practises for DB management
I'd have a few points built up over the years.

There is always risk involved in projects such as
this - for every extra 9, you can add a 0! 

What I mean
but that is that in order to move from (say) 99% reliability
to 99.9%, you'll have to multiply your costs by 10.

Minimise, to the greatest extent possible, your web-facing data.
Always perform your upgrades at your least busy time.

DDL on a running server is difficult. 

In order for upgrades to proceed smoothly - ALWAYS put field lists in your SQL, NEVER SELECT or INSERT more than you absolutely have to.

i.e. SELECT f1, f2, f3... FROM tab1.... (not SELECT * FROM tab1) and

INSERT INTO tab1 (f1, f2, f3) VALUES (not INSERT INTO tab1 VALUES(f1, f2...fn)

The best thing for your scenario IMHO is to have some sort of 
replication scenario. Get to know your RDBMS's HA capacties 
very well. Take a look at my answer here (it's for MySQL, but
the general principals will hold for any system).

Normally, Master is replicated to Slave.

At cutover time, Halt Slave. Upgrade the Slave. Old Slave becomes new Master. Old Master becomes new Slave.

Test, test and test again!

Good luck.