SQL Server 远程备份还原数据库
1. 检查SQL Server 服务的启动账户
检查SQL Server启动账户是否为Local System,如果是修改为“
NT AUTHORITY/NetworkService”或“Administrator”。
注:
xp_cmdshell 生成的 Windows 进程与 SQL Server 服务帐户具有相同的安全权限。而Local System账户是系统内置账户,没有网络连接缺陷的,因此需要修改SQL Server 服务的启动账户。
2. 开启SQL Server系统存储过程 xp_cmdshell
为了安全,默认情况下SQL Server系统存储过程 xp_cmdshell被禁用,可以在SSMS执行下面语句检查是否被禁用:
--启用高级选项xp_cmdshell,属于高级选项,因此需要先开启高级选项
exec master..sp_configure 'show advanced options', 1;
GO
RECONFIGURE; --立即生效,否则重启实例生效
GO
--查询xp_cmdshell状态
exec master..sp_configure 'xp_cmdshell'
返回结果:
name |
minimum |
maximum |
config_value |
run_value |
xp_cmdshell |
0 |
1 |
0 |
0 |
若run_value值为0则表示xp_cmdshell被禁用。
使用下面语句启用xp_cmdshell
--启用高级选项
sp_configure 'show advanced options', 1;
GO
RECONFIGURE; --立即生效,否则重启实例生效
GO
--启用xp_cmdshell
sp_configure 'xp_cmdshell', 1;
GO
RECONFIGURE;
GO
3. 建立磁盘映射
执行下面语句建立网络磁盘映射。
--如果是域环境需要制定登录用户所在的域,详细参考net use 用法。
--“//192.168.0.100/E$”为远程服务器的共享文件路径,根据实际修改
exec master..xp_cmdshell 'net use X: //192.168.0.100/E$ "123456" /USER:192.168.0.100/Administrator'
GO
4. 还原数据库
成功建立网络磁盘映射后就可以想操作本地硬盘一样,进行数据库备份和还原操作了。可以使用图形化操作,也可以使用T-SQL,不再详述。
5.关闭共享网络连接
exec master..xp_cmdshell 'net use X: /delete'
GO
6. 关闭 SQL Server xp_cmdshell
使用xp_cmdshell 可以执行许多系统命令,例如重新启动计算机:
因此为了安全起见,操作完成后要重新禁用xp_cmdshell,使用下面语句。
--关闭xp_cmdshell
sp_configure 'xp_cmdshell', 0;
GO
RECONFIGURE;
GO
--关闭高级选项
sp_configure 'show advanced options', 0;
GO
RECONFIGURE;
GO
关于xp_cmdshell的用法可参考SQL Server联机丛书。
--执行cmd命令,强制重启计算机
exec master..xp_cmdshell 'shutdown -r -f'
SQL Server 远程备份还原数据库相关推荐
- SQL Server in Docker - 还原数据库
SQL Server in Docker 还原数据库 上一回演示了如果在Docker环境下安装SQL Server(使用Docker运行SQL Server),这次我们来演示下如何还原一个数据库备份文 ...
- 如何在SQL Server 2005中还原数据库
还原数据库的方式 有几种数据库备份的方式就将会有几种还原数据库的 方式: l 完整备份的还原:无论是完整备份.差异备份还是事务日志备份的还原,在第一步都要先做完整备份的还原.完整备份的还原只需要还原完 ...
- 通过SQL语句来备份,还原数据库
1: /* 2: 通过SQL 语句备份数据库 3: */ 4: BACKUP DATABASE mydb 5: TO DISK ='C:/DBBACK/mydb.BAK' 6: --这里指定需要备份数 ...
- MS SQL SERVER中备份所有数据库
建立一个存储过程,每次备份时执行这个过程,如果愿意的话也可以在sql中做个任务来每周调用. CREATE PROCEDURE p_BackAllDatabase ( @path nvarchar ...
- SQL点滴12—SQL Server备份还原数据库中的小把戏
原文:SQL点滴12-SQL Server备份还原数据库中的小把戏 备份数据库时出现一个不太了解的错误 ,错误信息"is formatted to support 1 media fami ...
- SQL Server之备份和还原系统数据库
系统数据库是管理和维护SQL Server所必须的数据库,对服务器实例的运行至关重要.每次进行大量更新后必须备份多个系统数据库,包括master.model.msdb,备份这些系统数据库,就可以在发生 ...
- SQL Server 2005“备份集中的数据库备份与现有的数据库不同”解决方法此信息转载自BlueSky's Blog,www.heuupk.com,为尊重无价的知识请保留此版权信息。...
SQL Server 2005"备份集中的数据库备份与现有的数据库不同"解决方法 以前一直使用SQL Server2000,现在使用SQL Server2005,就在现在的项目中使 ...
- SQL Server中的零碎数据库还原
This article explores the piecemeal database restore SQL Server feature and its benefits to minimize ...
- SQL Server差异备份的备份/还原原理
SQL Server差异备份的备份/还原原理 记住一点:差异备份是基于最后一次完整备份的差异,而不是基于最后一次差异的差异 备份过程: 1-完整备份之后有无对数据库做过修改,如果有,记录数据库的最后L ...
最新文章
- DEDECMS整合DISCUZ的方法
- Linux安装ipvsadm工具查看ipvs
- C++primer 第 3 章 字符串、向量和数组 3 . 5 数组
- 高校开学返校最新消息!学生票乘车时间延长至5月31日!
- pythonsocket自动化教程_Python 的 Socket 编程教程
- 20172324 2018-2019-1《程序设计与数据结构》实验1报告
- SQL Server数据库快照
- What decide the USB OTG port as host or device
- 空间复杂度和时间复杂度
- 非参数检验统计量分析
- 三方支付 微信支付 支付宝支付 银联支付 分享
- c语言 大数开方,c语言求一个数的平方根
- 练习:《斗鱼视频》m3u8流视频采集下载+思路+Python
- 数据库开发工具——安装教程
- 1236mysql_MySQL1236错误解决方法_MySQL
- 进程调度时间计算方式
- 底部标签页+ViewPager+Fragment
- Redis线上做Keys命令引发的生产事故
- Bootstrap轮播插件,代码步骤
- 什么是HTTPS安全证书?