2008年7月3日 星期四

使用程式進行資料庫備份/還原

如果需要經常備份資料庫,雖然有輔助工具可以用,但是經常點下一步且須設定備份的參數,
也是很累人的,如果可以將備份寫成程式,直接執行,那就更方便了
以下介紹資料庫備份跟還原的做法,此指令只適合SQL SERVER
若有需要ORACLE之備份語法,請留下意見,我會在去研究然後PO上來

以下指令以SQL方式直接下即可:

--備份資料庫
BACKUP DATABASE TestDB
TO DISK = 'c:\TestDB.bak'
WITH FORMAT

--還原資料庫
--讀取備份檔之資訊
RESTORE FILELISTONLY/HEADERONLY/LABELONLY
FROM DISK = 'c:\TestDB.bak'
--step1.先切換獨佔模式
ALTER DATABASE TestDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE
--step2.進行資料庫還原
RESTORE DATABASE DATABASENAME
FROM DISK = 'c:\IPOS.bak'
WITH REPLACE,
MOVE 'IPOS_Data' TO 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\IPOS.mdf',
MOVE 'IPOS_Log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\IPOS.ldf'
REPLACE:指定還原時強制蓋過現有的資料庫檔。
--修改資料檔或記錄檔的邏輯名稱
ALTER DATABASE MODIFY FILE (NAME = NEWNAME = )

注意事項:
1.還原前須確認該資料庫無人使用,否則還原失敗
2.執行此SQL之Connection不可使用欲還原之database登錄(連接之資料庫不可為預還原之資料庫)
3.備份執行程式須在DB執行
4.還原時須從原本備份出之路徑進行還原(即備份後之檔案不可任意移動其資料夾)
5.與還原資料庫相關之所有Application與全部關閉

沒有留言: