您的位置:首页 > 数据库 > Oracle

oracle物理dg安装:方法一

2016-04-02 13:39 435 查看
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.变量

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都需要

# 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在主库查询

--生成创建目录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用户手动创建

--生成 备库的 控制文件,并scp到备库,位置同主库相同

alter database create physical standby controlfile as '/tmp/control01.ctl' reuse;

--生成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在主库上执行)

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.主库修改参数

--主库修改参数(修改后重启数据库)

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.备库修改参数

--备库修改参数(修改后重启数据库)

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

alter database recover managed standby database using current logfile disconnect;


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

select * from v$archive_dest;
select * from v$archive_dest_status;

也可以在主库创建一个test表空间,看有没有同步到备库。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: