oracle 10g dg参数配置,Oracle10g物理DG详细配置方法及方法

当前位置:我的异常网» 数据库 » Oracle10g物理DG详细配置方法及方法

Oracle10g物理DG详细配置方法及方法

www.myexceptions.net  网友分享于:2014-04-17  浏览:23次

Oracle10g物理DG详细配置方法及步骤

--测试环境:

OS:Redhat linux(64)

Primary:

IP:192.168.94.198

SID:dgdb1

Hostname:dg1

DB_UNIQUE_NAME:dgdb1

Database:10.2.0.1(64)

Standby:

IP:192.168.94.199

SID:dgdb1

Hostname:dg2

DB_UNIQUE_NAME:dgdb1_s

Database:10.2.0.1(64)

--实施DG前的准备工作

--开启数据库logging及数据库archivelog

--开启数据库logging

SQL> alter database force logging;

--检查数据库是否开启archivelog

SQL> archive log list;

--如果数据库未开启archivelog,则要开启archivelog

SQL> shutdown immediate;

SQL> startup mount;

SQL> alter database archivelog;

--检查数据库是否开启archivelog

SQL> archive log list;

--创建相应目录(根据具体情况,primary和standby端要一致)

--Standby:

mkdir –p /export/home/oracle/product/10.2.0/oradata/dgdb1

mkdir –p /export/home/oracle/product/10.2.0/admin/dgdb1/adump

mkdir –p /export/home/oracle/product/10.2.0/admin/dgdb1/bdump

mkdir –p /export/home/oracle/product/10.2.0/admin/dgdb1/cdump

mkdir –p /export/home/oracle/product/10.2.0/admin/dgdb1/udump

mkdir –p /export/home/oracle/product/10.2.0/admin/dgdb1/dpdump

mkdir –p /export/home/oracle/product/10.2.0/admin/dgdb1/pfile

mkdir –p /export/home/oracle/archive

mkdir -p /export/home/oracle/bak

--primary:

mkdir –p /export/home/oracle/archive

mkdir -p /export/home/oracle/bak

--修改或新增listener.ora 和tnsnames.ora(或者用GUI工具配置)

--注意:listener.ora 中新增的部分在括号内而非括号外

--primary端:

--listener.ora:

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /export/home/oracle/product/10.2.0)

(PROGRAM = extproc)

)

(SID_DESC =

(GLOBAL_DBNAME = dgdb1)

(ORACLE_HOME = /export/home/oracle/product/10.2.0)

(SID_NAME = dgdb1)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

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

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

)

)

--tnsnames.ora

dgdb1 =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = dgdb1)

)

)

dgdb1_s =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = dgdb1)

)

)

--standby端:

--listener.ora:

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /export/home/oracle/product/10.2.0)

(PROGRAM = extproc)

)

(SID_DESC =

(GLOBAL_DBNAME = dgdb1)

(ORACLE_HOME = /export/home/oracle/product/10.2.0)

(SID_NAME = dgdb1)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

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

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

)

)

--tnsnames.ora

dgdb1 =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = dgdb1)

)

)

dgdb1_s =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = dgdb1)

)

)

--具体实施DG的步骤:

--在primary上生成pfile,并修改添加相应参数,生成standby需要的pfile

--primary端:

oracle$>sqlplus / as sysdba

SQL> CREATE PFILE='/export/home/oracle/standby.ora' FROM SPFILE;

--编辑生成的pfile文件('/export/home/oracle/standby.ora'),添加如下参数:

*.db_unique_name='dgdb_s'

*.fal_server='dgdb1'

*.fal_client='dgdb_s'

*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(dgdb1,dgdb_s)'

*.log_archive_dest_1='LOCATION=/export/home/oracle/archive VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dgdb_s'

*.LOG_ARCHIVE_DEST_2='SERVICE=dgdb1 LGWR ASYNC=40960 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dgdb1'

*.LOG_ARCHIVE_DEST_STATE_1='ENABLE'

*.LOG_ARCHIVE_DEST_STATE_2='ENABLE'

*.standby_archive_dest='/export/home/oracle/archive'

*.standby_file_management='AUTO'

--修改完后拷贝到standby端

Oracle$Scp /export/home/oracle/standby.ora  oracle@192.168.94.199:/export/home/oracle/

--在standby端使用pfile启动实例

--在primary端用命令创建数据库密码文件,并接拷贝至standby端相同路径下(如已存在,可直接拷贝)

--primary端手工创建数据库密码文件

Oracle$orapwd file=... password=...

--primary端拷贝数据库密码文件至standby端

Oracle$Scp /export/home/oracle/product/10.2.0/database/PWDdgdb1.ora oracle@192.168.94.199:/export/home/oracle/product/10.2.0/database

--standby端:

Oracle$set oracle_sid=dgdb1

Oracle$sqlplus / as sysdba

SQL> startup nomount pfile=’/export/home/oracle/standby.ora’

SQL> CREATE SPFILE FROM PFILE='/export/home/oracle/standby.ora';

--在primary端修改相应参数

--primary端:

Oracle$sqlplus / as sysdba

SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT = AUTO scope=both;

SQL> ALTER SYSTEM SET fal_server='dgdb1_s' scope=both;

SQL> ALTER SYSTEM SET fal_client='dgdb1' scope=both;

SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(dgdb1_s,dgdb1)' scope=both;

SQL> ALTER SYSTEM SET log_archive_dest_1='LOCATION=/export/home/oracle/archive VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dgdb1' scope=both;

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=dgdb1_s LGWR ASYNC=40960 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dgdb1_s' scope=both;

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1='ENABLE' scope=both;

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2='ENABLE' scope=both;

SQL> ALTER SYSTEM SET standby_archive_dest='/export/home/oracle/archive' scope=both;

--在primary端开始使用rman备份数据库

--primary端:

Oracle$rman target /

RMAN>backup full format='/u01/app/oracle/bak/ora10g_%d_%T_%s' database include current controlfile for standby plus archivelog format='/u01/app/oracle/bak/arch_%d_%T_%s';

--备份完毕后,把相应备份文件拷贝到丛库的相应目录(目录必须一致)

Oracle$Scp /export/home/oracle/bak/* oracle@192.168.94.199:/export/home/oracle/bak/

--使用duplicate 还原standby数据库

--primary端:

Oracle$rman target / auxiliary sys/system@dgdb1_s

RMAN> duplicate target database for standby nofilenamecheck dorecover;

--收尾工作及开启dg

--standby端建立standby log(至少比redo多一组):

Oracle$sqlplus / as sysdba

SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 ('/export/home/oracle/product/10.2.0/oradata/dgdb1/redo04.log') size 50M;

SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 5 ('/export/home/oracle/product/10.2.0/oradata/dgdb1/redo05.log') size 50M;

SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 6 ('/export/home/oracle/product/10.2.0/oradata/dgdb1/redo06.log') size 50M;

SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 7 ('/export/home/oracle/product/10.2.0/oradata/dgdb1/redo07.log') size 50M;

--开启服务(standby端):

SQL> alter database recover managed standby database disconnect from session;

--测试服务是否正常

--standby端(看归档日志号):

SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

--primary端(强制一个日志切换):

SQL> alter system switch logfile;

--standby端(看归档日志号):

SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

--standby端(看应用归档日志的号):

SQL> SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

--实现primary、standby的切换:

--primary端:

SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

--primary端(上一步的结果必须是”TO STANDBY”才可以)

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;

--OR(上一步结果为”SESSIONS ACTIVE”,且解决不掉)

SQL>ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;

--Primary端:

SQL> SHUTDOWN IMMEDIATE;

SQL> STARTUP MOUNT;

--standby端:

SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

--standby端(上一步的结果必须是”TO STANDBY”才可以):

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

--OR(上一步结果为”SESSIONS ACTIVE”,且解决不掉)

SQL>ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;

--打开新的primary:

SQL>ALTER DATABASE OPEN;

--OR(最后一次启动后以read only模式打开过)

SQL> SHUTDOWN IMMEDIATE;

SQL> STARTUP;

--在新standby上重新启动log apply services(如果必要):

SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE;

--OR(后台模式 )

SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;

--OR(实时应用redo)

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE;

--新primary端(开始发送redo 数据到新standby端):

SQL> ALTER SYSTEM SWITCH LOGFILE;

文章评论

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值