Re: Bring to dead tuples to alive
Erik Brandsberg <erik@heimdalldata.com>
From: Erik Brandsberg <erik@heimdalldata.com>
To: Craig Jackson <craig.jackson@broadcom.com>
Cc: Roberto Médola <tel.medola@gmail.com>, "pgsql-sql@lists.postgresql.org" <pgsql-sql@lists.postgresql.org>
Date: 2021-01-19T19:47:19Z
Lists: pgsql-sql
One suggestion for the future is use zfs with snapshots. You can make daily snapshots, and if you need to see a view from a prior day, you can mount a snapshot while the current db is still active. There are other aspects of zfs+pg that need to be considered, but this is definitely a plus. On Tue, Jan 19, 2021 at 1:42 PM Craig Jackson <craig.jackson@broadcom.com> wrote: > Unfortunately, there is no way to recover the deleted rows if you don't > have a backup. Oracle database has a feature called flashback database that > would allow you to look at tuples as they existed in the past but to my > knowledge postgres does not currently have a similar feature. If you had a > standby database that was set to lag behind your primary postgres database > that may allow to view tuples as they existed in the past, but since. you > don't have a backup doesn't sound like you have any standby databases. Only > suggestion I can give you is to periodically backup your database with > pg_dump to avoid this problem in the future. > > Regards, > > Craig > > On Tue, Jan 19, 2021 at 10:37 AM Roberto Médola <tel.medola@gmail.com> > wrote: > >> No. >> >> Em ter., 19 de jan. de 2021 às 13:48, Craig Jackson < >> craig.jackson@broadcom.com> escreveu: >> >>> Do you have a backup of the database? >>> >>> Craig >>> >>> On Tue, Jan 19, 2021 at 9:03 AM Steve Midgley <science@misuse.org> >>> wrote: >>> >>>> >>>> >>>> On Tue, Jan 19, 2021, 5:03 AM Roberto Médola <tel.medola@gmail.com> >>>> wrote: >>>> >>>>> Hi. >>>>> I need to revert someone deletes in my table. >>>>> I researched a lot and found pg_dirtyread and also pgtreats. >>>>> Unfortunately I was unable to use either. My base is on a windows 2008 r2, >>>>> PostgreSQL 9.3.5 and is over 4 TB in size. The table in question is >>>>> distributed through tablespace in several units, inheriting to keep the >>>>> records together. >>>>> Fortunately for me, this base does not delete, just insert and the >>>>> deletes that were done wrong, were executed by me. >>>>> It turns out that I simulated on another server (linux) a table with >>>>> fields similar to those of production and I couldn't see the dead tuples >>>>> because of one of the fields being bytea. >>>>> Already tried: >>>>> - pg_dirtyread >>>>> - compile the sources to show the HeapTupleSatisfiesVisibility >>>>> But as the server is on windows, compilation is very complicated. >>>>> >>>>> Does anyone have any suggestions on how I can reverse the deletes? >>>>> >>>> >>>> You don't specify backup status. If you have any, even restoring them >>>> onto a secondary machine and then locating just the records you need and >>>> manually reentering them is better than physical restoration (in terms of >>>> effort, risk, reliability, etc). >>>> >>>> If your database is actively inserting new records, I'm not an expert, >>>> but I'd be very worried that your deleted records have been physically >>>> overwritten. I believe you need to take your DB into read-only mode to stop >>>> inserts immediately to have much hope of recovery from physical recovery on >>>> the production tablespaces. But hopefully someone with superior expertise >>>> can confirm this.. >>>> Steve >>>> >>>> >>>>> >>> >>> -- >>> Craig >>> >>> This electronic communication and the information and any files >>> transmitted with it, or attached to it, are confidential and are intended >>> solely for the use of the individual or entity to whom it is addressed and >>> may contain information that is confidential, legally privileged, protected >>> by privacy laws, or otherwise restricted from disclosure to anyone else. If >>> you are not the intended recipient or the person responsible for delivering >>> the e-mail to the intended recipient, you are hereby notified that any use, >>> copying, distributing, dissemination, forwarding, printing, or copying of >>> this e-mail is strictly prohibited. If you received this e-mail in error, >>> please return the e-mail to the sender, delete it from your computer, and >>> destroy any printed copy of it. >> >> > > -- > Craig > > This electronic communication and the information and any files > transmitted with it, or attached to it, are confidential and are intended > solely for the use of the individual or entity to whom it is addressed and > may contain information that is confidential, legally privileged, protected > by privacy laws, or otherwise restricted from disclosure to anyone else. If > you are not the intended recipient or the person responsible for delivering > the e-mail to the intended recipient, you are hereby notified that any use, > copying, distributing, dissemination, forwarding, printing, or copying of > this e-mail is strictly prohibited. If you received this e-mail in error, > please return the e-mail to the sender, delete it from your computer, and > destroy any printed copy of it. -- *Erik Brandsberg* erik@heimdalldata.com www.heimdalldata.com +1 (866) 433-2824 x 700 [image: AWS Competency Program] <https://aws.amazon.com/partners/find/partnerdetails/?n=Heimdall%20Data&id=001E000001d9pndIAA>