云备份 CBR SQL Server 备份恢复用户指南
1.1 简介
本文档是SQL Server备份恢复用户指南文档,主要描述了如何正确地使用CBR进行SQL Server数据备份与数据恢复的方法,包括部署前后的注意事项和典型部署方案。
1.1.1 SQL Server 备份
完全备份
将选定的数据源完全备份到指定目的地。每次执行时,它不会根据最新的变动比较后进行备份,而是直接将所有的数据和日志备份到OFS介质中,并产生一个时间点,以便恢复使用。
差异备份
差异备份基于所选数据源的前一次完全备份。差异备份仅捕获自该次完全备份后发生更改的数据。
事务日志备份
事务日志是数据库中已发生的所有修改和执行每次修改的事务的一连串记录。事务日志记录每个事务的开始。
在 Microsoft® SQL Server™ 2000 中,数据库必须至少包含一个数据文件和一个事务日志文件。数据和事务日志信息从不混合在同一文件中,并且每个文件只能由一个数据库使用。SQL Server 使用各数据库的事务日志来恢复事务。
使用差异备份时间点将数据库还原到差异备份完成时的那一点。若要恢复到精确的故障点,必须使用事务日志备份的时间点进行恢复。
1.1.2 SQL Server 恢复
Microsoft® SQL Server™ 提供了三种恢复模型:简单恢复模型、大容量日志的恢复模型和完整恢复模型。下表提供了三种恢复模型的优点和含义的概述。
表1-1 SQL Server 恢复模型
恢复模型 |
优点 |
工作损失表现 |
能否恢复到即时点 |
简单 |
允许高性能大容量复制操作。回收日志空间以使用空间要求最小。 |
必须重做自最新的数据库或者差异备份后所发生的更改。 |
可以恢复到任何备份的结尾处,随后必须重做更改。 |
完整 |
数据文件丢失或损坏不会导致工作损失。可以恢复到任意即时点(例如,应用程序或用户错误之前)。 |
正常情况下没有。如果日志损坏,则必须重做自最新的日志备份后所发生的更改。 |
可以恢复到任何即时点。 |
大容量日志记录 |
允许高性能大容量复制操作。大容量操作使用最少的日志空间。 |
如果日志损坏,或者自最新的日志备份后发生了大容量操作,则必须重做自上次备份后所做的更改,否则不丢失任何工作。 |
可以恢复到任何备份的结尾处,随后必须重做更改。 |
如果您需要事务日志备份,请选择大容量日志记录的模型或完整模型。如果您需要恢复数据库到故障点,请选择完整模型。
1.2 SQL Server 定时备份支持功能
表1-2 SQL Server 恢复模型
功能 |
子功能 |
支持 |
备注 |
备份 |
完全备份 |
√ |
- |
差异备份 |
√ |
- |
|
事务日志备份 |
√ |
- |
|
备份粒度 |
√ |
整个实例、单个数据库 |
|
数据库高级压缩 |
√ |
- |
|
传输和存储加密 |
√ |
- |
|
数据压缩 |
√ |
- |
|
重复数据删除 |
√ |
- |
|
流量控制 |
√ |
- |
|
自定义脚本 |
√ |
仅SQL Server单机支持此功能 |
|
备份自动重试 |
√ |
- |
|
强制数据保留时长 |
√ |
- |
|
数据保留策略 |
按时间保留 |
√ |
- |
按副本数保留 |
√ |
- |
|
按备份策略的备份周期设置副本保留策略 |
√ |
- |
|
恢复 |
原机恢复 |
√ |
原位置恢复或另一位置(非系统数据库) |
异机恢复 |
√ |
默认异机原位置恢复 |
|
实例恢复 |
√ |
支持原实例名称和异实例名称恢复 |
|
细粒度恢复 |
√ |
单个实例、单个数据库 |
|
选择实例恢复 |
√ |
- |
|
完全恢复 |
√ |
- |
|
不完全恢复 |
√ |
非系统数据库 |
|
原数据库名称恢复 |
√ |
- |
|
重命名数据库恢复 |
√ |
- |
|
数据库文件原位置恢复 |
√ |
- |
|
数据库文件自定义位置恢复 |
√ |
- |
|
自定义脚本 |
√ |
- |
|
联机 |
√ |
- |
|
D2C |
备份到云备份存储库 |
√ |
仅SQLServer单机支持此功能 |
D2D2C |
归档到云备份存储库 |
√ |
仅SQLServer单机支持此功能 |
D2D2T |
归档到磁带 |
√ |
仅SQLServer单机支持此功能 |
LAN-Free |
备份恢复使用FC链路 |
√ |
|
远程复制 |
- |
√ |
支持源端和目的端恢复。 |
告警 |
- |
√ |
- |
日志 |
- |
√ |
- |
内外网 |
- |
√ |
- |
2 限制性列表
2.1 备份
l 数据库高级压缩功能仅支持SQL Server 2008以上版本( 不包含Express版本 )。
l 同一个数据库只允许存在一个SQL Server任务中。
l 当前版本编辑任务可以添加数据库,但不能取消勾选已作为数据源的数据库。
l 不支持备份和恢复名称含有“/”字符的数据库。
l SQL Server AlwaysOn不支持系统数据库的备份。
2.2 恢复
l 不支持64位数据库恢复到32位数据库,支持32位数据库恢复到64位数据库。
l 异机恢复, 非系统数据库支持从低版本恢复到高版本,不支持从高版本恢复到低版本。
l 不能还原用户正在访问的数据库。
l SQL Server数据库恢复时,SQL Server 2008 R2以上版本数据库恢复到根目录会失败,需要指定目录(或者新建目录)。
l SQL Server数据库不完全恢复选定时刻与某数据库完全备份的开始时间相同,默认恢复到该数据库的最新时刻。因为SQL Server 2008R2本身限制,指定时间点恢复完全备份的开始时刻,恢复失败并报错指定的STOPAT时间太早。
l 不完全恢复时,只支持单实例恢复,不支持多实例恢复。
l SQL Server AlwaysOn原机恢复时,数据源数据库未从可用性组中移出时,不可覆盖恢复到数据源所在的实例中,建议选择重命名恢复。
l 重命名数据库恢复时,需要保证目标实例下没有同名数据库,否则恢复失败。
2.3 其他
l 操作系统认证方式授权,SQL Server 2008 R2以上的数据库版本需要修改客户端 ClientSerivce服务的登录用户和密码为客户端操作系统登录用户及对应的密码(例如当前系统的登录用户Administrator或域账户用户,则修改为Administrator或域账户用户和对应的密码)。
l 建议同一个数据源不能同时存在于单机备份任务和集群备份任务中,否则分别从两个入口对同一个数据库进行备份,会造成备份错乱。
3 SQL Server 备份环境检查
3.1 备份前置条件检查
3.1.1 数据库状态检查
在进行SQL Server数据库备份时,要求数据库服务必须在启动状态,检查方法为在服务里面查看MSSQLSERVER服务是否为“已启动”的状态,实例名称要根据实际情况:
如果数据库不是启动的状态,请用户系统管理员将数据库开启至已启动状态再进行备份。
4 数据备份
4.1 SQL Server 数据库客户端授权
步骤 1 租户或操作员登录管理控制台,单击左侧标签栏【资源】→【客户端】,单击默认组→客户端→权限配置,进入权限配置页面,选中SQL Server数据库图标,展开
步骤 2 支持两种授权方式,分别为操作系统身份认证和 SQL Server身份验证。选择SQL Server数据库,单击需要备份的实例进行授权。
----结束
4.2 SQL Server FC链路配置
SQL Server在使用LAN-Free功能时,需要进行FC链路配置。
步骤 1 租户或操作员登录管理控制台,单击左侧标签栏【资源】→【客户端】,单击默认组→客户端→FC配置,进入FC链路配置页面,输入FC的WWPN端口号。
步骤 2 客户端配置FC之后,需要使用系统管理员登录进行链路配置,具体的链路管理配置方法见:《云备份 CBR实施指导》链路管理相关章节。
----结束
4.3 SQL Server AlwaysOn 虚拟客户端创建
步骤 1 租户或操作员登录管理控制台,单击左侧标签栏【资源】→【客户端】,单击【新建虚拟客户端】下拉框,选择【SQL Server AlwaysOn虚拟客户端】
步骤 2 在弹出的【新建-集群虚拟客户端】页面中,单击应用类型下拉框,选择SQL Server AlwaysOn 虚拟客户端。
步骤 3 在【新建-集群虚拟客户端】页面中,输入客户端名称,并选择物理客户端,单击【创建】按钮
步骤 4 虚拟客户端创建完成后,单击虚拟客户端名称,在右侧可以查看到虚拟客户端的客户端信息与权限配置信息。
----结束
4.4 SQL Server 双机虚拟客户端创建
步骤 1 租户或操作员登录管理控制台,单击左侧标签栏【资源】→【客户端】,单击【新建虚拟客户端】下拉框,选择【SQL Server双机虚拟客户端】。
步骤 2 在【新建虚拟客户端】页面中,输入客户端名称,并选择物理客户端,单击【完成】按钮。
步骤 3 虚拟客户端创建完成后,单击虚拟客户端名称,在右侧可以查看到虚拟客户端的客户端信息与权限配置信息
----结束
4.5 SQL Server 定时备份
4.5.1 备份任务的创建
步骤 1 租户或操作员登录管理控制台,单击左侧标签栏【定时数据保护】→【数据备份】,单击【新建】按钮,选择【数据级备份任务】,在跳出的页面中,选择SQL Server要保护的客户端。
l 如果是集群环境,在新建任务第1步选择SQL Server AlwaysOn虚拟客户端。
l 如果是双机环境,在新建任务第1步选择SQL Server 双机虚拟客户端。
步骤 2 展开并选择数据源,单击“+”展开数据源,SQL Server定时备份任务支持自动发现数据源(SQL Server实例)的功能,单击实例名前面的“+”号,可以正常展开实例,选中要备份的数据库,然后单击【下一步】继续。
步骤 3 在备份选项中,设置想要的备份类型,是否开启高级功能选项,各个选项说明如下:
l 备份介质默认选中OFS,可更换为云备份存储库类型,将数据备份至云备份存储库,具体步骤可参考《云备份 CBR D2C 用户指南》。
l 选择介质为云备份存储库后,常规选项中,相比较选择介质为OFS,不支持选项【重复数据删除】,【数据压缩】,【传输和存储加密】,【流量控制】,新增【云传输并发数】。
l LAN-Free选项和流量控制功能不支持同时开启。
【LAN-Free】:该选项默认关闭,开启该选项,SQL Server使用光纤链路备份。
【数据库高级压缩】:开启该选项,可以在备份过程中,对备份数据进行压缩后,节省磁盘空间,数据库高级压缩功能仅支持SQL Server 2008(不包括Express)以上版本;
【传输和存储加密】:开启该选项则开启传输加密和存储加密功能,可选择启用AES256加密算法或SM4加密算法;
【数据压缩】:开启该选项则开启数据压缩功能,可选择启用快速压缩或强力压缩;
【重复数据删除】:开启该选项可以启动重复数据删除的功能;具体配置可参考《云备份 CBR客户端软件安装卸载用户指南》;
【重删高级配置】默认不开启;开启重复数据删除选项后方可开启该选项,可参阅《云备份 CBR定时数据保护重复数据删除用户指南》;
【自定义脚本】:默认不勾选;勾选该选项开启自定义脚本功能,可选择是否在备份前执行、备份成功后执行、备份失败后执行自定义脚本;
【备份自动重试】:默认不勾选;勾选该选项开启备份自动重试功能,可选择自动重试最大次数(1~5次)和重试等待时间(1~30分钟);
【备份数据一致性校验】默认不开启。开启此选项后,才能通过数据校验流工作流对备份数据进行一致性校验;
【流量控制】:默认为不开启;支持分时段限速,限速范围0-1024MiB/s;
【强制数据保留】:默认不开启;开启后,则保留时常内的数据无法被清理,同时该策略在编辑时,保留时长只能增加不能减少,也无法关闭该选项;
设置完成后,单击【下一步】按钮,继续。
l SQL Server AlwaysOn集群备份时不支持自定义脚本功能。
l SQL Server 双机备份时不支持自定义脚本功能。
步骤 4 填写任务名称和备注,任务名称为中文、大小写字母、数字、'-'、'_'、'.'、'@'组成,长度为3-256个字符,全局不可重复。备注信息最大不超过50个字符。
步骤 5 单击完成,在弹出的任务信息确认窗口确认任务配置,可以勾选“任务生成后立刻执行”,勾选后单击确定会直接发起备份任务。
步骤 6 新建成功的备份任务信息展示:
----结束
4.5.2 备份策略管理
步骤 1 使用操作员或租户登录管理控制台,单击【定时数据保护】→【策略】→【新建】→【策略名称】,根据需要选择【备份周期】→【确定】。
【策略名称】:中文、大小写字母、数字、"-"、"_"、"."、"@"组成,长度为3-30个字符,不可重复。
【备份周期】:可选单位:天、周、月。默认:每1天,范围:1~365天;选中“周”时,出现周几的多选控件,默认:选中周日,范围:周一至周日,可多选;选中“月”时,出现选择每月几号的下拉多选控件, 默认:选中每月1日,范围:1-31可多选,未选几号时需提示必填。若当月无选定日期则在最后一天触发,例如九月份无31号,但是日期选中了31号,则默认在9月30号即九月最后一天触发任务。
【重复发起】:默认关闭。若开启,则出现“持续时间”和“频率”设置;意义为:在一定的【持续时间】内,依【频率】发起多次备份。【持续时间】范围:1~59分钟,1~24小时,默认值24小时【频率】范围:1~59分钟,1~24小时,默认值1小时【频率】不可超过【持续时间】。
在策略页面,选中策略可以查看策略的内容和该策略关联的任务。
步骤 2 在备份任务页面,勾选创建成功的任务,单击【策略】,在弹出的对话框中选择【添加】,选择【备份方式】和【发起时间】,单击【确定】弹出【设置策略成功】即设置成功。
【备份方式】:分为完全备份、增量备份。
【发起时间】:必选项,发起计划的具体时间格式:YYYY-MM-DD HH:MM,精确到分钟,默认显示:当前时间,设置时间不可早于当前时间。
步骤 3 可以对策略任务进行编辑、禁用与启用,删除。
l 添加每月策略任务的时候,尽量避免选择31号、30号、29号进行定时备份,考虑到有的月份特殊,可选择28号及其之前的任何一个日期进行备份,这样可以保证每月都有任务执行;
l 在设置【开始时间】时,建议您尽量在服务器空闲时进行备份操作;另外,在设置【最大保存完全副本数】时,可在综合考虑您的存储空间和数据需求等因素后进行合理的设置(保留副本数策略:保留n个副本数,至少需要n+1个副本的空间)。
l 在设置策略时,请务必不要使用一个完全后续全是增量备份的方式;一个月必须要进行至少一次的完全备份,以保护数据安全。
----结束
4.5.3 数据保留策略管理
步骤 1 使用操作员或租户登录管理控制台,单击【定时数据保护】→【策略】→【备份数据保留策略】,单击【新建】按钮,新建数据保留策略。
1. 名称:输入数据保留策略的名称。数据保留策略名称由中文、大小写字母、数字、“-”、“_”、“.”、“@”组成,长度为3~30个字符。
2. 数据保留策略:默认关闭,须开启后才能继续配置。
数据保留期限:默认保留 1 年的备份副本,即从使用该策略开始到 1 年后,这期间产生的副本将被保留,超过 1 年的副本将被自动清理。可开启【严格保留】选项。
a. 数据保留期限配置参数范围为 1~999;可以选择年、月、周、天为单位。
保留副本个数:默认保留 2 个副本,即同一备份任务的副本超过 2 个后,最旧的副本将被自动清理。保留副本个数配置参数范围为 1~1024。
按备份策略的备份周期设置副本保留策略:
− 如果备份策略是按天设置,则默认保留 30 个副本。
− 如果备份策略是按周设置,则默认保留 24 个副本。
− 如果备份策略是按月设置,则默认保留 12 个副本。
− 如果备份策略是按年设置,则默认保留 4 个副本。
− 按照备份策略的备份周期所有参数配置范围均为 1~99999。
− 支持复选,且当任务使用对应备份周期的备份策略后,才限制发起的副本总数。
− 未勾选复选框,则默认保留所有副本。
− 勾选复选框,但任务没有使用此备份周期的备份策略,则保留自动发起的所有副本。
− 例如:启用 “按年备份策略”,但任务使用的备份策略没有年度备份策略,则保留所有备份策略自动产生的全部副本。
− 如果某一个备份周期的备份策略存在多个,则保留副本数为此类备份周期的所有备份策略产生的副本累加。
− 例如:任务关联了 4 个年度备份策略,则最终将保留 1 年内的 4 个副本。
3. 完整副本保留:开启后不会触发备份数据自动清理。
步骤 2 给备份任务添加数据保留策略。
步骤 3 在数据备份页面中,选中任务,单击【策略】->【添加数据保留策略模板】。
移除数据保留策略。在数据备份页面中,选中任务,单击【策略】→【移除数据保留策略】,单击确定,成功移除模板。
4.6 备份FAQs
l Q1:以Windows身份验证方式备份过程中出现报错
1)SQL Server无法初始化VDI:拒绝访问,备份不成功。
2)拒绝了对对象 'sysaltfiles' (数据库 'mssqlsystemresource',架构 'sys')的 SELECT 权限:
【问题原因1】权限不足。当客户端服务的“登录身份”为“本地系统账户”时,有可能出现此错误。这涉及到SQL Server提供的VDI接口对用户的权限要求,并非软件的程序问题。
【解决方案1】右键单击客户端服务,选择“属性”,在弹出的对话框中,单击登录标签页,把客户端服务的“登录身份”改为管理员Administrator并重启客户端服务。
l Q2:SQL Server事务日志备份报错:数据库xxx的恢复模式为简单,不能进行事务日志备份,请执行其他类型的备份或者手动修改数据库恢复模式。
【问题原因】:数据库的恢复模式为简单模式,导致无法进行事务日志备份。
【解决方案】:右击数据库,属性>选项>恢复模式为完整>确定。
5 数据恢复
5.1 浏览恢复应用场景及恢复方式选择
根据实际的需求,分析采用何种恢复措施:
l 如果系统数据库损坏,需要先重建系统数据库,将SQL Server服务器置于单用户模式,在单用户模式下进行master数据库恢复,恢复完成后,将SQL Server实例重新置于多用户模式。如果用户数据库损坏,使用浏览恢复的方式恢复到原位置即可。
l 如果想要获取一个相同的数据库,则可以选择新建恢复任务时将目标数据库恢复成新的数据库,对其重新命名即可。
l 如果想要将整个数据库还原到之前的某个状态,新建恢复任务选择该状态下的时间点进行恢复。
5.2 SQL Server 定时恢复
5.2.1 普通恢复注意事项
l 异机恢复
支持恢复SQL Server数据库到另外一台机器。在进行异机恢复时,请确认目标机器上存在相同实例名的数据库实例。
例如,机器A上存在数据库实例I_A,I_A包含一个数据库I_A_D。备份数据库I_A_D后,然后恢复到另外一台机器B。在新建恢复任务之前,请确保机器B上存在同名实例I_A且可访问。恢复任务执行成功后,数据库I_A_D依然存在于数据库实例I_A下。
l 普通环境下恢复系统库master
支持备份和恢复系统数据库。在恢复master数据库之前,请关闭相应数据库实例的除主数据库服务之外的其他数据库服务。这是因为恢复master数据库时,需要以单用户模式重启数据库服务,如果存在程序连接到数据库服务,SQL Server 模块将无法连接上数据库服务。
l 恢复系统库 msdb
不能还原用户正在访问的数据库。因此,还原msdb数据库前,应停止SQL Server代理程序。如果SQL Server代理程序正在运行,它可能会访问msdb数据库。
l 恢复数据库ReportServer
不能还原用户正在访问的数据库。因此,还原ReportServer报表数据库前,应停止SQL Server Reporting Services服务。如果SQL Server Reporting Services服务正在运行,它可能会访问ReportServer数据库。
l 恢复带有全文索引的数据库到本机的新数据库
恢复带有全文索引的数据库的备份集到本机的另外一个数据库时,需要手动的进行以下操作。假设需要恢复数据库old到本机的另一个数据库new,old具有全文索引catalog0和catalog1。先手动新建一个数据库new,然后手动新建全文索引catalog0和catalog1,然后以强制还原方式恢复 old的备份集到新数据库new。详情请参考“5.2.2恢复步骤”。
SQL Server AlwaysOn集群环境不支持系统数据库的备份与恢复,只支持可用性组下的数据库的备份与恢复。
5.2.2 恢复步骤
步骤 1 租户或操作员登录管理控制台,单击左侧标签栏【定时数据保护】→【数据恢复】,单击【新建】按钮,选择OFS与要恢复的数据,单击下一步:
l 备份介质默认选中OFS,可更换为云备份存储库类型,将从云备份存储库中恢复数据。
l 选择介质为云备份存储库后,常规选项中,相比较选择介质为OFS,新增恢复选项【云传输并发数】。
步骤 2 选择要恢复的时间点及数据源,单击下一步:
恢复master数据库时,程序要以单用户模式重启SQL Server服务,恢复完成后会以多用户模式启动这个服务。所以恢复前请停止一切与SQL Server链接的应用,以免数据丢失。
步骤 3 选择恢复位置,默认为恢复至原客户端原位置,参数如下。
【客户端】:支持恢复到原客户端或者异客户端。
【数据文件保存路径】:数据库数据文件恢复路径,可以选择原路径恢复,也可以自定义路径恢复。
【日志文件保存路径】:数据库日志文件恢复路径,可以选择原路径恢复,也可以自定义路径恢复。
【实例】:选择恢复的实例。
【恢复后数据库名称】:默认支持原数据库名称恢复,也可以自定义数据库名称恢复。
【覆盖现有数据库】:恢复时可以选择覆盖现有数据库,此项会导致数据库丢失,请谨慎操作。
【不完全恢复】:选择事务日志备份时间点可以进行不完全恢复,不完全恢复可以指定任意时间点的恢复。
【自定义脚本】:自定义脚本支持备份前,备份成功后,备份失败后执行自定义脚本。
【LAN-Free】:该选项默认关闭,开启该选项,SQL Server使用光纤链路恢复。
【联机】:默认联机方式进行恢复,恢复完成后,数据库处于可用状态,若关闭此按钮,选择不联机方式恢复,恢复完成后,数据库处于正在还原状态,此时需要本地日志将数据库拉起到可用状态。
只可以对事务日志备份的时间点进行指定时间点恢复,且选择的时间必须是位于上次完全备份与该次事务日志备份之间。例如,产生一个事务日志备份时间点为2020年1月1日5:30,上一次完全备份的时间点为2020年1月1日2:30,选择的时间点必须是位于这两个之间。
步骤 4 填写备注,单击完成。在弹出的任务信息确认页面确认恢复任务的各项信息正确,填写“YES”,单击确定即发起恢复任务。
步骤 5 单击完成,创建恢复任务成功,可以单击【查看详情】查看目前任务的执行输出。
----结束
5.2.3 归档恢复
若备份数据已通过数据归档功能归档至云备份存储库或者磁带,可按照以下步骤进行恢复:
步骤 1 租户或操作员登录管理控制台,单击左侧标签栏【定时数据保护】→【数据恢复】,选择【恢复归档数据】,单击【新建】按钮,选择恢复到客户端;
选择恢复到OFS卷,可以将备份到磁带里的数据恢复到OFS介质中,具体操作步骤请参考《云备份 CBR D2D2T 用户指南》。
步骤 2 选择归档的对象介质及要恢复的备份任务。
步骤 3 后续恢复步骤请参考5.2.2小节。
与从OFS中恢复相比,SQL Server云备份存储库归档恢复的恢复选项有如下差别:
新增恢复选项【云传输并发数】。
----结束
5.3 恢复FAQs
l Q1:异路径恢复数据库后,再恢复整个实例,会有残留文件:
备份整个实例(包含数据test),先异路径恢复test(比如恢复到C:\),然后再恢复整个实例,C:\下依然有数据库test的数据文件和日志文件,但没有用处。
【问题原因】已备份master数据库记录的是test数据库原来数据文件所在的位置,异路径恢复test数据库到C:\以后,现master数据库信息将发生改变,此时master记录test数据库的数据文件所在地为C:\,与已备份master数据库记录的数据库文件地方不同,如果此时对整个实例进行恢复的话,首先会恢复master数据库,再通过已恢复的master数据库去查找该对哪些数据库进行恢复,那么master并不会去关心现在的test数据库在哪,所以恢复完成以后,原来C:\下的test数据库文件就成为残留文件了。
【解决方案】手动删除C:\下的残留文件。
l Q2:SQL Server异机恢复,报错:
[ODBC SQL Server Driver][Shared Memory]ConnectionOpen(Connect())
【问题原因】SQL Server异机恢复需要目标端有同名实例且已授权。
【解决方案】对恢复目标端的实例进行授权。
l Q3:SQL Server数据恢复重命名数据库,恢复任务失败,报错:Argument "".mdf: 路径中含有非法字符:
【问题原因】:数据源中若有英文单引号、双引号相关命名的数据库,会报错。在恢复数据库重命名的时候不要命名为含有英文单引号、双引号相关的数据库。同时,windows 操作系统创建文件的时候不允许一些特殊字符,因此\ / : * ? " < > | 也不能在恢复数据库重命名的时候使用。
【解决方案】恢复数据库重命名时不要使用特殊字符。
l Q4:SQL Server数据恢复报错:获取VDI语句超时,可能原因:1.ODBC连接已断开;2.数据库正在使用,所以无法获得对数据库的独占访问权;3.服务端断开连接:
【问题原因】:出现该问题可能原因为数据库被占用,检查恢复位置有没有正在编辑恢复实例。
【解决方案】检查恢复目的地,关闭SQL Server Management Studio编辑界面。
l Q5:SQL Server数据恢复报错:用户‘sa’登录失败。原因:服务器处于单用户模式。目前只有一位管理员能够连接:
【问题原因】由于SQL Server服务器处于单用户模式。
【解决方案】进入命令行执行:net stop mssqlserver和net start mssqlserver即可关闭掉SQL Server的单用户模式。
l Q6:SQL Server数据恢复到根目录报错:执行SQL语句发生异常。(错误提供者:mssqlcore,错误值:407502849,错误位置:ncMssqlDatabaseWriter.cpp:227):
【问题原因】由于SQL Server数据库自身限制,SQL Server 2008R2以上的版本均不支持SQL Server数据库恢复到根目录,SQL Server 2008R2以及以下版本支持恢复到根目录(但是建议尽量不要恢复到根目录)。
【解决方案】新建合适的文件夹作为恢复到原机异位置和异机的恢复路径,例:E:\DATA、E:\LOG。
l Q7:SQL Server异机恢复报错:[Microsoft][ODBC SQL Server Driver][SQL Server]无法更新元数据来指示未对数据库 hos 启用变更数据捕获。执行命令'[sys].[sp_MScdc_ddl_database triggers] 'drop'' 时失败。返回的错误为 15517: '无法作为数据库主体执行(00200151)。
【问题原因】由于数据库在备份时所有者一直都是非sa用户,而恢复过程中又需要执行CDC存储过程,所以暂时不支持异机恢复。
【解决方案1】执行本机异数据库恢复。
【解决方案2】修改本机数据库的所有者为sa,再去重新备份恢复,异机恢复成功。
6 附录
6.1 名词注释
表6-1 加密名词注释
加密方式 |
注释 |
AES256 |
美国联邦政府采用的一种区块加密标准,采用对称分组密码体制,密钥的长度256,分组长度128位。 |
SM4 |
国产加密算法,无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位。 |
7 策略配置
7.1 备份策略设置推荐
在设置“备份数据保存完全副本数”时,可能会出现这样的错误操作。假设这样一个场景,使用者tom设置“最大保存完全副本数”为2,备份策略是每隔3个小时进行一次完全备份,上午8:00备份任务开启,下午2:00时,就会出现两个完全备份集。按照备份策略,下午2:00会进行一次完全备份,因为tom设置只保留2个完全备份集,所以在产生下午2:00这个完全备份集后,会根据副本删除策略删除上午8:00的完全备份集,造成数据丢失。所以请您在考虑完全备份操作执行的时间间隔因素后,再设置合理的备份策略。
SQL Server备份包括:完全备份、差异备份、事务日志备份。
针对用户的实际情况,及用户的RTO/RPO需求、安全需求等,请仔细考虑计划策略的设置。在这里,推荐用户能够至少保证一个月的数据安全:
l 每周末数据应用比较平缓的时候,进行一次完全备份;
l 隔两日晚时进行一次差异备份;
l 每日白天,隔一定时间做一次事务日志备份,比如每日中午、晚上可以各进行一次事务日志备份;
l 设置保留完全备份副本数为4,这样能够保证近28天的数据不会被丢失。
- 点赞
- 收藏
- 关注作者
评论(0)