@H_404_1@
ORACLE_BASE=/orcl/app/oracle@H_404_1@
ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1@H_404_1@
ORACLE_SID=orcl@H_404_1@
export ORACLE_BASE ORACLE_HOME ORACLE_SID@H_404_1@
PATH=$ORACLE_HOME/bin:$PATH@H_404_1@
export PATH@H_404_1@
export NLS_LANG=american_america.AL32UTF8@H_404_1@
@H_404_1@
主库:@H_404_1@
@H_404_1@
1. 将primary数据库设置为force logging模式@H_404_1@
select force_logging from v$database;@H_404_1@
alter database force logging;@H_404_1@
@H_404_1@
orapwd file=$ORACLE_HOME/dbs/orapworcl password=syspassword entries=30;@H_404_1@
@H_404_1@
3. 将主库至于归档模式@H_404_1@
shutdown immediate;@H_404_1@
startup mount;@H_404_1@
alter database archivelog;@H_404_1@
alter database open;@H_404_1@
@H_404_1@
4. disabled selinux@H_404_1@
cat /etc/selinux/config | grep 'SELINUX'@H_404_1@
@H_404_1@
5. 配置standby redo log@H_404_1@
select GROUP#,BYTES/1024/1024 size_M,STATUS,ARCHIVED from v$log; # 查询当前日志组大小@H_404_1@
@H_404_1@
alter database add standby logfile group 4 ('/orcl/app/oracle/oradata/orcl/standbyrd01.log') size 200M;@H_404_1@
alter database add standby logfile group 5 ('/orcl/app/oracle/oradata/orcl/standbyrd02.log') size 200M;@H_404_1@
alter database add standby logfile group 6 ('/orcl/app/oracle/oradata/orcl/standbyrd03.log') size 200M;@H_404_1@
alter database add standby logfile group 7 ('/orcl/app/oracle/oradata/orcl/standbyrd04.log') size 200M;@H_404_1@
@H_404_1@
alter database drop standby logfile group 4; # 删除@H_404_1@
select group#,thread#,sequence#,archived,status from v$standby_log; # 验证@H_404_1@
@H_404_1@
alter database create standby controlfile as '/orcl/app/oracle/oradata/orcl/orcldg01.ctl';@H_404_1@
@H_404_1@
create pfile from spfile;@H_404_1@
@H_404_1@
vi $ORACLE_HOME/dbs/initorcl.ora(添加以下内容)@H_404_1@
@H_404_1@
*.log_file_name_convert='/orcl/app/oracle/oradata/orcl/','/orcl/app/oracle/oradata/orcl/'@H_404_1@
*.db_unique_name='orcl1'@H_404_1@
*.fal_client='orcl1'@H_404_1@
*.fal_server='orcldg'@H_404_1@
*.log_archive_config='DG_CONFIG=(orcl1,orcldg)'@H_404_1@
*.log_archive_dest_1='LOCATION=/orcl/app/oracle/oradata/orcl/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl1'@H_404_1@
*.log_archive_dest_2='SERVICE=orcldg LGWR ASYNC VALID_FOR=(ALL_LOGFILES,PRIMARY_ROLES) DB_UNIQUE_NAME=orcldg'@H_404_1@
*.log_archive_dest_state_1='ENABLE'@H_404_1@
*.log_archive_dest_state_2='ENABLE'@H_404_1@
*.standby_file_management='AUTO'@H_404_1@
*.remote_login_passwordfile='EXCLUSIVE'@H_404_1@
*.log_archive_format=%t_%s_%r.arc@H_404_1@
@H_404_1@
create spfile from pfile='initorcl.ora'@H_404_1@
@H_404_1@
LISTENER =@H_404_1@
(DESCRIPTION_LIST =@H_404_1@
(DESCRIPTION =@H_404_1@
(ADDRESS = (PROTOCOL = TCP)(HOST = Nginx01)(PORT = 1521))@H_404_1@
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))@H_404_1@
)@H_404_1@
)@H_404_1@
@H_404_1@
SID_LIST_LISTENER =@H_404_1@
(SID_LIST =@H_404_1@
(SID_DESC =@H_404_1@
(GLOBAL_DBNAME = orcl)@H_404_1@
(SID_NAME = orcl)@H_404_1@
)@H_404_1@
)@H_404_1@
@H_404_1@
ADR_BASE_LISTENER=/orcl/app/oracle@H_404_1@
@H_404_1@
ORCL =@H_404_1@
(DESCRIPTION =@H_404_1@
(ADDRESS = (PROTOCOL = TCP)(HOST = Nginx01)(PORT = 1521))@H_404_1@
(CONNECT_DATA =@H_404_1@
(SERVER = DEDICATED)@H_404_1@
(SERVICE_NAME = orcl)@H_404_1@
)@H_404_1@
)@H_404_1@
@H_404_1@
@H_404_1@
ORCLDG =@H_404_1@
(DESCRIPTION =@H_404_1@
(ADDRESS = (PROTOCOL = TCP)(HOST = Nginx01-dg)(PORT = 1521))@H_404_1@
(CONNECT_DATA =@H_404_1@
(SERVER = DEDICATED)@H_404_1@
(SERVICE_NAME = orcldg)@H_404_1@
)@H_404_1@
)@H_404_1@
@H_404_1@
10. shutdown immediate@H_404_1@
@H_404_1@
11. 传输控制文件、初始化参数文件、监听文件、密码文件到备机@H_404_1@
cd /orcl/app/oracle/product/12.2.0/db_1/network/admin@H_404_1@
scp listener.ora Nginx01-dg:/orcl/app/oracle/product/12.2.0/db_1/network/admin@H_404_1@
scp tnsnames.ora Nginx01-dg:/orcl/app/oracle/product/12.2.0/db_1/network/admin@H_404_1@
scp sqlnet.ora Nginx01-dg:/orcl/app/oracle/product/12.2.0/db_1/network/admin@H_404_1@
@H_404_1@
cd /orcl/app/oracle/oradata/orcl@H_404_1@
scp orcldg01.ctl Nginx01-dg:/orcl/app/oracle/oradata/orcl/@H_404_1@
@H_404_1@
cd /orcl/app/oracle/product/12.2.0/db_1/dbs@H_404_1@
scp initorcl.ora Nginx01-dg:/orcl/app/oracle/product/12.2.0/db_1/dbs/initorcl.ora@H_404_1@
scp orapworcl Nginx01-dg:/orcl/app/oracle/product/12.2.0/db_1/dbs/orapworcl@H_404_1@
@H_404_1@
12. 在主库上RMAN备份恢复到standby:@H_404_1@
@H_404_1@
1. 主库启动到mount状态,备库启动到nomount状态@H_404_1@
2. rman target sys/abcd1234@orcl auxiliary sys/abcd1234@orcldg@H_404_1@
3. duplicate target database for standby nofilenamecheck from active database; # 主备机目录一致使用nofilenamecheck参数@H_404_1@
@H_404_1@
备库:@H_404_1@
@H_404_1@
1. disabled selinux@H_404_1@
cat /etc/selinux/config | grep 'SELINUX'@H_404_1@
@H_404_1@
2. 创建目录@H_404_1@
mkdir -p /orcl/app/oracle/oradata/orcl/@H_404_1@
mkdir -p /orcl/app/oracle/admin/orcl/adump@H_404_1@
@H_404_1@
3. 修改主库传过来的初始化参数文件initorcl.ora文件@H_404_1@
@H_404_1@
*.control_files='/orcl/app/oracle/oradata/orcl/orcldg01.ctl','/orcl/app/oracle/oradata/orcl/orcldg02.ctl'@H_404_1@
*.log_file_name_convert='/orcl/app/oracle/oradata/orcl/','/orcl/app/oracle/oradata/orcl/'@H_404_1@
*.db_unique_name='orcldg'@H_404_1@
*.fal_client='orcldg'@H_404_1@
*.fal_server='orcl1'@H_404_1@
*.log_archive_config='DG_CONFIG=(orcl1,ALL_ROLES) DB_UNIQUE_NAME=orcldg'@H_404_1@
*.log_archive_dest_2='SERVICE=orcl1 LGWR ASYNC VALID_FOR=(ALL_LOGFILES,PRIMARY_ROLES) DB_UNIQUE_NAME=orcl1'@H_404_1@
*.log_archive_dest_state_1='ENABLE'@H_404_1@
*.log_archive_dest_state_2='ENABLE'@H_404_1@
*.standby_file_management='AUTO'@H_404_1@
*.log_archive_format=%t_%s_%r.arc@H_404_1@
*.remote_login_passwordfile='EXCLUSIVE@H_404_1@
@H_404_1@
4. listener.ora和tnsnames.ora文件不用做任何修改@H_404_1@
@H_404_1@
5. 启动(rman备份恢复完成后)@H_404_1@
@H_404_1@
alter database mount standby database;@H_404_1@
alter database open read only;@H_404_1@
alter database recover managed standby database disconnect from session;@H_404_1@
alter database set standby database to maximize availability;@H_404_1@
@H_404_1@
@H_404_1@
@H_404_1@
select switchover_status,open_mode,database_role,db_unique_name,protection_mode,protection_level from v$database;@H_404_1@
select SEQUENCE#,FIRST_TIME,NEXT_TIME,APPLIED from v$archived_log order by 1;@H_404_1@
select max(sequence#) from v$log;@H_404_1@
@H_404_1@
7. 关机@H_404_1@
alter database recover managed standby database cancel;@H_404_1@
shutdown immediate;@H_404_1@