日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

有一種慘,叫做人還在,數(shù)據(jù)沒了

對(duì),說的就是我......

大家好,我叫王大錘,一個(gè)平平無奇的IT打工人,就職于一家創(chuàng)業(yè)公司。

說起來是創(chuàng)業(yè)公司,其實(shí)主要業(yè)務(wù)是為一家北美商務(wù)公司提供電子商務(wù)平臺(tái)開發(fā)和運(yùn)維的外包服務(wù)。

作為一名初窺門徑的數(shù)據(jù)庫DBA,我深知數(shù)據(jù)備份的重要性。畢竟,小到病毒,電源故障乃至意外操作失誤,大到自然災(zāi)害,都會(huì)影響系統(tǒng)的正常運(yùn)行,甚至造成系統(tǒng)完全癱瘓。因此,機(jī)智如我,對(duì)正在開發(fā)和維護(hù)的電子商務(wù)平臺(tái)數(shù)據(jù)庫每周一備,力圖做到有備無患。

可萬萬沒想到,數(shù)據(jù)丟失的鬼故事依舊上演了,而我正是故事的主角......

電子商務(wù)平臺(tái)使用了IBM的Informix數(shù)據(jù)庫。這款數(shù)據(jù)庫在美國還算流行,它運(yùn)行穩(wěn)定,性能也很不錯(cuò)。公司的CTO對(duì)這款數(shù)據(jù)庫很是喜歡,可能這和他之前的美國留學(xué)經(jīng)歷有關(guān)吧。但這款數(shù)據(jù)庫在國內(nèi)使用的人數(shù)不是很高,網(wǎng)上實(shí)用的資料更是少之又少。

因此,相關(guān)的數(shù)據(jù)庫運(yùn)維知識(shí)只能靠自學(xué)。好在我勤學(xué)苦練,之前公司也出現(xiàn)過由于服務(wù)器磁盤損壞而導(dǎo)致的數(shù)據(jù)庫故障,但均被我通過備份數(shù)據(jù)進(jìn)行恢復(fù),其間未丟失任何數(shù)據(jù)。工作之余,我也常常在筆記本上使用Informix數(shù)據(jù)庫模擬數(shù)據(jù)演練,運(yùn)用基于時(shí)間點(diǎn)的恢復(fù)將數(shù)據(jù)庫恢復(fù)到數(shù)據(jù)被破壞前的時(shí)刻,熟練數(shù)據(jù)還原操作,以備不時(shí)之需。

然而,就在系統(tǒng)準(zhǔn)備上線試運(yùn)行的前一天,有研發(fā)人員反饋,數(shù)據(jù)庫的一個(gè)表不見了,希望我盡快通過備份找回表數(shù)據(jù)。

作為創(chuàng)意小王子,我立即就有了一個(gè)絕佳的idea,這不就是我平時(shí)玩的基于指定時(shí)間點(diǎn)的不完全恢復(fù)嘛,解決這個(gè)問題so easy。

我當(dāng)即嘗試使用onbar工具進(jìn)行基于指定時(shí)間點(diǎn)的數(shù)據(jù)恢復(fù),可是恢復(fù)的結(jié)果不盡如人意,不是依舊找不到丟失的表,就是所找到的表中的數(shù)據(jù)不完整。

與平時(shí)演練完全不同(我在刪除表時(shí)記錄了操作時(shí)間),此時(shí)的我完全不清楚丟失的表究竟是什么時(shí)候被刪除的!

通過幾次數(shù)據(jù)恢復(fù)操作,可以確定在昨天下午15點(diǎn)時(shí)表還存在,但在凌晨12點(diǎn)時(shí),這個(gè)表已經(jīng)丟失了。通過不停地恢復(fù)嘗試(每次約半小時(shí)),可以縮小表被刪除的時(shí)間范圍。但問題關(guān)鍵在于,此時(shí)已經(jīng)沒有更多的時(shí)間讓我慢慢嘗試了。測(cè)試團(tuán)隊(duì)希望能在5個(gè)小時(shí)內(nèi)解決這個(gè)問題,否則后續(xù)的一些測(cè)試工作將無法完成。

沒有困難的工作,只有勇敢的打工人

在我發(fā)覺僅憑個(gè)人能力無法在短短5小時(shí)之內(nèi)找回丟失的數(shù)據(jù)表后,我決定尋求外援。然而,詢遍同學(xué)及大學(xué)老師,都沒有得到可行的解決辦法,這個(gè)數(shù)據(jù)庫在國內(nèi)的用戶很少,我的大學(xué)老師甚至都沒用過。上網(wǎng)查詢解決方法,有網(wǎng)友說可以通過審計(jì)日志查看表的刪除時(shí)間,可Informix的審計(jì)功能有140多項(xiàng),當(dāng)時(shí)看的我頭大,根本來不及配置審計(jì)。

難道我的數(shù)據(jù)庫DBA生涯要盡毀于此?

萬萬沒想到,最終,我還是得到了高人的幫助。

危急之時(shí),我想起了參加培訓(xùn)時(shí)認(rèn)識(shí)的金倉工程師——夏洛克·福爾摩斯·K,便抱著病篤亂投醫(yī)的心態(tài)嘗試求助。沒想到,在了解我的情況之后,福爾摩斯·K很快回應(yīng)了我的難題。他讓我先將表被刪除那段時(shí)間的邏輯日志提取出來備用,然后我們開始一起分析定位Informix表被刪除的精確時(shí)間。

與福爾摩斯·K聯(lián)合確定解決方案

對(duì)于事務(wù)型數(shù)據(jù)庫,通常都會(huì)有邏輯日志,用于記錄數(shù)據(jù)庫的各種操作。數(shù)據(jù)庫系統(tǒng)在執(zhí)行DDL操作時(shí),都會(huì)操作系統(tǒng)表。數(shù)據(jù)庫系統(tǒng)的邏輯日志中會(huì)記錄全部的DML操作,可以通過分析對(duì)系統(tǒng)表的DELETE操作,來分析用戶執(zhí)行的實(shí)際的DDL操作。

通過與福爾摩斯·K近50分鐘的電話溝通,我們初步確定如下方案:

1. 根據(jù)表的大概丟失時(shí)間段,初步確定需要分析的邏輯日志文件。

2. 使用onlog工具,將待分析的邏輯日志文件內(nèi)容由二進(jìn)制轉(zhuǎn)化為文本格式,方便后續(xù)分析。

3. 過濾邏輯日志文本中包含HDELETE關(guān)鍵字的行,提取行中的表ID數(shù)據(jù)。

4. 使用oncheck工具,將表ID轉(zhuǎn)換為實(shí)際的表名稱。

5. 定位表名稱為systables的行,記錄該行的表ID。

6. 查找關(guān)鍵字包含HDELETE和表ID行,并輸出該行的前后各n行記錄。

7. 查找搜索結(jié)果中包含被刪除表名稱的行。找到信息后,在該行的前面查找包含BEGIN關(guān)鍵字的行,該行即為刪除表的事務(wù)的開始記錄行。在該記錄行中,包含了事務(wù)的開始時(shí)間,這個(gè)時(shí)間就是表被刪除時(shí)的精確時(shí)間。

福爾摩斯·K的方案驗(yàn)證

根據(jù)與福爾摩斯·K溝通的解決方案,我開始在自己的筆記本上進(jìn)行技術(shù)驗(yàn)證。

模擬現(xiàn)場(chǎng)環(huán)境

首先編寫腳本,模擬在Informix數(shù)據(jù)庫mydb中刪除t_user表的場(chǎng)景。

在上面測(cè)試中,用戶在2022-05-09 16:49:16和2022-05-09 16:49:20之間,刪除了t_user表。

在測(cè)試中,我需要找出最后一個(gè)邏輯日志文件,用于分析t_user表的精確刪除時(shí)間。通過onstat命令可以看到,當(dāng)前的邏輯日志文件的uniqid為18。

在下面的操作中,將演示如何分析這個(gè)邏輯日志文件中的內(nèi)容,查詢到刪除表的精確時(shí)間。

使用邏輯日志,分析表的精確刪除時(shí)間

1) 轉(zhuǎn)換邏輯日志為文本格式

使用onlog命令將邏輯日志文件轉(zhuǎn)換為文本格式,并輸出到文件中。

2) 通過關(guān)鍵字搜索,確定要分析的表ID

通過過濾HDELETE關(guān)鍵字,查詢出要分析的表ID。

得到的表ID會(huì)有重復(fù),可以在去重后,用于后續(xù)的表名稱分析。

使用oncheck解析出表名稱,確定系統(tǒng)表對(duì)應(yīng)的表ID

說明:上面數(shù)據(jù)為十六進(jìn)制,在用oncheck分析時(shí),需要加上0x。

根據(jù)上面的結(jié)果,使用oncheck確定4個(gè)表的名稱。

命令會(huì)輸出表名稱,內(nèi)容如下:

我們需要關(guān)注的是指定數(shù)據(jù)庫mydb下的systables表。對(duì)于上面的結(jié)果,我們需要的表ID為0x80004b。詳細(xì)信息見下面:

4) 根據(jù)系統(tǒng)表ID分析刪除表的事務(wù)數(shù)據(jù)

本例中,用戶刪除了t_user表。需要查找80004b和HDELETE兩個(gè)關(guān)鍵字附近中包含t_user的信息。下面的命令演示查詢同時(shí)包含80004b和HDELETE兩個(gè)關(guān)鍵字行,并輸出該行的前后各10行信息(可根據(jù)實(shí)際情況適當(dāng)增加)。

在本示例中,我們只查詢到一行數(shù)據(jù),并輸出了該記錄的前后各10行記錄。通過分析輸入的文本信息,可以看到該行信息的后面包含了t_user表的名稱,說明該行即為刪除t_user表的信息。在該行的前面,對(duì)應(yīng)BEGIN關(guān)鍵字的行,為該事務(wù)的開始信息,其中包含了該事務(wù)的開始時(shí)間(05/09/2022 16:49:18)。

煩惱隨風(fēng)而逝,數(shù)據(jù)成功找回

聯(lián)合解決方案令我拍案叫絕,通過和前面測(cè)試執(zhí)行DROP TABLE時(shí)記錄的時(shí)間(2022-05-09 16:49:16到2022-05-09 16:49:20)對(duì)比,得到實(shí)際執(zhí)行DROP TABLE的時(shí)間(2022-05-09 16:49:18)完全正確。

驗(yàn)證方案正確后,我迅速通過腳本,對(duì)多個(gè)邏輯日志文件進(jìn)行篩選并進(jìn)行文本轉(zhuǎn)換。

幸運(yùn)的是,表被刪除的那段時(shí)間,電子商務(wù)平臺(tái)操作業(yè)務(wù)雖然非常多,但執(zhí)行刪除表的操作很少。通過對(duì)5個(gè)邏輯日志文件的分析,很快就精確定位了刪除表的精確時(shí)間,并順利找回了被刪除表的全部數(shù)據(jù),我司的電子商務(wù)平臺(tái)也如期上線運(yùn)行。

看到KingbaseES的數(shù)據(jù)恢復(fù)能力,我徹底服了

福爾摩斯·K的分析問題能力令我為之欽服。作為一名好學(xué)上進(jìn)的青年,在問題復(fù)盤之時(shí),亦不免對(duì)金倉數(shù)據(jù)庫心馳神往。對(duì)于此類的表刪除問題,在金倉數(shù)據(jù)庫中應(yīng)該如何去精確定位表的刪除時(shí)間呢?

福爾摩斯·K告訴我,在金倉數(shù)據(jù)庫中,雖然也可以通過分析日志來確定表的刪除時(shí)間,并恢復(fù)數(shù)據(jù)。但此類方案的處理時(shí)間通常較長(zhǎng)(整庫的不完全恢復(fù)所涉及的數(shù)據(jù)量太大,在恢復(fù)數(shù)據(jù)并導(dǎo)出后,還需再進(jìn)行一次數(shù)據(jù)庫的完全恢復(fù),并合并被刪除的數(shù)據(jù),因此耗時(shí)較長(zhǎng))。對(duì)于線上業(yè)務(wù),過長(zhǎng)的停機(jī)時(shí)間不僅會(huì)給企業(yè)帶來嚴(yán)重的經(jīng)濟(jì)損失,而且會(huì)產(chǎn)生負(fù)面的社會(huì)影響,降低企業(yè)信譽(yù)。金倉數(shù)據(jù)庫KingbaseES為解決這一難題,實(shí)現(xiàn)了數(shù)據(jù)庫閃回功能,可將表刪除的恢復(fù)時(shí)間由數(shù)小時(shí)縮短至分鐘級(jí)。

在金倉數(shù)據(jù)庫KingbaseES中使用閃回功能,只需要在kingbase.conf配置一個(gè)參數(shù)即可。

福爾摩斯·K給我做了一個(gè)演示。

他先創(chuàng)建兩個(gè)表,并插入測(cè)試數(shù)據(jù)。

然后刪除t_user表,并在t_goods表中繼續(xù)插入數(shù)據(jù)。

金倉數(shù)據(jù)庫KingbaseES提供了一個(gè)視圖,可以查詢出表的刪除信息。

如果我們需要了解表的精確刪除時(shí)間,可以直接查詢r(jià)ecyclebin視圖,快速得到表的精確刪除時(shí)間。

相比Informix數(shù)據(jù)庫的日志分析確定表刪除時(shí)間方法,這簡(jiǎn)直太便捷了。然而更方便的還在后面。

通過閃回(flashback)這一特性,恢復(fù)被刪除的表,根本無需了解表的精確刪除時(shí)間,只需要在命令中指定before drop關(guān)鍵字即可。而且,不同于使用基于時(shí)間點(diǎn)的不完全恢復(fù),使用flashback只恢復(fù)了這個(gè)被刪除的表及其數(shù)據(jù),對(duì)于在刪除表之后進(jìn)行的業(yè)務(wù)操作,則完全不受閃回操作的影響。

看了福爾摩斯·K的介紹,我深感自身能力不足,目前無法勝任公司的DBA一職,希望繼續(xù)深造提升自我,于是決定向公司的CTO辭職。

我的生涯一片無悔, 我想起那天夕陽下的奔跑,那是我逝去的青春......

后記

大家好,我叫王大錘。

萬萬沒想到,公司CTO對(duì)我的工作表示高度地認(rèn)可,并極力地挽留我。他誠懇地表示是他自己的工作不到位,才會(huì)導(dǎo)致此類問題發(fā)生。

在CTO極力地挽留和高度地認(rèn)可下,我還是留在了公司。

雖然現(xiàn)在電子商務(wù)平臺(tái)已經(jīng)成功上線,但后面隨著業(yè)務(wù)增長(zhǎng),還會(huì)面臨更多的困難。CTO希望我盡快調(diào)研,后續(xù)將電子商務(wù)平臺(tái)遷移到我們有能力運(yùn)維的數(shù)據(jù)庫平臺(tái)上。出于對(duì)福爾摩斯·K的信任和感激,我率先調(diào)研了人大金倉KingbaseES這款數(shù)據(jù)庫:

1. KingbaseES在數(shù)據(jù)保護(hù)上,做了很多工作。不但有常規(guī)的備份與恢復(fù),更提供了類似壞塊自動(dòng)修復(fù)功能,時(shí)刻保護(hù)數(shù)據(jù)安全。對(duì)于用戶表被誤刪除此類問題,可通過閃回特性直接快速恢復(fù),減少對(duì)業(yè)務(wù)的影響和用戶損失。

2. 支持集群部署,當(dāng)電子商務(wù)平臺(tái)業(yè)務(wù)增長(zhǎng)時(shí),可以通過擴(kuò)展集群節(jié)點(diǎn),滿足不斷增長(zhǎng)的業(yè)務(wù)要求。

3. 集群實(shí)現(xiàn)高可用,當(dāng)服務(wù)器或操作系統(tǒng)出現(xiàn)故障時(shí),可以自動(dòng)進(jìn)行節(jié)點(diǎn)切換,更好的支持電子商務(wù)平臺(tái)的可用性需求。可以滾動(dòng)升級(jí),在不停止業(yè)務(wù)的情況下,更換服務(wù)器硬件,升級(jí)操作系統(tǒng)或升級(jí)集群組件。通過用戶實(shí)際的驗(yàn)證,KingbaseES集群的高可用達(dá)99.999%。

4. 完善的技術(shù)支持體系,不但可以及時(shí)、高效解決客戶問題,更可為客戶規(guī)劃方案,支撐客戶不斷發(fā)展的業(yè)務(wù)需求。

5. 免費(fèi)的KCA/KCP培訓(xùn),方便我們構(gòu)建自己的技術(shù)支持團(tuán)隊(duì)。

6. 有KDMS、KDTS工具,方便將其它數(shù)據(jù)庫業(yè)務(wù)遷移到KingbaseES中。借助KFS,更可實(shí)現(xiàn)業(yè)務(wù)的無停機(jī)平滑遷移。

在金倉數(shù)據(jù)庫KingbaseES這款利器的幫助之下,相信用不了多久我就會(huì)升職加薪,當(dāng)上總經(jīng)理,出任CEO,迎娶白富美,走向人生巔峰。想想,還有點(diǎn)小激動(dòng)呢!

分享到:
標(biāo)簽:數(shù)據(jù)恢復(fù) 數(shù)據(jù)庫 方案 KingbaseES
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定