< 返回新聞公共列表

如何在云數(shù)據(jù)庫(kù) SQL Server中找出刪除的文件呢?

發(fā)布時(shí)間:2020-12-22 15:23:15

一、總結(jié)

1、當(dāng)沒(méi)有部署觸發(fā)器和開(kāi)啟審計(jì)的情況,想知道某張表是被哪個(gè)用戶(hù)刪除的,可以使用系統(tǒng)函數(shù)fn_dblog結(jié)合系統(tǒng)的默認(rèn)跟蹤找到;

2、需要注意的是系統(tǒng)默認(rèn)提供5個(gè)跟蹤文件,默認(rèn)大小都是20MB,當(dāng)實(shí)例重啟的時(shí)候或者達(dá)到最大值的時(shí)候,會(huì)重新生成新的文件,將最早的跟蹤文件刪除,依次滾動(dòng)更新,所以刪除表后間隔的時(shí)間太長(zhǎng),也是找不到結(jié)果的;

3、fn_dblog函數(shù)簡(jiǎn)介

* 使用fn_dblog函數(shù)我們可以查看當(dāng)前數(shù)據(jù)庫(kù)的事物日志文件的記錄(活動(dòng)的日志,備份走的日志用該函數(shù)查不到);

* 官方并未公開(kāi)此函數(shù)的用法,在生產(chǎn)環(huán)境,慎用此命令?。。?;

* 2個(gè)參數(shù):

參數(shù)1:日志開(kāi)始序列號(hào)位置(LSN),輸入NULL,表示從日志開(kāi)始位置返回結(jié)果;

參數(shù)2:日志結(jié)束序列號(hào)位置(LSN),輸入NULL,表示查找到日志最后的結(jié)束位置;

4、通過(guò)sys.fn_dblog最后定位到的結(jié)果,只能顯示object_id,找不到具體的表名,如果有多個(gè)用戶(hù)做了大量的drop操作時(shí),找出的結(jié)果也非常多,可能得不到想要的結(jié)果;

5、如果在刪除表時(shí),用戶(hù)指定了事物名稱(chēng),在使用sys.fndblog查找結(jié)果的時(shí)候,[Transaction Name]的值必須使用用戶(hù)指定的事物名稱(chēng)才能出結(jié)果;


如何在云數(shù)據(jù)庫(kù) SQL Server中找出刪除的文件呢?.jpg


6、如果在刪除表時(shí),用戶(hù)手動(dòng)開(kāi)啟了事物,但是并沒(méi)有指定事物名稱(chēng),在使用sys.fndblog查找結(jié)果的時(shí)候,[Transaction Name]的值要使用user_transaction才能有結(jié)果。


云數(shù)據(jù)庫(kù) SQL Server.jpg


二、操作步驟

1、準(zhǔn)備測(cè)試數(shù)據(jù)

2、查看student表的object_id(和一會(huì)找出來(lái)的對(duì)比一下是否一致)

3、創(chuàng)建一個(gè)具有test庫(kù)dba權(quán)限的用戶(hù)dbinfo

4、使用dbinfo用戶(hù)登錄數(shù)據(jù)庫(kù)刪除student表

5、使用系統(tǒng)函數(shù)sys.fn_dblog找出相關(guān)信息

6、根據(jù)事物ID,找出被刪除的對(duì)象

7、找出SQLServer中默認(rèn)的trace的path路徑

8、根據(jù)trace path,事務(wù)ID、object_id、開(kāi)始時(shí)間、SPID等信息找到對(duì)應(yīng)的trace信息


以上就是如何在云數(shù)據(jù)庫(kù) SQL Server中找出刪除的文件的相關(guān)內(nèi)容。小編講解的操作步驟會(huì)比較簡(jiǎn)單,如果你有想更加深入了解的話(huà),請(qǐng)咨詢(xún)深圳市恒訊科技的相關(guān)技術(shù)人員。



/template/Home/Zkeys724/PC/Static