用DPM保护SQL Server数据库

2019-07-10 00:59河南刘景云
网络安全和信息化 2019年7期
关键词:副本磁盘日志

■ 河南 刘景云

编者按:DPM可以利用VSS服务从数据库级,为SQL Server提供数据备份操作,可以更好的备份和恢复复杂的数据库结构。利用SQL Server上的VSS服务,DPM还可以瞬间为数据库创建快照,并对快照进行备份,来实现数据的一致性,可以有效避免在恢复数据时,出现的数据库损坏或者数据库结构需要重建等问题。在群集环境中,如果发生了异常的故障转移,DPM会智能提醒管理员执行一致性检查,来保证数据的一致性。

DPM备份SQL Server的要点

这里以使用DPM 2012 R2和SQL Server 2012为例进行说明。在使用DPM保护SQL Server时,需要对所有的 Database,SQL Server安装目录,System State等对象进行备份。如果SQL Server安 装 在Windows Server 2003等老系统上,需要使用DPM 2007中提供的SRT保护系统状态。对于tempdb数据库来说,是不需要进行备份的。因为其是用来保存SQL Server的所有临时数据,可以为复杂的查询缓存各种结果集。

当SQL Server重新启动时,会创建新的tempdb数据库。不管创建什么数据库,都是使用Model数据库作为模版,如果其出现问题,会导致无法创建新的数据库的问题。因此,每当对该数据库进行修改后,对其执行一次备份即可。在SQL Server群集环境中,主要对每个节点上的SQL安装目录进行备份,注意需要排除数据库存储路径。对于群集的仲裁盘是不需要进行备份的。

SQL Server的备份和恢复模式

对于SQL Server来说,提供了完整备份、差异备份、事务日志备份等模式,对于完整备份来说,指的是对整个数据库,部分事务日志,数据库结构和文件结构的备份。

对于差异备份来说,指的是对上一次完整备份之后所有的更改的数据进行备份。

对于事务日志备份来说,用来记录数据库的所有改变。其又分为备份日志和截断事务日志两类,前者备份的目标为从上一次成功的事务日志备份到当前事务日志额尾部,后者指到事务日志活动部分的开始,丢弃不活动的部分,可以有效降低事务日志磁盘空间的占用率。

对于数据恢复来说,SQL Server支持简单模式,大容量日志模式和完整模式。

对于简单模式来说,适用于不常更新的小型数据库,不支持日志备份,会丢失最后一次备份后的数据更改,不能恢复到即时点。对于大容量日志模式来说,值进行最小化的日志备份,可能会有数据的丢失,不能够恢复到即时点,一般用于临时海量数据的导入。

对于完整模式来说,可以支持日志备份,不会丢失数据,能够恢复到即时点,对于生产型数据库来说,一般需要使用完整恢复模式。当需要执行大容量日志记录操作时,可以切换到大容量日志恢复模式。如果有多个备份需要还原的话,除了最后一个之外的所有备份在还原时必须中设置为“Restore with norecovery”方式,不对数据库进行任何操作,不回滚未提交的事务,可以还原其他事务日志。

备份SQL Server的注意事项

在 使 用DPM对SQL Server进行备份时,需要考虑到很多因素。例如,当SQL Server数据进行了升级之后,需要对停止对之前老版本数据库的保护,同时选择保留数据选项。

在升级之后的SQL Server服务器上安装DPM代理程序,并启动SQL Server的编写器服务,因为SQL Server备份是依赖于编写器服务的。之后将升级后的服务器上数据库添加到新保护组中。例如,在DPM控制台左下角选择“保护”项,在左侧的“所有保护组”栏中选择对应的保护组,在右侧的保护组列表中选择旧的SQL Server服务器,在其右键菜单上点击“停止成员保护”项,在打开的窗口(如图1)中不选择“删除磁盘上的副本”项,点击确定按钮停止保护。

图1 停止成员保护窗口

在保护组的右键菜单上点击“修改保护组”项,在向导界面中将升级后的SQL Server服务器添加进来。

注意,在升级后的服务器上 执 行“services.mac” 程序,在服务管理器中选择“SQL Server VSS Writer”项,确保该服务处于启动状态,该服务提供用于通过Windows VSS基础结构备份/还原Microsoft SQL Server的接口。如果目标SQL Server服务器迁移到了新的域环境中,那么需要对迁移后的服务器进行全新的数据保护。

在DPM保护组中删除原有域的成员,对副本和恢复点数据进行保留,并对该服务器上的DPM代理程序进行强制卸载,之后对迁移到新域中的SQL Server重新安装代理,将该机上的数据添加到保护组。

当重命名了SQL Server之后,也需要先从保护组中删除原有主机名称的数据源,之后针对新名称的主机进行数据保护。以上操作实现起来很繁琐,所以建议不要轻易更改受保护的主机的域或者重命令主机名。

这是因为对于DPM 2012来说,是利用计算机名作为副本恢复点,以及DPM数据库条目(包括报表数据库条目)的唯一标识符。

上面已经谈到,当在恢复SQL Server时,可以使用三种模式。当将SQL Server数据库添加到保护组时,DPM将检测数据库所使用的恢复模式类型。如果检测到使用的是简单恢复模式,则不允许进行日志备份和增量备份。只有使用完整备份和大容量日志恢复模式,才可以执行日志备份。对于使用完整或大容量日志恢复模式的数据库来说,当DPM对其进行保护时,会在受保护的SQL Server上创建一个目录。

该目录位于受保护数据库的第一个日志文件所在的路径下。在使用DPM进行SQL Server日志备份和还原过程中,将使用此目录作为日志的临时存储。如果该目录缺失,DPM将重新创建该目录。如果将受保护的数据库的恢复模式从完整或者大容量日志更改为简单模式后,快速完整备份可以继续进行,但是增量备份将失败。在这种情况下,具体操作是先在DPM上停止对目标数据库的保护,同时选择保留副本选项。之后将SQL Server数据库的恢复模式更改为简单模式,然后将数据添加到保护组。

在为数据库配置日志传送或者将数据库更改为只读状态前,也需要停止对数据库的保护。在对数据库进行更改后,需要重新配置对数据库的保护。当SQL Server群集中的磁盘空间不够,对其进行磁盘替换来提升容量,或者磁盘损坏需要更换时,如果磁盘包含DPM所保护的SQL Server的数据,那么对于更换的新磁盘来说,需要为其分配与之前相同的盘符,然后使用DPM将受保护的数据恢复到新磁盘。

如果仅仅是将SQL Server数据库迁移到新的磁盘上,那么只需将原有磁盘下线,将新磁盘赋予原有的盘符,DPM就可以自动对其识别。

在使用SQL Server时,可能会将新的数据库添加到数据库实例中,DPM允许使用SQL Server实例自动保护来保护新添加的数据库。DPM可以自动确定和保护添加到要自动保护的SQL Server实例中的数据库,可以使用“cmdlet Start-AutoProtection”命令,来强制DPM立即检查是否有新数据库加入并对其进行保护。

当更改受保护的数据库关联的路径时,备份操作将失败。为此需要从保护组中删除数据库,然后将此数据库重新添加都保护组中,并对保护组的这一更改进行一致性检查,当一致性检查通过后,才可以进行正常的保护作业。如果对SQL Server数据库进行重命名操作,那么必须将采用新名称的数据库添加到保护组中,之后将保护组中旧名称的数据库删除,才可以对新的数据源进行保护。

对于DPM来说,是可以支持SQL Server的并行备份作业的。即允许对同一保护组中的数据源进行并行备份来优化网络使用。对于SQL Server群集来说,如果将新的服务器添加进来,DPM将发出警报,提示在新群集结点上安装保护代理,否则的话会出现保护失败的情况,但从群集中删除某台服务器,DPM将自动检测到目标节点已经离开群集,并且会显示其与群集分离,在该服务器上没有可保护的数据。对于SQL Server镜像来说,必须在镜像的两台服务器上同时安装保护代理,不要在同一台主机上对数据库进行镜像。

安装DPM代理保护

在对于SQL Server进行备份之前,需要在SQL Server服务器上安装DPM代理和WSB备份组件。对于代理来说,可以使用自动推送或者手动安装的方式。

例如,对于后者来说,可以将DPM 2012安装盘中的“DPMAgentInstall_x64.exe”文件复制到SQL服务器上。运行该安装文件,之后切换到DPM代理程序安装路径中的“bin”目录中,执 行“SetDpmServer.exe-dpmservername dpmser.xxx.com”命 令,指 定 DMP 2012服务器名称。

图2 配置代理账户权限

对于SQL Server 2012来说,当安装了DPM代理后,在Microsoft SQL Server Management Studio中打开打开目标数据库实例,选择“安全性”-“登录名”项,会在其中显示“NT SERVERDPMRA”对象,在其右击菜单上点击“属性”项,在打开窗口(如图2)左侧选择“服务器角色”项,在右侧选择“public”和“sysadmin”角色,让保护代理拥有所需的权限。

否则,在使用DPM进行备份时,会出现“保护代理在SQL Server实例上没有sysadmin权限”的报错信息。

如果没有该账户,可以在系统中创建“DPMRA”账户,之后在“安全性”-“登录名”项的右键菜单上点击“新建登录名”项,选择“Windows身份验证”项,导入上述“DPMRA”账户即可。

也可以先在Windows中执 行“net user DPMRA p@ssword /add” 命 令, 创建“DPMRA”账 户,之 后 在在Microsoft SQL Server Management Studio中 执行“Create login [xxxDPMRA] from Windows”或者“Exec sp_grantLogin [xxxDPMRA]”命令,来创建上述登录名,其中的“XXX”为SQL Server服务器的名称。

使用DPM保护SQL Server数据库

在DPM管理控制台左下角选择“保护”项,在右侧选择保护组,在其右键菜单上点击“修改保护组”项,在向导窗口中选择目标SQL Server服务器,在其中选择需保护的数据库,点击下一步按钮,配置所需的保持期,同步频率,一致性检测项目,文件的恢复点等参数。点击“更新组”按钮,执行数据备份操作。之后在保护组中选择该SQL Server保护对象,在其右键菜单上点击“执行一次性检查”项,进行初始化同步。之后可以根据需要,在该菜单中点击“创建恢复点”项,来创建备份项目。

注意,DPM提供了增量同步和带有一致性检查的同步两种同步方式。

对于后者来说,是DPM用来检查和更正受保护数据源及其副本之间的不一致的过程。作为同步过程的一部分,一致性检查执行逐个数据块的验证,来确保副本中的所有数据与受保护的数据保持一致。此过程比增量同步慢,因为其要比较副本上的所有数据,不是只将数据更改应用到副本。如果选择了在副本不一致时自动执行一致性检查的项目,或为保护组设置了日常一致性检查,那么DPM会自动启动一致性检查并将其作为日常任务完成。

对于保持期来说,可以让数据处于可恢复状态的持续时间。DPM会在保持期中指定的持续时间内保留恢复点,副本不一致的任何一天都不会计入保持期。保持期最长时间始终为64天,对于不同的数据源来说,可用的最大恢复点数量是不同的,例如对于SQL Server来说,每天最多可以创建96个恢复点,最多在448天进行512个快速完整备份。也就是说,最多每天可每隔15分钟创建一恢复点。最多可在448天内创建43008个恢复点。

快速完整备份是一种同步类型,可以让保护代理传输自上次快速完整备份后,以及自上次执行一致性检查后已经更改的所有块的快照。在初次创建副本后,可进行首次快速完整备份。快速完整备份操作对于性能和时间的影响要低于完整备份,因为其使用DPM的筛选器技术来识别已更改的块,仅传输自上次快速完整备份后更改的块。

恢复SQL Server 数据库

在执行恢复操作时,在DPM控制台左下角选择“恢复”项,在左侧的“可恢复的数据”栏中选择目标SQL Server服务器下的所需数据库,在右侧的“恢复时间”列表中选择具体的时间点,在“路径”列表中选择所需的恢复项目,在其右键菜单上点击“恢复”项,在向导界面(如图4)中选择恢复的类型,如果选择“恢复到SQL Server的原始实例”项,在下一步窗口中选择具体的恢复选项。

如果有多个备份需要还原的话(例如采用了类似于完整+差异+事务日志备份方式),那么除了最后一个备份之外的所有备份在还原时,需要选择“是数据库保持不可操作性状态,但能够还原其他事务日志”项。当恢复最后一个备份时,需要选择“是数据库保持可操作性状态”项。点击下一步按钮,其余选项保持默认,点击恢复按钮,执行数据恢复操作。如果选择“恢复到任何SQL Server实例”项,在下一步窗口点击浏览按钮,选择所需的实例名称,并指定数据库文件位置,之后执行恢复操作即可。如果选择“复制到网络文件夹”项,之后选择目标网络路径,将其恢复到该共享路径中。

猜你喜欢
副本磁盘日志
一名老党员的工作日志
它的好 它的坏 详解动态磁盘
扶贫日志
一种基于3 阶段实现的高性能云存储计算*
解决Windows磁盘签名冲突
面向流媒体基于蚁群的副本选择算法①
雅皮的心情日志
雅皮的心情日志
Windows系统下动态磁盘卷的分析与研究
克隆硬盘很简单