·
應用場景發生的事情,由於sql文件過大,超過了100M(50M以上),再數據庫的窗口執行,結果超出內存了,我用的PC是8G的內存,所以sqlcmd可以派上用場了。
運行--cmd--使用下面地址(注意是自己的sqlserver數據庫的安裝路徑)
cd C:\Program Files\Microsoft SQL Server\100\Tools\Binn
-- 方式1: sqlcmd -S"XB-201907130929\SQLSERVER" -U"sa" -P"QQ88" -i"mysqlBack.sql" -d"TestDB"
--方式2:
osql -S"XB-201907130929\SQLSERVER" -U"sa" -P"QQ88" -i"mysqlBack.sql" -d"TestDB"
參數說明:-S 服務器地址 -U 用戶名 -P 密碼 -d 數據庫名稱 -i 腳本文件路徑
本地服務器地址可以寫 ,也可寫(local)或者IP地址
-S 你的sqlserver數據庫的服務器名稱; -U 用戶名; -P 密碼; -i 你的文件路徑; -d 你的數據庫名稱(建議先在數據庫中創建好).
——————————————————————————————————————————
SQL Server遠程數據庫備份到本地:
exp sauser/sapassword@192.168.8.233:1433/DBName file=d:/backup.dmp OWNER=sumuser;
/* 需要在SQL SERVER 的管理工具SSMS(SQL Server Management Studio) 里執行
下面的Owner=后面寫數據庫用戶名就好了。 執行就可以開始導出了。 */
/* sqlcmd 命令 備份數據庫*/ > sqlcmd -S localhost\sqlserver_name -U sausername -P password > backup database database_name to disk='E:\backup\database_name.bak' > go
::完整備份
declare @filename nvarchar(100) set @filename='e:\\databack\\data'+convert(char(8),getdate(),112)+'.bak' print @filename BACKUP DATABASE [local] TO DISK = @filename WITH NOINIT , NOUNLOAD , NAME = N'aWkSQLBAK', NOSKIP, STATS = 10, NOFORMAT
::完整備份基礎上進行差異備份
declare @filename nvarchar(100) set @filename='e:\\databack\\data'+convert(char(8),getdate(),112)+'.bak' print @filename BACKUP DATABASE [local] TO DISK = @filename WITH NOINIT , NOUNLOAD , NAME = N'aWkSQLBAK', NOSKIP, STATS = 10, NOFORMAT,Differential
::強制還原
RESTORE DATABASE local FROM DISK = 'E:\databack\data20130629.bak' WITH REPLACE,NORECOVERY\RECOVERY, MOVE 'local_Data' TO 'E:\Program Files\Hintsoft\PubwinServer\database\local_Data.mdf', MOVE 'local_log' TO 'E:\Program Files\Hintsoft\PubwinServer\database\local_log.ldf'
······················
·