MS SQL Server 定時備援、還原
如果只是單純的備份,那 MS SQL Server 的 mmc 工具 Enterprise Manager 就可以簡單的達成任務。
不過要是需要將資料庫備份後還原到備援主機上,那步驟就會多一點,還好其實也沒複雜到哪裡去,只是需要使用動動你的手指頭打打幾個指令。
流程
1. 將資料庫備份
2. 備份檔案複製到還原主機上
3. 將備份資料庫還原
實作
環境說明:所有動作皆在備份端 (也就是負責備份的電腦) 完成
1. 建立 backup.sql
備份資料庫的 T-SQL 指令 c:\backup\backup.sql
BACKUP DATABASE database_name
TO DISK='e:\backup\hhdb.bak'
WITH FORMAT
GO
利用此 sql 指令將指定的資料庫備分到 TO DISK 指定的路徑、檔名
2. 建立 restore.sql
還原資料庫的 T-SQL 指令 c:\backup\restore.sql
USE master
GO
ALTER DATABASE hhdb SET single_user WITH rollback immediate
GO
RESTORE DATABASE hhdb FROM
DISK='c:\sql\hhdb.bak' WITH RECOVERY
GO
ALTER DATABASE db_name SET multi_user
GO
這裡的動作就是
1. 使用 ALTER DATABASE hhdb SET single_user WITH rollback immediate 將需要還原的資料庫設定成「單人模式」
2. 還原資料庫
3. 執行 ALTER DATABASE db_name SET multi_user 恢復資料庫正常運作
3. 建立 backup.bat
負責定時排成執行的批次檔 c:\backup\backup.bat
osql -S "dbserver" -U sa -P "password" -i c:\backup\backup.sql
copy \\192.168.1.2\E$\backup\hhdb.bak c:\sql\hhdb.bak
osql -S "192.168.1.4" -U sa -P "password" -i c:\backup\restore.sql
exit
排程設定...........
參考
osql 指令參數
osql [-U login id] [-P password]
[-S server] [-H hostname] [-E trusted connection]
[-d use database name] [-l login timeout] [-t query timeout]
[-h headers] [-s colseparator] [-w columnwidth]
[-a packetsize] [-e echo input] [-I Enable Quoted Identifiers]
[-L list servers] [-c cmdend] [-D ODBC DSN name]
[-q "cmdline query"] [-Q "cmdline query" and exit]
[-n remove numbering] [-m errorlevel]
[-r msgs to stderr] [-V severitylevel]
[-i inputfile] [-o outputfile]
[-p print statistics] [-b On error batch abort]
[-O use Old ISQL behavior disables the following]
batch processing
Auto console width scaling
Wide messages
default errorlevel is -1 vs 1
[-? show syntax summary]
全站熱搜