自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

聊聊PG數(shù)據(jù)庫的防誤刪除問題

數(shù)據(jù)庫 其他數(shù)據(jù)庫
實(shí)際上在使用比較復(fù)雜的方式恢復(fù)數(shù)據(jù)之前,我們還有更好的解決方法,比如使用psql工具的時候,把自動提交關(guān)閉,這樣的話在第一時間,我們還可以通過DDL ROLLBACK來實(shí)現(xiàn)最簡單的恢復(fù)。養(yǎng)成好的習(xí)慣或者規(guī)范化操作行為也是避免出大事的最好的方法。

?做DBA這二十多年里,誤刪除數(shù)據(jù)是處理起來最麻煩的事情。早期遇到過一個案例,當(dāng)時的一個可視化開發(fā)工具是把所有代碼都保存在一個Oracle數(shù)據(jù)庫里的,而這個數(shù)據(jù)庫放在一臺普通的PC機(jī)上,并未做任何備份。有一次一不小心,被人把一個用戶的數(shù)據(jù)全刪了。這下子這個政府部門的業(yè)務(wù)系統(tǒng)都跑不起來了。后來我花了幾天時間才恢復(fù)了大部分?jǐn)?shù)據(jù),湊合讓大部分應(yīng)用都恢復(fù)了。

Oracle的各種防誤刪除的方法已經(jīng)被國內(nèi)的第三方服務(wù)企業(yè)都研究的比較透了,這些年大部分的此類問題,都能夠通過一些工具或者特殊的方法實(shí)現(xiàn)恢復(fù)。不過現(xiàn)在很多企業(yè)都在將數(shù)據(jù)庫轉(zhuǎn)移到開源與國產(chǎn)化的環(huán)境。在這些新環(huán)境下,數(shù)據(jù)恢復(fù)依然是作為剛需存在的。今天我們來簡單聊聊PG數(shù)據(jù)庫的誤刪除恢復(fù)問題,因?yàn)槟壳昂芏鄧a(chǎn)數(shù)據(jù)庫都與PG同源,或者是基于PG社區(qū)版定制的。

防誤操作的底線是用備份恢復(fù)數(shù)據(jù),數(shù)據(jù)庫備份也是數(shù)據(jù)庫運(yùn)維的底線。如果實(shí)在沒辦法在在線庫中恢復(fù)數(shù)據(jù)的時候,使用備份集來恢復(fù)數(shù)據(jù)是十分重要的??赡苡信笥褧f了,我們有主備庫,是不是不需要備份了。這個觀點(diǎn)是錯誤的,主備庫只是高可用的方案,不能替代備份。當(dāng)你誤刪一張表的時候,備庫也會被誤刪。只有備份才能通過離線恢復(fù)來恢復(fù)你所需要的所有數(shù)據(jù)。為了確保備份集的可靠性,至少保留兩個全備也是十分必要的。

除了備份之外,我們還可以通過規(guī)范一些操作來實(shí)現(xiàn)比較方便的誤刪恢復(fù)。與Oracle不同的是,PG的DDL是可以rollback的。在PG數(shù)據(jù)庫中,TRUNCATE、DROP等操作開始的時候,還會保留原有的文件。比如TRUNCATE TABLE的時候,首先會創(chuàng)建一個新文件作為數(shù)據(jù)存儲,原來的文件還保留著。當(dāng)你執(zhí)行rollback的時候,原來的數(shù)據(jù)可以很方便地恢復(fù)。不過一旦COMMIT,那么老的數(shù)據(jù)文件就會被從OS層面刪除。

基于此,要想實(shí)現(xiàn)PG數(shù)據(jù)庫被DROP/TRUNCATE的數(shù)據(jù)能夠恢復(fù),還需要考慮操作系統(tǒng)的恢復(fù)問題。我們在選擇文件系統(tǒng)的時候,一定要選擇一個可恢復(fù)的帶日志的文件系統(tǒng),比如XFS/EXT等。并且要打開并設(shè)置好日志。打開文件系統(tǒng)日志,可能會對寫操作有一些性能影響,不過對于絕大多數(shù)系統(tǒng)來說,這點(diǎn)影響完全是可以接受的,為了確保安全,啟用日志十分有必要。

除此之外,我們還要把OS層面的UNDELETE工具準(zhǔn)備好,一旦遇到需要恢復(fù)數(shù)據(jù)的事情,立馬通過UNDELETE工具恢復(fù)被刪除的數(shù)據(jù)文件。一旦數(shù)據(jù)文件被恢復(fù)回來了,那么從文件中導(dǎo)出數(shù)據(jù)就是十分容易的事情了。目前在GIT上,有大量的開源工具可以用來從PG數(shù)據(jù)文件中下載數(shù)據(jù)。因此對于有個企業(yè)來說,在部署PG數(shù)據(jù)庫的時候,應(yīng)該考慮準(zhǔn)備好undelete工具,并在有比較靠譜的undelete工具的文件系統(tǒng)上部署PG數(shù)據(jù)庫。

實(shí)際上在使用比較復(fù)雜的方式恢復(fù)數(shù)據(jù)之前,我們還有更好的解決方法,比如使用psql工具的時候,把自動提交關(guān)閉,這樣的話在第一時間,我們還可以通過DDL ROLLBACK來實(shí)現(xiàn)最簡單的恢復(fù)。養(yǎng)成好的習(xí)慣或者規(guī)范化操作行為也是避免出大事的最好的方法。

最后一點(diǎn),相對于Oracle數(shù)據(jù)庫的段管理的模式,PG的整個元數(shù)據(jù)相對還是有點(diǎn)繞的。有時候如果我們手頭有完整的元數(shù)據(jù)的歷史信息,那么在數(shù)據(jù)恢復(fù)的時候,可以很快的找到需要恢復(fù)的文件,從而可以在備份集中快速找到要恢復(fù)的數(shù)據(jù),并用工具完成快速恢復(fù)。因此為了避免恢復(fù)數(shù)據(jù)時過于復(fù)雜,定期備份PG的關(guān)鍵元數(shù)據(jù)也十分重要。?

責(zé)任編輯:武曉燕 來源: 白鱔的洞穴
相關(guān)推薦

2017-04-01 09:00:00

數(shù)據(jù)庫誤刪除案例及建議

2017-04-01 18:30:47

MySQL誤刪除數(shù)據(jù)庫

2017-02-06 10:53:33

2018-04-28 15:28:44

數(shù)據(jù)庫MySQL誤刪除

2011-08-01 14:50:10

日志挖掘數(shù)據(jù)庫

2010-03-10 15:33:31

Linux誤刪除

2017-09-11 16:24:47

2011-07-04 09:59:01

AD誤刪除

2024-05-08 08:14:18

數(shù)據(jù)庫IO備份

2024-08-09 10:06:09

2009-12-21 16:17:01

2020-09-30 06:00:00

Linux誤刪除恢復(fù)文件

2019-08-20 14:02:07

MongoDB數(shù)據(jù)庫恢復(fù)數(shù)據(jù)

2018-12-11 11:13:25

Linux系統(tǒng)恢復(fù)

2019-10-11 09:55:53

數(shù)據(jù)工具架構(gòu)

2019-01-02 10:32:56

Linux系統(tǒng)文件運(yùn)維

2010-08-17 11:03:01

DB2恢復(fù)誤刪除表

2020-06-03 09:14:41

文件代碼Linux

2017-06-02 10:42:14

Openstack虛擬機(jī)操作

2011-05-26 15:27:08

Oracle數(shù)據(jù)庫
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號