查看單個文章
舊 2006-03-24, 03:53 AM   #4 (permalink)
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

Sql Server資料庫的制作備份和恢復措施
最常用的操作,新手們看看……

一、制作備份資料庫

1、開啟SQL企業管理器,在控制台根目錄中依次點開Microsoft SQL Server
2、SQL Server組-->雙按開啟你的伺服器-->雙按開啟資料庫目錄
3、選項你的資料庫名稱(如論壇資料庫Forum)-->然後點上面功能表中的工具-->選項制作備份資料庫
4、制作備份選項選項完全制作備份,目的中的制作備份到如果原來有路徑和名稱則選名稱點移除,然後點增加,如果原來沒有路徑和名稱則直接選項增加,接著指定路徑和檔案名,指定後點確定返回制作備份視窗,接著點確定進行制作備份

二、還原資料庫

1、開啟SQL企業管理器,在控制台根目錄中依次點開Microsoft SQL Server
2、SQL Server組-->雙按開啟你的伺服器-->點圖示欄的新增資料庫圖示,新增資料庫的名字自行取
3、點擊新增好的資料庫名稱(如論壇資料庫Forum)-->然後點上面功能表中的工具-->選項恢複數據庫
4、在彈出來的視窗中的還原選項中選項從設備-->點選項設備-->點增加-->然後選項你的備份檔案名-->增加後點確定返回,這時候設備欄應該出現您剛才選項的資料庫備份檔案名,制作備份號預設為1(如果您對同一個文件做過多次制作備份,可以點擊制作備份號旁邊的檢視內容,在複選項中選項最新的一次制作備份後點確定)-->然後點擊上方一般旁邊的選項按鈕
5、在出現的視窗中選項在現有資料庫上強制還原,以及在恢復完成狀態中選項使資料庫可以繼續執行但無法還原其它事務日誌的選項。在視窗的中間部位的將資料庫文件還原為這裡要按照你SQL的安裝進行設定(也可以指定自己的目錄),邏輯檔案名不需要改動,移至物理檔案名要根據你所恢復的機器情況做改動,如您的SQL資料庫裝在D:\Program Files\Microsoft SQL Server\MSSQL\Data,那麼就按照您恢復機器的目錄進行相關改動改動,並且最後的檔案名最好改成您現用的資料庫名(如原來是bbs_data.mdf,現在的資料庫是forum,就改成forum_data.mdf),日誌和資料檔案都要按照這樣的方式做相關的改動(日誌的檔案名是*_log.ldf結尾的),這裡的恢復目錄您可以自由設定,前提是該目錄必須存在(如您可以指定d:\sqldata\bbs_data.mdf或者d:\sqldata\bbs_log.ldf),否則恢復將報告錯誤
6、修改完成後,點擊下面的確定進行恢復,這時會出現一個進度條,提示恢復的進度,恢復完成後系統會自動提示成功,如中間提示報告錯誤,請記錄下相關的錯誤內容並詢問對SQL操作比較熟悉的人員,一般的錯誤無非是目錄錯誤或者檔案名重複或者檔案名錯誤或者空間不夠或者資料庫正在使用中的錯誤,資料庫正在使用的錯誤您可以嘗試關閉所有關於SQL視窗然後重新開啟進行恢復操作,如果還提示正在使用的錯誤可以將SQL服務停止然後重新啟動看看,至於上述其它的錯誤一般都能按照錯誤內容做相應改動後即可恢復

三、收縮資料庫

一般情況下,SQL資料庫的收縮並不能很大程度上減小資料庫大小,其主要作用是收縮日誌大小,應當定期進行此操作以免資料庫日誌過大
1、設定資料庫模式為簡單模式:開啟SQL企業管理器,在控制台根目錄中依次點開Microsoft SQL Server-->SQL Server組-->雙按開啟你的伺服器-->雙按開啟資料庫目錄-->選項你的資料庫名稱(如論壇資料庫Forum)-->然後點擊右鍵選項內容-->選項選項-->在故障還原的模式中選項「簡單」,然後按確定儲存
2、在當前資料庫上點右鍵,看所有工作中的收縮資料庫,一般裡面的預設設定不用調整,直接點確定
3、收縮資料庫完成後,建議將您的資料庫內容重新設定為標準模式,操作方法同第一點,因為日誌在一些異常情況下往往是恢複數據庫的重要依據

四、設定每日自動制作備份資料庫

強烈建議有條件的用戶進行此操作!
1、開啟企業管理器,在控制台根目錄中依次點開Microsoft SQL Server-->SQL Server組-->雙按開啟你的伺服器
2、然後點上面功能表中的工具-->選項資料庫維護計劃器
3、下一步選項要進行自動制作備份的資料-->下一步更新資料最佳化訊息,這裡一般不用做選項-->下一步檢查資料完整性,也一般不選項
4、下一步指定資料庫維護計劃,預設的是1周制作備份一次,點擊更改選項每天制作備份後點確定
5、下一步指定制作備份的磁牒目錄,選項指定目錄,如您可以在D碟新增一個目錄如:d:\databak,然後在這裡選項使用此目錄,如果您的資料庫比較多最好選項為每個資料庫建立子目錄,然後選項移除早於多少天前的制作備份,一般設定4-7天,這看您的具體制作備份要求,備份檔案副檔名一般都是bak就用預設的
6、下一步指定事務日誌制作備份計劃,看您的需要做選項-->下一步要產生的報表,一般不做選項-->下一步維護計劃歷史記錄,最好用預設的選項-->下一步完成
7、完成後系統很可能會提示Sql Server Agent服務未啟動,先點確定完成計劃設定,然後找到桌面最右邊狀態列中的SQL綠色圖示,雙按點開,在服務中選項Sql Server Agent,然後點擊執行箭頭,選上下方的當啟動OS時自動啟動服務
8、這個時候資料庫計劃已經成功的執行了,他將按照您上面的設定進行自動制作備份

修改計劃:
1、開啟企業管理器,在控制台根目錄中依次點開Microsoft SQL Server-->SQL Server組-->雙按開啟你的伺服器-->管理-->資料庫維護計劃-->開啟後可看到你設定的計劃,可以進行修改或者移除操作

五、資料的轉移(新增資料庫或轉移伺服器)

一般情況下,最好使用制作備份和還原操作來進行轉移資料,在特殊情況下,可以用匯入匯出的方式進行轉移,這裡介紹的就是匯入匯出方式,匯入匯出方式轉移資料一個作用就是可以在收縮資料庫無效的情況下用來減小(收縮)資料庫的大小,本操作預設為您對SQL的操作有一定的瞭解,如果對其中的部分操作不理解,可以咨詢動網相關人員或者查詢網上資料
1、將原資料庫的所有表、儲存於程序匯出成一個SQL文件,匯出的時候注意在選項中選項編寫索引指令碼和編寫主鍵、外鍵、預設值和檢查約束指令碼選項
2、新增資料庫,對新增資料庫執行第一步中所建立的SQL文件
3、用SQL的匯入匯出方式,對新資料庫匯入原資料庫中的所有表內容

利用資料庫日誌恢複數據到時間點的操作
由於不正常的資料遺失,而又不想使用制作備份資料還原,只要原來有制作備份且當前日誌儲存完好,可以採用這個方法試試,說不定可挽回損失……

1,如果誤操作之前存在一個全庫制作備份(或已有多個差異制作備份或增量制作備份),首先要做的事就是進
進行一次日誌制作備份(如果為了不讓日誌文件變大而置trunc. log on chkpt.選項為1那你就死翹了)
backup log dbName to disk='fileName'
2,恢復一個全庫制作備份,注意需要使用with norecovery,如果還有其他差異或增量制作備份,則逐個恢

restore database dbName from disk='fileName' with norecovery
3,恢復最後一個日誌制作備份即剛做的日誌制作備份,指定恢復時間點到誤操作之前的時刻
restore log dbName from disk='fileName'
with stopat='date_time'

以上這些操作都可以在SQL SERVER企業管理器裡完成,難度不大。。。

當然,如果誤操作是一些不記日誌的操作比如truncate table,select into等操作,那麼是無法利
用上述方法來恢複數據的...

SQL Server2000資料庫文件損壞時如何恢復
出現這樣的問題是比較嚴重的了,能否修復只能看你的運氣……

SQL Server2000中,如果資料庫文件(非系統資料庫文件)遇到錯誤的時候,僅適用於非master,msdb的資料庫。

說明如下:

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 FilesMicrosoft SQL ServerMSSQLBACKUP
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 FilesMicrosoft SQL ServerMSSQL
BACKUP est_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 FilesMicrosoft SQL ServerMSSQLBACKU
P est_2.bak' WITH RECOVERY
2> go
已處理 2 頁,這些頁屬於資料庫 'test' 的文件 'TEST_Log'(位於文件 1 上)。
RESTORE LOG 操作成功地處理了 2 頁,花費了 0.056 秒(0.173 MB/秒)。
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次