以下為透過Windows網路芳鄰實現自動化異機備份及還原的方案。(網際網路的情境可搭配VPN實現)
1. 在遠端設定排程以自動化備份資料庫到固定位置,這裡可透過維護計畫或是批次檔搭配工作排程器來實現。
2. 參考以下批次檔指令,將遠端的備份檔案複製到本地端,再還原到SQL SERVER。
net use \\{SOURCE_SERVER_IP} /user:{SOURCE_SERVER_ACCOUNT} {SOURCE_SERVER_PASSWORD}
copy /y "\\{DBBACKUP_FILE_FULL_NETWORK_SOURCE_PATH}" "{DBBACKUP_FILE_FULL_LOCAL_TARGET_PATH}"
SqlCmd -U {SQL_SERVER_ACCOUNT} -P {SQL_SERVER_PASSWORD} -Q "ALTER DATABASE {DB_NAME} SET single_user WITH rollback immediate"
SqlCmd -U {SQL_SERVER_ACCOUNT} -P {SQL_SERVER_PASSWORD} -Q "RESTORE DATABASE {DB_NAME} FROM DISK='{DBBACKUP_FILE_FULL_LOCAL_TARGET_PATH}' WITH REPLACE"
SqlCmd -U {SQL_SERVER_ACCOUNT} -P {SQL_SERVER_PASSWORD} -Q "ALTER DATABASE {DB_NAME} SET multi_user"
::[option command for restore source db account] SqlCmd -U {SQL_SERVER_ACCOUNT} -P {SQL_SERVER_PASSWORD} -Q "USE {DB_NAME};EXEC sp_change_users_login 'Update_One','{ACCOUNT_MAP_ON_THE_SOURCE_DB}','{ACCOUNT_MAP_ON_THE_TARGET_DB}'"
del "{DBBACKUP_FILE_FULL_LOCAL_TARGET_PATH}"

Leave a comment