今天工作遇到一個問題:數據庫本來再SQL Server2008中,現在需要備份一個數據庫到另一台服務器上,這台服務器裝的事SQL Server2005。首先想到的是數據庫分離和數據庫備份,結果兩種方法都出現異常。最后想到將數據導出未SQL腳本,然后使用系統命令執行大文件SQL腳本。
因數據庫較大,數據較多,導出SQL腳本時選中分表存儲,最后導出的SQL文件基本都是2G左右,並且有大約50個文件,所以寫了一個批處理文件,進行批量執行,最后跑了大約5小時。
下面將附一個縮減版的批處理:
::SQL2005使用osql命令,若是SQL2008使用sqlcmd命令 osql -S localhost -U sa -P 123456 -i E:\LgBigData\db\02sql\dbo.*.Table.sql osql -S localhost -U sa -P 123456 -i E:\LgBigData\db\02sql\dbo.*.Table.sql osql -S localhost -U sa -P 123456 -i E:\LgBigData\db\02sql\dbo.*.Table.sql osql -S localhost -U sa -P 123456 -i E:\LgBigData\db\02sql\dbo.*.Table.sql echo 執行完成 pause
osql -S 服務器 -U 用戶名 -P 密碼 -i SQL路徑
附:SQL Server 2008執行大文件SQL腳本命令
cd C:\Program Files\Microsoft SQL Server\100\Tools\Binn
sqlcmd -S . -U sa -P 123 -d test -i data.sql
參數說明:-S 服務器地址 -U 用戶名 -P 密碼 -d 數據庫名稱 -i 腳本文件路徑
本地服務器地址可以寫 . 比較輕松,也可寫(local)或者IP地址