oracle物理dg安装:方法一

oracle物理dg安装有多种方式,本文记录了使用 直接copy物理文件 的方法,其它几种后续文章会一一说明。

准备工作:

1.两台虚拟机,主机名:n1, n2,操作系统:centos6.7,建好信任关系
2.oracle database 11.2.0.4软件已装好
3.节点1(n1)数据库创建好,db_name=orcl,db_unique_name=dg1, 归档模式(归档目录/oracle/arc/)
4.变量
  1. n1变量:
    export ORACLE_SID=dg1
    export ORACLE_BASE=/oracle/db
    export ORACLE_HOME=$ORACLE_BASE/ora11g
    export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
    export PATH=$PATH:$ORACLE_HOME/bin


    n2变量:
    export ORACLE_SID=dg2
    export ORACLE_BASE=/oracle/db
    export ORACLE_HOME=$ORACLE_BASE/ora11g
    export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
    export PATH=$PATH:$ORACLE_HOME/bin
5.tns文件内容($ORACLE_BASE/network/admin),n1、n2都需要
  1. # tnsnames.ora Network Configuration File: /oracle/db/ora11g/network/admin/tnsnames.ora
    # Generated by Oracle configuration tools.

    dg1 =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = n1)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = dg1)
        )
      )

    dg2 =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = n2)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = dg2)
        )
      )


1.n2创建目录

n1上数据库参数db_recovery_file_dest、audit_file_dest、log_archive_dest_1 指向的目录,需要使用oracle用户在n2上手动创建。

参数的值可以用以下sql在主库查询
  1. --生成创建目录cmd
    select 'mkdir -p ' || replace(value, 'location=') cmd
      from v$parameter
     where name in('db_recovery_file_dest','audit_file_dest','log_archive_dest_1');



2.生成 备库的 控制文件(sql在主库上执行),并scp到备库,位置同主库相同,如果目标目录在备库上不在,则需要使用oracle用户手动创建

  1. --生成 备库的 控制文件,并scp到备库,位置同主库相同
    alter database create physical standby controlfile as '/tmp/control01.ctl' reuse;

  2. --生成scp控制文件cmd
     select 'scp /tmp/control01.ctl oracle@n2:' || regexp_substr(value, '[^, ]+', 1, rownum) cmd
       from v$parameter
      where name='control_files'
    connect by rownum<=regexp_count(value, ',');



3.生成scp文件cmd(sql在主库上执行)

  1. select 'scp ' || file_name || ' oracle@n2:' || file_name cmd from
    (
      select name file_name from v$datafile
       union all
      select name from v$tempfile
       union all
      select value from v$parameter where name='spfile'
       union all
      select substr(value, 1, instr(value, '/', -1)) || 'orapw' || (select value from v$parameter where name='instance_name') from v$parameter where name in('spfile')
    );

如果备库不存在这些目录,则需要使用oracle用户手动创建一下

其中 参数文件、密码文件 需要修改一下目标文件的名称


4.主库修改参数

  1. --主库修改参数(修改后重启数据库)
    alter system set db_unique_name=dg1 scope=spfile;
    alter system set log_archive_config='DG_CONFIG=(dg1,dg2)' scope=spfile;
    alter system set log_archive_dest_1='LOCATION=/oracle/arc/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dg1' scope=spfile;
    alter system set log_archive_dest_2='SERVICE=dg2 LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dg2' scope=spfile;
    alter system set fal_server=dg2 scope=spfile;
    alter system set fal_client=dg1 scope=spfile;
    alter system set standby_file_management=auto scope=spfile;


    alter database add standby logfile group 4 ('/oracle/db/oradata/orcl/sredo41.log','/oracle/db/oradata/orcl/sredo42.log') size 50M;
    alter database add standby logfile group 5 ('/oracle/db/oradata/orcl/sredo51.log','/oracle/db/oradata/orcl/sredo52.log') size 50M;
    alter database add standby logfile group 6 ('/oracle/db/oradata/orcl/sredo61.log','/oracle/db/oradata/orcl/sredo62.log') size 50M;

5.备库修改参数

  1. --备库修改参数(修改后重启数据库)
    alter system set db_unique_name=dg2 scope=spfile;
    alter system set log_archive_config='DG_CONFIG=(dg1,dg2)' scope=spfile;
    alter system set log_archive_dest_1='LOCATION=/oracle/arc/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dg2' scope=spfile;
    alter system set fal_server=dg1 scope=spfile;
    alter system set fal_client=dg2 scope=spfile;
    alter system set standby_file_management=auto scope=spfile;


    alter database add standby logfile group 4 ('/oracle/db/oradata/orcl/sredo41.log','/oracle/db/oradata/orcl/sredo42.log') size 50M;
    alter database add standby logfile group 5 ('/oracle/db/oradata/orcl/sredo51.log','/oracle/db/oradata/orcl/sredo52.log') size 50M;
    alter database add standby logfile group 6 ('/oracle/db/oradata/orcl/sredo61.log','/oracle/db/oradata/orcl/sredo62.log') size 50M;

6.启动备库到mount,打开recover

  1. alter database recover managed standby database using current logfile disconnect;

7.启动主库,观察主备库的alert日志,看日志是否传输正常,或是在主库查看以下视图

  1. select * from v$archive_dest;
  2. select * from v$archive_dest_status;
也可以在主库创建一个test表空间,看有没有同步到备库。

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

转载于:http://blog.itpub.net/7417681/viewspace-2072244/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值