oracle物理dg安装:方法一

来源:互联网 发布:java 所有打印写入txt 编辑:程序博客网 时间:2024/05/01 06:09
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表空间,看有没有同步到备库。
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 红米手机太卡了怎么办 红米手机太卡怎么办? 红米3老是死机怎么办 红米3s经常死机怎么办 红米4a进水了怎么办 魅族耳机声音小怎么办 魅蓝note6声音小怎么办 魅蓝3s锁定怎么办 红米1密码忘了怎么办 小米手环升级失败怎么办 红米4忘记密码怎么办 红米1代忘记密码怎么办 红米3s忘记密码怎么办 小米3卡槽卡住了怎么办 红米4手机信号不好怎么办 红米note3信号差怎么办 红米note3没信号怎么办 红米3运行慢怎么办 红米手机运行慢怎么办 红米手机忘记解锁图案怎么办 小米手机解锁图案忘了怎么办 红米2内屏坏了怎么办 红米密码忘记了怎么办 红米pro玩王者卡怎么办 红米note4不支持计步怎么办 红米pro玩游戏卡怎么办 红米手机费电快怎么办 荣耀5c忘记密码怎么办 小米之家不退货怎么办 手机号绑定过多小米账户怎么办 耐克黑色鞋褪色怎么办 买广汽传祺7s新车有问题怎么办 华为荣耀10边框掉色了怎么办 网购商家打来无货怎么办 客户拍了不发货怎么办 天猫商家欺骗买家怎么办 阿里买家投诉我发空包怎么办 苹果6s电池坏了怎么办 hm买的单鞋脏了怎么办 微店违规屏蔽搜索怎么办 ios微信支付失效怎么办