SQL Server遠程數據庫操作(備份、還原等)


·

 

 

 

應用場景發生的事情,由於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'

 

 

······················

 

 

·

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM