Oracle12C 单实例dataguard配置

前端之家收集整理的这篇文章主要介绍了Oracle12C 单实例dataguard配置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Oracle用户环境变量配置:@H_404_1@


@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@

2. 创建密码文件(如果没有)@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@

6. 生成控制文件@H_404_1@

alter database create standby controlfile as '/orcl/app/oracle/oradata/orcl/orcldg01.ctl';@H_404_1@


@H_404_1@

7. 生成初始化参数文件@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@

8. 修改listener.ora文件@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@

9. 修改tnsnames.ora文件@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@

6. 查询验证@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@

猜你在找的Oracle相关文章