<span style="font-size:16px;"></span><span style="font-size:16px;"><strong><br />
前提:</strong>测试脚本是根据上一篇<a target="_blank" href="http://blog.itpub.net/28539951/viewspace-1764034/"><u><strong>cent os 6.6 x64 自动静默安装oracle 11gr2</strong></u><span style="font-size:16px;"><u><strong>脚本</strong></u></span></a> 安装的两台db,比较干净,所以配置standby比较简单</span><br />
<span style="font-size:16px;"><br />
os:centos 6.6</span><br />
<span style="font-size:16px;">oracle:11.2.0.4</span><br />
<span style="font-size:16px;">primary ip:192.108.56.119</span><br />
<span style="font-size:16px;">primary hostname:ct6602</span><br />
<span style="font-size:16px;">standby ip:192.108.56.121</span><br />
<span style="font-size:16px;">standby hostname:ct6604<br />
</span><br />
<span style="font-size:16px;"><strong>----以下内容在primary DB上放在一个文本下,oracle用户下sh执行即可:</strong></span><br />
<span style="font-size:16px;">#!/bin/bash</span><br />
<br />
<span style="font-size:16px;">mkdir /u03/archivelog/ct6602</span><br />
<span style="font-size:16px;">sqlplus / as sysdba << EOF</span><br />
<span style="font-size:16px;">shutdown immediate;</span><br />
<span style="font-size:16px;">startup mount;</span><br />
<span style="font-size:16px;">alter database archivelog;</span><br />
<span style="font-size:16px;">alter system set log_archive_dest_1='LOCATION=/u03/archivelog/ct6602 VALID_FOR=(ALL_LOGFILES,ALL_ROLES) db_unique_name=ct6602';</span><br />
<span style="font-size:16px;">alter database open;</span><br />
<span style="font-size:16px;">alter database force logging;</span><br />
<span style="font-size:16px;">alter system set log_archive_config='DG_CONFIG=(ct6602,ct6602sb)';</span><br />
<span style="font-size:16px;">alter system set LOG_ARCHIVE_DEST_2='SERVICE=ct6602sb LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,primary_ROLE) DB_UNIQUE_NAME=ct6602sb';</span><br />
<span style="font-size:16px;">alter system set FAL_SERVER='ct6602sb';</span><br />
<span style="font-size:16px;">alter system set FAL_CLIENT='ct6602';</span><br />
<span style="font-size:16px;">alter system set db_file_name_convert='ct6602sb','ct6602' scope=spfile;</span><br />
<span style="font-size:16px;">alter system set log_file_name_convert='ct6602sb','ct6602' scope=spfile;</span><br />
<span style="font-size:16px;">alter system set standby_file_management=auto;</span><br />
<span style="font-size:16px;">create pfile from spfile;</span><br />
<span style="font-size:16px;">exit</span><br />
<span style="font-size:16px;">EOF</span><br />
<br />
<span style="font-size:16px;">mkdir /home/oracle/sbbackup</span><br />
<span style="font-size:16px;">rman target / <<EOF</span><br />
<span style="font-size:16px;">backup database format '/home/oracle/sbbackup/full_db_%U.dbfbk' plus archivelog format '/home/oracle/sbbackup/full_log_%U.logbk';</span><br />
<span style="font-size:16px;">backup current controlfile for standby format '/home/oracle/sbbackup/sbctl.ctl';</span><br />
<span style="font-size:16px;">exit</span><br />
<span style="font-size:16px;">EOF</span><br />
<br />
<br />
<span style="font-size:16px;">cat >> /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora << EOF</span><br />
<span style="font-size:16px;">CT6602SB =</span><br />
<span style="font-size:16px;"> (DESCRIPTION =</span><br />
<span style="font-size:16px;"> (ADDRESS = (PROTOCOL = TCP)(HOST = 192.108.56.121)(PORT = 1521))</span><br />
<span style="font-size:16px;"> (CONNECT_DATA =</span><br />
<span style="font-size:16px;"> (SERVER = DEDICATED)</span><br />
<span style="font-size:16px;"> (SERVICE_NAME = ct6602sb)</span><br />
<span style="font-size:16px;"> )</span><br />
<span style="font-size:16px;"> )</span><br />
<span style="font-size:16px;">EOF</span><br />
<br />
<span style="font-size:16px;">cat > /home/oracle/scpbackup.sh <<EOF</span><br />
<span style="font-size:16px;">set timeout -1</span><br />
<span style="font-size:16px;">spawn scp -r /home/oracle/sbbackup oracle@192.108.56.121:/home/oracle/</span><br />
<span style="font-size:16px;">expect "password:"</span><br />
<span style="font-size:16px;">send "system\r"</span><br />
<span style="font-size:16px;">interact</span><br />
<span style="font-size:16px;">set timeout -1</span><br />
<span style="font-size:16px;">spawn scp -r /u01/app/oracle/product/11.2.0/db_1/dbs/orapwct6602 oracle@192.108.56.121:/home/oracle/orapwct6602</span><br />
<span style="font-size:16px;">expect "password:"</span><br />
<span style="font-size:16px;">send "system\r"</span><br />
<span style="font-size:16px;">interact</span><br />
<span style="font-size:16px;">set timeout -1</span><br />
<span style="font-size:16px;">spawn scp -r /u01/app/oracle/product/11.2.0/db_1/dbs/initct6602.ora oracle@192.108.56.121:/home/oracle/initct6602.ora</span><br />
<span style="font-size:16px;">expect "password:"</span><br />
<span style="font-size:16px;">send "system\r"</span><br />
<span style="font-size:16px;">interact</span><br />
<span style="font-size:16px;">EOF</span><br />
<br />
<span style="font-size:16px;">expect /home/oracle/scpbackup.sh</span><br />
<br />
<br />
<span style="font-size:16px;"><strong>----以下内容在standby DB上放在一个文本下,oracle用户下sh执行即可:</strong></span><br />
<span style="font-size:16px;">#!/bin/bash</span><br />
<br />
<span style="font-size:16px;">mv /home/oracle/orapwct6602 /u01/app/oracle/product/11.2.0/db_1/dbs/orapwct6602sb</span><br />
<span style="font-size:16px;">mv /home/oracle/initct6602.ora $ORACLE_HOME/dbs/initct6602sb.ora</span><br />
<span style="font-size:16px;">cp $ORACLE_HOME/dbs/initct6602sb.ora $ORACLE_HOME/dbs/initct6602sb.ora.bak</span><br />
<br />
<span style="font-size:16px;">cat >> /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora << EOF</span><br />
<span style="font-size:16px;">CT6602 =</span><br />
<span style="font-size:16px;"> (DESCRIPTION =</span><br />
<span style="font-size:16px;"> (ADDRESS = (PROTOCOL = TCP)(HOST = 192.108.56.119)(PORT = 1521))</span><br />
<span style="font-size:16px;"> (CONNECT_DATA =</span><br />
<span style="font-size:16px;"> (SERVER = DEDICATED)</span><br />
<span style="font-size:16px;"> (SERVICE_NAME = ct6602)</span><br />
<span style="font-size:16px;"> )</span><br />
<span style="font-size:16px;"> )</span><br />
<span style="font-size:16px;">EOF</span><br />
<br />
<span style="font-size:16px;">sed -i 's/ct6602sb/selectshen/g' $ORACLE_HOME/dbs/initct6602sb.ora</span><br />
<span style="font-size:16px;">sed -i 's/ct6602/ct6602sb/g' $ORACLE_HOME/dbs/initct6602sb.ora</span><br />
<span style="font-size:16px;">sed -i 's/selectshen/ct6602/g' $ORACLE_HOME/dbs/initct6602sb.ora</span><br />
<span style="font-size:16px;">sed -i "s/db_name='ct6602sb'/db_name='ct6602'/" $ORACLE_HOME/dbs/initct6602sb.ora</span><br />
<span style="font-size:16px;">echo "*.db_unique_name=ct6602sb" >> $ORACLE_HOME/dbs/initct6602sb.ora</span><br />
<br />
<br />
<span style="font-size:16px;">mkdir -p /u01/app/oracle/admin/ct6602sb/adump /u02/oradata/ct6602sb /u01/app/oracle/fast_recovery_area/ct6602sb /u03/archivelog/ct6602sb</span><br />
<br />
<span style="font-size:16px;">ORACLE_SID=ct6602sb</span><br />
<span style="font-size:16px;">sqlplus / as sysdba <<EOF</span><br />
<span style="font-size:16px;">create spfile from pfile;</span><br />
<span style="font-size:16px;">startup nomount;</span><br />
<span style="font-size:16px;">exit</span><br />
<span style="font-size:16px;">EOF</span><br />
<span style="font-size:16px;"> </span><br />
<span style="font-size:16px;">rman target / <<EOF</span><br />
<span style="font-size:16px;">restore standby controlfile from '/home/oracle/sbbackup/sbctl.ctl';</span><br />
<span style="font-size:16px;">sql 'alter database mount';</span><br />
<span style="font-size:16px;">restore database;</span><br />
<span style="font-size:16px;">recover database;</span><br />
<span style="font-size:16px;">exit;</span><br />
<span style="font-size:16px;">EOF</span><br />
<br />
<span style="font-size:16px;">sqlplus / as sysdba <<EOF</span><br />
<span style="font-size:16px;">alter database open;</span><br />
<span style="font-size:16px;">ALTER DATABASE RECOVER MANAGED STANDBY DATABASE disconnect;</span><br />
<span style="font-size:16px;">select process,thread#,sequence#,status from v\$managed_standby;</span><br />
<span style="font-size:16px;">exit;</span><br />
<span style="font-size:16px;">EOF</span><br />
<br />
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30130773/viewspace-2117264/
,如需转载,请注明出处,否则将追究法律责任。