成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何解決SQL數(shù)據(jù)庫陷入“恢復(fù)中”模式的問題

譯文 精選
數(shù)據(jù)庫 SQL Server
數(shù)據(jù)庫管理員需要了解如何解決SQL數(shù)據(jù)庫陷入“恢復(fù)中”模式的問題。本文將介紹SQL數(shù)據(jù)庫恢復(fù)的各個階段、導(dǎo)致這個問題的原因以及將其恢復(fù)到一致狀態(tài)的方法。

譯者 | 李睿

審校 | 重樓

SQL Server數(shù)據(jù)庫偶爾會陷入“恢復(fù)中”(In Recovery)模式,這通常會讓數(shù)據(jù)庫管理員感到措手不及。這種狀態(tài)通常發(fā)生在數(shù)據(jù)庫重啟、恢復(fù)或意外關(guān)閉期間,因?yàn)镾QL Server需要重放或撤銷不完整的事務(wù)以保持?jǐn)?shù)據(jù)完整性。雖然這個過程通常是自動執(zhí)行的,但有時可能會比預(yù)期花費(fèi)更長時間甚至看起來停滯不前,這導(dǎo)致數(shù)據(jù)庫管理員不知所措。

如果遇到了這個問題,不要擔(dān)心。本文將幫助他們了解幕后發(fā)生的事情,并提供應(yīng)對策略。以下是需要了解的內(nèi)容:

  • “恢復(fù)中”模式意味著什么——為什么數(shù)據(jù)庫會進(jìn)入這種狀態(tài),以及SQL Server在后臺執(zhí)行的操作。
  • SQL Server數(shù)據(jù)庫恢復(fù)的個階段——詳細(xì)分析SQL Server在恢復(fù)過程中遵循的分析、重做和撤銷階段。
  • 導(dǎo)致延遲的常見原因——從大型事務(wù)日志到過多的虛擬日志文件(VLF),查看可能減緩進(jìn)程的原因。
  • 如何恢復(fù)在線狀態(tài)——學(xué)習(xí)將數(shù)據(jù)庫恢復(fù)到一致狀態(tài)的實(shí)用步驟,從等待到使用SQL修復(fù)工具。
  • 何時尋求高級幫助——如果恢復(fù)過程看似停滯不前且沒有取得任何進(jìn)展,可以了解應(yīng)該怎么做。

通過閱讀這一指南,將全面了解SQL Server的恢復(fù)過程以及可用于盡快將數(shù)據(jù)庫恢復(fù)在線的工具。

理解SQL Server中的“正在恢復(fù)”模式

當(dāng)SQL Server重啟或從備份中恢復(fù)數(shù)據(jù)庫時將會進(jìn)入“恢復(fù)中”模式,以保持?jǐn)?shù)據(jù)的完整性。在這個階段,SQL Server重放或撤銷不完整的事務(wù),以防止數(shù)據(jù)損壞并確保事務(wù)一致性。

在重啟SQL Server之后,數(shù)據(jù)庫進(jìn)入“恢復(fù)中”模式。SQL Server數(shù)據(jù)庫在啟動時或從備份中恢復(fù)時也可能處在“恢復(fù)中”狀態(tài)。

圖1 SQL數(shù)據(jù)庫陷入“恢復(fù)中”模式圖1 SQL數(shù)據(jù)庫陷入“恢復(fù)中”模式

數(shù)據(jù)庫處在“正在恢復(fù)”狀態(tài)意味著正在執(zhí)行恢復(fù)過程,并在這一過程完成后自動聯(lián)機(jī)。但是,可能會遇到恢復(fù)緩慢且數(shù)據(jù)庫陷入“恢復(fù)中”狀態(tài)。數(shù)據(jù)庫可能仍然處于恢復(fù)狀態(tài),因?yàn)镾QL數(shù)據(jù)庫要經(jīng)歷三個恢復(fù)階段,而這一過程的恢復(fù)時間取決于數(shù)據(jù)庫文件的大小。

SQL數(shù)據(jù)庫恢復(fù)的三個階段

通常情況下,當(dāng)SQL Server重啟時數(shù)據(jù)庫沒有正確關(guān)閉時,它會進(jìn)行崩潰恢復(fù),以確保數(shù)據(jù)庫保持一致。SQL數(shù)據(jù)庫需要經(jīng)歷三個恢復(fù)階段:

第一階段:分析

這個階段從“最后一個檢查點(diǎn)開始,直到事務(wù)日志結(jié)束”。它創(chuàng)建一個“臟頁表”(DPT)表,幫助確定崩潰時的所有“臟頁”。此外,它還創(chuàng)建一個“活動事務(wù)表”(ATT)來標(biāo)識SQL Server停止時未提交的事務(wù)。

第二階段:重做

在這個階段,SQL Server會前滾在檢查點(diǎn)之后和崩潰之前發(fā)生的所有更改。實(shí)際上,在重做Redo階段,所有已經(jīng)提交但尚未通過檢查點(diǎn)寫入SQL數(shù)據(jù)文件(.mdf/.ldf)的事務(wù)都需要前滾。

第三階段:撤銷

如果在數(shù)據(jù)庫恢復(fù)時存在任何未提交的事務(wù),則必須在撤消階段回滾這些事務(wù),以使數(shù)據(jù)庫恢復(fù)到一致狀態(tài)。

如果數(shù)據(jù)庫陷入“恢復(fù)中”模式應(yīng)該怎么辦?

檢查SQL Server錯誤日志,查看數(shù)據(jù)庫中可能類似以下內(nèi)容的第一條消息:

Starting up database ‘DatabaseName’

這意味著已經(jīng)打開數(shù)據(jù)庫文件,并且恢復(fù)過程已經(jīng)開始。在一段時間后,將會看到SQL Server正在經(jīng)歷三個恢復(fù)階段。如果正在尋找有關(guān)如何備份和恢復(fù)數(shù)據(jù)庫的指導(dǎo),可以查看有關(guān)備份和恢復(fù)Azure SQL數(shù)據(jù)庫的指南。

數(shù)據(jù)庫恢復(fù)的第一階段如下所示:

Plain Text 
 Recovery of database ‘DatabaseName’ (9) is 0% complete (approximately 95 seconds remain). Phase 1 of 3. This is an informational message only. No user action is required.
 
 Recovery of database ‘DatabaseName’ (9) is 3% complete (approximately 90 seconds remain). Phase 1 of 3. This is an informational message only. No user action is required.

在第一階段完成炎后,SQL Server數(shù)據(jù)庫將會繼續(xù)執(zhí)行恢復(fù)流程的第二和第三階段。

 Recovery of database ‘DatabaseName’ (9) is 5% complete (approximately 85 seconds remain). Phase 2 of 3. This is an informational message only. No user action is required…

 Recovery of database ‘DatabaseName’ (9) is 95% complete (approximately 40 seconds remain). Phase 2 of 3. This is an informational message only. No user action is required.

Phase 3 of 3. This is an informational message only. No user action is required.

一旦第二階段和第三階段完成,將會看到類似以下的信息:

 3807 transactions rolled forward in database ‘DatabaseName’ (9). This is an informational message only. No user action is required.

 0 transactions rolled back in database ‘DatabaseName’ (9). This is an informational message only. No user action is required.

 Recovery is writing a checkpoint in database ‘DatabaseName’ (9). This is an informational message only. No user action is required.

 Recovery completed for database DatabaseName (database ID 9) in 30 second(s) (analysis 1289 ms, redo 29343 ms, undo 72 ms.) This is an informational message only. No user action is required.

在錯誤日志中,注意“不需要用戶操作”的消息,這表明數(shù)據(jù)庫處于恢復(fù)狀態(tài)。但是,恢復(fù)可能需要比預(yù)期更長的時間,導(dǎo)致數(shù)據(jù)庫一直陷入“恢復(fù)中”模式中。

SQL數(shù)據(jù)庫陷入“恢復(fù)中”模式的原因

以下是可能導(dǎo)致SQL數(shù)據(jù)庫陷入恢復(fù)中”模式的一些原因:

  • 長時間運(yùn)行的事務(wù)正在回滾
  • 事務(wù)日志文件非常大
  • 數(shù)據(jù)庫事務(wù)日志中包含過多的虛擬日志文件(VLF)
  • SQL Server存在bug,現(xiàn)在已經(jīng)修復(fù)。

如何使數(shù)據(jù)庫恢復(fù)到一致狀態(tài)?

解決方法1:等待數(shù)據(jù)庫恢復(fù)完成

使數(shù)據(jù)庫重新聯(lián)機(jī)的最直觀的解決方案是耐心等待恢復(fù)過程完成;這可能需要幾個小時或幾天的時間。如果SQL Server 2008或SQL Server 2008 R2中的數(shù)據(jù)庫恢復(fù)時間比預(yù)期的長,那么應(yīng)用Microsoft修復(fù)程序可能會有所幫助。

注:避免運(yùn)行RESTORE命令使數(shù)據(jù)庫處于一致狀態(tài),因?yàn)镾QL Server已經(jīng)在嘗試執(zhí)行相同的任務(wù)。然后,運(yùn)行“RESTORE with..Recovery”意味著讓數(shù)據(jù)庫再次執(zhí)行相同的步驟。

解決方案2:使用專業(yè)的SQL數(shù)據(jù)庫修復(fù)工具

如果恢復(fù)過程完成,但未能將數(shù)據(jù)庫恢復(fù)到一致狀態(tài),則使用專門的SQL修復(fù)工具可以幫助將數(shù)據(jù)庫恢復(fù)到原始狀態(tài)。

  • Stellar Repair for MS SQL——這款專業(yè)的工具可幫助在SQL數(shù)據(jù)庫損壞或發(fā)生故障后將其恢復(fù)到原始狀態(tài)。
  • ApexSQL Recover——這款工具恢復(fù)已經(jīng)刪除、截?cái)嗷驌p壞的SQL Server數(shù)據(jù)庫中的數(shù)據(jù)。
  • dbForge SQL Complete——雖然主要是一款I(lǐng)DE擴(kuò)展工具,但它提供了有用的錯誤處理和故障排除功能。
  • Redgate SQL Data Recovery——Redgate提供了一系列SQL Server工具,包括數(shù)據(jù)恢復(fù)功能。
  • SysTools SQL Recovery Tool——這款工具恢復(fù)損壞的SQL數(shù)據(jù)庫文件(.MDF和.NDF)到可用狀態(tài)。
  • Kernel for SQL Database Recovery——這款工具可以從損壞和意外關(guān)閉的情況中恢復(fù)和還原SQL Server數(shù)據(jù)庫。
  • Aryson SQL Database Recovery——這款工具可以修復(fù)和還原SQL Server中的MDF和NDF文件。

結(jié)論

本文介紹了SQL數(shù)據(jù)庫陷入“恢復(fù)中”模式時的含義、恢復(fù)的三個關(guān)鍵階段((分析、重做和撤消),以及如何使數(shù)據(jù)庫重新聯(lián)機(jī)。此外還討論了可能的原因,從大型事務(wù)日志到過多的虛擬日志文件(VLF)。

如果SQL數(shù)據(jù)庫仍然陷入“在恢復(fù)中”模式,至關(guān)重要的是要保持耐心。避免運(yùn)行RESTORE命令,因?yàn)檫@會重新啟動恢復(fù)過程。至于那些無法通過人工干預(yù)解決的嚴(yán)重問題,可以考慮使用專業(yè)的SQL數(shù)據(jù)庫修復(fù)工具來恢復(fù)數(shù)據(jù)。

原文標(biāo)題:How to Fix SQL Database Stuck in Recovery Mode,作者:Daniel Calbimonte

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2010-05-24 11:17:41

MySQL數(shù)據(jù)庫

2023-11-08 09:22:05

2010-07-06 14:40:15

解決SQL Serve

2024-06-21 09:37:57

2011-03-24 09:45:34

SQL Server數(shù)恢復(fù)

2011-05-17 13:22:50

SQL對象名無效

2023-09-05 00:06:45

2021-10-20 20:27:55

MySQL死鎖并發(fā)

2010-07-05 14:41:21

SQL Server數(shù)

2010-07-08 11:05:14

SQL Server數(shù)

2011-03-23 10:08:09

2017-07-20 07:30:16

大數(shù)據(jù)數(shù)據(jù)互聯(lián)網(wǎng)

2011-03-24 11:14:46

2011-05-13 13:26:52

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

2017-09-23 22:07:24

深度學(xué)習(xí)N 體問題GAN

2017-09-28 10:40:10

深度學(xué)習(xí)多體問題多代理系統(tǒng)

2010-03-11 16:33:07

Python連接數(shù)據(jù)庫

2020-03-16 10:56:06

大數(shù)據(jù)IT安全

2017-06-16 22:14:45

機(jī)器學(xué)習(xí)數(shù)據(jù)不平衡

2009-07-22 13:32:24

JDBC SQL
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 国产日韩久久 | 成人欧美一区二区三区在线观看 | 国产真实精品久久二三区 | 欧美人成在线视频 | 欧美三级视频 | 玩丰满女领导对白露脸hd | 日韩免费一区二区 | 亚洲一区播放 | 亚洲一区二区精品视频 | 午夜资源| 日本在线免费 | 色婷婷狠狠| 亚洲手机在线 | 91影院| 超级黄色一级片 | 久久久久久国产免费视网址 | 日韩成人 | 日韩精品在线播放 | 91夜夜夜| 二区亚洲| 精品96久久久久久中文字幕无 | 国产激情一区二区三区 | 久久777| 日韩在线观看网站 | www.久久久| 欧美福利一区 | 欧美aⅴ| 欧美日韩网站 | 高清国产午夜精品久久久久久 | 亚洲欧美日韩精品久久亚洲区 | 99久久精品免费看国产四区 | 成人精品毛片国产亚洲av十九禁 | 成人亚洲 | 国产婷婷在线视频 | 欧美精产国品一二三区 | 51ⅴ精品国产91久久久久久 | 国产福利视频 | 欧美视频精品 | 在线看一区二区 | 国产99热 | 成人在线视频网站 |