文档章节

EBS测试环境DataGuard配置

小强斋太
 小强斋太
发布于 2016/11/09 20:08
字数 1535
阅读 73
收藏 0

1、环境信息

primary数据库(必须运行在归档模式)

ip

127.71.28.71

sid

test

db_unique_name

test

log_mode

archivelog

force_logging

no

standby数据库

ip

127.71.48.38

sid

ebstest_stby

db_unique_name

db_standby

设置提示,以区分操作的位置

primary数据库

set SQLPROMPT Primary>

standby数据库

set SQLPROMPT StandBy>

2、Standby端新建数据库用户

当前的环境中已经有dba用户组,因此只新建用户ebstest_standby即可

[wangshengzhuang@ebstest ~]$ sudo useradd -g dba ebstest_standby

3、拷贝ORACLE_HOME目录至备库服务器

在StandBy上创建如下oracle软件父目录

[ebstest_standby@ebstest ebstest_standby]$ mkdir -p /ebstest/ebstest_standby

压缩Primary的数据库目录(排除trace和audit目录,大约需要7分钟)

tar -zcvf  ebstest_oracle_home_20151225.tar.gz  /TEST/db/tech_st  --exclude  /TEST/db/tech_st/11.1.0/admin  --exclude /TEST/db/tech_st/11.1.0/rdbms/audit 

传送上面生成的压缩文件至Standby服务器

[oratest@erptest db]$ scp ebstest_oracle_home_20151225.tar.gz  ebstest_standby@127.71.48.38:/ebstest/ebstest_standby

在Standby服务器解压

[ebstest_standby@ebstest ebstest_standby]$ tar -zxvf ebstest_oracle_home_20151225.tar.gz

4、standby端创建数据库相关目录

查询primary端的目录

SQL> select name ,value from v$parameter  where name in ('audit_file_dest','background_dump_dest','control_files','core_dump_dest','user_dump_dest') ORDER BY name ASC;

NAME                           VALUE
------------------------------ --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
audit_file_dest                /TEST/db/tech_st/11.1.0/rdbms/audit
background_dump_dest           /TEST/db/tech_st/11.1.0/admin/TEST_erptest/diag/rdbms/test/TEST/trace
control_files                  /TEST/db/apps_st/data/cntrl01.dbf, /TEST/db/apps_st/data/cntrl02.dbf, /TEST/db/apps_st/data/cntrl03.dbf
core_dump_dest                 /TEST/db/tech_st/11.1.0/admin/TEST_erptest/diag/rdbms/test/TEST/cdump
user_dump_dest                 /TEST/db/tech_st/11.1.0/admin/TEST_erptest/diag/rdbms/test/TEST/trace

对应的standby端对应的目录

audit_file_dest /ebstest/ebstest_standby/TEST/db/tech_st/11.1.0/rdbms/audit
background_dump_dest /ebstest/ebstest_standby/TEST/db/tech_st/11.1.0/admin/TEST_erptest/diag/rdbms/test/TEST/trace
core_dump_dest /ebstest/ebstest_standby/TEST/db/tech_st/11.1.0/admin/TEST_erptest/diag/rdbms/test/TEST/cdump
user_dump_dest /ebstest/ebstest_standby/TEST/db/tech_st/11.1.0/admin/TEST_erptest/diag/rdbms/test/TEST/trace
control_files /ebstest/ebstest_standby/TEST/db/apps_st/data/cntrl01.dbf, /ebstest/ebstest_standby/TEST/db/apps_st/data/cntrl02.dbf,
/ebstest/ebstest_standby /TEST/db/apps_st/data/cntrl03.dbf

创建上述目录

[ebstest_standby@ebstest ebstest_standby]$ mkdir -p /ebstest/ebstest_standby/TEST/db/tech_st/11.1.0/rdbms/audit
[ebstest_standby@ebstest ebstest_standby]$ mkdir -p /ebstest/ebstest_standby/TEST/db/tech_st/11.1.0/admin/TEST_erptest/diag/rdbms/test/TEST/trace
[ebstest_standby@ebstest ebstest_standby]$ mkdir -p /ebstest/ebstest_standby/TEST/db/tech_st/11.1.0/admin/TEST_erptest/diag/rdbms/test/TEST/cdump
[ebstest_standby@ebstest db]$ mkdir -p /ebstest/ebstest_standby/TEST/db/apps_st/data/

5、修改standby环境变量

.bash_profile中添加:

. /ebstest/ebstest_standby/TEST/db/tech_st/11.1.0/TEST_erptest.env

修改/ebstest/ebstest_standby/TEST/db/tech_st/11.1.0/TEST_erptest.env

  • 将所有的/TEST/db/tech_st/11.1.0/ 替换为/ebstest/ebstest_standby/TEST/db/tech_st/11.1.0/  一共21处
  • 设置ORACLE_SID为EBSTEST_STBY

确认结果

[ebstest_standby@ebstest ~]$ source .bash_profile
[ebstest_standby@ebstest ~]$ echo $ORACLE_SID
EBSTEST_STBY

6、密码文件

直接从Primary数据库复制密钥文件过来

[oratest@erptest dbs]$ pwd
/TEST/db/tech_st/11.1.0/dbs
[oratest@erptest dbs]$ scp orapwTEST  ebstest_standby@127.71.48.38:/ebstest/ebstest_standby/TEST/db/tech_st/11.1.0/dbs

改名

[ebstest_standby@ebstest dbs]$ mv orapwTEST  orapwEBSTEST_STBY

7、修改Primary端spfile文件参数

查询Primary库的db_unique_name

SQL> show parameter db_unique

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_unique_name                       string      TEST

修改Primay端spfile参数值(因为不要求switchover 很多参数值未设置)

-------为了不重启,沿用上面的db_unique_name   
----alter system set DB_UNIQUE_NAME=TEST scope=spfile;
alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(TEST,db_standby)'
alter system set LOG_ARCHIVE_DEST_2='SERVICE=tns_standby LGWR ASYNC NOAFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=db_standby'
alter system set LOG_ARCHIVE_DEST_STATE_2=DEFER 

8、生成StandBy端spfile文件

首先在primary端生成pfile文件

SQL>  create pfile ='/TEST/initEBSTEST_STBY.ora'  from spfile;

File created.

拷贝到备库

[oratest@erptest TEST]$ scp initEBSTEST_STBY.ora  ebstest_standby@127.71.48.38:/ebstest/ebstest_standby/TEST/db/tech_st/11.1.0/dbs ebstest_standby@127.71.48.38's password:
initEBSTEST_STANDBY.ora                                               100% 2770     2.7KB/s   00:00

修改如下

  1. 内存参数中的TEST 改为 EBSTEST_STBY
  2. 修改pfile中各种文件的路径
  3. 修改下面dataguard涉及的参数:
*.db_unique_name='db_standby'
*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(TEST,db_standby)'
*.log_archive_dest_2='SERVICE=tns_primary LGWR ASYNC NOAFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=TEST'
*.log_archive_dest_state_2='ENABLE'

*.DB_FILE_NAME_CONVERT= '/TEST/db/apps_st/data/','/ebstest/ebstest_standby/TEST/db/apps_st/data/' 
*.LOG_FILE_NAME_CONVERT='/TEST/db/apps_st/data/','/ebstest/ebstest_standby/TEST/db/apps_st/data/'


*.FAL_SERVER=tns_primary 
*.FAL_CLIENT=tns_standby
*.STANDBY_FILE_MANAGEMENT=AUTO

通过复制的pfile创建Standby数据库的spfile

StandBy> create spfile from pfile;

File created.

9、Standby端配置监听

查看listener.ora位置(.env中配置的)

[ebstest_standby@ebstest ebstest_standby]$ echo $TNS_ADMIN
/ebstest/ebstest_standby/TEST/db/tech_st/11.1.0/network/admin/TEST_erptest

standby端配置静态监听(服务名GLOBAL_DBNAME = StandBy,后面配置tns会用到)

TESTSTBY =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.71.48.38)(PORT = 1529))
    )
  )


SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = StandBy)
      (ORACLE_HOME =/ebstest/ebstest_standby/TEST/db/tech_st/11.1.0)
      (SID_NAME = EBSTEST_STBY)
    )
  )

启动监听

[ebstest_standby@ebstest TEST_erptest]$ lsnrctl start

查看监听该状态

[ebstest_standby@ebstest ebstest_standby]$ lsnrctl status

10、配置网络服务名tns,并测试互通性

primary端和standby端配置tns

tns_primary =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.71.28.71)(PORT = 1529))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = TEST)
    )
  )


tns_standby =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.71.48.38)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME =StandBy )
    )
  )

测试

tnsping tns_primary
tnsping tns_standby

11、duplicate standby

备库Standby启动到nomount

SQL> startup nomount
ORACLE instance started.

Total System Global Area 3290345472 bytes
Fixed Size            2217832 bytes
Variable Size         1795164312 bytes
Database Buffers     1476395008 bytes
Redo Buffers           16568320 bytes

rman连接到两个数据库

[oratest@erptest ~]$ rman target sys/yourpassword@tns_primary auxiliary sys/yourpassword@tns_standby

开始复制(确保备库有足够的空间,否则会报错)

RMAN> DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE DORECOVER NOFILENAMECHECK;

复制完以后大概1T左右,大约需要3个多小时

[ebstest_standby@ebstest ebstest_standby]$ du -hs TEST/
988G    TEST/

12、添加Standby REDO log

查看主库的redo log的大小

SQL> select * from v$logfile;

GROUP# STATUS     TYPE       MEMBER                                             IS_
------ ---------- ---------- -------------------------------------------------- ---
     3            ONLINE     /TEST/db/apps_st/data/log03b.dbf                   NO
     3            ONLINE     /TEST/db/apps_st/data/log03a.dbf                   NO
     2            ONLINE     /TEST/db/apps_st/data/log02b.dbf                   NO
     2            ONLINE     /TEST/db/apps_st/data/log02a.dbf                   NO
     1            ONLINE     /TEST/db/apps_st/data/log01a.dbf                   NO
     1            ONLINE     /TEST/db/apps_st/data/log01b.dbf                   NO

6 rows selected.

SQL> select * from v$log;

GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS     FIRST_CHANGE# FIRST_TIME
------ ---------- ---------- ---------- ---------- --- ---------- ------------- ------------------
     1          1       1288 1048576000          2 NO  CURRENT       5.9797E+12 04-JAN-16
     2          1       1286 1048576000          2 YES INACTIVE      5.9797E+12 04-JAN-16
     3          1       1287 2147483648          2 YES INACTIVE      5.9797E+12 04-JAN-16

当前有三组、每组1个member、大小为1000M, 我们增加四组,每组2个member,大小为1000M

ALTER DATABASE ADD STANDBY LOGFILE GROUP
4
('/ebstest/ebstest_standby/TEST/db/apps_st/data/stbyredolog4a.dbf','/ebstest/ebstest_standby/TEST/db/apps_st/data/stbyredolog4b.dbf') SIZE 1000 M; 
 
ALTER DATABASE ADD STANDBY   LOGFILE GROUP 5('/ebstest/ebstest_standby/TEST/db/apps_st/data/stbyredolog5a.dbf','/ebstest/ebstest_standby/TEST/db/apps_st/data/stbyredolog5b.dbf') SIZE  1000 M;
ALTER DATABASE ADD STANDBY   LOGFILE GROUP 6('/ebstest/ebstest_standby/TEST/db/apps_st/data/stbyredolog6a.dbf','/ebstest/ebstest_standby/TEST/db/apps_st/data/stbyredolog6b.dbf') SIZE  1000 M;
ALTER DATABASE ADD STANDBY   LOGFILE GROUP 7('/ebstest/ebstest_standby/TEST/db/apps_st/data/stbyredolog7a.dbf','/ebstest/ebstest_standby/TEST/db/apps_st/data/stbyredolog7b.dbf') SIZE  1000 M;

13、启用primary库的日志传送

Primary>show parameter LOG_ARCHIVE_DEST_STATE_2

NAME                     TYPE            VALUE
------------------------------------ ---------------------- ------------------------------
log_archive_dest_state_2         string            DEFER
log_archive_dest_state_20         string            enable
log_archive_dest_state_21         string            enable
log_archive_dest_state_22         string            enable
log_archive_dest_state_23         string            enable
log_archive_dest_state_24         string            enable
log_archive_dest_state_25         string            enable
log_archive_dest_state_26         string            enable
log_archive_dest_state_27         string            enable
log_archive_dest_state_28         string            enable
log_archive_dest_state_29         string            enable
Primary>alter system set LOG_ARCHIVE_DEST_STATE_2=ENABLE;

System altered.

14、验证&测试

主库插入一条数据

SQL> INSERT INTO "SCOTT"."DEPT" ("DEPTNO", "DNAME", "LOC") VALUES ('13', 'OPERATIONS', 'OPERATIONS');

1 row created.

SQL> commit;

Commit complete.

备库启动实时应用

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

Database altered.

查询备库

SQL> select * from scott.dept;

    DEPTNO DNAME          LOC
---------- -------------- -------------
         10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON
        13 OPERATIONS OPERATIONS
        15 OPERATIONS     OPERATIONS

本文转载自:http://www.cnblogs.com/xqzt/p/5099193.html

共有 人打赏支持
小强斋太
粉丝 0
博文 181
码字总数 0
作品 0
广州
高级复制(Advanced Replication),流复制(Stream Replication),备库(Dataguard)区别

Oracle备份功能包括: 高级复制(Advanced Replication) 流复制(Streams Replication) 备库(Dataguard) 一 dataguard: dataguard在高可用及容灾方面一般是dba的首选,毕竟dataguard在这...

长平狐
2013/09/17
143
0
Tomcat+redis+nginx配置

为客户开发的一个绩效系统,采用了java web的开发方式,使用了一些spring mvc, mybatis之类的框架。相比于oracle ebs的二次开发,这种开发更加灵活,虽然和ebs集成的时候遇到一些问题,但是最...

五大三粗
2015/11/25
8.8K
5
实战dataguard主从切换

前言: 众所周知DataGuard一般的切换分成两种,一种是系统正常的情况下的切换这种方式为:switchover是无损切换,不会丢失数据;另外一种方式属于灾难情况下的切换,这种情况下一般主库已经启...

猎人笔记
2014/03/26
0
0
log_file_name_convert配置错误引起的问题

环境: OS:Red Hat Linux As5 DB:10.2.0.1 刚部署了一个物理Dataguard环境,主库的数据文件(控制文件,数据文件,日志文件)目录是'/u01/app/oracle/oradata/oracl/',备库的数据文件目录是'/u02/a...

li_xiqing
06/29
0
0
扫盲!金融项目RAC整体迁移“避坑”实施方案

通过架设ActivePhysical Standby DataGuard,将现有2-Node 11gR2 RAC数据库迁移到新硬件设备(更换服务器和存储),且生产环境又增加一套双节点备库。 实施过程中我们用Orion做了IO性能测试,也...

郭军伟
2016/03/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

javascript source map 的使用

之前发现VS.NET会为压缩的js文添加一个与文件名同名的.map文件,一直没有搞懂他是用来做什么的,直接删除掉运行时浏览器又会报错,后来google了一直才真正搞懂了这个小小的map文件背后的巨大...

粒子数反转
昨天
0
0
谈谈如何学Linux和它在如今社会的影响

昨天,还在农耕脑力社会,今天已经人工智能技术、大数据、信息技术的科技社会了,高速开展并迅速浸透到当今科技社会的各个方面,Linux日益成为人们信息时代的到来,更加考验我们对信息的处理程...

linux-tao
昨天
0
0
学习设计模式——中介者模式

1. 认识中介者模式 1. 定义:用一个中介对象来封装一系列的对象交互行为,中介者使得各对象不需要显式的互相引用,从而使其松散耦合,独立的改变他们之间的交互。 2. 结构: Mediator:中介者...

江左煤郎
昨天
0
0
深入理解Plasma(1):Plasma 框架

这一系列文章将围绕以太坊的二层扩容框架,介绍其基本运行原理,具体操作细节,安全性讨论以及未来研究方向等。本篇文章作为开篇,主要目的是理解 Plasma 框架。 Plasma 作为以太坊的二层扩容...

HiBlock
昨天
0
0
Java 8 日期 示例

Java 8 推出了全新的日期时间API。Java处理日期、日历和时间的方式一直为社区所诟病,将 java.util.Date设定为可变类型,以及SimpleDateFormat的非线程安全使其应用非常受限。Java也意识到需...

阿刚ABC
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部