Actifio如何保护和管理Oracle-带外篇
引言
本文提供CDS带外环境下相关配置,保护和恢复Oracle的所需步骤。
目的是提供Oracle数据库配置前的详细说明,Actifio环境下发现和配置Oracle数据库,执行还原和恢复,以及配置Oracle数据库进行克隆以支持测试和开发的功能。
本文假设读者熟悉Actifio软件,特别是在发现主机、应用程序或数据库并将其置于CDS保护之下。
读者
本文需要读者是一个:
•使用Actifio Desktop管理Oracle数据库的系统管理员或备份管理员。
•负责Oracle数据保护的数据中心所有者。
•其他用户,并对Actifio Desktop具有不同级别的访问权限。
- 介绍
以下是Oracle保护前的预先检查知识。这些预先检查将确保Out-of-Band环境中的正确操作。检查和配置步骤包括:
l 验证Oracle侦听器状态
l 验证Oracle数据库的运行状态
l 预先检查Oracle SID条目
l 使用Actifio Desktop发现Oracle数据库
l 执行数据库备份和成功验证
l 配置Advanced Actifio设置
l 数据库还原和恢复功能
l 用于测试和开发的数据库克隆配置
- 支持列表
使用Actifio CDS的当前软件版本,通过带外方式为Oracle提供完整的备份、还原和恢复。
通过FC或ISCSI协议 Actifio以永久增量的方式来提供合成全备份,需要注意的是,这种为带外的方式(带内与带外实现方式截然不同,也是支持的),CDS的带外方式作为旁挂,不接入到oracle主机和存储的中间层进行使用。
支持的版本包括:
Oracle版本:10g,11g,12c
支持的oracle配置包括:
文件系统
独立的ASM
ASM方式的RAC
Exadata
支持的文件系统:
Linux RHEL,SLES,AIX,HPUX,Solaris和Windows。其他操作系统会陆续支持。
- Actifio如何备份
在详细介绍预配置步骤之前,需要首先深入了解Actifio如何提供永久增量备份。
一旦Actifio Connector安装在数据库服务器上,通过Desktop将能够发现所有需要保护的Oracle数据库实例。并显示在Actifio Desktop的导航界面。
发现Oracle之后,创建SLA来定义整个数据生命周期。例如,定义备份到Snap Pool的频率以及希望保留多久的时间。Snap Pool的数据以原始格式保存,提供即时数据检索。
然后将同样的方法应用于DedupPool。定义什么时候要执行Dedub备份,以及我们希望保留到Dedup Pool多久。DedupPool是为了长期保留并且为全局重删。这是一个非常好的长期保留数据的方案。可以满足任何异地保存和灾备的需求。
一旦应用了SLA,备份作业将根据定义的SLA频率开始运行。
首次运行备份时,Actifio将根据配置,通过FC或iSCSI将staging disk挂载到Oracle数据库服务器。Actifio调用RMAN,运行RMAN 0级Image Copy备份。Image Copy 进行整个数据库和所有数据文件的block级备份,附加上数据文件的格式。
一旦0级Image Copy备份完成,在staging disk上生成一个备份映像,随后拍摄一个快照,并在Actifio内保存一个完整的时间点拷贝。然后,从生产服务器上卸载并删除这些拷贝数据。
第二次运行备份时,对于以后的每个实例,Actifio将再次将相同的staging disk mount到Oracle服务器。然后调用RMAN 1级增量备份,仅备份被更改的block。然后通过RMAN增量MOD功能会将该增量与上个全备份合成,在staging disk上创建一个新的完整副本。随后Actifio创建一个新的快照,存储这个时间点的拷贝,最后再次卸载staging disk。
因此,当需要从Snap Pool,DedupPool或远程站点访问任何时间点数据时,每个副本都是完整副本并可立即使用,大大缩短恢复时间。
举个例子,对于大型数据库,数据库通常每周末进行一次全备份,并每天进行一次增量备份。因此如果设置了30天的SLA,则最终将拥有至少5个全备份副本以及所有增量。在Actifio中,你将只有一个全备份副本以及所有的增量。
这种方法从根本上减少了全备份的时间。例如,对于1TB的数据库,在周末将不会备份数小时。It also frees up your incremental backups after the first time with less I/O moving forward,因此备份时间将减少到半小时或一小时。
Actifio在节省存储方面也提供了巨大的好处,因为Actifio只保存增量数据。Snap Pool里的数据只存储一两天或三天的数据以提供即时访问。之后,数据复制到Dedup Pool进行更长期的保留。
另一个好处涉及到了传统的Oracle备份格式,如果备份集以传统的Oracle备份格式存储。那么当我们从传统备份集运行RMAN还原和恢复时,RMAN首先必须将其转换为数据文件格式,然后才能启动还原和恢复。
使用Actifio解决方案,文件保存为Image Copy,它保留了数据文件格式。RMAN跳过从备份的文件格式到数据文件格式的转换过程直接进入还原和恢复。所以恢复将比传统方法快得多
Actifio也跟踪Database Incarnation。Database Incarnation是非常重要的,因为如果你通过full restore和recover恢复到以前状态,Database Incarnation就会发生变化,日志序列被重置。这意味着,在full restore和recover完成后,任何之前的备份都无用了。
当备份运行时,Actifio会自动跟踪Incarnation number的变化。如果Incarnation发生变化,下一次的备份将是0级备份,重新完成一个全量备份,然后继续增量。以上这些不必进行配置更改,Actifio的整个备份架构是完全自动的,不必编写脚本,也不必做任何事情。一旦你配置了用户名和密码,RMAN将会被整合,所有过程将会自动进行。
- 归档日志备份
大多数大型企业环境中,不会非常频繁地进行数据库备份。这是因为运行RMAN进程会对数据库环境造成很大的影响,并可能会中断业务运行。因此,大多数数据库备份将在维护时段期间运行,通常是在凌晨并每12小时或每24小时运行一次。Actifio的备份窗口可能需要1到2个小时,或多达4个小时,这取决于数据库的大小。
因此,保护的归档日志变得非常重要。根据系统环境需要采用不同的备份方式。如果单实例数据库,归档日志在文件系统上。在这种情况下,Actifio可以通过保护归档文件目录来保护归档日志。或者使用staging disk来做RMAN的备份,即提供staging disk到oracle中,作为oracle归档日志的第二目的地。
Actifio已经提供了脚本模板,指导如何使用RMAN来备份归档到Staging disk然后进行保护。Post-script脚本用来清除归档,保证不断增长的归档日志不会撑满系统,Post-script脚本在SLA中配置运行。
因此,通过Actifio数据库备份策略以及归档备份,将有益于整库恢复,即时恢复或归档日志恢复到任意时间。
- Oracle备份前预检
在发现和保护的Oracle数据库之前,需要对的Oracle环境执行一系列预检,以确保Actifio正常运行。这些预检应该在所有标准的Oracle生产环境中执行。
首先验证生产数据库服务器上是否安装了Connector。这是用来调用RMAN执行备份和恢复过程的服务。
确认Oracle监听已启动并正在运行。当调用RMAN时,需要使用服务来连接到生产数据库。
另外,还有一些命令可以用来确保数据库正常运行。例如pmon,pmon是数据库的进程监视器,可以调用它来验证是否正常运行。如果这些命令中的任意一个提示有错误,需要在继续进行Actifio备份之前改正。
当Actifio执行Oracle数据库自动发现时,将在/etc/oratab文件中查找指定条目。准备来说,将查找数据库的SID条目。通常在oracle安装期间,数据库SID的条目被写入oratab文件。如果数据库是手动创建的,那么这些条目可能会丢失。因此,验证此条目以正确发现Oracle数据库非常重要。
在这个例子中,oasm是数据库的SID名称,在语句的结尾是Y,表示重新启动后会自动启动数据库。这个开关被oracle用来调用它的脚本来自动启动数据库。
继续执行其他的Oracle数据库预检步骤。
Su - oracle(切换到oracle的os用户)。
或许需要设置数据库环境变量:
export ORACLE_HOME = <oracle home path>(可以从/etc/oratab获得)
查看Oracle SID值:
export ORACLE_SID = <数据库实例名称>(可通过ps -ef | grep pmon获取)
设置PATH:
export PATH = $ ORACLE_HOME/bin:$ PATH
Actifio执行其备份时,会备份Oracle数据库结构的所有组件,包括数据文件,控制文件和参数文件。因此,需要验证数据库是否正在使用spfile运行。
在验证数据库正在使用spfile运行之后,将需要确保的归档日志已启用,这是必须的,因为Actifio调用RMAN备份,并且需要归档日志。
对于oracle备份帐户,可以创建一个默认帐户,或者直接使用现有用户。在SLA应用和保护过程中,Actifio会要求提供用户名和密码。另外,需要提供对此帐户的sysdba访问权限。
- 创建TNS服务条目
TNS条目(tnsnames.ora文件)需要使用数据库服务器的正确IP地址以及正确的数据库名称进行修改。
tnsnames.ora文件中TNS服务条目被Actifio用来调用备份过程。(对于RAC,在所有节点上创建此条目)
tnsnames.ora文件路径如下:
$ ORACLE_HOME/network/admin或$ ASM_HOME/network/admin
编辑tnsnames.ora文件。在文件末尾添加图中的条目,并用正确的值修改<数据库服务器的IP>和<数据库名称>。
- 验证TNS服务条目
在修改tnsnames.ora文件之后,执行tnsping来验证。
如果已经在DNS下创建了服务名称,则可以使用tnsping 这个服务名称。
另外,还需要验证为RMAN备份提供的数据库用户帐户,是否可以在命令行上以sysdba身份进行连接。
- Verify Database Block Change Tracking
虽然是可选的,但Actifio强烈建议启用BCT。BCT可以通过从命令行查看v $ block_change_tracking来验证。
需要注意的是:企业版支持bct而标准版不支持。如果启用,不需要重启oracle服务,可在线更改。
- 保护数据库
- Oracle Database Protection
在完成Oracle预检后,现在可以选择需要保护的Oracle数据库,并应用适当的SLA来满足我们的备份要求。
在Actifio desktop中发现的oracle实例,会显示在导航窗格左侧的APP选项卡下。
导航中选中需要保护的数据库。从下拉列表中选择适当的SLA模板。该模板定义了快照,Dedup和复制的计划。
从下拉列表中选择一个资源配置文件。该配置文件定义用于将应用程序的数据存储到快照池,DedPool或远程池。
在凭证区域输入相应的RMAN备份用户名和密码,然后点击test按钮。
Test按钮将会让Actifio系统运行先前在Oracle生产环境中配置的预检查。系统将通过所有的预检,然后反馈是否有问题。如果在执行预检时没有显示错误消息,则可以继续保护数据库,点击保护按钮。
可以监视以下日志文件
/act/log/USDAgent.log – Connector日志
/act/log/rman_sid.log - 用于RMAN数据库备份
- 高级选项
右上角的高级设置提供了一些可调参数,可以进行微调备份过程。下一张幻灯片中详细介绍一些这些设置。
高级设置对数据库备份进行微调。以下重点介绍以比较重要的选项:
Number Of Channels:指定数据库服务器在执行备份时所使用的通道数量。默认值为3,应根据可用的系统核数进行调整。增加通道数量将提高备份性能。
Staging Disk Size:非必选,但强烈建议设置staging disk的大小。如未指定,将使用系统默认值。
举个例子,假设一个数据库有15个数据文件,每个数据文件大小为10GB,每个数据文件中使用了4 GB。这种情况下,分配的数据库总大小为150 GB,实际使用的空间为60 GB。
计算staging disk的大小时,Actifio参考数据文件分配大小(150GB),并附加25%的空间产生187.5 GB的staging disk,以上是假定AutoExtend是OFF的前提。
如果AutoExtend为ON,每个数据文件允许增长到32 GB,直到最大为止会产生480 GB的总分配大小。staging disk计算现在生成一个600GB(480×1.25)的staging disk大小。
由于存储的差异等,强烈建议在计算staging disk大小时详细了解其存储和增长需求。
- Oracle Advanced Settings
如上所述,Number Of Channels:可以增加通道数量来提高备份效率。此值基于服务器上可用的内核数量来修改,并要考虑到并行执行的其他数据库。
staging disk size:如上所述,强烈建议根据存储利用率和预测的增长量来设置staging disk size。这会非常有效的使用系统资源。
RMAN Log Location:可以为RMAN备份的输出log指备用位置,例如由默认的/var/act/log/rman<dbname>.log指定到其他地方。
高级设置提供“恢复验证”功能。虽然不建议,如果选择此项,RMAN会在备份和还原期间分析并验证每个数据文件中的每个数据块,验证是否有数据损坏。这将大大增加系统资源的使用,并会降低备份和恢复效果。
另外,如果客户有单独的CATALOG库,我们需要CATALOG DBNAME,CATALOG DB USER和CATALOG DB PASSWORD。
其他可能涉及到的高级设置:
OracleNamed Listener:很多情况下,每个数据库可能会有单独的监听。Actifio支持此环境。各自的数据库使用各自的监听。这种环境下如果不指定各自的监听,actifio无法连接数据库。
RMAN backup not skip:设置是否跳过离线和不可访问的表空间的备份。在用户的测试库中常有这样情况。
Oracle Service Name :在tnsnames.ora文件中指定新的服务名称以供Actifio正常备份。
Cluster Nodes:
语法:
Failoverchoice:NodeIP:Servicename:Role
1:172.16.16.21:svc_orarac2_act:F
1表示备份故障切换的优先级。
IP地址是故障切换节点的地址,后跟故障切换节点的服务名称。
F(failover)定义了为故障切换。
但是如果节点列表中被标记为“M”维护节点。指定“F”的节点会在维护节点不可用时按顺序进行尝试。一旦为M的维护节点变为可用,故障恢复备份节点将恢复为维护节点。
当备份运行时,受保护的节点不可访问,Actifio将查看此列表,查找已定义的优先级,并开始访问列表中指定的节点。
“Do not Unmap”选项,是否要将临时staging disk映射到主机并保持映射。在第一个Job期间映射的LUN,所有后续作业将重新使用相同的LUN。默认情况下,该选项被选中。
Connector Options留空,这是Actifio的支持选项。
Actifio Connector必须安装并在所有的配置为故障切换的主机节点上。保护仅从一个节点设置。
高级设置,Cluster Nodes
Failoverchoice:NodeIP:Servicename:Role
Failoverchoice:是用户想要尝试切换的节点顺序。
NodeIP:要运行备份的节点的IP
Servicename:是Actifio RMAN备份在tnsnames.ora中创建和指定的服务的名称。可以是为Actifio备份创建的专用服务或该节点上数据库的SID名称。
Role: F(failover)或M(maintenance)
- 归档日志保护
- Oracle Archive Log protection
Actifio的解决方案中,保护Oracle Archive Log主要有两种方式。
如果是standalone数据库,可以用带外的方式保护归档目录。为存档日志目录制定策略进行备份。
或者让oracle直接归档到staging disk,再通过actifo备份走。
Optionally, the operator may mount a permanent staging disk from Actifio to the database server. From there, configure the RMAN archive backup script to backup onto the staged Actifio disk. Alternatively, the operator could configure an Actifio pre-script to run the archive backup on the Actifio mounted disk.
Lastly, protect the mounted staging disk through the Actifio CDS, and configure snapshot protection of the staging disk based on an appropriate SLA.
如果需要,可以在oracle中把staging disk配置成归档的第二目的地。
配置过程。
了解归档日志所需要的存储空间非常重要。因此需要计算归档日志的大小。
另外,了解归档日志生成频率频率也很重要。图中命令计算归档日志生成速率。
- 恢复步骤
以下是执行完整数据库恢复所需的详细步骤。
这些步骤适用于将数据库恢复到原机、异机。这些都会创建相同的存储结构。
首先,在Desktop中确定要恢复的实例,正确的时间点副本。
当提交mount操作时,Actifio会创建一个新的flash copy,并根据配置使用FC或Iscsi协议。
由于数据库down机,将需要进行必要的编目cataloging。首先,恢复的参数文件,这是恢复数据库必需的。此外,还需要恢复数据文件,控制文件以及所需的归档日志。
按策略执行RMAN备份时会跟踪日志序列号。当备份结束时,比较并检查序列关系,并且备份归档日志,以便始终覆盖该时间点。
如果已单独备份存档日志,那么在打开数据库之前,将再次从同一时间点进行归档日志的备份。
首先mount最新的备份快照并且恢复的参数文件。指定参数文件位置路径。
然后,从pfile文件创建spfile。
最后,使用spfile启动数据库到nomount。
启动到nomount状态后,继续从actifio的mount点恢复控制文件。
恢复后,启动数据库到mount。
启动到mount,catalog挂载目录下的数据文件目录和归档日志目录。编录并完成注册。
然后,将数据库恢复到适当时间点。cd到Actifio mount的归档目录,按照图中命令进行恢复。
这时候如果没有其他归档日志需要前滚,则可以用resetlogs选项打开数据库。这就是基于时间点的数据库恢复。
如果需要执行表空间或数据文件恢复,则使用相同的步骤进行恢复。Mount快照,进行catalog编录,完成前面所述步骤。
- 开发测试clone
以下介绍用于测试和开发的clone功能。
Actifio提供了一组基本的,预配置好的脚本,创建生产库虚拟clone来用于测试和开发目的。虚拟克隆可以mount到生产服务器上,也可以mount到任意其他满足条件的服务器上。虽然脚本是以标准格式的,但很可能需要定制才能在实际生产环境中运行。
可以自定义这些脚本来打开数据库,既可以使用大内存,也可以使用小内存。也就是说,可以根据资源来合理分配内存并使用clone。
customerClone.sh是执行clone的主要脚本。其中几个参数需要在执行过程中确认。
这些参数包括新的SID名称(允许使用相同的名称或不同的名称创建虚拟数据库副本)。
还必须提供ORACLE_HOME路径,并可以选择性提供Image Copy的挂载路径。。
根据这些参数,customerClone.sh调用其他一些脚本。克隆过程中,首先读取参数文件,并创建一个新的参数文件。如果有自定义的部分,则会将这些设置应用于新的虚拟克隆。
数据库启动,并为克隆创建新的控制文件,并提供挂载的数据文件的位置。然后以可读可写模式打开数据库。
因此,通过clone进行mount,在目标服务器上是不需要存储空间的,并可以在5到10分钟内启动数据库。
关于customerClone.sh脚本还需要考虑一些其他配置项。默认情况下,控制文件最大文件设置为500.这可能不够大,例如有5000个文件的环境。就需要自己定制修改了。
此外,performance logs默认为3.如果希望增加日志数量,也是需要根据情况修改的。