您的位置:首页 > 数据库

关于SQL异地备份的方法(转)

2012-08-10 11:58 288 查看
关于SQL异地备份的方法(转)

最近公司对服务器依赖越来越严重了,机房两台服务器,一台挂了一套餐饮系统、进销存系统,另一台挂了一套OA系统(老总的心血!),考虑到最近社会不太和谐,小偷泛滥,遂特别担心服务器上的数据安全,虽然做了本地备份,但在可恶的小偷面前~~~所以得赶紧做一下NetworkBacup比较妥当安全!

想了一个方案和网上的几个方案参考一下:

方案一:SQL自带的数据库备份计划

一:基本思路
1:要实现异地备份,必须使用域用户帐号来启动SQLServer服务以及SQLServerAgent服务,因为本地系统帐户无法访问网络。
2:在异地机器中建立一个与SQLServer服务器中启动SQLServer服务的域用户帐号同名帐号,且密码保持相同。在异地机器中建立一个共享文件夹,并设置合适权限。
注意:新建帐号针对的是工作组模式,如果是基于域模式,那就无须再建帐号
 3:在SQLServer服务器中建立异地备份的维护计划,在“完全备份”和“事务日志备份”中,使用输入异地共享文件夹的UNC路径。
4:配置好维护计划中其它设置。

  上面表述可能不太直观,下面以实际实验来演示如何做异地备份。实验网络模型很简单,如下图: 



二:异地备份的演示
1:在SQLServer服务器中以域用户帐户启动SQLServer服务以及SQLServerAgent服务。
本实验中直接使用administrator帐户,可以根据实际环境切换其它域用户帐户。



2:在文件备份服务器中建立一个共享文件夹,共享权限中删除everyone用户,加入administrator用户,权限设置如下图。



3:在SQLServer服务器中,打开企业管理器,新建数据库维护计划:



  4:在维护计划向导中,选择计划备份的数据库,设置好数据库优化信息和检查完整性等步骤。
5:在向导的“指定数据库备份计划”设置好调度计划。
6:在“指定备份磁盘目录”界面,手动输入文件备份服务器共享文件夹UNC路径。



7:在“事务日志备份计划”界面,根据实际环境决定如何备份。
8:按向导设置好其它步骤,完成异地备份维护计划。

三:测试异地备份是否成功。
1:检查共享文件夹中备份文件是否存在。



2:如果没有备份成功,请查看SQLServer日志,并检查权限设置以及用户名和密码是否完全一致,或者重新启动两台电脑!

方案二:采用文件同步软件、FTP等同步源服务器的数据库备份文件至备份机

方案三:采用SQL定时作业

举例:
--建立与YNiang的连接,其中garfield是登录YNiang的密码
Execmaster..xp_cmdshell'netuse\\YNiang\Backupgarfield/User:yy_domain\Administrator'
--备份数据库miao,YNiang的共享目录backup要完全共享控制
BackupDatabase[miao]toDisk='\\YNiang\Backup\miao.bak'

--断开YNiang的连接

Execmaster..xp_cmdshell'netuse\\YNiang\Backup/delete'

方案三:

1:在目标机器上建共享文件夹:remotebak,并使某用户(如管理员)有写权限,示例administrator,123456。

2:在源机器用命令方式建驱动器映射:

xp_cmdshell'netusez:\\目标机器IP\remotebak"123456"/user:目标机器IP\administrator'

3:每天自动备份(把以下代码放在JOB里,设定每天定时执行)

declare@shotnamevarchar(50),@newtimevarchar(50),@sqlvarchar(8000set@newtime=convert(varchar(50),getdate(),120)
set@oldtime=convert(varchar(50),dateadd(dd,-10,getdate()),120)

select@shotname='sharewin'+left(@newtime,4)+substring(@newtime,6,2)+substring(@newtime,9,2)
set@sql='backupdatabasesharewintodisk='+'''z:\'+@shotname+'.bak'''

exec(@sql)
4:备份完成后删除映射:

xp_cmdshell'netusez:/delete'

转载连接:http://hi.baidu.com/%CB%AE%B0%B6%D4%C2%B9%E2/blog/item/8c036651c646f7561038c299.html

/article/4372866.html

--------------------------------------------------

以上方案本人测试过,都可行,

我采用了两种异地备份方法,1)本地局域网内共享文件夹备份(局域网内异地备份),2)方案二的异地ftp服务器备份(互联网异地备份)

----------------------------------------------

posted@2012-06-2711:18QA龙阅读(9)评论(0)编辑

创建数据库备份维护计划失败。

创建数据库备份维护计划的时候失败提示如下错误

----------------------------------------------------------------------------------------------------------

创建维护计划失败。

------------------------------
其他信息:

未能从程序集“Microsoft.SqlServer.Smo,Version=9.0.242.0,Culture=neutral,PublicKeyToken=89845dcd8080cc91”中加载类型“Microsoft.SqlServer.Management.Smo.Agent.JobBaseCollection”。(Microsoft.SqlServer.MaintenancePlanTasks)

----------------------------------------------------------------------------------------------------------

解决办法安装sql2005的sp2补丁

官方下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=9969

参考:http://hi.baidu.com/sai5d/item/0afa42bf3a371b43bb0e127d

posted@2012-06-2711:14QA龙阅读(8)评论(0)编辑

sql备份语句(全)

--完整备份
BackupDatabaseNorthwindCS
Todisk='G:\Backup\NorthwindCS_Full_20070908.bak'

--差异备份
BackupDatabaseNorthwindCS
Todisk='G:\Backup\NorthwindCS_Diff_20070908.bak'
WithDifferential

--日志备份,默认截断日志
BackupLogNorthwindCS
Todisk='G:\Backup\NorthwindCS_Log_20070908.bak'

--日志备份,不截断日志
BackupLogNorthwindCS
Todisk='G:\Backup\NorthwindCS_Log_20070908.bak'
WithNo_Truncate

--截断日志不保留
BackupLogNorthwindCS
WithNo_Log

--或者
BackupLogNorthwindCS
WithTruncate_Only
--截断之后日志文件不会变小
--有必要可以进行收缩

--文件备份
ExecSp_HelpdbNorthwindCS--查看数据文件
BackupDatabaseNorthwindCS
File='NorthwindCS'--数据文件的逻辑名
Todisk='G:\Backup\NorthwindCS_File_20070908.bak'

--文件组备份
ExecSp_HelpdbNorthwindCS--查看数据文件
BackupDatabaseNorthwindCS
FileGroup='Primary'--数据文件的逻辑名
Todisk='G:\Backup\NorthwindCS_FileGroup_20070908.bak'
Withinit

--分割备份到多个目标
--恢复的时候不允许丢失任何一个目标
BackupDatabaseNorthwindCS
Todisk='G:\Backup\NorthwindCS_Full_1.bak'
,disk='G:\Backup\NorthwindCS_Full_2.bak'

--镜像备份
--每个目标都是相同的
BackupDatabaseNorthwindCS
Todisk='G:\Backup\NorthwindCS_Mirror_1.bak'
Mirror
Todisk='G:\Backup\NorthwindCS_Mirror_2.bak'
WithFormat--第一次做镜像备份的时候格式化目标

--镜像备份到本地和远程
BackupDatabaseNorthwindCS
Todisk='G:\Backup\NorthwindCS_Mirror_1.bak'
Mirror
Todisk='\\192.168.1.200\Backup\NorthwindCS_Mirror_2.bak'
WithFormat

--每天生成一个备份文件
Declare@PathNvarchar(2000)
Set@Path='G:\Backup\NorthwindCS_Full_'
+Convert(Nvarchar,Getdate(),112)+'.bak'

BackupDatabaseNorthwindCS
Tohttp://www.hack58.net/Article/html/3/7/2008/mailtdisk=@Path
--从NoRecovery或者
--Standby模式恢复数据库为可用
RestoreDatabaseNorthwindCS_Bak
WithRecovery

--查看目标备份中的备份集
RestoreHeaderOnly
FromDisk='G:\Backup\NorthwindCS_Full_20070908.bak'

--查看目标备份的第一个备份集的信息
RestoreFileListOnly
FromDisk='G:\Backup\NorthwindCS_Full_20070908_2.bak'
WithFile=1

--查看目标备份的卷标
RestoreLabelOnly
FromDisk='G:\Backup\NorthwindCS_Full_20070908_2.bak'

--备份设置密码保护备份
BackupDatabaseNorthwindCS
Todisk='G:\Backup\NorthwindCS_Full_20070908.bak'
WithPassword='123',init

RestoreDatabaseNorthwindCS
Fromdisk='G:\Backup\NorthwindCS_Full_20070908.bak'
WithPassword='123'

来源:http://hi.baidu.com/ziyoubird/blog/item/e0458ac48cbae0c239db49f1.html
转自:http://www.cnblogs.com/liubaolongcool/archive/2012/06/27.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: