Received: from localhost (maia-3.hub.org [200.46.204.184]) by postgresql.org (Postfix) with ESMTP id A7EB69FB93E for ; Fri, 22 Jun 2007 07:59:27 -0300 (ADT) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.204.184]) (amavisd-maia, port 10024) with ESMTP id 26291-10 for ; Fri, 22 Jun 2007 07:59:17 -0300 (ADT) X-Greylist: from auto-whitelisted by SQLgrey-1.7.4 Received: from mail01.enterprisedb.com (mail01.enterprisedb.com [63.246.7.168]) by postgresql.org (Postfix) with ESMTP id 2E1649FB79D for ; Fri, 22 Jun 2007 07:59:22 -0300 (ADT) thread-index: Ace0vGv0iZJWeMsiShSlvtLsw0GTzw== Received: from [192.168.0.4] ([85.211.241.229]) by mail01.enterprisedb.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 22 Jun 2007 06:59:34 -0400 Content-Class: urn:content-classes:message Importance: normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.4073 Subject: Re: PITR Backups From: "Simon Riggs" To: "Toru SHIMOGAKI" Cc: "Tom Lane" , "Dan Gorman" , In-Reply-To: <467B3459.9030808@oss.ntt.co.jp> References: <7E0807EE-B970-4869-A248-B838E42AD9EE@hi5.com> <9761.1182472005@sss.pgh.pa.us> <467B3459.9030808@oss.ntt.co.jp> Content-Type: text/plain; charset="iso-8859-1" Date: Fri, 22 Jun 2007 11:55:47 +0100 Message-ID: <1182509748.9276.178.camel@silverbirch.site> MIME-Version: 1.0 X-Mailer: Evolution 2.6.0 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 22 Jun 2007 10:59:34.0203 (UTC) FILETIME=[6ACD28B0:01C7B4BC] X-Virus-Scanned: Maia Mailguard 1.0.1 X-Archive-Number: 200706/523 X-Sequence-Number: 25556 On Fri, 2007-06-22 at 11:30 +0900, Toru SHIMOGAKI wrote: > Tom Lane wrote: > > Dan Gorman writes: > >> All of our databases are on NetApp storage and I have been looking > >> at SnapMirror (PITR RO copy ) and FlexClone (near instant RW volume > >> replica) for backing up our databases. The problem is because there > >> is no write-suspend or even a 'hot backup mode' for postgres it's > >> very plausible that the database has data in RAM that hasn't been > >> written and will corrupt the data. > > > Alternatively, you can use a PITR base backup as suggested here: > > http://www.postgresql.org/docs/8.2/static/continuous-archiving.html > > I think Dan's problem is important if we use PostgreSQL to a large size database: > > - When we take a PITR base backup with hardware level snapshot operation > (not filesystem level) which a lot of storage vender provide, the backup data > can be corrupted as Dan said. During recovery we can't even read it, > especially if meta-data was corrupted. > > - If we don't use hardware level snapshot operation, it takes long time to take > a large backup data, and a lot of full-page-written WAL files are made. > > So, I think users need a new feature not to write out heap pages during taking a > backup. Your worries are unwarranted, IMHO. It appears Dan was taking a snapshot without having read the procedure as clearly outlined in the manual. pg_start_backup() flushes all currently dirty blocks to disk as part of a checkpoint. If you snapshot after that point, then you will have all the data blocks required from which to correctly roll forward. On its own, the snapshot is an inconsistent backup and will give errors as Dan shows. It is only when the snapshot is used as the base backup in a full continuous recovery that the inconsistencies are removed and the database is fully and correctly restored. pg_start_backup() is the direct analogue of Oracle's ALTER DATABASE BEGIN BACKUP. Snapshots work with Oracle too, in much the same way. After reviewing the manual, if you honestly think there is a problem, please let me know and I'll work with you to investigate. -- Simon Riggs EnterpriseDB http://www.enterprisedb.com