操作环境说明:

两台服务器使用相同的Redhat 5.5

内核版本为:2.6.18-194.el5

在主库(primary database)中提前安装好了Oracle 11gR2软件,通过DBCA创建了数据库,实例名为PRIMARY

备库(standby database)中只安装了Oracle 11gR2软件,未创建数据库。

本文完整记录基于11g的DG配置

主库配置

1、确认主库开启了archivelog模式,并设置为force logging模式

SYS@PRIMARY>alter database force logging ;

alter database force logging

*

ERROR at line 1:

ORA-12920: database is already in force logging mode

复制代码

2、创建standby controlfile

SYS@PRIMARY>alter database create standby controlfile as '/u01/data/primary/primary/standby.ctl';

Database altered.

复制代码

3、登录到主库,可以了解一下数据文件的信息,之后安全关闭数据库,将全部数据文件拷贝到备库的相应目录下,直接复制目录最简单

SYS@PRIMARY>select name from v$datafile;

NAME

--------------------------------------------------------------------------------

/u01/data/primary/system01.dbf

/u01/data/primary/sysaux01.dbf

/u01/data/primary/undotbs01.dbf

/u01/data/primary/users.dbf

SYS@PRIMARY>show parameter control_files

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

control_files                        string      /u01/data/primary/primary/cont

rol01.ctl, /u01/data/primary/p

rimary/control02.ctl

SYS@PRIMARY>select group#,member from v$logfile;

GROUP# MEMBER

---------- ------------------------------

1 /u01/data/primary/redo01a.rdo

1 /u01/data/primary/redo01b.rdo

2 /u01/data/primary/redo02a.rdo

2 /u01/data/primary/redo02b.rdo

3 /u01/data/primary/redo03a.rdo

3 /u01/data/primary/redo03b.rdo

6 rows selected.

SYS@PRIMARY>shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SYS@PRIMARY>quit

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

[oracle@localhost ~]$ cd /u01/data/

[oracle@localhost data]$ scp -r primary/ 172.26.29.4:/u01/data

oracle@172.26.29.4's password:

system01.dbf                                                                               100%  172MB  34.4MB/s   00:05

redo01b.rdo                                                                                100%  100MB  33.3MB/s   00:03

sysaux01.dbf                                                                               100%  100MB  50.0MB/s   00:02

undotbs01.dbf                                                                              100%  133MB  44.3MB/s   00:03

.......

[oracle@localhost data]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Tue Feb 21 20:54:47 2012

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to an idle instance.

SYS@PRIMARY>startup

ORACLE instance started.

Total System Global Area 1603411968 bytes

Fixed Size                  2213776 bytes

Variable Size             402655344 bytes

Database Buffers         1191182336 bytes

Redo Buffers                7360512 bytes

Database mounted.

Database opened.

复制代码

4、主库修改初始化参数文件

SYS@PRIMARY>create pfile from spfile;

File created.

SYS@PRIMARY>!

复制代码

在pfile后面追加如下这些参数:

参数的含义请查看联机文档。

log_archive_config='dg_config=(primary,standby)'

log_archive_dest_1='location=/u01/data/primary/arc'

log_archive_dest_2='service=standby async valid_for=(all_logfiles,all_roles) db_unique_name=STANDBY'

log_archive_dest_state_1='enable'

log_archive_dest_state_2='enable'

log_archive_format='%t_%s_%r.arc'

log_archive_max_processes=10

log_file_name_convert='/u01/data/primary/arc','/u01/data/primary/arc'

fal_client='PRIMARY'

fal_server='STANDBY'

standby_file_management='auto'

remote_login_passwordfile='exclusive'

这里要注意:

log_archive_dest_2这个参数中db_unique_name的值为备库的db_unique_name,最好完全与备库一致,包括大小写

log_file_name_convert的值中,第一个值为主库的归档日志目录,第二个为备库的归档日志目录

[oracle@localhost dbs]$ cat initPRIMARY.ora

PRIMARY.__db_cache_size=1191182336

PRIMARY.__java_pool_size=16777216

PRIMARY.__large_pool_size=16777216

PRIMARY.__oracle_base='/u01/app'#ORACLE_BASE set from environment

PRIMARY.__pga_aggregate_target=1677721600

PRIMARY.__sga_target=1610612736

PRIMARY.__shared_io_pool_size=0

PRIMARY.__shared_pool_size=369098752

PRIMARY.__streams_pool_size=0

*.compatible='11.2.0'

*.control_files='/u01/data/primary/primary/control01.ctl','/u01/data/primary/primary/control02.ctl'

*.core_dump_dest='/u01/app/oracle/admin/primary/cdump'

*.db_block_size=8192

*.db_name='PRIMARY'

*.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'

*.db_recovery_file_dest_size=53687091200

*.db_unique_name='PRIMARY'

*.fal_client='PRIMARY'

*.fal_server='STANDBY'

*.log_archive_config='dg_config=(primary,standby)'

*.log_archive_dest_1='location=/u01/data/primary/arc'

*.log_archive_dest_2='service=standby async valid_for=(all_logfiles,all_roles) db_unique_name=STANDBY'

*.log_archive_dest_state_1='enable'

*.log_archive_dest_state_2='enable'

*.log_archive_format='%t_%s_%r.arc'

*.log_archive_max_processes=10

*.log_file_name_convert='/u01/data/primary/arc','/u01/data/primary/arc'

*.nls_date_format='YYYY-MM-DD hh24:mi:ss'

*.nls_language='SIMPLIFIED CHINESE'

*.nls_territory='CHINA'

*.open_cursors=300

*.pga_aggregate_target=1669332992

*.processes=1000

*.remote_login_passwordfile='exclusive'

*.sessions=1105

*.sga_target=1610612736

*.standby_file_management='auto'

*.undo_management='AUTO'

*.undo_tablespace='UNDOTBS01'

复制代码

5、主库创建pfile和passwordfile后,拷贝到备库的相同路径下

注意,使用orapwd创建口令文件时,一定要使用ignorecase选项。否则启动备库后,可能会在alert文件中提示ORA-16191错误。这个问题有可能是Oracle 11g中的一个bug,我被他困扰折磨了老半天...

[oracle@localhost data]$ cd $ORACLE_HOME/dbs

[oracle@localhost dbs]$ orapwd file=orapwPRIMARY password=sys force=y ignorecase=y

[oracle@localhost dbs]$ ls

hc_PRIMARY.dat  init.ora         lkPRAMARY  lkTDB1  orapwPRIMARY      orapwtdb1          spfiletdb1.ora

hc_tdb1.dat     initPRIMARY.ora  lkPRIMARY  lkTEST  orapwPRIMARY.bak  spfilePRIMARY.ora

[oracle@localhost dbs]$ scp -r orapwPRIMARY initPRIMARY.ora 172.26.29.4:/u01/app/oracle/product/11.2.0/db_1/dbs

oracle@172.26.29.4's password:

orapwPRIMARY                                                                               100% 1536     1.5KB/s   00:00

initPRIMARY.ora                                                                            100% 1496     1.5KB/s   00:00

复制代码

5、备库获取数据文件,初始化参数文件和口令文件后,对初始化参数文件进行相应修改

需要修改的参数如下:

db_unique_name=STANDBY

log_archive_dest_2='service=primary async valid_for=(all_logfiles,all_roles) db_unique_name=PRIMARY'

fal_server=primary

fal_client=standby

control_files='/u01/data/primary/primary/standby.ctl' 此处使用standby controlfile

简单来说,就是将这几个参数依据备库,与主库做一个映像般的调换

[oracle@tam dbs]$ cat initPRIMARY.ora

PRIMARY.__db_cache_size=1191182336

PRIMARY.__java_pool_size=16777216

PRIMARY.__large_pool_size=16777216

PRIMARY.__oracle_base='/u01/app'#ORACLE_BASE set from environment

PRIMARY.__pga_aggregate_target=1677721600

PRIMARY.__sga_target=1610612736

PRIMARY.__shared_io_pool_size=0

PRIMARY.__shared_pool_size=369098752

PRIMARY.__streams_pool_size=0

*.compatible='11.2.0'

*.control_files='/u01/data/primary/primary/standby.ctl'

*.core_dump_dest='/u01/app/oracle/admin/primary/cdump'

*.db_block_size=8192

*.db_name='PRIMARY'

*.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'

*.db_recovery_file_dest_size=53687091200

*.db_unique_name='STANDBY'

*.fal_client='STANDBY'

*.fal_server='PRIMARY'

*.log_archive_config='dg_config=(primary,standby)'

*.log_archive_dest_1='location=/u01/data/primary/arc'

*.log_archive_dest_2='service=primary async valid_for=(all_logfiles,all_roles) db_unique_name=PRIMARY'

*.log_archive_dest_state_1='enable'

*.log_archive_dest_state_2='enable'

*.log_archive_format='%t_%s_%r.arc'

*.log_archive_max_processes=10

*.log_file_name_convert='/u01/data/primary/arc','/u01/data/primary/arc'

*.nls_date_format='YYYY-MM-DD hh24:mi:ss'

*.nls_language='SIMPLIFIED CHINESE'

*.nls_territory='CHINA'

*.open_cursors=300

*.pga_aggregate_target=1669332992

*.processes=1000

*.remote_login_passwordfile='exclusive'

*.sessions=1105

*.sga_target=1610612736

*.standby_file_management='auto'

*.undo_management='AUTO'

*.undo_tablespace='UNDOTBS01'

复制代码

6、配置主库和备库中的监听服务和tnsnames.ora

主库:注意listener.ora文件中的SID_NAME是大小写敏感的,笔者因为忽略了这个问题,导致配置监听和启动监听成功后,一致不能远程登录...

[oracle@localhost admin]$ cat listener.ora

# listener.ora Network Configuration File: /u01/app/oracle/product/10.2.0.5/db_1/network/admin/listener.ora

# Generated by Oracle configuration tools.

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)

(PROGRAM = extproc)

)

(SID_DESC =

(SID_NAME = PRIMARY)

(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)

(GLOBAL_DBNAME = primary)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

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

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

)

)

[oracle@localhost admin]$ cat tnsnames.ora

names.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora

# Generated by Oracle configuration tools.

STANDBY =

(DESCRIPTION =

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

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = primary)

)

)

EXTPROC_CONNECTION_DATA =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(SID = PLSExtProc)

(PRESENTATION = RO)

)

)

复制代码

备库

[oracle@tam admin]$ cat listener.ora

# listener.ora Network Configuration File: /u01/app/oracle/product/10.2.0.5/db_1/network/admin/listener.ora

# Generated by Oracle configuration tools.

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)

(PROGRAM = extproc)

)

(SID_DESC =

(SID_NAME = PRIMARY)

(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)

(GLOBAL_DBNAME = primary)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

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

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

)

)

[oracle@tam admin]$ cat tnsnames.ora

# Generated by Oracle configuration tools.

PRIMARY =

(DESCRIPTION =

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

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = primary)

)

)

复制代码

配置完成后,尝试从两台服务器以sysdba身份互相访问

主库:

[oracle@localhost admin]$ sqlplus sys/sys@standby as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Wed Feb 22 10:16:26 2012

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to an idle instance.

复制代码

备库:

[oracle@tam admin]$ sqlplus sys/sys@primary as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Wed Feb 22 10:15:17 2012

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

复制代码

7、启动备库

[oracle@tam dbs]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Wed Feb 22 10:19:00 2012

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to an idle instance.

SYS@PRIMARY>startup nomount

ORACLE instance started.

Total System Global Area 1603411968 bytes

Fixed Size                  2213776 bytes

Variable Size             402655344 bytes

Database Buffers         1191182336 bytes

Redo Buffers                7360512 bytes

SYS@PRIMARY>alter database mount standby database;

Database altered.

SYS@PRIMARY>alter database recover managed standby database disconnect from session;

Database altered.

复制代码

8、验证

主库中创建一个表,并插入若凡数据后,备库中能够同步出这些数据,则认为DG实施成功

主库:

[oracle@localhost admin]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Wed Feb 22 10:28:14 2012

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

SYS@PRIMARY>create table test(id number);

Table created.

SYS@PRIMARY>for i in 1..10 loop

SP2-0734: unknown command beginning "for i in 1..." - rest of line ignored.

SYS@PRIMARY>begin

2  for i in 1..10 loop

3  insert into test values(i);

4  end loop;

5  commit;

6  end;

7  /

PL/SQL procedure successfully completed.

SYS@PRIMARY>select * from test;

ID

----------

1

2

3

4

5

6

7

8

9

10

10 rows selected.

SYS@PRIMARY>alter system switch logfile;

System altered.

SYS@PRIMARY>/

System altered.

复制代码

备库:

SYS@PRIMARY>select name,database_role from v$database;

NAME      DATABASE_ROLE

--------- ----------------

PRIMARY   PHYSICAL STANDBY

SYS@PRIMARY>select sequence#,first_time,next_time from v$archived_log;

SEQUENCE# FIRST_TIME   NEXT_TIME

---------- ------------ ------------

15 20-FEB-12    20-FEB-12

8 20-FEB-12    20-FEB-12

10 20-FEB-12    20-FEB-12

9 20-FEB-12    20-FEB-12

11 20-FEB-12    20-FEB-12

13 20-FEB-12    20-FEB-12

7 20-FEB-12    20-FEB-12

14 20-FEB-12    20-FEB-12

12 20-FEB-12    20-FEB-12

18 21-FEB-12    21-FEB-12

20 21-FEB-12    21-FEB-12

......

SYS@PRIMARY>alter database recover managed standby database cancel;

Database altered.

SYS@PRIMARY>alter database open read only;

Database altered.

SYS@PRIMARY>select * from test;

ID

----------

1

2

3

4

5

6

7

8

9

10

10 rows selected.

复制代码

至此,配置完毕

总结

想要玩好oracle的Data Guard、RAC、Golden Gate等高端软件,主要在于细心与耐心。

所谓细心,就是认真读取文档,认真配置各项参数和文件;所谓耐心,就是出现错误后,要认真预读alert log好trace文件,找到错误原因,即使去网上求助,一项一项排除。笔者首次不是DG时,确实遇到不少问题,就是靠逐步啃日志文件解决的

摘自 所好者道也

oracle 11gdata guard,Oracle 11g Data Guard配置相关推荐

  1. Oracle 11g Data Guard环境中的归档管理

    在11g里面,随着ASM.RAC.Data Guard(包括Active Data Guard)的成熟,使用RAC+ASM+Data Guard越来越成为一种可靠的.维护简单.稳定的高可用性和容灾保护 ...

  2. Steps to configure Oracle 11g Data Guard Physical Standby – Active Data Guard Part-I

    2019独角兽企业重金招聘Python工程师标准>>> Steps to configure Oracle 11g Data Guard Physical Standby – Act ...

  3. oralce 11g data guard

    前几天大家讨论一个问题,oracle 11g data guard分为哪几种,本来只想到还是物理standby和逻辑standby2种,没想到今天在查阅了oracle 11g的在线文档后发现,实际上载 ...

  4. Oracle 11g Data Guard 物理备库快速配置指南(下)

    第二部分 作者介绍 作者 Jed Walker 是科罗拉多 Centennial Comcast 媒体中心的数据操作经理(Manager of Databse Operation).他从1997年开始 ...

  5. ORACLE 11G DATA GUARD配置之Dataguard简介

    Oracle DataGuard是Oracle自带的数据同步功能,基本原理是将日志文件从原数据库传输到目标数据库,然后在目标数据库上应用这些日志文件,从而使目标数据库与源数据库保持同步,是一种数据库级 ...

  6. Oracle 11g Data Guard 使用duplicate from active database 创建 standby database

    用这种方式来搭建DG ,主库的停机时间很少,只需要重启一下,使参数生效.也可以用这种方法进行DB迁移.DG搭建好,然后把备库激活就可以了. 这样整个迁移中宕机时间也比较短. Oracle 11g的py ...

  7. oracle 11g Data Guard物理备份库

    两台oracle未安装ARC,俺是小白,占时不会玩arc.ADB高手在于分享,俺小白将 下面是Data Guard 主备环境配置过程分享给大家.备份是物理Data Guard 一, 系统:centos ...

  8. Oracle 11g Data Guard 之逻辑备库角色转换

    逻辑备库不复制数据库服务,在进行switchover或者failover时,连接主库服务的中间层将不能连接(因为服务的创建没有被复制),或者连接不正确的版本(因为服务属性的修改没有被复制). Orac ...

  9. ORACLE 11G Data Guard 角色转换

    1,ORACLE Dataguard角色切换 DataGuard已经是现今标准的主流容灾方案,由于日志传递对于网络适应程度强,且可以采用同步实时的传递方式和异步延迟的传递方式,甚至可以成为远程的异地容 ...

最新文章

  1. 数据结构--二叉树的创建和相关操作
  2. 解决数据库自增ID的问题
  3. Eclipse 快捷键(转载)
  4. javax.websocket.DeploymentException: The path [webScoketServiceBaidu/{appID}] is not valid.
  5. cname 别名记录 解析过程_云解析是什么?需要购买吗?
  6. Android开发之实现每隔一段时间触发定时器android定时器
  7. mysql 日期 时间戳 转换
  8. ABP入门系列(5)——展现层实现增删改查
  9. Java 设计模式之Bridge桥接模式
  10. mysqluuid去除横岗
  11. ASP.NET CORE的Code Fist后Models更改了怎么办?
  12. Java中的会话管理– HttpServlet,Cookie,URL重写
  13. JMS 基本概念、消息结构、确认模式 acknowledgeMode
  14. java MDC_Java MDC.get方法代碼示例
  15. UE4蓝图节点不同颜色代表
  16. AndroidStudio 导出AAB格式上传谷歌提示超过150M 解决方案
  17. 史上最狠的十二星座分析
  18. 教你学会u盘重装win10系统,u盘系统盘安装win10
  19. win10小喇叭出现红叉,解决办法(转)
  20. DBC系列之使用CANdb++创建DBC(2)

热门文章

  1. Java Servlet的前100个问题
  2. REST端点,可使用Apache Camel进行集成
  3. 如何通过命令终端访问本地/局域网/远程的MySQL数据库_访问数据库_连接数据库_登录数据库
  4. HH SaaS电商系统的供应商系统设计
  5. linux pdb创建表空间,ORACLE12C PDB创建默认表空间和用户语句(示例代码)
  6. java service实例,javaweb后端实例 service
  7. python中if __name__ == ‘__main__‘:的简单理解
  8. python聚类分析成绩反思_机器学习python实践——二分K-means聚类
  9. ibm服务器芯片架构,IBM x366 服务器技术详解
  10. 服务总线yali测试_服务器的压力测试方法与流程