(舊資料回爐系列)
如果只是單純的備份,那 MS SQL Server 的 mmc 工具 Enterprise Manager 就可以簡單的達成任務。
不過要是需要將資料庫備份後還原到備援主機上,那步驟就會多一點,還好其實也沒複雜到哪裡去,只是需要使用動動你的手指頭打打幾個指令。
流程
- 將資料庫備份
- 備份檔案複製到還原主機上
- 將備份資料庫還原
--
實作
環境說明:所有動作皆在備份端 (也就是負責備份的電腦) 完成
1. 建立 backup.sql
備份資料庫的 T-SQL 指令 c:\backup\backup.sql
1 2 3 4 |
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
1 2 3 4 5 6 7 8 9 |
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 |
這裡的動作就是
- 使用 ALTER DATABASE hhdb SET single_user WITH rollback immediate 將需要還原的資料庫設定成「單人模式」
- 還原資料庫
- 執行 ALTER DATABASE db_name SET multi_user 恢復資料庫正常運作
3. 建立 backup.bat
負責定時排成執行的批次檔 c:\backup\backup.bat
1 2 3 4 |
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 |
排成設定
完成建立的三個檔案
下一步
點選「瀏覽」
選擇剛剛建立的批次檔 backup.bat
選擇定時排程執行時間
此範例為選擇「每日」後的選項
設定排程執行時的帳號以及密碼
--
參考
osql 指令參數
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
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] <EOF> batch processing Auto console width scaling Wide messages default errorlevel is -1 vs 1 [-? show syntax summary] |
--
3,011 total views, 3 views today