oracle12c r2 dg,Oracle 11GR2 DG部署

1.环境介绍

hostname

ip

db_name

db_unique_name

node1

192,168,11,11

ORCL

ORCLH1

node2

192,168,11,12

ORCL

ORCLH2

2.DG部署

2.1.主库开启归档,强制日志

SQL> shutdown immediate

SQL> startup mount

SQL> alter database archivelog;    --开启归档

SQL> alter database force logging; --开启强制日志

SQL> alter database open;

SQL> archive log list;

SQL> select force_logging from v$database;

2.2.主库添加Standby Redo Log

SQL> select * from v$logfile;

SQL> select * from v$log;

--新增一组大小为50M的Standby Redo,这里的group号不得与Online redo重复

SQL> alter database add standby logfile group 41 '/u01/app/oracle/oradata/orcl/standby01.log' size 50M;

SQL> alter database add standby logfile group 42 '/u01/app/oracle/oradata/orcl/standby02.log' size 50M;

SQL> alter database add standby logfile group 43 '/u01/app/oracle/oradata/orcl/standby03.log' size 50M;

SQL> alter database add standby logfile group 44 '/u01/app/oracle/oradata/orcl/standby04.log' size 50M;

2.3.从主库创建pfile文件,复制到备库

SQL>create pfile='/home/oracle/initORCL.ora' from spfile ;

[oracle@node2 ~]$ scp  /home/oracle/initORCL.ora  node2:/home/oracle

2.4.设置主库初始化参数

SQL> alter system set fal_server='ORCLH2'  scope=spfile ;

SQL> alter system set log_archive_config='dg_config=(ORCLH1,ORCLH2)'   scope=spfile ;

SQL> alter system set log_archive_dest_1='location=/home/oracle/arc1 valid_for=(all_logfiles, all_roles) db_unique_name=ORCLH1'  scope=spfile ;

SQL> alter system set log_archive_dest_2='service=ORCLH2 lgwr async valid_for=(online_logfile,primary_role) db_unique_name=ORCLH2'  scope=spfile ;

SQL> alter system set log_archive_dest_state_1=ENABLE  scope=spfile ;

SQL> alter system set log_archive_dest_state_2=ENABLE  scope=spfile ;

SQL> alter system set standby_file_management='AUTO'  scope=spfile ;

SQL> alter system set db_file_name_convert='/u01/app/oracle/oradata/ORCL','/u01/app/oracle/oradata/ORCL','/u01/app/oracle/oradata/ORCL/ORCL/datafile','/u01/app/oracle/oradata/ORCL/ORCL/datafile'  scope=spfile ;

SQL> alter system set log_file_name_convert='/u01/app/oracle/oradata/ORCL','/u01/app/oracle/oradata/ORCL'  scope=spfile ;

重启数据库

SQL> SHUTDOWN IMMEDIATE

SQL> STARTUP

2.5.复制主库的密码文件到备库

[oracle@node1 ~]$ scp /u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapwORCL node2:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/

2.6.创建备库相应的目录结构

[oracle@node2 ~]$ mkdir -p /u01/app/oracle/oradata/ORCL/ORCL/datafile/

[oracle@node2 ~]$ mkdir /home/oracle/arc1

[oracle@node2 ~]$ mkdir -p /u01/app/oracle/oradata/ORCL

[oracle@node2 ~]$ mkdir -p /u01/app/oracle/admin/ORCL/adump

2.7.配置主库和备库的监听和TNS

====配备库置静态监听====

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = node2)(PORT = 1521))

)

)

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = ORCLH2)

(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)

(SID_NAME = ORCL)

)

)

======配置TNS(主备都配置)======

vi /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora

ORCLH1 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.11)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = ORCLH1)

)

)

ORCLH2 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.12)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = ORCLH2)

)

)

2.8.修改备库参数、创建备库实例并启动nomount

[oracle@node2 ~]$ vi /home/oracle/intiORCL.ora

fal_server='ORCLH1'

log_archive_config='dg_config=(ORCLH1,ORCLH2)'

log_archive_dest_1='location=/home/oracle/arc1 valid_for=(all_logfiles, all_roles) db_unique_name=ORCLH2'

log_archive_dest_2='service=ORCLH1 lgwr async valid_for=(online_logfile,primary_role) db_unique_name=ORCLH1'

log_archive_dest_state_1=ENABLE

log_archive_dest_state_2=ENABLE

standby_file_management='AUTO'

db_file_name_convert='/u01/app/oracle/oradata/ORCL','/u01/app/oracle/oradata/ORCL','/u01/app/oracle/oradata/ORCL/ORCL/datafile','/u01/app/oracle/oradata/ORCL/ORCL/datafile'

log_file_name_convert='/u01/app/oracle/oradata/ORCL','/u01/app/oracle/oradata/ORCL'

[oracle@node2 ~]$ sqlplus / as sysdba

SQL> create spfile from pfile = '/home/oracle/intiORCL.ora';

SQL> startup nomount

2.9.RMAN复制主库到备库

[oracle@node2 admin]$ rman target sys/oracle@orclh1 auxiliary sys/oracle@orclh2

RMAN> duplicate target database for standby from active database nofilenamecheck;

复制完成后,查看备库库状态

SQL> select status from v$instance ;

STATUS

------------

MOUNTED

2.10.在备库开启实时日志应用

SQL> alter database recover managed standby database cancel;

SQL> alter database recover managed standby database using current logfile disconnect;

2.11.主备库状态查询

查看数据库状态

SQL> select SWITCHOVER_STATUS,DATABASE_ROLE from v$database ;

SWITCHOVER_STATUS    DATABASE_ROLE

-------------------- ----------------

NOT ALLOWED     PHYSICAL STANDBY

查看进程状态

SQL> select PROCESS,CLIENT_PROCESS, SEQUENCE#,STATUS from v$managed_standby;

PROCESS   CLIENT_P  SEQUENCE# STATUS

--------- -------- ---------- ------------

ARCH  ARCH    0 CONNECTED

ARCH  ARCH    0 CONNECTED

ARCH  ARCH    8 CLOSING

ARCH  ARCH    9 CLOSING

MRP0  N/A   10 APPLYING_LOG

RFS  UNKNOWN    0 IDLE

RFS  ARCH    0 IDLE

RFS  UNKNOWN    0 IDLE

RFS  LGWR   10 IDLE

SQL> select INST_ID, dbid,name,DB_UNIQUE_NAME,current_scn,protection_mode,database_role,force_logging,open_mode,switchover_status from gv$database;

COL NAME FOR A80

SET LINESIZE 9999  PAGESIZE 9999

SELECT A.THREAD#, A.NAME, A.SEQUENCE#, A.APPLIED, A.FIRST_TIME

FROM V$ARCHIVED_LOG A,

(SELECT NB.THREAD#,NB.RESETLOGS_CHANGE#,NB.DEST_ID,(MAX(NB.SEQUENCE#) - 3) MAX_SEQUENCE#

FROM V$ARCHIVED_LOG NB

WHERE NB.APPLIED = 'YES'

and NB.DEST_ID in (SELECT NB.DEST_ID FROM V$ARCHIVE_DEST_STATUS NB where STATUS <>'INACTIVE')

GROUP BY NB.THREAD#,NB.RESETLOGS_CHANGE#,NB.DEST_ID) B

WHERE B.THREAD# = A.THREAD#

AND B.RESETLOGS_CHANGE# = A.RESETLOGS_CHANGE#

AND A.DEST_ID=B.DEST_ID

AND A.SEQUENCE# >= MAX_SEQUENCE#

AND A.STANDBY_DEST = (SELECT CASE WHEN NB.DATABASE_ROLE LIKE '%STANDBY%' THEN 'NO'  ELSE 'YES'  END FROM V$DATABASE NB)

ORDER BY A.THREAD#, A.SEQUENCE#;

DG保护模式

1.最大性能模式max performance-默认

这种保护模式(默认)提供了可能的最高级别的数据保护,而不影响主数据库的性能。

这是通过允许事务在恢复该事务所需重做数据在写到本地联机重做日志后立即提交而实现的。

主数据库的重做数据流也写到至少一个备数据库,但是那个重做流相对于创建重做数据的事务是异步写的。

当所用的网络连接有足够的带宽,这种模式提供了近似于最大可用性模式的数据保护级别,并且对主数据库性能的影响最小。

2.最大可用性模式max availability

这种保护模式提供了可能的最高级别的数据保护,而不用与主数据库的可用性相折衷。与最大保护模式相同,在恢复事务所需的重做写到本地联机重做日志和至少一个事务一致性备数据库上的备重做日志之前,事务将不会提交。与最大保护模式不同的是,如果故障导致主数据库无法写重做流到异地备重做日志时,主数据库不会关闭。替代地,主数据库以最大性能模式运行直到故障消除,并且解决所有重做日志文件中的中断。当所有中断解决之后,主数据库自动继续以最大可用性模式运行。

这种模式确保如果主数据库故障,但是只有当第二次故障没有阻止完整的重做数据集从主数据库发送到至少一个备数据库时,不发生数据丢失。

3.最大保护模式max protection

这种保护模式确保如果主数据库故障不会发生数据丢失。要提供这种级别的保护,恢复每个事务所需的重做数据必须在事务提交之前同时写到本地联机重做日志和至少一个备数据库上的备重做日志。要确保不发生数据丢失,如果故障导致主数据库无法写重做流到至少一个事务一致性备数据库的备重做日志时,主数据库会关闭。

===查看保护模式===

SQL> select DATABASE_ROLE,PROTECTION_MODE,PROTECTION_LEVEL,OPEN_MODE from v$database ;

DATABASE_ROLE PROTECTION_MODE      PROTECTION_LEVEL   OPEN_MODE

---------------- -------------------- -------------------- --------------------

PHYSICAL STANDBY MAXIMUM PERFORMANCE  MAXIMUM PERFORMANCE  MOUNTED

===切换保护模式===

SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE {PROTECTION | AVAILABILITY | PERFORMANCE }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值