sqlserver数据库异地备份的实现

上传人:xiao****1972 文档编号:84902380 上传时间:2019-03-05 格式:DOC 页数:6 大小:82KB
返回 下载 相关 举报
sqlserver数据库异地备份的实现_第1页
第1页 / 共6页
sqlserver数据库异地备份的实现_第2页
第2页 / 共6页
sqlserver数据库异地备份的实现_第3页
第3页 / 共6页
sqlserver数据库异地备份的实现_第4页
第4页 / 共6页
sqlserver数据库异地备份的实现_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《sqlserver数据库异地备份的实现》由会员分享,可在线阅读,更多相关《sqlserver数据库异地备份的实现(6页珍藏版)》请在金锄头文库上搜索。

1、SQL Server数据库异地备份的实现将一台服务器A上的一个数据库data备份自动备份到服务器B的目录1.机器A,B创建一个同名的windows用户,用户组设置为administrators,并设置相同的密码,做为备份文件夹文件夹的有效访问用户,操作:余姚在线个人空间M0 ZU/u2G,c Cf我的电脑控制面板管理工具计算机管理用户和组右键用户新建用户D E!Ah.F(a i O0-建立一个隶属于administrator组的登陆windows的用户余姚在线个人空间Xe/yxJ!L!K-kNea9X Z02.在B机器器上,新建一个共享目录,做为备份文件的存放目录,操作:ep;+K0我的电脑-

2、D: 新建一个目录,名为: BAKk(K9FC S0-右键这个新建的目录余姚在线个人空间TL9h;j0Z p:p-属性-共享:aNul2R2K3cV0-选择共享该文件夹余姚在线个人空间rtS,u,QI5ew-通过权限按纽来设置具体的用户权限,保证第一步中创建的用户具有对该文件夹的所有权限余姚在线个人空间;br;smNs-确定.E)|zv3r/X3J03.设置 MSSQLSERVER 及 SQLSERVERAGENT 服务的启动用户余姚在线个人空间.1t#o P-Q8w Bv开始-程序-管理工具-服务e|Pzd-o0-右键 MSSQLSERVER余姚在线个人空间;qeMndoF-属性-登陆-选择

3、此账户余姚在线个人空间!;Ih$_?w-输入或者选择第一步中创建的windows登录用户名C39L*H;S0-密码中输入该用户的密码余姚在线个人空间Xc0v M0X8ek-确定YL$lB4Q50-同样的方法设置 SQLSERVERAGENT余姚在线个人空间2b3u#N*l*4.在A机器上完成对B机器BAK目录的映射$l *B;A bATR05.查询分析器中执行下面的语句,检验是否成功:余姚在线个人空间 _X UYB!E2*_exec master.xp_cmdshell dir 映射的盘符!yF%v_ ct06.A服务器上做备份计划余姚在线个人空间q h|;j 余姚在线个人空间*E k4lQU

4、4PSQL异地备份失败,归根结底是权限问题7W3M#k?)S |0如:d(v M(h)l Du gF6f0SQLServer备到FileServer上余姚在线个人空间 DzOl C7f那你的SQLServer的启动用户必须在FileServer上有足够的权限!4n+21L/B9E)d r0-.M Q/sUG4l6S_k01、SQLServer上新建一SQLUser用户权限大一点。g#| U#W5J7F?)E O02、FileServer上建同一用户对某一文件夹有足够权限。c W9Kl 0*eJl03、两机的SQLUser密码相同(方便一点)余姚在线个人空间6EzJ:HAR8(B4、将SQLSe

5、rver改为SQLUser启动余姚在线个人空间 o y4k8i lV5D-w _b(管理工具-服务-mssql项-属性-指定用户及密码)余姚在线个人空间j4O4?6:R0?l5、ip文件夹ShareBak.Bak就可以了余姚在线个人空间7rJD)iFSQL Server 数据库异地备份解决方案代她背书 Database sql,backup,bat,c+ 一直以来,公司某游戏平台使用 SQL Server 作为数据存储解决方案。为了数据的安全,每天凌晨在本机上做一次备份。但随着时间的推移,原先并没有设计到备份需求的硬件配置,尤其是外部存储这块,已经快不能满足 SQL Server 备份文件日益

6、丰满的身姿。(这句话好像谁说过?)为了彻底解决这个病痛,我打算为其实施远程异地备份。但查阅无数资料,均找不到较好的解决之道。大部分方案都是在备份目的地建共享目录,新增一个用户并赋权。然后在数据库端写个存储过程,添加数据库维护计划并使用这个存储过程。这样做有太多弊端:对于操作系统来说,很不安全;对于硬件架构设计来说,必须满足同一内网的条件。于是乎,放弃这样的方案。经过几天的折腾测试,最后我采用了这样的方案。虽然比较老土,但至少 DIY 出来了,也暂时性满足了需求,缓解了阶级矛盾:1、打开 SQL Server 企业管理器,找到数据库维护计划。2、添加一个数据库维护计划,为其设置一个优美而和谐的名

7、字,并选择需要操作的数据库对象。3、设置在本机磁盘上的备份选项。由于备份需要每日转移,所以我的设置是每天做一个轮巡。4、然后在数据库服务器上架设一个 FTP 服务端,并添加一个指向数据库每日备份目录的帐户。5、安装 WinRAR,然后编写一个批处理,通过 WinRAR 命令行将每日备份目录打包待传。有关 WinRAR 的命令行参数可以参考此文,我的批处理如下:C:ProgramFilesWinRARWinRAR.exea-as-k-r-m5-EP1D:Taskbak_filestmp.rarE:Backups 6、至此,数据库服务器上的备份打包已经准备好了,接下来就应该进行传输。由于数据库服务

8、器上设置了 TCP/IP 策略,FTP 只能在被动模式下运行。如果用 Windows 自带的 FTP 命令行,就算能够建立连接,也是无法传输数据和执行操作命令的。这点非常郁闷,最后我放弃 FTP 命令行,在备份服务器上用 curl 解决了这个问题:setftp_ip=0.0.0.0 setftp_port=1234 setftp_user=this_is_ftp_user setftp_passwd=this_is_ftp_passwd setthis_year=%date:0,4% setthis_month=%date:5,2% settoday=%date:8,2% setremote_

9、file_name=tmp.rar setlocal_store_path=E:Backupfiles setlocal_file_ext=rar curl-o%local_store_path%this_year%-%this_month%-%today%.%local_file_ext%ftp:/%ftp_user%:%ftp_passwd%ftp_ip%:%ftp_port%/%remote_file_name% 7、由于备份服务器的外部存储设备容量依然有限,需要想办法在每天获取数据库服务器上的备份之后,自动清理以前过期的备份文件。本来打算使用批处理来实现,苦于对批处理一窍不通,无奈向

10、Henry Xu 求助。我们的 Henry 操起无敌的 Microsoft Visual Studio 2005,刷刷刷刷几下就给我写了一个控制台程序,用于实现以上需求。限于商业约束,代码不便在此公开。但他的程序真的非常无敌,一个 88KB 的文件搞定一切,连一个扩展库都没有(就算有也一起封装进去了吧,我不懂 C+,瞎说的)。有了这个宝贝,接下来批处理就容易了。程序的执行参数是我们约定的,number30 代表保留30天备份,path_后面跟上备份目录的相对或绝对路径:clear_backup.exe-number30-path_.files 8、最后一步就应该是删除数据库服务器上的临时备份打包。由于 FTP 处于被动模式,使用 FTP 命令行删除自然行不通。只能在数据库服务器上添加一个计划任务,在拖备份操作之后的时间执行下面的脚本:delD:Taskbak_filestmp.rar/Q/F 至此,一个 SQL Server 数据库异地备份方案诞生了。还是那句话,虽然丑点了,但是真的很温柔。 4:N$Nk-M/FmDff0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号