国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SQL Server 無備份情況下誤操作數(shù)據(jù)恢復(fù)(3)

這篇具有很好參考價(jià)值的文章主要介紹了SQL Server 無備份情況下誤操作數(shù)據(jù)恢復(fù)(3)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

sqlserver 誤刪除數(shù)據(jù)恢復(fù):(https://blog.csdn.net/zcj18537150970/article/details/108833211)
原文出處:http://blog.csdn.net/dba_huangzj/article/details/8491327

問題:

     經(jīng)??吹接腥苏`刪數(shù)據(jù),或者誤操作,特別是update和delete的時(shí)候沒有加where,然后就喊爹喊娘了。人非圣賢孰能無過,做錯(cuò)可以理解,但不能縱容,這個(gè)以后再說,現(xiàn)在先來解決問題。

    遇到這種情況,一般都是沒有做備份,不然也不會(huì)來發(fā)問了。首先要冷靜,否則會(huì)有更大的災(zāi)難。直到你放棄。

解決方法:

   對(duì)于這類問題,主要是找回誤操作之前的數(shù)據(jù),在2008之前,有個(gè)很出名的工具Log Exploer,聽說還挺好用的,這個(gè)網(wǎng)上大把教程,這里就不多說了。但是唯一遺憾的是,不支持2008及更高版本,這時(shí)除了其他第三方工具,那么最常用的就是本文提到的方法——日志尾部備份。本文實(shí)驗(yàn)環(huán)境2008R2,對(duì)于2008及其以上版本可以使用這個(gè)方法,其實(shí)2005也可以,2000很少用,沒試過,只是2008之前可以使用Log Exploer,所以就沒必要用這種方法。

   下面圖文并茂講解操作方法,至于原理,不屬于本文范圍,而且我相信真遇到誤操作的時(shí)候,估計(jì)沒人會(huì)看原理了。

步驟:

(1)、檢查數(shù)據(jù)庫的恢復(fù)模式,如圖:

SQL Server 無備份情況下誤操作數(shù)據(jù)恢復(fù)(3)

SQL Server 無備份情況下誤操作數(shù)據(jù)恢復(fù)(3)

或者使用腳本檢查:

SELECT recovery_model,recovery_model_descFROM sys.databasesWHERE name ='AdventureWorks'

結(jié)果如下:

SQL Server 無備份情況下誤操作數(shù)據(jù)恢復(fù)(3)

    確保數(shù)據(jù)庫的恢復(fù)模式最起碼不能為【簡(jiǎn)單】。至于如何修改成完整模式,我覺得這些應(yīng)該沒必要多說了。

   切記,對(duì)于任何重要環(huán)境,不僅僅是客戶正式環(huán)境(俗稱生產(chǎn)環(huán)境),都強(qiáng)烈建議使用【完整恢復(fù)模式】,雖然對(duì)于另外兩種(大容量日志(BULK\_LOGGED)、簡(jiǎn)單(SIMPLE))來說,完整恢復(fù)模式產(chǎn)生的日志會(huì)大,但是在出現(xiàn)問題的時(shí)候,就會(huì)覺得這些都不算什么了。并且我也想不到任何理由對(duì)于正式環(huán)境不使用完整恢復(fù)模式。只要管理得當(dāng),完整恢復(fù)模式的日志也不會(huì)太變態(tài)。

(2)、這里其實(shí)隱含另外一步,曾經(jīng)做過最少一次的完整備份。因?yàn)樗蓄愋偷膫浞荻蓟谕暾麄浞?,如果沒有最少一次完整備份,其他類型的備份都是多余的,所以在這里強(qiáng)調(diào)一下,在創(chuàng)建完一個(gè)新數(shù)據(jù)庫之后,強(qiáng)烈建議甚至強(qiáng)制做一次完整備份。

SELECT  database_name,recovery_model,name FROM msdb.dbo.backupset

使用上面的語句粗略可以看到有那些數(shù)據(jù)庫做過備份,由于測(cè)試,所以做了幾次備份,可以看到我這個(gè)時(shí)間點(diǎn)已經(jīng)做了備份了。

SQL Server 無備份情況下誤操作數(shù)據(jù)恢復(fù)(3)

(3)、確保別人不再連接數(shù)據(jù)庫,然后做一次日志尾部備份:

首先先創(chuàng)建一點(diǎn)數(shù)據(jù):

/*由于tempdb永遠(yuǎn)為簡(jiǎn)單恢復(fù)模式,所以不適合做案例。這里使用微軟的示例數(shù)據(jù)庫AdventureWorks*/USE AdventureWorksGOIF OBJECT_ID('testRestore') IS NOT NULL     DROP TABLE testRestoreGOCREATE TABLE testRestore    (      id INT IDENTITY(1, 1) ,      NAME VARCHAR(50)    );--插入測(cè)試數(shù)據(jù):   INSERT INTO testRestore(Name)SELECT 'test1'UNION ALL SELECT 'test2'UNION ALL SELECT 'test3'UNION ALL SELECT 'test4'UNION ALL SELECT 'test5'UNION ALL SELECT 'test6'UNION ALL SELECT 'test7'UNION ALL SELECT 'test8'SELECT * FROM testRestore

檢查一下結(jié)果:

SQL Server 無備份情況下誤操作數(shù)據(jù)恢復(fù)(3)

然后來做個(gè)刪除操作,為了定位是啥時(shí)候發(fā)生的,我加了一個(gè)waitfor命令,讓它在某個(gè)時(shí)間發(fā)生,這樣恢復(fù)的時(shí)候就有準(zhǔn)確性:

USE AdventureWorksGOWAITFOR TIME '21:45'DELETE FROM dbo.testRestore

現(xiàn)在來看看數(shù)據(jù):

USE AdventureWorksGOSELECT * FROM dbo.testRestore

SQL Server 無備份情況下誤操作數(shù)據(jù)恢復(fù)(3)

到這一步,災(zāi)難出現(xiàn)了。但是切記要冷靜。

下面就是本文的重點(diǎn)開始,做一次日志備份,最重要是選擇【備份日志尾部】

SQL Server 無備份情況下誤操作數(shù)據(jù)恢復(fù)(3)

然后在【選項(xiàng)】頁選擇:除【事務(wù)日志】除,其他紅框包裹的地方為強(qiáng)烈建議勾選的地方。并且保證數(shù)據(jù)庫不要有別人在連接,因?yàn)閭浞萑罩疚膊繒?huì)使數(shù)據(jù)庫處于還原狀態(tài),拒絕其他會(huì)話的連接,如果不斷開其他連接,是備份不了的。

SQL Server 無備份情況下誤操作數(shù)據(jù)恢復(fù)(3)

然后按確定,當(dāng)然,可以使用上方的【腳本】來生成語句:

USE Master
GO
BACKUP LOG [AdventureWorks] TO  DISK = N'E:\AdventureWorks.bak' WITH  NO_TRUNCATE , NOFORMAT, NOINIT,  NAME = N'AdventureWorks-事務(wù)日志 備份', SKIP, NOREWIND, NOUNLOAD,  NORECOVERY , COMPRESSION,  STATS = 10, CHECKSUM
GO
declare @backupSetId as int
select @backupSetId = position from msdb..backupset where database_name=N'AdventureWorks' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'AdventureWorks' )
if @backupSetId is null begin raiserror(N'驗(yàn)證失敗。找不到數(shù)據(jù)庫“AdventureWorks”的備份信息。', 16, 1) end
RESTORE VERIFYONLY FROM  DISK = N'E:\AdventureWorks.bak' WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND
GO

此時(shí),數(shù)據(jù)庫會(huì)處于【正在還原】的狀態(tài)

SQL Server 無備份情況下誤操作數(shù)據(jù)恢復(fù)(3)

如果發(fā)現(xiàn)備份不了可以用下面語句查看,并把spid殺掉:

SELECT  * FROM sys.sysprocesses WHERE dbid=DB_ID('AdventureWorks')

執(zhí)行結(jié)果:

SQL Server 無備份情況下誤操作數(shù)據(jù)恢復(fù)(3)

然后kill掉。

接著繼續(xù)備份。

然后進(jìn)行還原,如圖:

先要還原完整備份,選擇最近的那次,由于日志備份的特性(以后其他文章再說),只認(rèn)最后一次備份,所以要選擇最新的那次,否則還原不了。

SQL Server 無備份情況下誤操作數(shù)據(jù)恢復(fù)(3)

這里又有一個(gè)注意事項(xiàng),記得選擇:

SQL Server 無備份情況下誤操作數(shù)據(jù)恢復(fù)(3)

接著還原日志文件,這是最最重要的一步:

SQL Server 無備份情況下誤操作數(shù)據(jù)恢復(fù)(3)

然后:

SQL Server 無備份情況下誤操作數(shù)據(jù)恢復(fù)(3)

由于實(shí)驗(yàn)的時(shí)候出了點(diǎn)問題,后面重做了,所以時(shí)間選擇到22:19分,我是在22:20分刪除數(shù)據(jù)的。這里不用太在意,只要把時(shí)間點(diǎn)指定到你誤刪除的時(shí)間之前即可。而由于日志尾部備份都是最后一個(gè)備份文件,所以這里選則紅框部分即可:

SQL Server 無備份情況下誤操作數(shù)據(jù)恢復(fù)(3)

現(xiàn)在再檢查一下:

SQL Server 無備份情況下誤操作數(shù)據(jù)恢復(fù)(3)

可以看到,數(shù)據(jù)已經(jīng)還原成功。

總結(jié):

平時(shí)不做備份,出問題來喊急,這是茍有自取,還有一些腦袋發(fā)熱的人喜歡看到ldf很大就直接刪除,那以后出問題就別怪微軟了。

本文中的方法看上去有點(diǎn)繁瑣,但是實(shí)操幾次就覺得好了,但是步驟建議嚴(yán)格按照上面說的,因?yàn)橐坏┎僮麇e(cuò)誤,就很麻煩,此時(shí)再次強(qiáng)調(diào)——冷靜冷靜再冷靜!?。。。。?/p>

這種方法有幾個(gè)缺點(diǎn):

1、 如果你發(fā)現(xiàn)誤操作以后還有很多人做了操作,那么你還原成功后,別人的操作就會(huì)沖掉,所以發(fā)生誤操作后,要馬上停止別人對(duì)數(shù)據(jù)庫的操作。

2、 這個(gè)方法要對(duì)數(shù)據(jù)庫獨(dú)占,所以你想偷偷恢復(fù)是不行的了。勇敢承認(rèn)錯(cuò)誤吧。

對(duì)于核心數(shù)據(jù)表,還是要先做好預(yù)防操作,可以看:SQLServer恢復(fù)表級(jí)數(shù)據(jù)。

關(guān)于備份,可以看我的另外一篇文章:第一篇——第一文 SQL Server 備份基礎(chǔ)文章來源地址http://www.zghlxwxcb.cn/news/detail-496491.html

到了這里,關(guān)于SQL Server 無備份情況下誤操作數(shù)據(jù)恢復(fù)(3)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 數(shù)據(jù)備份與恢復(fù)

    按照 數(shù)據(jù)庫服務(wù)狀態(tài) 分為: 冷備份:在備份時(shí)暫停數(shù)據(jù)庫運(yùn)行和服務(wù),將整個(gè)數(shù)據(jù)庫復(fù)制到備份設(shè)備中 熱備份:在備份時(shí)不停止數(shù)據(jù)庫的運(yùn)行和服務(wù) 按照 備份的數(shù)據(jù) 分為: 物理備份:備份數(shù)據(jù)庫服務(wù)器上存儲(chǔ)的原始數(shù)據(jù)和文件,可以直接拷貝和恢復(fù) 邏輯備份:備份的是

    2024年01月20日
    瀏覽(20)
  • MongoDB的數(shù)據(jù)恢復(fù)與備份

    MongoDB的數(shù)據(jù)恢復(fù)與備份 ?? ? ?? ?在MongoDB中,備份和恢復(fù)數(shù)據(jù)是一項(xiàng)關(guān)鍵任務(wù),可以確保數(shù)據(jù)的安全性并防止意外數(shù)據(jù)丟失。本文將介紹MongoDB的數(shù)據(jù)恢復(fù)與備份原理并提供相關(guān)的編程代碼和配置。 ?? ? ?? ?1. 數(shù)據(jù)備份原理 ?? ?MongoDB提供了多種備份數(shù)據(jù)的方法,包括使

    2024年02月09日
    瀏覽(16)
  • 如何備份與恢復(fù)MySQL數(shù)據(jù)庫數(shù)據(jù)

    如何備份與恢復(fù)MySQL數(shù)據(jù)庫數(shù)據(jù)

    目錄 一、MySQL備份 備份方式 完全備份 差異備份 增量備份 二、常見的備份方法 物理冷備 專用備份工具 mysqldump 或 mysqlhotcopy 啟用二進(jìn)制日志進(jìn)行增量備份 第三方工具備份 三、MySQL完全備份 四、數(shù)據(jù)庫完全備份分類 物理冷備份與恢復(fù) mysqldump備份與恢復(fù) 五、物理冷備份與恢復(fù)

    2024年02月16日
    瀏覽(102)
  • 恢復(fù)因各種情況丟失的數(shù)據(jù)和文件的恢復(fù)軟件匯集。

    恢復(fù)因各種情況丟失的數(shù)據(jù)和文件的恢復(fù)軟件匯集。

    數(shù)據(jù)和文件恢復(fù)軟件工具是直觀的應(yīng)用程序,可以從各種存儲(chǔ)介質(zhì)中恢復(fù)有價(jià)值且敏感的業(yè)務(wù)相關(guān)數(shù)據(jù)。這些寶貴的救生應(yīng)用程序使企業(yè)能夠恢復(fù)因不可預(yù)測(cè)的情況而丟失的數(shù)據(jù)。 存儲(chǔ)介質(zhì)解決方案可能會(huì)因網(wǎng)絡(luò)攻擊、病毒、數(shù)據(jù)泄露、硬盤故障等多種原因而丟失或損壞數(shù)據(jù)

    2024年01月21日
    瀏覽(20)
  • 數(shù)據(jù)庫運(yùn)維——備份恢復(fù)

    數(shù)據(jù)庫運(yùn)維——備份恢復(fù)

    數(shù)據(jù)庫備份,數(shù)據(jù)庫為school,素材如下 1.創(chuàng)建student和score表 CREATE? TABLE? student ( id? INT(10)? NOT NULL? UNIQUE? PRIMARY KEY? , name? VARCHAR(20)? NOT NULL , sex? VARCHAR(4)? , birth? YEAR, department? VARCHAR(20) , address? VARCHAR(50)? ); 創(chuàng)建score表。SQL代碼如下: CREATE? TABLE? score ( id? INT(10)? NOT NU

    2024年02月16日
    瀏覽(27)
  • MySQL數(shù)據(jù)備份與恢復(fù)

    MySQL數(shù)據(jù)備份與恢復(fù)

    備份的主要目的: 備份的主要目的是:災(zāi)難恢復(fù),備份還可以測(cè)試應(yīng)用、回滾數(shù)據(jù)修改、查詢歷史數(shù)據(jù)、審計(jì)等。 日志: MySQL 的日志默認(rèn)保存位置為: ##配置文件 ##通用查詢?nèi)罩?,用來記錄MySQL的所有連接和語句,默認(rèn)是關(guān)閉的 ##二進(jìn)制日志(binlog),用來記錄所有更新了數(shù)據(jù)

    2024年02月11日
    瀏覽(18)
  • ES數(shù)據(jù)備份與恢復(fù)

    場(chǎng)景:ES線上的數(shù)據(jù)和服務(wù)遷移到另外的機(jī)器上去 老ES機(jī)器ip:172.16.0.1 新ES機(jī)器ip:172.16.0.2 一. 首先, 在備份之前要在es/config/elasticsearch.yml添加倉庫配置: path.repo: [\\\"/mnt/backup/es_backup\\\"] 1. 2.重啟ES 二. 在老機(jī)器上 3.創(chuàng)建備份倉庫 在/mnt/backup下新建名為es_backup的倉庫 POST /_snapsho

    2024年02月16日
    瀏覽(20)
  • MySQL 數(shù)據(jù)備份與恢復(fù)

    MySQL 數(shù)據(jù)備份與恢復(fù)

    本次使用的MySQL版本為8.0.20 目錄 一、數(shù)據(jù)備份 1.使用 MySQLdump 命令備份 (1)使用MySQLdump備份單個(gè)數(shù)據(jù)庫中的所有表 案例:完成數(shù)據(jù)插入后,輸入備份命令如下: (2)使用MySQLdump備份數(shù)據(jù)庫中的某個(gè)表 案例:備份booksDB數(shù)據(jù)庫中的books表,輸入語句如下: (3)使用MySQLdump備

    2024年02月11日
    瀏覽(21)
  • ElasticSearch 數(shù)據(jù)備份與恢復(fù)

    以下為背景 Elasticsearch 7.6.2單點(diǎn),8.3.3單點(diǎn) Docker 部署 當(dāng)前使用場(chǎng)景:部分index,數(shù)據(jù)量較大,需要在跨版本的ES之間進(jìn)行遷移 一、前提說明 1. Elasticsearch備份 2. 備份恢復(fù)方案 二、Elasticsearch 環(huán)境準(zhǔn)備 1.查看Elasticsearch所有版本 2.部署2個(gè)Elasticsearch單點(diǎn)服務(wù) 三、數(shù)據(jù)備份 1. 增加

    2024年02月10日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包