From owner-freebsd-questions@FreeBSD.ORG Thu May 29 16:31:14 2008 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D3093106567D for ; Thu, 29 May 2008 16:31:14 +0000 (UTC) (envelope-from gunther.mayer@googlemail.com) Received: from ug-out-1314.google.com (ug-out-1314.google.com [66.249.92.172]) by mx1.freebsd.org (Postfix) with ESMTP id 208628FC0C for ; Thu, 29 May 2008 16:31:13 +0000 (UTC) (envelope-from gunther.mayer@googlemail.com) Received: by ug-out-1314.google.com with SMTP id q2so149394uge.37 for ; Thu, 29 May 2008 09:31:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:user-agent:mime-version:to:cc:subject:references:in-reply-to:content-type; bh=mD1eig8qCWSUTazot1tQ5honsd6PaSp9yVcBwAWoIY0=; b=u9LN5ePimdctiO9ibTSbTQ3OGNWkC63J8/kuXBWriwEQ/cH+I1Z08MLheIOYKyQEcw5hyYh0ExifJqjKv5M+UhIh75A7BwEJtGsLbF9ibo0z+fKRK3Xb6GvFdY3Opu9ZtkvQqne5R3Iqf2fBTg75Y+ywjcfyx/M3hMaR0XpDDa8= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject:references:in-reply-to:content-type; b=u0LDM93ibHt7GhGKzxFhnmHTDPAcvH3wujOhU6xpdaV7gWbGvffqbD01ejhdDPxX5ZOueUAZCI2b7/X88yAWq6bjQH9dyuA7mIlZDRZ99ZllQ5bqASe6K9qCTlBrAPDEhpVgW/VbwpW63AAuCKpm6huMEjYRZNwlayKfIm/lSQY= Received: by 10.66.251.3 with SMTP id y3mr1060614ugh.88.1212078672062; Thu, 29 May 2008 09:31:12 -0700 (PDT) Received: from ?172.25.0.133? ( [196.7.14.186]) by mx.google.com with ESMTPS id 18sm1847568ugk.44.2008.05.29.09.31.09 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 29 May 2008 09:31:11 -0700 (PDT) Message-ID: <483EDA4B.1020408@googlemail.com> Date: Thu, 29 May 2008 18:31:07 +0200 From: Gunther Mayer User-Agent: Thunderbird 2.0.0.14 (X11/20080502) MIME-Version: 1.0 To: Bill Moran References: <483EA5AF.5040901@gmail.com> <20080529091524.d485ae21.wmoran@potentialtech.com> In-Reply-To: <20080529091524.d485ae21.wmoran@potentialtech.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: FreeBSD Subject: Re: Best way of upgrading postgresql in production? X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 May 2008 16:31:15 -0000 Bill Moran wrote: > In response to Gunther Mayer : > >> I've been grappling with this and read all sorts of email threads and >> blog posts but I still have no good solution to the following problem: I >> want to upgrade a postgresql installation on FreeBSD 6.3 from 8.2 to 8.3 >> as we'd like to take advantage of its new features and performance >> enhancements. Yet none of the ports system offers no clean _and_ quick >> way of performing such an upgrade as the Makefiles of the respective >> ports choke as soon as they detect an existing older -server or -client. >> >> Yet all I want to do is in a script which fires automatically at 5am via >> cron (of course I'll get up to check just in case but I've done this >> many times before): >> >> 1. Do all backup tasks (build packages for all installed postgresql >> 8.2 stuff for possible rollback, full database dump, configs etc.) >> and take down all processes that write to the db >> 2. Shut down the database >> 3. Uninstall all postgresql 8.2 ports (client, server and client libs >> we depend on) >> 4. Install all postgresql 8.3 ports >> 5. Fire up the new db, restore the complete database dump >> 6. Restore the configs (pg_hba.conf, postgresql.conf etc.) and >> restart the database >> 7. Start up all "db write" services again >> >> Ideally that process shouldn't take longer than 5 minutes but step >> number 4 is currently a big stumbling block as >> >> * Building from ports will take a while >> * I can't find any binary packages for 8.3 (would need i386 for >> testing and amd64 for live) anywhere as far as I can see >> (ftp.freebsd.org has nothing, nor do the mirrors) >> * building binary packages myself is impossible on the same machines >> as pkg_create can only do that with installed packages, "make >> package" et. all choke when they realise you already have >> 82-{client,server} installed and I don't see any other way of >> creating a package without installing one >> >> How can I get out of this catch-22 /without /resorting to complicated >> jail setups or even worse, manual compilations with different prefixes >> and other nasties? There must be a way to get a package somehow... >> > > Jail setups are not complicated. You could also make the packages on > another system. How about doing a make package on the server that you've > tested your application against 8.3 on? You _have_ done that, right? > That's not an option since my testing box runs i386 while the live one runs amd64, I guess I should really invest in a testing box with the same arch... > What makes you think that jail setups are so complicated. I set up new > jails almost every week. I get the impression that you have some reason > for avoiding the obvious solution, and I suspect it revolves around some > incorrect impression that jails are "complicated". Ok, you're probably right, I just haven't worked with jails before and have just read the wrong articles. I will investigate how I could install the newer version in a jail and keep both running at the same time during the upgrade, I'll probably run into more problems along the way but will post again if I'm stuck. Thanks, Gunther