Re: beta testing version
От | ncm@zembu.com (Nathan Myers) |
---|---|
Тема | Re: beta testing version |
Дата | |
Msg-id | 20001201125606.X22345@store.zembu.com обсуждение исходный текст |
Ответ на | Re: beta testing version (Don Baccus <dhogaza@pacifier.com>) |
Ответы |
Re: beta testing version
|
Список | pgsql-hackers |
On Fri, Dec 01, 2000 at 11:48:23AM -0800, Don Baccus wrote: > At 11:09 AM 12/1/00 -0800, Nathan Myers wrote: > >On Fri, Dec 01, 2000 at 10:01:15AM +0100, Zeugswetter Andreas SB wrote: > > >> If you need to restore from offsite backup you loose transactions > >> unless you transfer the WAL synchronously with every commit. > > >Currently the only way to avoid losing those transactions is by > >replicating transactions at the application layer. That is, the > >application talks to two different database instances, and enters > >transactions into both. That's pretty hard to retrofit into an > >existing application, so you'd really rather have replication in > >the database. Of course, that's something PostgreSQL, Inc. is also > >working on. > > Recovery alone isn't quite that difficult. You don't need to instantiate > your database instance until you need to apply the archived transactions, > i.e. after catastrophic failure destroys your db server. True, it's sufficient for the application just to log the text of its updating transactions off-site. Then, to recover, instantiate a database from a backup and have the application re-run its transactions. > You need to do two things: (Remember, we're talking about what you could do *now*, with 7.1. Presumably with 7.2 other options will open.) > 1. Transmit a consistent (known-state) snapshot of the database offsite. > > 2. Synchronously tranfer the WAL as part of every commit (question, do > wait to log a "commit" locally until after the remote site acks that > it got the WAL?) > > Then you take a new machine, build a database out of the snapshot, and > apply the archived redo logs and off you go. If you get tired of saving > oodles of redo archives, you make a new snapshot and accumulate the > WAL from that point forward. I don't know of any way to synchronously transfer the WAL, currently. Anyway, I would expect doing it to interfere seriously with performance. The "wait to log a 'commit' locally until after the remote site acks that it got the WAL" is (akin to) the familiar two-phase commit. Nathan Myers ncm@zembu.com
В списке pgsql-hackers по дате отправления: