将备份的文件拷到备库相同的目录下scp命令
7.2创建从库的控制文件
SQL>alter database create standby controlfile as ‘/dats/backup/standby.ctl’
将备份的控制文件拷到备库相同的目录下scp
7.3创建从库的密码文件,与主库保持一致
创建密码文件口令
orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID ignorecase=y force=y password=herenit
其中ignorecase和force选项可以看情况不添加。可以查看orapwd命令详细帮助orapwd help Rac1:
$orapwd file=$ORACLE_HOME/dbs/orapwracheren1 ignorecase=y force=y password=herenit Rac2:
$orapwd file=$ORACLE_HOME/dbs/orapwracheren2 ignorecase=y force=y password=herenit Standby:
$orapwd file=$ORACLE_HOME/dbs/orapwracheren ignorecase=y force=y password=herenit
7.4在从库上创建spfile并且启动到nomount状态
SQL>create spfile from pfile=’/dats/backup/singleinstance.ora’ SQL>startup nomount
7.5在从库上恢复控制文件并启动到mount状态 RMAN>set DBID=3143227710
RMAN>restore controlfile from ‘/dats/backu/standby.ctl’ RMAN>alter database mount
7.6在主库上执行以下恢复命令
$ rman target / auxiliary sys/herenit@racheren_standby RMAN> run{
allocate channel c1 device type disk format '/dats/backup/%U' connect 'sys/herenit@racheren1';
allocate channel c2 device type disk format '/dats/backup/%U' connect 'sys/herenit@racheren2';
allocate auxiliary channel ac1 device type disk format '/dats/backup/%U';
allocate auxiliary channel ac2 device type disk format '/dats/backup/%U';
duplicate target database for standby;}
注意:11g以前的复制命令必须在从库上含有数据库备份文件,但是11g以后则不需要,可使用以下方法
7.6 choose2--利用duplicate创建standby数据库
注意:11g以前的版本在执行复制命令dupilicate时,必须在备库上存在有备份文件,即在主库上备份完成后将文件拷到备库相同目录下
但是在11g一切都变的简单,只需要在复制命令后加上FROM ACTIVE DATABASE参数即可。
例如为实现数据库的文件回复,可以执行命令:
$ rman target / auxiliary sys/herenit@racheren_standby RMAN>duplicate target database for standby from active database;
如果原目录下有对应文件已经删除,但是数据字典中存在,可以使用nofilenamecheck参数取消对文件名的检查
RMAN>duplicate target database for standby from active database nofilenamecheck;
恢复完成以后,检查备库状态
SQL> select status from v$instance;
STATUS
------------ MOUNTED
SQL> select open_mode from v$database;
OPEN_MODE ---------- MOUNTED
SQL> select member from v$logfile; SQL> select name from v$datafile; SQL> select name from v$tempfile;
8.创建standby redo log 日志
DATA Guard在最大保护和最高可用性模式下,Standby数据库必须配置 Standby Redo Log
备库创建并配置 Standby Redo Log 是为了能够接收到主库传过来的日志,用作恢复. 主库创建并配置 Standby Redo Log 是为了在主备切换之后,能够接收到原备库(切换之后的主库)传过来的日志
注意:为了主备切换后能正常,主备库都必须创建standby redo log
创建原则:建议Standby Redologs日志组数量基于Primary数据库的线程数来确定(这里的线程数可以理解为RAC环境中的节点数)。
有一个推荐的公式可供参考:(每线程的日志组数+1)×最大线程数。 使用这个公式可以降低Primary数据库实例LGWR进程锁住的可能性。
创建原则和单实例一样,大小相等,但是日志组数量要比primary数据库多一组,比如在我的环境中,有2个节点,每个节点有4组redo,那么现在要创建的standby redo log组数为:(4+1)*2=10个
Standby Redologs的操作方式与Online Redologs几乎一模一样,只不过在创建或删除时需要多指定一个Standby关键字
SQL>alter database add standby logfile thread 1 group 5 '+ORAFLASH/racheren/onlinelog/group_5.log' size 50M;
SQL>alter database add standby logfile thread 2 group 6 '+ORAFLASH/racheren/onlinelog/group_6.log' size 50M; 单实例上不需要thread标识
SQL>alter database add standby logfile group 6 '/oradata/racheren/onlinelog/group_6.log' size 50M; 删除方式:
SQL>alter database drop standby logfile grop 6 查询方式:
SQL>select group#,thread#,sequence#,archived,status from v$standby_log;
ERROR at line 1:
ORA-01156: recovery or flashback in progress may need access to files --在备库添加standby redo log需要先停MRP
SQL> alter database recover managed standby database cancel;
三、 管理DG备库 1.启动&停止同步
启动MRP:
SQL> alter database recover managed standby database disconnect from session; Media recovery complete.
DISCONNECT FROM SESSION子句并非必需,该子句的作用呢,是指定启动完应用后自动退出到命令操作符前。如果不指定该子句的话,当前SESSION就会一直停留处理REDO应用,如果想做其他操作,就只能新建一个连接。
停止MRP:
SQL>alter database recover managed standby database cancel;
2.物理Standby的switchover
2.1转换primary库为standby,并启动到mount状态
执行本步操作时登录到Primary数据库,然后在查询V$DATABASE视图的SWITCHOVER_STATUS列,例如:
1. SQL> set sqlprompt \
2. JSSPRE> SELECT SWITCHOVER_STATUS FROM V$DATABASE; 3. SWITCHOVER_STATUS 4. -------------------- 5. TO STANDBY
如果该列值为TO STANDBY则表示Primary数据库支持转换为Standby角色,否则你就需要重新检查一下Data Guard配置,如看看LOG_ARCHIVE_DEST_n之类参数值是否正确有效等。
启动switchover。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库11G - RAC - DG环境配置以及维护文档(5)在线全文阅读。
相关推荐: