1开告警 oracle用户:tail -f/u01/app/oracle/diag/rdbms/proddb/prod1/trace/alert_prod1.log
2 关掉备库数据库
Srvctl stop database –d proddb
3 设置备库数据库启动方式
srvctl modify database -d proddb –y manual
4 su – oracle
备份spfile 两个rac都需要
备库起到nomount状态备份
Create pfile=’/home/oracle/initproddb.ora.bak’from ‘+DATA/proddb/spfileproddb.ora’
5 修改pfile文件,先拷贝一份
DB_UNIQUE_NAME=proddb
LOG_ARCHIVE_CONFIG='DG_CONFIG=(proddb,stddb)'
LOG_ARCHIVE_DEST_1='LOCATION=+rcy VALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=proddb'
LOG_ARCHIVE_DEST_2='SERVICE=stddb LGWRASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=stddb'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
LOG_ARCHIVE_MAX_PROCESSES=3
FAL_SERVER=stddb
DB_FILE_NAME_CONVERT='+data','+data'
LOG_FILE_NAME_CONVERT='+DATA/stddb/','+DATA/proddb/',’+RCY/stddb/’,’+RCY/proddb/’
STANDBY_FILE_MANAGEMENT=AUTO
查看日志成员
select member from v$logfile;
在一个实例上完成就好,所以关掉rac其中一个实例
Startup force nomount pfile=’initproddb.ora’;
没有问题就生成spfile
Create spfile =’/+DATA/proddb/spfileproddb.ora’from ‘/home/oracle/initproddb.ora’;
6 mount状态
做冷备rman
mkdir /back
chown -R oracle:dba /back
oracle
Rman target /
Backup database format ‘/back/%d_%s.bak’;
要放在本地磁盘组
7生成standby controlfile
backup current controlfile for standbyformat='/back/std_control.ctl';
8 修改备库spfile
改主库hosts,添加上备库的ip信息,scp到node2和备库两个节点//和dg无关
Scp initprod.ora 备库:~/initstddb.ora
Cd $ORACLE_HOME/dbs
口令文件
Scp orapwprod1 备库:~/$ORACLE_HOME/dbs/orapwstdd1 //有两个
备库上:
Vi initstddb.ora
注意更改controlfile路径以及其他文件路径
Oracle用户
Mkdir –p /u01/app/oracle/admin/stddb/adump
Export ORACLE_SID=stddb1
Sqlplus
Startup force nomount pfile=initstddb.ora’;
Create spfile=’+data/stddb/spfilestddb.ora’from pfile=’/home/oracle/initstddb.ora’;
Cd /dbs
Vi initstddb1.ora
Spfile=’+data/stddb/spfilestddb.ora’
Scp inistddb1.ora 备库2节点:$ORACLE_HOME/dbs/initstddb2.ora
Startup force nomount
9主库改tns
记得拷贝一份到节点2
Tnsping 备库
备库改tns
记得拷贝一份到节点2
10通过rman备份,在备库restore
Root
Vi /etc/exports
/back *(rw,async)
Service nfs start
Exportfs –av
备库
Showmount –e zhuku
Mkdir /back
Chown –R oracle:dba /back
Mount –orw,bg,hard,nointr,resize=32768,wsize=32768,tcp,actimeo=0,vers=3,timeo=600zhuku: /back /u01/back
Oracle
Export ORACLE_SID=stddb1
Rman target /
restore standby controlfile from ' /back/std_control01.ctl';
alter database mount;
restore database;
如果因为无线断了导致无法恢复,可以scp过去,再恢复
Exit
Sql
Alter database open
Recover managed standby database disconnect
主库
Alter system switch logfile;
Selectname,dbid,protection_mode,database_role from v$database;
备库2节点
cd /u01/app/oracle/admin
mkdir –p stddb/adump
export ORACLE_SID=stddb2
添加备库信息岛crs
oracle
srvctl add database -n proddb -d stddb -o $ORACLE_HOME
root
crs_stat –t
注册实例
srvctl add instance -d stddb -i stddb1 -n 备库一节点
srvctl add instance -d stddb -i stddb2 -n 备库二节点
srvctl modify database -d stddb -y MANUAL
主备库切换
主备库中各留一个实例
主库关掉一个实例
并切为备库
Select name,bdid, protection_mode,database_rolefrom v$database;
Alter database commit to switchover tostandby;
Startup mount;
Select name,bdid, protection_mode,database_rolefrom v$database;
备库:
Select name,bdid, protection_mode,database_rolefrom v$database;
Alter database commit to switchover topromary;
Alter database open;
原主库
Alter database open ;
Recover managed standby databasedisconnect;
原备库做日志切换