oracle11g高可用,oracle11g 搭建DG环境总结

本帖最后由 zhofly 于 2016-6-24 23:19 编辑

测试环境为:两台服务器配置一样:Oracle Linux Server release 6.5  X86_64, DB  11.2.0.4.0

前提环境:一台已经安装好数据库软件并创建数据库实例的服务器

另一台也就是备库,只安装了数据库软件,空实例。

安装环境与创建数据库这里就不用说了,很简单的。

整个环境为成4个步骤:

1,主备(gydg)修改

2,备库(yzdg)修改

3,主备duplicate数据库

4,测试DG是否成功

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

1.1 查看数据库是否在归档与是否强制LOGGING模式。

SQL> select log_mode,force_logging from v$database;

LOG_MODE     FOR

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

ARCHIVELOG   NO

SQL> ALTER DATABASE FORCE LOGGING;

Database altered.

1.2 查看数据库的日志组个数与大小,因为我们创建standby日志组的个数是原日志组个数+1再与thread的积,size不能小于原日志文件的大小。

SQL> select group#,bytes/1024/1024 from v$log;

GROUP# BYTES/1024/1024

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

1              50

2              50

3              50

SQL> select member from v$logfile;

MEMBER

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

/u01/app/oracle/oradata/gydg/redo03.log

/u01/app/oracle/oradata/gydg/redo02.log

/u01/app/oracle/oradata/gydg/redo01.log

1.3 创建standby日志组,位置与原日志组相同的路径。创建完成后查询是否成功

SQL> alter database add standby logfile '/u01/app/oracle/oradata/gydg/standby01.log' size 50m;

Database altered.

SQL> alter database add standby logfile '/u01/app/oracle/oradata/gydg/standby02.log' size 50m;

Database altered.

SQL> alter database add standby logfile '/u01/app/oracle/oradata/gydg/standby03.log' size 50m;

Database altered.

SQL> alter database add standby logfile '/u01/app/oracle/oradata/gydg/standby04.log' size 50m;

Database altered.

SQL> select group#,status,type,member from v$logfile;

GROUP# STATUS  TYPE    MEMBER

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

3         ONLINE  /u01/app/oracle/oradata/gydg/redo03.log

2         ONLINE  /u01/app/oracle/oradata/gydg/redo02.log

1         ONLINE  /u01/app/oracle/oradata/gydg/redo01.log

4         STANDBY /u01/app/oracle/oradata/gydg/standby01.log

5         STANDBY /u01/app/oracle/oradata/gydg/standby02.log

6         STANDBY /u01/app/oracle/oradata/gydg/standby03.log

7         STANDBY /u01/app/oracle/oradata/gydg/standby04.log

1.4 修改相关的参数,与DG的参数就只与几个参数相关,大概就是日志,文件的位置的转换,GAP的处理,其实GAP已经会自动的处理,不过这里我们还是介绍配置FAL_SERVER,FAL_CLIENT参数。

SQL> alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(gydg,yzdg)';

SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/arch/gydg/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=gydg';

SQL> alter system set LOG_ARCHIVE_DEST_2='SERVICE=gydg LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=gydg';

SQL> alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE;

SQL> alter system set FAL_SERVER=yzdg;

SQL> alter system set FAL_CLIENT=gydg;

SQL>alter system set db_file_name_convert='/u01/app/oracle/oradata/gydg/','/u01/app/oracle/oradata/yzdg/' scope=spfile;

SQL>alter system set log_file_name_convert='/u01/app/oracle/oradata/logfile/','/u01/app/oracle/oradata/logfile/' scope=spfile;

SQL> create pfile from spfile;

1.5 把dbs下的内容同步到standby主机上面,主要是密码文件与init文件。(如果SID不一样,创建密码文件要保证entries值一致;)

orapwd file=orapwupsh password=123456 entries=5;( 在主库创建密码文件)

$scp initSID.ora orapwSID oracle@192.168.137.99:$ORACLE_HOME/dbs

1.6 配置静态监听

主库:

1、修改/u01/app/oracle/product/11.2.0.4.0/network/admin/listener.ora

[oracle@gydg admin]$ vi listener.ora

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = gydg)

(ORACLE_HOME = /u01/app/oracle/product/11.2.0.4.0)

(SID_NAME = gydg)

)

)

LISTENER =

(DESCRIPTION =

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

)

ADR_BASE_LISTENER = /u01/app/oracle

2、修改 /u01/app/oracle/product/11.2.0.4.0/network/admin/tnsnames.ora

[oracle@gydg admin]$ vi tnsnames.ora

yzdg =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(service_name = yzdg)(UR=A)

)

)

gydg =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(service_name = gydg)(UR=A)

)

)

备库

1、修改/u01/app/oracle/product/11.2.0.4.0/network/admin/listener.ora

[oracle@yzdg admin]$ vi listener.ora

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = yzdg)

(ORACLE_HOME = /u01/app/oracle/product/11.2.0.4.0)

(SID_NAME = yzdg)

)

)

LISTENER =

(DESCRIPTION =

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

)

ADR_BASE_LISTENER = /u01/app/oracle

2、修改 /u01/app/oracle/product/11.2.0.4.0/network/admin/tnsnames.ora

[oracle@yzdg admin]$ vi  tnsnames.ora

yzdg =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(service_name = yzdg)(UR=A)

)

)

gydg =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(service_name = gydg)(UR=A)

)

)

启动主备库的监听

[oracle@yzdg admin]$lsnrctl

LSNRCTL> start

测试监听是否正常

sqlplus sys/oracle@gydg as sysdba

sqlplus sys/oracle@yzdg as sysdba

备库上创建相关文件与修改参数文件

[oracle@yzdg dbs]$ more inityzdg.ora

*.audit_trail='db'

*.compatible='11.2.0.4.0'

*.control_files='/u01/app/oracle/oradata/yzdg/control01.ctl','/u01/app/oracle/fast_recovery_area/yzdg/control02.ctl'

*.db_block_size=8192

*.db_domain=''

*.db_name='gydg'

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

*.db_recovery_file_dest_size=4385144832

*.diagnostic_dest='/u01/app/oracle'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=gydgXDB)'

*.fal_client='YZDG'

*.fal_server='GYDG'

*.log_archive_config='DG_CONFIG=(yzdg,gydg)'

*.log_archive_dest_1='LOCATION=/u01/app/oracle/arch/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=yzdg'

*.log_archive_dest_2='SERVICE=gydg LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=gydg'

*.log_archive_dest_state_1='ENABLE'

*.log_archive_dest_state_2='ENABLE'

*.log_file_name_convert='/u01/app/oracle/oradata/logfile/','/u01/app/oracle/oradata/logfile/'

*.memory_target=1270874112

*.open_cursors=300

*.processes=150

*.remote_login_passwordfile='EXCLUSIVE'

*.undo_tablespace='UNDOTBS1'

*.DB_UNIQUE_NAME='yzdg'

*.db_file_name_convert='/u01/app/oracle/oradata/gydg/','/u01/app/oracle/oradata/yzdg/'

[oracle@gydg admin]$ mkdir -p   /u01/app/oracle/oradata/logfile/              (主备都创建)

[oracle@gydg admin]$ mkdir -p  /u01/app/oracle/fast_recovery_area/yzdg

[oracle@gydg admin]$ mkdir -p /u01/app/oracle/oradata/yzdg/

[oracle@gydg admin]$ mkdir -p /u01/app/oracle/oradata/gydg/

在备库创建spfile,并启动数据库到NOMOUNT

[oracle@yzdg yzdg]$ echo $ORACLE_SID

yzdg

SQL> startup nomount;

SQL> create spfile from pfile;

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

重启主库

SQL> shutdown immediate;

SQL> startup

duplicate开始

在主库上通过rman进行复制备库(注意在这一步之前必须退出备库的所有连接,否则会报错)

rman target sys/123456 auxiliary sys/123456@yzdg

rman>duplicate target database for standby nofilenamecheck from active database ;

把备库启动到open only下面。并recover

SQL> alter database open read only;

SQL> alter database recover managed standby database using current logfile disconnect from session;

查看两边状态:主库

SQL> select database_role,switchover_status from v$database;

DATABASE_ROLE    SWITCHOVER_STATUS

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

PRIMARY          TO STANDBY

备库

SQL> select database_role,switchover_status from v$database;

DATABASE_ROLE    SWITCHOVER_STATUS

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

PHYSICAL STANDBY NOT ALLOWED

注: 备库的SWITCHOVER_STATUS状态为 NOT ALLOWED  是正常的,只有当主库切换为备库时,原备库的状态才会变。

查看两边的sequence# 是否一致

SQL> select max(sequence#) from v$archived_log;

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

下面就是开始测试了。这里我们是用的SCOTT这个用户来做测试,在SCOTT用户下面创建一个表,在备库去查询看是否创建成功,与在主库上面SWIRCH一次日志,看alert中的日志输出内容。

在主库上面做测试

[oracle@11g admin]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.2.0 Production on Fri Sep 7 05:57:41 2012

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

Connected to:

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

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

SQL> alter database set standby to maximize  availability;

Database altered.

SQL> alter user scott identified by oracle;

User altered.

SQL> alter user scott account unlock;

User altered.

SQL> create table scott.test1 as select * from dba_objects;

Table created.

备库上面

SQL> select count(*) from scott.test1;

COUNT(*)

----------

72391

说明已经同步

主库上面刷新日志。

SQL> conn / as sysdba

Connected.

SQL> alter system archive log current;

System altered.

日志

ALTER SYSTEM ARCHIVE LOG

Fri Sep 07 06:04:45 2012

LGWR: Standby redo logfile selected to archive thread 1 sequence 11

LGWR: Standby redo logfile selected for thread 1 sequence 11 for destination LOG_ARCHIVE_DEST_2

Thread 1 advanced to log sequence 11 (LGWR switch)

Current log# 2 seq# 11 mem# 0: /u01/app/oracle/oradata/htz/redo02.log

Fri Sep 07 06:04:48 2012

Archived Log entry 12 added for thread 1 sequence 10 ID 0x6e285e98 dest 1:

备库日志

Standby controlfile consistent with primary

RFS[5]: Selected log 5 for thread 1 sequence 11 dbid 1848107928 branch 793343515

Thu Sep 06 18:40:13 2012

Media Recovery Waiting for thread 1 sequence 11 (in transit)

Recovery of Online Redo Log: Thread 1 Group 5 Seq 11 Reading mem 0

Mem# 0: /u01/app/oracle/oradata/htz/standby02.log

Thu Sep 06 18:40:16 2012

Archived Log entry 5 added for thread 1 sequence 10 ID 0x6e285e98 dest 1:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/349936.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

树的计数(prufer序列 或 purfer序列)

题解 首先我们要知道一条性质,prufer序列中的某个点出现次数为该点在树中度数-1 感性理解一下,其实按照prufer序列求法自己推一下就出来了 设题目里给的度为$d[]$ 先将所有的d-- 然后按照排列组合得出来 这是多重集排列数 首先从n-2中选择d[1]个数是$C_{…

PHP 织梦 帝国那个好,帝国、PHPCMS及织梦对比(十):推荐位功能

网站中发布的文章除了需要按时间、栏目分类、类别调用外,往往需要根据编辑的推荐进行不同的调用,那么CMS自然少不了推荐位功能。一般推荐位的设计都有首页头条、首页幻灯焦点、首页推荐、栏目页推荐、列表页推荐、内容页推荐等,基本可以满足站…

声明对象 创建对象_流利的对象创建

声明对象 创建对象关于此主题的文章很多(绝大多数),但我只是想贡献我的两分钱,并写一篇简短的文章,介绍如何使用Java中的Fluent Object Creation模式或对象构建器实例化Value Objects。 值对象是由其状态(…

shell脚本之shellcode自动提取工具

最近一直在忙着写论文。突然领导又分配任务,帮写个自动提取shellcode的脚本工具。因为之前,我们都是用objdump查看后,把shellcode一个个添加进去,很麻烦,害怕写错。所以说我们写这个工具还是挺有必要的。首先我们要先了…

Apache Kafka流+机器学习(Spark,TensorFlow,H2O.ai)

我于2017年5月开始在Confluent工作,担任技术传播者,专注于围绕开源框架Apache Kafka的主题。 我认为机器学习是当今最热门的流行语之一,因为它可以在任何行业中增加巨大的商业价值。 因此,您还会从我这里收到有关Apache Kafka&…

dmp文件导入11oracle数据库,如何将dmp文件导入到自己的oracle数据库中

1、首先,我们可以先建立自己的一个用户表空间,创建表空间的格式如下:create tablespace test(表空间的名字)datafile D:\oracle\product\10.2.0\userdata\test.dbf (这边可以写成oracle的某个路径下)size 50m (初始大小)autoextend on;(自动…

NOIP模拟测试7「方程的解·visit」

visit 由于一些不可预知的错误导致我一直WA 错误最后说 思路 方案一 假设终点在出发点右上方(这样假设只是为了方便) 假设向左走了a步,向右下了b布,那么相应的我们要向右走ma,向上nb步 总步数t 所以由多重集方案数可得…

jsf绑定bean_JSF –渴望的CDI bean

jsf绑定bean每个人都知道JSF 2中热切的托管bean。 ManagedBean具有eager属性。 如果eager true并且范围是application,那么必须在应用程序启动时而不是在第一次引用该bean时创建此bean。 当您想在应用程序启动期间加载应用程序范围的数据(例如&#xff0…

红旗系统linux忘了开机密码,红旗Linux6.0中忘记了root密码

很久很久以前,用虚拟机安装了red flag6.0windows xp 的双系统,很久很久以后,打开虚拟机red flag系统忘记了密码:在网上搜了下解决办法,转了先,不知管不管用!

在网页中的flash游戏,按方向键浏览器的滚动条会跟着滚动

今天总算把这个困扰我N久的问题给解决了,在我的flash游戏《牧场物语》中有方向键操作,但是在按上下方向键的时候浏览器右边的滚动条跟着滚动,也一上一下的,弄的我头晕,还让不让人活啊,今天终于得到答案了。…

谁最终需要Java模块?

拼图问题为1000。我作为X想要JPMS模块。 如果不是平台开发人员,X是什么? 我的回答是X是人(减去平台开发人员,因为那是一个条件) 。 我们都需要模块系统具有更安全的代码,从而产生更可靠的系统,…

linux 删除带a的文件格式,linux基础命令练习题

2、如何通过命令行重启linux操作系统?shutdown -r now |reboot |init 63、如何在命令行中快速删除光标前的内容?ctrl uctrl k (删除光标之后的内容)5、设置/test/a.txt属主有读写执行权限,属组,有读写,其他账户无权限…

linux安全软件 腾讯,腾讯安全团队发现一存在24年的Linux 0day高危漏洞

腾讯安全团队近日向Linux社区提交了两个Linux X.25套接字漏洞,该漏洞可能造成权限提升,攻击者利用漏洞可能控制整个系统。漏洞风险等级为高,漏洞影响内核版本为2.1.16~5.9.8的Linux系统。目前这些漏洞尚未修复,漏洞细节…

在Salesforce中调用外部系统所提供的的Web Service

这里需要提供外部service所对应的WSDL文件(Salesforce只支持从本地上传),并且提供的WSDL文件有如下两点要求: 1):wsdl 文件只能有一个binding,Salesforce是不支持多个binding的 2)&a…

linux查询日志中页面返回状态码,[linux shell] Shell脚本实现apache日志中的状态码分析...

这篇文章主要介绍了Shell脚本实现apache日志中的状态码分析,本文先是介绍了按天切割日志的方法,然后给出了分析访问状态码的脚本,需要的朋友可以参考下一、首先将apache日志按天切割复制代码 代码如下:vi /etc/httpd/conf/httpd.confErrorLog "|rotatelogs /var/log/httpd…

e2e 自动化集成测试 架构 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (四) Q 反回调...

上一篇文章“e2e 自动化集成测试 架构 京东 商品搜索 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (三) SqlServer数据库的访问” 下面讲一下,对于在写Node.js自动化测试脚本过程中,的编写回调问题&#xff0…

基于比率的路由到旧版和现代应用程序–通过Spring Cloud的Netflix Zuul

从应用程序的旧版本迁移到应用程序的现代化版本时,一个非常普遍的要求是能够将用户缓慢迁移到新应用程序。 在本文中,我将介绍通过Spring Cloud使用对Netflix Zuul的支持编写的这种路由层。 在继续之前,我必须承认,此处演示的大多…

linux查找设备所在分片,Linux设备驱动统一模型解析

soc节点指定了<0x0 0xe0000000 0x00100000>;此属性值指定对于1024KB范围的地址空间,在物理0x0处寻址的子节点映射到物理0xe0000000的父地址。通过这种映射,串行设备节点可以通过0xe0004600地址的加载或存储、0x4600(在…

一个兼容所有浏览器的阻止事件冒泡方法

function stopBubble(event) { //阻止冒泡事件 //取消事件冒泡 var e arguments.callee.caller.arguments[0] || event; //若省略此句,下面的e改为event,IE运行可以,但是其他浏览器就不兼容 if (e && e.stopPropagation) { // this …

linux shell 脚本 supress,《linux Shell 脚本攻略》进阶学习(第一部分)

第二章命令之乐cat 不仅可以读取文件并且连接数据,它还能从标准输入中进行读取要从标准输入中读取,就要使用管道操作符echo Text through stdin | cat - file.txt。这里的-被作为来之stdin 文本的文件名称实例 在file.txt 中写入dfagfmirgjriogjrogijdfg…