ITPub博客

首页 > 数据库 > Oracle > ORACLE 11G 创建 DATAGUARD(双节点RAC-->单实例DG)

ORACLE 11G 创建 DATAGUARD(双节点RAC-->单实例DG)

原创 Oracle 作者:gxlineji 时间:2016-09-14 11:31:21 0 删除 编辑

说明:
双节点RAC-->单实例DG

一、修改主库配置

(在线修改即可 )
主库((双节点RAC)):
alter system set log_archive_config='dg_config=(orcl,orclpdg)' scope=both;
alter system set log_archive_dest_1='location=/arch/orcl1/arch valid_for=(all_logfiles,all_roles) db_unique_name=orcl'  sid='orcl1' scope=both;
alter system set log_archive_dest_1='location=/arch/orcl2/arch valid_for=(all_logfiles,all_roles) db_unique_name=orcl'  sid='orcl2' scope=both;
alter system set log_archive_dest_2='service=orclpdg  ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)  db_unique_name=orclpdg'  scope=both;
alter system set log_archive_dest_state_2='enable'  scope=both;
alter system set STANDBY_FILE_MANAGEMENT=AUTO  scope=both;
附件参数(只有主库变成备库时才使用)
alter system set db_file_name_convert='/u01/app/oracle/oradata/orcl/','+DATA/orcl/datafile/'  scope=spfile;
alter system set LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/orcl/','+DATA/orcl/onlinelog/' scope=spfile;
alter system set FAL_SERVER=orclpdg   scope=both;

在tnsnames.ora增加连接到从库的TNS
cat >> $ORACLE_HOME/network/admin/tnsnames.ora << EOF
orclpdg =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.11)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

EOF

二、配置从库

从库:单实例DG

修改参数文件(只能手工修改参数文件 )
db_unique_name=orclpdg
service_names=orcl

修改参数 (这些参数可以使用命令修改spfile )
alter system set log_archive_config='dg_config=(orcl,orclpdg)' scope=spfile;
alter system set log_archive_dest_1='location=/arch/orcl/recive valid_for=(all_logfiles,all_roles) db_unique_name=orclpdg'  scope=spfile;
alter system set log_archive_dest_2='service=orclpri  ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)  db_unique_name=orcl'  scope=spfile;
alter system set log_archive_dest_state_2='enable' scope=spfile;
alter system set STANDBY_FILE_MANAGEMENT=AUTO scope=spfile;
alter system set DB_FILES=800 scope=spfile;
alter system set db_file_name_convert='+DATA/orcl/datafile/','/u01/app/oracle/oradata/orcl/','+DATA/orcl/tempfile/','/u01/app/oracle/oradata/orcl/'    scope=spfile;
alter system set LOG_FILE_NAME_CONVERT='+DATA/orcl/onlinelog/','/u02/app/oracle/oradata/orcl/','+DATA/mm100/standbylog/','/u02/app/oracle/oradata/orcl/'  scope=spfile;
alter system set FAL_SERVER=orclpri  scope=spfile;

创建接收主库传过来的 归档日志 目录
mkdir -p /arch/orcl/recive
chown oracle.oinstall -R /arch

创建静态监听器
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = orcl)
    )
  )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

ADR_BASE_LISTENER = /u01/app/oracle

配置TNS连接
su - oracle
cat >> $ORACLE_HOME/network/admin/tnsnames.ora << EOF
orclpri=
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.166)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

orclpdg =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.11)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

EOF

从主库复制密码文件到从库:
scp 192.168.1.17:/u01/app/oracle/product/11.2.0/db_1/dbs/orapworcl1 /u01/app/oracle/product/11.2.0/db_1/dbs/orapworcl

主库:
rman target sys/password@orclpri auxiliary sys/BV3792Ty64@orclpdg nocatalog <<eof
duplicate target database for standby from active database nofilenamecheck;
EOF

从库执行应用日志
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

定期删除日志:
[root@s001pm: script]# more del_arch_standby.sh 

点击( 此处 )折叠或打开

  1. #!/bin/bash

  2. cd  /home/oracle/script/

  3. rm -rf /home/oracle/script/del_arch_standby.txt

  4. source /home/oracle/.bash_profile


  5. sqlplus -s sys/xxx123 AS SYSDBA  <<eof</eof<>

  6. set linesize 200

  7. set pagesize 0

  8. set echo off

  9. set feedback off

  10. set trimspool on

  11. alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

  12. spool del_arch_standby.txt

  13. select 'rm -rf  ' || t.NAME as name

  14. from v\$archived_log t

  15. where t.APPLIED = 'YES'

  16. and t.FIRST_TIME < sysdate - 4 / 24

  17. and NAME like '/arch/orcl/%'

  18. order by t.first_time desc;


  19. spool off

  20. exit

  21. EOF


  22. cd  /home/oracle/script/

  23. sh del_arch_standby.txt





</eof

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10995764/viewspace-2124969/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: RMAN异机恢复
下一篇: WEB 架构技术
请登录后发表评论 登录
全部评论

注册时间:2008-09-11

  • 博文量
    48
  • 访问量
    76656