日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库紧急恢复过程

發(fā)布時間:2023/12/20 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库紧急恢复过程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
當(dāng)數(shù)據(jù)庫失效時,請記錄下當(dāng)前時間,然后遵循下面步驟進行恢復(fù)。1. 備份數(shù)據(jù)庫 成功,使用備份文件還原數(shù)據(jù)庫,轉(zhuǎn)第2步。 失敗,轉(zhuǎn)第3步。2. 還原數(shù)據(jù)庫(在另一個服務(wù)器操作) (1)DECLARE @backup_device nvarchar(128), @log_backup_device nvarchar(128) set @backup_device = N'F:/database/myDb.bak'restore database MyDbfrom disk = @backup_device WITH REPLACE , file=5(2)根據(jù)事務(wù)日志來恢復(fù)到具體某個時間點 --首先基于一個完全備份點開始做事務(wù)日志還原,注意[NORECOVERY]參數(shù)RESTORE database (數(shù)據(jù)庫名) from 完全備份設(shè)備名with REPLACE,NORECOVERY,MOVE 'MyDb' TO 'D:/FMyDb_0606.mdf',MOVE 'FMyDb_Log' TO 'D:/FMyDb_Log_0606.ldf'--開始事務(wù)日志A.查看事務(wù)日志點:RESTORE HEADERONLY from disk='事務(wù)日志的備份的文件完全路徑或備份設(shè)備名'B.開始恢復(fù)restore LOG 數(shù)據(jù)庫名from事務(wù)日志備份設(shè)備名with FILE=1, NORECOVERYrestore LOG 數(shù)據(jù)庫名from事務(wù)日志備份設(shè)備名with FILE=2, NORECOVERYrestore LOG 數(shù)據(jù)庫名from事務(wù)日志備份設(shè)備名with FILE=3,NORECOVERY --倒數(shù)第二個備份日志restore LOG 數(shù)據(jù)庫名from事務(wù)日志備份設(shè)備名with FILE=4,RECOVERY --最后一個備份日志執(zhí)行失敗的話,轉(zhuǎn)下一步。3. 復(fù)制數(shù)據(jù)庫mdb, ldf文件 執(zhí)行 net stop mssqlserver 停止SQL Server服務(wù),復(fù)制數(shù)據(jù)庫mdb, ldf文件。 成功復(fù)制2個文件已經(jīng)其他文件組,轉(zhuǎn)第4步。 只能復(fù)制mdb文件,轉(zhuǎn)第5步。 只能復(fù)制ldf文件,轉(zhuǎn)第8步。4. 附加數(shù)據(jù)庫(數(shù)據(jù)庫文件與日志文件) CREATE DATABASE [MyDb2] ON ( FILENAME = N'F:/back/MyDb.mdf' ) ,( FILENAME = N'F:/back/MyDb_log.ldf' )FOR ATTACH如果出現(xiàn)失敗,轉(zhuǎn)第5步。5. 附加數(shù)據(jù)庫(只有數(shù)據(jù)庫文件) CREATE DATABASE [MyDb2] ON ( FILENAME = N'F:/back/MyDb.mdf' ) FOR ATTACH_REBUILD_LOG 如果失敗,在SQL2000下,可以嘗試(2005版本沒有該功能) dbcc rebuild_log('MyDb','F:/MyDb_log.ldf') 轉(zhuǎn)第6步。 當(dāng)服務(wù)器因為硬件失敗導(dǎo)致數(shù)據(jù)庫失效時,可能出現(xiàn)以下錯誤,轉(zhuǎn)第6步: 文件激活失敗。物理文件名稱'f:/database/MyDb/MyDb_log.ldf'可能不正確。 由于數(shù)據(jù)庫沒有完全關(guān)閉,無法重新生成日志。6. 強制附加數(shù)據(jù)庫 a) 新建一個同名數(shù)據(jù)庫 CREATE DATABASE [MyDb_temp]ON (NAME=MyDb_temp, FILENAME = N'F:/temp/MyDb.mdf' )LOG ON (NAME=MyDb_temp _Log, FILENAME = N'F:/temp/MyDb_log.ldf') b) 停止SqlServer c) 將備份的數(shù)據(jù)庫覆蓋F:/temp/MyDb.mdf d) 啟動SqlServer,(MyDb_temp將變?yōu)椴豢捎?#xff09; 查看數(shù)據(jù)庫狀態(tài) SELECT * FROM SYS.DATABASES SELECT * FROM sys.database_recovery_status e) 將數(shù)據(jù)庫改為緊急恢復(fù)模式 ALTER DATABASE MyDb SET EMERGENCY f) 修復(fù)數(shù)據(jù)庫 DBCC CheckDB ('MyDb') g) 將數(shù)據(jù)庫改為但用戶模式 ALTER DATABASE MyDb SET SINGLE_USER h) 再帶參數(shù)修復(fù)數(shù)據(jù)庫 DBCC CheckDB ('MyDb', REPAIR_REBUILD ) i) 將數(shù)據(jù)庫改為正常模式 ALTER DATABASE MyDb SET ONLINE 如果無法創(chuàng)建數(shù)據(jù)庫日志,i步驟將失敗,這時候如果能看到數(shù)據(jù)庫表,和進行Select操作,轉(zhuǎn)第7步。7. 提取數(shù)據(jù)庫數(shù)據(jù) a) 創(chuàng)建一個新的臨時數(shù)據(jù)庫 b) 導(dǎo)出數(shù)據(jù) 執(zhí)行 SELECT 'SELECT * INTO MyDb2..'+name+' FROM '+ name FROM sys.objects WHERE TYPE = 'U' AND name!='sysdiagrams' 產(chǎn)生數(shù)據(jù)導(dǎo)出語句,執(zhí)行他們,將數(shù)據(jù)復(fù)制到新數(shù)據(jù)庫 c) 導(dǎo)出存儲過程:待續(xù) d) 導(dǎo)出觸發(fā)器:待續(xù) e) 導(dǎo)出函數(shù):待續(xù) f) 導(dǎo)出自定義數(shù)據(jù)類型:待續(xù) g) 導(dǎo)出用戶:待續(xù) h) 將新數(shù)據(jù)庫還原到目標服務(wù)器 備份/還原這個新建的數(shù)據(jù)庫到目標服務(wù)器 i) 修復(fù)孤立用戶(SQL 2005 版) a) EXEC sp_change_users_login 'Auto_Fix', 'GameServer'; b) EXEC sp_change_users_login 'Auto_Fix', 'backoffice'; c) EXEC sp_change_users_login 'Auto_Fix', 'adminsoft'; j) 修復(fù)數(shù)據(jù)庫擁有者 EXEC sp_changedbowner 'sa'***總結(jié):還是定時備份好。。。***

總結(jié)

以上是生活随笔為你收集整理的数据库紧急恢复过程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。