oracle 11gdata guard,Oracle 11g Data Guard配置
操作环境说明:
两台服务器使用相同的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配置相关推荐
- Oracle 11g Data Guard环境中的归档管理
在11g里面,随着ASM.RAC.Data Guard(包括Active Data Guard)的成熟,使用RAC+ASM+Data Guard越来越成为一种可靠的.维护简单.稳定的高可用性和容灾保护 ...
- 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 ...
- oralce 11g data guard
前几天大家讨论一个问题,oracle 11g data guard分为哪几种,本来只想到还是物理standby和逻辑standby2种,没想到今天在查阅了oracle 11g的在线文档后发现,实际上载 ...
- Oracle 11g Data Guard 物理备库快速配置指南(下)
第二部分 作者介绍 作者 Jed Walker 是科罗拉多 Centennial Comcast 媒体中心的数据操作经理(Manager of Databse Operation).他从1997年开始 ...
- ORACLE 11G DATA GUARD配置之Dataguard简介
Oracle DataGuard是Oracle自带的数据同步功能,基本原理是将日志文件从原数据库传输到目标数据库,然后在目标数据库上应用这些日志文件,从而使目标数据库与源数据库保持同步,是一种数据库级 ...
- Oracle 11g Data Guard 使用duplicate from active database 创建 standby database
用这种方式来搭建DG ,主库的停机时间很少,只需要重启一下,使参数生效.也可以用这种方法进行DB迁移.DG搭建好,然后把备库激活就可以了. 这样整个迁移中宕机时间也比较短. Oracle 11g的py ...
- oracle 11g Data Guard物理备份库
两台oracle未安装ARC,俺是小白,占时不会玩arc.ADB高手在于分享,俺小白将 下面是Data Guard 主备环境配置过程分享给大家.备份是物理Data Guard 一, 系统:centos ...
- Oracle 11g Data Guard 之逻辑备库角色转换
逻辑备库不复制数据库服务,在进行switchover或者failover时,连接主库服务的中间层将不能连接(因为服务的创建没有被复制),或者连接不正确的版本(因为服务属性的修改没有被复制). Orac ...
- ORACLE 11G Data Guard 角色转换
1,ORACLE Dataguard角色切换 DataGuard已经是现今标准的主流容灾方案,由于日志传递对于网络适应程度强,且可以采用同步实时的传递方式和异步延迟的传递方式,甚至可以成为远程的异地容 ...
最新文章
- 数据结构--二叉树的创建和相关操作
- 解决数据库自增ID的问题
- Eclipse 快捷键(转载)
- javax.websocket.DeploymentException: The path [webScoketServiceBaidu/{appID}] is not valid.
- cname 别名记录 解析过程_云解析是什么?需要购买吗?
- Android开发之实现每隔一段时间触发定时器android定时器
- mysql 日期 时间戳 转换
- ABP入门系列(5)——展现层实现增删改查
- Java 设计模式之Bridge桥接模式
- mysqluuid去除横岗
- ASP.NET CORE的Code Fist后Models更改了怎么办?
- Java中的会话管理– HttpServlet,Cookie,URL重写
- JMS 基本概念、消息结构、确认模式 acknowledgeMode
- java MDC_Java MDC.get方法代碼示例
- UE4蓝图节点不同颜色代表
- AndroidStudio 导出AAB格式上传谷歌提示超过150M 解决方案
- 史上最狠的十二星座分析
- 教你学会u盘重装win10系统,u盘系统盘安装win10
- win10小喇叭出现红叉,解决办法(转)
- DBC系列之使用CANdb++创建DBC(2)
热门文章
- Java Servlet的前100个问题
- REST端点,可使用Apache Camel进行集成
- 如何通过命令终端访问本地/局域网/远程的MySQL数据库_访问数据库_连接数据库_登录数据库
- HH SaaS电商系统的供应商系统设计
- linux pdb创建表空间,ORACLE12C PDB创建默认表空间和用户语句(示例代码)
- java service实例,javaweb后端实例 service
- python中if __name__ == ‘__main__‘:的简单理解
- python聚类分析成绩反思_机器学习python实践——二分K-means聚类
- ibm服务器芯片架构,IBM x366 服务器技术详解
- 服务总线yali测试_服务器的压力测试方法与流程