请教:SQL 2005如何做数据库异地备份。 1、有没有这样的教程啊,详细一点的,傻瓜式的。2、假如有8个数据库服务器,都要进行备份,维护计划里都备份到同一个数据服务器里去,这个数据服务器会不会当机啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 sqlserver 异地备份--备份环境:把数据库服务器(192.168.1.8)的数据库(TEST)备份到(192.168.1.145)的C$下--首先,做一个与客户端的映射exec master..xp_cmdshell'net use z: //192.168.1.145/c$ "密码"/user:192.168.1.145/administrator'/*--说明:z:是映射网络路径对应本机的盘符,与下面的备份对应//192.168.1.145/c$是要映射的网络路径192.168.1.145/administrator192.168.1.145是远程的计算机名,administrator是登陆的用户名密码 上面指定的administrator用户的密码--*/--其次,进行数据库备份backup database TEST to disk='z:/Test.bak'--最后.备份完成后删除映射exec master..xp_cmdshell 'net use z: /delete' 将以上放到sqlserver的job 就可以达到自动备份效果了进一步可以把备份名字自动生成exec master..xp_cmdshell'net use z: //10.1.1.197/d$/dbback "123456"/user:10.1.1.197/administrator'declare @a char(80)select @a ='z:/' +replace(replace(convert(varchar(19),getDate(),120),'','-'),':','-') + '-service_korea.bak'backup database pubs to disk= @aexec master..xp_cmdshell 'net use z: /delete'使用SQLSERVER的扩展存储过程实现远程备份与恢复实例说明: 环境:win2k+sqlserver 2K+查询分析器 SQLSERVER服务实例名称:mainserver 需要备份的数据库名称: msdb 本地机器名称(Client端):david 本地用户:zf 密码:123 本地域名:domain 本地提供备份需求的文件夹:e:/test 第一步: 建立共享文件夹 在程序代码中调用(或者CMD窗口) net sharetest=e:/test 或者用NetShareAdd这个API 简要说明: netshare : 是WINDOWS内部的网络命令。 作用:建立本地的共享资源,显示当前计算机的共享资源信息。 语法:参见 net share /? 第二步: 建立共享信用关系 master..xp_cmdshell 'net use //david/test 123/user:domain/zf' 简要说明: 1:xp_cmdshell :是SQLSERVER的扩展存储过程。 作用,以操作系统命令行解释器的方式执行给定的命令字符串, 并以文本行方式返回任何输出。 语法:参见SQLSERVER联机帮助 2:netuse : 是WINDOWS内部的网络命令。 作用,将计算机与共享资源连接或断开,或者显示关于计算机 连接的信息。该命令还控制持久网络连接。 语法:参见 net use /? 第三步:备份数据库 backup database msdb to disk='//david/test/msdb.bak' 这个不需要说明吧,语法参见SQLSERVER联机帮助 第四步: 删除共享文件夹 在程序代码中调用(或者CMD窗口) net share test/delete 或者用NetShareDel这个API 结果: 已处理 1376 页,这些页属于数据库 'msdb' 的文件 'MSDBData'(位于文件1 上)。 已处理 1 页,这些页属于数据库 'msdb' 的文件 'MSDBLog'(位于文件 1上)。 BACKUP DATABASE 操作成功地处理了 1377 页,花费了 3.653 秒(3.086MB/秒)。 这样mainserver服务器上的msdb就备份到了david机器的E:/test/msdb.bak文件了,使用起来很简单吧?恢复数据库操作也是一样,只要将第三个步骤的语句改为'restoredatabase msdb fromdisk='//david/test/msdb.bak'就可以啦。。你看完了也可以试试呀?!(最简单的测试工具查询分析器+CMD窗口)备注:xp_cmdshell这个扩展存储过程只能SA级别的用户调用,而且是SQLSERVER的安全隐患之 一,许多DBA都喜欢将其删除或者禁用,所以开发人员使用时要倍加小心哦。 文章中的例子只是简要的说明了应如何利用扩展存储过程实现远程备份与恢复,没有涉及安全以及其他方面的考虑,希望读者在代码中自行完善。不会,你那台服务器只是相当于备份储存地 关于异地备份直接Share文件夹然后用执行计划备份到这个文件夹就可以了 异地备份,少不了一个将备份拷贝到网络路径的问题,sql server本身不能拷贝文件为了解决这个问题,方法1是使用扩展存储过程xp_cmdshell,让sql server可以运行cmd命令来拷贝方法2是使用ssis制作维护计划,添加数据源,定时备份,文件传输任务方法3是自己编写clr附加在SQL Server中,利用.net程序集帮你拷贝不外乎就这几种方法,自己看着来吧,方法百度谷歌 1. 异地备份,远程路径访问,首先确认下你的SQL 服务启动账户是不是具有网络访问权限。2. 可以使用共享文件夹或者unc路径exec ('master..xp_cmdshell ''net use \\IP\c$ "'+'windows密码'+'" '+'/user:'+'windows用户名'+'''')gobackup database 数据库 to disk = '\\IP\f$\路径\备份文件名'go8台服务器,备份文件最好以日期区分 SQL server 一个sql语句~~ 请教Sqler 请教各位GG一个奇怪的问题 sql读取建立日期 在基础上加2年写入到期日期 SQL Sever 安装过程中出现报错 如何得到一张数据表的最后一行的某一列数据? 有人知道在FOXPRO里面对已经存在的.TXT添加文字和编辑吗? xiexie [DBMSSOCN] 一般性网络错误。请检查网络文档 (delphi应用程序链接 XP没有问题,只有2kprofessional才这样) 关于存储过程中调用链接服务器 求语法!!! 根据列值生成多行记录的新表,通过语句实现。
sqlserver 异地备份
--备份环境:把数据库服务器(192.168.1.8)的数据库(TEST)备份到(192.168.1.145)的C$下--首先,做一个与客户端的映射
exec master..xp_cmdshell
'net use z: //192.168.1.145/c$ "密码"/user:192.168.1.145/administrator'
/*--说明:
z:是映射网络路径对应本机的盘符,与下面的备份对应
//192.168.1.145/c$是要映射的网络路径
192.168.1.145/administrator
192.168.1.145是远程的计算机名,administrator是登陆的用户名
密码 上面指定的administrator用户的密码
--*/--其次,进行数据库备份
backup database TEST to disk='z:/Test.bak'--最后.备份完成后删除映射
exec master..xp_cmdshell 'net use z: /delete' 将以上放到sqlserver的job 就可以达到自动备份效果了进一步可以把备份名字自动生成
exec master..xp_cmdshell
'net use z: //10.1.1.197/d$/dbback "123456"/user:10.1.1.197/administrator'declare @a char(80)
select @a ='z:/' +replace(replace(convert(varchar(19),getDate(),120),'','-'),':','-') + '-service_korea.bak'
backup database pubs to disk= @a
exec master..xp_cmdshell 'net use z: /delete'
使用SQLSERVER的扩展存储过程实现远程备份与恢复
实例说明:
环境:win2k+sqlserver 2K+查询分析器
SQLSERVER服务实例名称:mainserver
需要备份的数据库名称: msdb
本地机器名称(Client端):david
本地用户:zf 密码:123
本地域名:domain
本地提供备份需求的文件夹:e:/test
第一步: 建立共享文件夹
在程序代码中调用(或者CMD窗口) net sharetest=e:/test
或者用NetShareAdd这个API
简要说明:
netshare : 是WINDOWS内部的网络命令。
作用:建立本地的共享资源,显示当前计算机的共享资源信息。
语法:参见 net share /?
第二步: 建立共享信用关系
master..xp_cmdshell 'net use //david/test 123/user:domain/zf'
简要说明:
1:xp_cmdshell :是SQLSERVER的扩展存储过程。
作用,以操作系统命令行解释器的方式执行给定的命令字符串,
并以文本行方式返回任何输出。
语法:参见SQLSERVER联机帮助
2:netuse : 是WINDOWS内部的网络命令。
作用,将计算机与共享资源连接或断开,或者显示关于计算机
连接的信息。该命令还控制持久网络连接。
语法:参见 net use /? 第三步:备份数据库
backup database msdb to disk='//david/test/msdb.bak'
这个不需要说明吧,语法参见SQLSERVER联机帮助 第四步: 删除共享文件夹
在程序代码中调用(或者CMD窗口) net share test/delete
或者用NetShareDel这个API
结果:
已处理 1376 页,这些页属于数据库 'msdb' 的文件 'MSDBData'(位于文件1 上)。
已处理 1 页,这些页属于数据库 'msdb' 的文件 'MSDBLog'(位于文件 1上)。
BACKUP DATABASE 操作成功地处理了 1377 页,花费了 3.653 秒(3.086MB/秒)。 这样mainserver服务器上的msdb就备份到了david机器的E:/test/msdb.bak文件了,使用起来很简单吧?恢复数据库操作也是一样,只要将第三个步骤的语句改为'restoredatabase msdb fromdisk='//david/test/msdb.bak'就可以啦。。你看完了也可以试试呀?!(最简单的测试工具查询分析器+CMD窗口)备注:xp_cmdshell这个扩展存储过程只能SA级别的用户调用,而且是SQLSERVER的安全隐患之
一,许多DBA都喜欢将其删除或者禁用,所以开发人员使用时要倍加小心哦。
文章中的例子只是简要的说明了应如何利用扩展存储过程实现远程备份与恢复,没有涉及安全以及其他方面的考虑,希望读者在代码中自行完善。
不会,你那台服务器只是相当于备份储存地
为了解决这个问题,方法1是使用扩展存储过程xp_cmdshell,让sql server可以运行cmd命令来拷贝
方法2是使用ssis制作维护计划,添加数据源,定时备份,文件传输任务
方法3是自己编写clr附加在SQL Server中,利用.net程序集帮你拷贝
不外乎就这几种方法,自己看着来吧,方法百度谷歌
exec ('master..xp_cmdshell ''net use \\IP\c$ "'+'windows密码'+'" '+'/user:'+'windows用户名'+'''')
go
backup database 数据库 to disk = '\\IP\f$\路径\备份文件名'
go8台服务器,备份文件最好以日期区分