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'

 

 

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

 

 

·

 

posted @ 2020-02-28 16:34  亟待!  阅读(1856)  评论(0编辑  收藏  举报
……