SQL Server远程数据库操作(备份、还原等)
·
应用场景发生的事情,由于sql文件过大,超过了100M(50M以上),再数据库的窗口执行,结果超出内存了,我用的PC是8G的内存,所以sqlcmd可以派上用场了。
运行--cmd--使用下面地址(注意是自己的sqlserver数据库的安装路径)
cd C:Program FilesMicrosoft SQL Server100ToolsBinn
-- 方式1: sqlcmd -S"XB-201907130929SQLSERVER" -U"sa" -P"QQ88" -i"mysqlBack.sql" -d"TestDB"
--方式2:
osql -S"XB-201907130929SQLSERVER" -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 localhostsqlserver_name -U sausername -P password > backup database database_name to disk='E:ackupdatabase_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:databackdata20130629.bak' WITH REPLACE,NORECOVERYRECOVERY, MOVE 'local_Data' TO 'E:Program FilesHintsoftPubwinServerdatabaselocal_Data.mdf', MOVE 'local_log' TO 'E:Program FilesHintsoftPubwinServerdatabaselocal_log.ldf'
······················
·
::完整备份
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:databackdata20130629.bak' WITH REPLACE,NORECOVERYRECOVERY, MOVE 'local_Data' TO 'E:Program FilesHintsoftPubwinServerdatabaselocal_Data.mdf', MOVE 'local_log' TO 'E:Program FilesHintsoftPubwinServerdatabaselocal_log.ldf'