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'
······················
·