程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server事務日志的幾個常用操作

SQL Server事務日志的幾個常用操作

編輯:關於SqlServer

我們知道,SQL Server事務日志主要是用來記錄所有事務對數據庫所做的修改,如果系統出現故障,它將成為最新數據的唯一來源。日志的操作常有以下幾個應用:

一、事務日志文件LDF的丟失

當我們不小刪除或者LDF文件丟失的時候,數據庫只剩下MDF文件,此時直接通過附加MDF是無法恢復數據庫的,那我們怎麼樣才能恢復數據庫呢?我們可以把SQL Server的日志文件分為兩種形式:一類是無活動事務的日志,另一類是有活動事務的日志,我們分別根據兩種情況來進行數據庫恢復。

1、無活動事務的日志恢復

當文件並沒有發生活動性的日志,我們就可以很容易的利用MDF文件就可以直接恢復數據庫了,具體操作方法如下:

1)數據庫要是沒有日志,就會處於置疑的狀態,我們先可以通過企業管理器中在對應數據庫中點擊右鍵,然後在“所有任務”下選擇“分離數據庫”把數據庫進行分離;

2)利用MDF文件附加數據庫生成新的日志文件,可用企業管理器中數據庫點擊右鍵選擇“所有任務”下的“附加數據庫”把數據庫附加上。

這樣就可以直接恢復好數據庫了,而如果數據庫的日志文件中含有活動事務,利用此方法就不能恢復數據庫,所以得使用下面的方法。

2、有活動事務的日志恢復

當日志發生了事務的記錄,丟失的時候,我們采用如下的方法來實現:

1)新建一個同名的數據庫,如原數據庫名為MYDB,然後停止SQL Server服務器,再把數據庫主數據MDF文件移走,然後重新啟動SQL Server服務器,新建一個同名的數據庫MYDB,然後再停止SQL Server服務器,把移走的MDF文件再覆蓋回來,然後再重新啟動SQL Server服務器,在默認的情況下,系統表是不允許被修改的,我們需要運行以下語句才可以,在查詢分析器中,選擇Master數據庫,然後執行:

Sp_configure 'allow updates',1

Reconfigure With Override

接著運行以下語句,把Sysdatabases表中MYDB數據庫的status屬性設為‘37268’,把MYDB數據庫設置為緊急模式。

update sysdatabases set status=32768 where name=’MYDB’

然後再把數據庫MYDB設置為單用戶模式,然後重啟SQL Server服務器,並把數據庫MYDB設為單用戶模式

Sp_dboption 'MYDB','single user', 'true'

再運行以下語句,檢查數據庫MYDB

DBCC CHECKDB(‘MYDB’)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved