如何管理RAC环境中的数据备份和恢复?
尽管RAC提供了避免或是减少宕机时间的方法,但是仍需要对database自身进行保护,在RAC中,database是被所有Instances共享的。这意味着需要为cluster database设计合适的备份恢复策略,就向在普通环境中一样。
为了最小化由于disk failure造成的data丢失,常会使用disk镜像技术。例如设置database为归档模式,并对disks进行三个备份。对此可以移除一个镜像副本用于执行备份操作,而剩下两个仍然保持镜像副本,从而保证在线磁盘的活动。 为了正确实现这些操作,可能需要先将这些tablespaces设置为backup模式,随后,如果需要,暂时...全部
尽管RAC提供了避免或是减少宕机时间的方法,但是仍需要对database自身进行保护,在RAC中,database是被所有Instances共享的。这意味着需要为cluster database设计合适的备份恢复策略,就向在普通环境中一样。
为了最小化由于disk failure造成的data丢失,常会使用disk镜像技术。例如设置database为归档模式,并对disks进行三个备份。对此可以移除一个镜像副本用于执行备份操作,而剩下两个仍然保持镜像副本,从而保证在线磁盘的活动。
为了正确实现这些操作,可能需要先将这些tablespaces设置为backup模式,随后,如果需要,暂时的将disk操作halt,具体使用命令ALTER SYSTEM SUSPEND。当命令完成,可重新恢复原来的操作,通过命名ALTER SYSTEM RESUME,并将tablespaces从新设置为非backup模式。
在这里使用EM对备份恢复的设置我就不讲了。
1、初始化归档
要开启cluster的归档模式,必须通过一个专有Instance让database处于mounted但尚未open的状态。如果使用的是spfile,必须先为该Instance创建特定SID实体,另外,创建一个特殊目的的文本参数文件,在该文件中,必须为这个专用Instance设置下面的几个参数:
* CLUSTER_DATABASE:设置为FALSE
* LOG_ARCHIVE_DEST_n:根据具体的归档策略,设置
* LOG_ARCHIVE_FOMAT:包含%t或%T和%R参数用于区分thread
* LOG_ARCHIVE_START设置为TRUE
具体的详细步骤如下:
①关闭运行中的数据库
# su – oracle
$sqlplus /nolog
sql>connect /as sysdba
sql>shutdown immediate
②导出现有数据库的spfile文件
如果没有spfile,可以先创建spfile
sql>create spfile from pfile;
然后导出spfile
sql>create pfile=’/oracle/pfile。
ora’ from spfile; //将pfile创建到/oracle目录下
③修改/oracle/pfile。ora文件
更改cluster_database参数为false。同时可以添加自动归档参数log_archive_start=true,如下:
*。
log_archive_start=true
*。cluster_database=false
*。log_archive_dest=’LOCATION=/oracle/archivelog’ //将归档日志存放到/oracle/archivelog文件系统下,便于管理
*。
log_archive_format=%t_%s。dbf
④导入已修改的spfile
在数据库关闭状态下:
sql>create spfile from pfile=’/oracle/pfile。
ora’;
⑤启动数据库到加载状态(mount)
$sqlplus /nolog
sql>connect /as sysdba
sql>startup mount
⑥更改数据库运行模式为归档模式
$sqlplus /nolog
sql>connect /as sysdba
sql>startup mount
sql>alter database archivelog; //更改为归档模式
sql>alter database open; //将数据库打开
sql>archive log list; //检查数据库归档参数是否已经正确更改
⑦将cluster_database参数更改回true
首先关闭数据库
$sqlplus /nolog
sql>connect /as sysdba
sql>shutdown immediate
sql>create spfile from pfile=’/oracle/pfile01。
ora’; //将现有spfile导出
修改/oracle/pfile01。ora,将cluster_database参数更改为true;
⑧导入新修改的pfile01。ora文件
$sqlplus /nolog
sql>connect /as sysdba
sql>create spfile from pfile=’/oracle/pfile01。
ora’;
sql>startup //正常启动数据库。收起