minimizing downtime on upgrades? (for example: mysql 4.1 -> 5.0 or php)

Tom Judge tom at tomjudge.com
Tue May 22 21:22:30 UTC 2007


Chuck Swiger wrote:
> On May 22, 2007, at 12:03 PM, Olivier Mueller wrote:
>> So I can only do that after the installation of mysql50-client, which
>> means all the services will have to be stopped during the compilation of
>> mysql50-server, which usually takes some time.
>>
>> Isn't there a better way?  How do you handle such cases?
> 
> Pretty much as you suggest below:
> 
>> Same questions for php upgrades: on php5 upgrade, all the other php5-*
>> packages have to be compiled too, and keeping the webserver running
>> during this time is probably not the best idea.
>>
>> What I'm going to try is to prepare packages of the ports I have to
>> upgrade on a dev/test server, and then install them with pkg_add: is
>> that the "right way" ?
> 
> You have a build box that you generate new tarballs of the packages you 
> want to update (via "make package", "make package-recursive", 
> "portupgrade -p", etc), which you can then test and make sure they 
> behave sensibly, and then use these to rapidly update your production 
> machines with minimal downtime.
> 

I have found that the ports-mgmt/tinderbox port is very useful for 
building and maintaining up to date packages with custom patchs, or non 
default knobs set.  I have a pair of dedicated build servers that it 
runs on but I cant see a reason why it could not run on any old system 
on your network.

You can then use pkg_add/pkg_delete to do the upgrade very quickly.


Tom


More information about the freebsd-stable mailing list