Tag: 批次檔

  • 定期將遠端SQL SERVER資料庫備份還原到本地端SQL SERVER

    以下為透過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}"