SQL常見問題 如何利用日誌還原SQL資料庫?

2021-04-01 22:09:11 字數 2505 閱讀 9714

用 log explorer 恢復,如果沒有log explorer可以用日誌檔案進行時間點恢復,

將會失去此時間點之後的所有資料庫改變

example:

首先對資料庫進行日誌備份

查詢分析器裡

1.use northwind

insert employees(lastname,firstname) values('aaa','bf')

記下這時的時間

2.過3分鐘輸入

use northwind

insert employees(lastname,firstname) values('bbb','cd')

3.此時select * from employees 將能看到這兩條記錄

4.進行日誌備份,選中northwind資料庫,所有任務,backup database

在對話方塊中,選擇事務日誌備份為備份型別,選擇已有的備份裝置,和追加到**

單擊ok進行備份.這樣生成了兩個新紀錄的日誌備份

5.以下演示恢復

所有任務 restore database

對話方塊中選擇時點還原,輸入剛才記錄的時間,單擊ok恢復

6.執行select * from employees ,此時只能看到第乙個新插入的記錄

如何在資料庫檔案損壞(日誌檔案完好)情況下,進行恢復

資料庫檔案損壞的時候如何恢復

1 建乙個測試資料庫test(資料庫型別為完全)

2 建乙個表,插入點記錄

create table a(c1 varchar(2))

go insert into a values('aa')

go insert into a values('bb')

go 3 作完全備份,到檔案test_1.bak

4 在作一點修改

insert into a values('cc')

go create table b(c1 int)

go insert into b values(1)

go insert into b values(2)

go 5 shutdown 資料庫伺服器

6 用ultraedit編輯資料庫檔案test_data.mdf,隨便修改點位元組內容

7 啟動資料庫,並且執行企業管理器,點開資料庫,看到test變成灰色,而且顯示置

疑。 8 執行isql -slocalhost -usa -p

1> backup log test to disk='d:/program files/microsoft sql

server/mssql/backup/t

est_2.bak' with no_truncate

2>go

已處理 2 頁,這些頁屬於資料庫 'test' 的檔案 'test_log'(位於檔案 1 上)。

backup log 操作成功地處理了 2 頁,花費了 0.111 秒(0.087 mb/秒)。

9 進行恢復最老的完全備份

1> restore database test from disk='d:/program files/microsoft sql

server/mssql/

backup/test_1.bak' with norecovery

2> go

已處理 96 頁,這些頁屬於資料庫 'test' 的檔案 'test_data'(位於檔案 1 上)。

已處理 1 頁,這些頁屬於資料庫 'test' 的檔案 'test_log'(位於檔案 1 上)。

restore database 操作成功地處理了 97 頁,花費了 0.107 秒(7.368 mb/秒)。

10 恢復最近的日誌

1> restore log test from disk='d:/program files/microsoft sql

server/mssql/backu

p/test_2.bak' with recovery

2> go

已處理 2 頁,這些頁屬於資料庫 'test' 的檔案 'test_log'(位於檔案 1 上)。

restore log 操作成功地處理了 2 頁,花費了 0.056 秒(0.173 mb/秒)。

資料已經完全恢復了,可以使用了。

select * from a

go select * from b

go c1

----

aa bb

cc 有老的備份的話

1 backup log db to disk='e:/db2.bak' with no_truncate

2 恢復最老的完全備份

restore database db from disk='e:/db1.bak' with norecovery

3 恢復最近的日誌

restore log db from disk='e:/db2.bak' with recovery

Sql 常見問題

select from orders left join orderlines on orderlines.orderid orders.id where orders.id 12345select from orders left join orderlines on orderlines.ord...

日誌備份和差異備份還原中的常見問題示例

建立測試 create database db go 正常備份 backup database db to disk c 1.bak with format backup log db to disk c 2.bak with format backup log db to disk c 3.bak...

C 中SQL 常見問題

user為sql關鍵字,不能作為表名用在sql server的表建立中 sql server建表 create table userinfo num int identity 1,1 primary key,mailbox varchar 50 name varchar 20 pwd varchar...