环境现状:

两台虚拟主机A和B:

1. A机器已安装ASM存储的Oracle 11g 实例

2. B机器已安装系统,配置以及目录结构均和A机器保持一致

/u01 + 3块ASM盘

DG部署规划:

primary

standby

主机

JY-DB

JY-DBS

db_name

jyzhao

jyzhao

db_unique_name

jyzhao

jyzhao_s

instance_name

jyzhao

jyzhao_s

存储

+DATA1

+DATA1

归档

/u01/app/oracle/product/11.2.0/db_1/dbs/arch

/u01/app/oracle/product/11.2.0/db_1/dbs/arch

DGMGRL

jyzhao_dgmgrl

jyzhao_s_dgmgrl

GRID_HOME

/u01/app/11.2.0/grid

/u01/app/11.2.0/grid

ORACLE_HOME

/u01/app/oracle/product/11.2.0/db_1

/u01/app/oracle/product/11.2.0/db_1

一、前期准备

1.1. A机器打包拷贝/u01/app到B机器(包含了grid和oracle软件安装目录)

# tar -zcvf app.tar.gz app

# scp app.tar.gz 192.168.99.160:/u01/

root@192.168.99.160's password:

app.tar.gz                                                                                                                          100% 3564MB  54.8MB/s  01:05

B机器解压,解压前确保第二步操作已完成。

# pwd

/u01

[root@JY-DBS u01]# ls

app.tar.gz  lost+found

[root@JY-DBS u01]# tar -zxvf app.tar.gz

解压完成后,检查权限是正确的

# ls -lh

total 3.5G

drwxrwxr-x. 7 oracle oinstall 4.0K Mar 13 14:47 app

-rw-r--r--. 1 root  root    3.5G Mar 15 22:28 app.tar.gz

1.2. B机器配置用户,系统参数,安装依赖包,用户环境变量,ASM磁盘

配置用户,系统参数,安装依赖包,用户环境变量

注:在第一步解压前做完,会发现权限都是正确的不用费心再改

root用户执行脚本

# /u01/app/oraInventory/orainstRoot.sh

# /u01/app/11.2.0/grid/root.sh

# /u01/app/11.2.0/grid/perl/bin/perl -I/u01/app/11.2.0/grid/perl/lib -I/u01/app/11.2.0/grid/crs/install /u01/app/11.2.0/grid/crs/install/roothas.pl

配置has

需要建立asm磁盘组

环境变量:

vi $ORACLE_HOME/dbs/init+ASM.ora

*.asm_diskstring='/dev/mapper/ora*'

*.asm_power_limit=1

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

*.instance_type='asm'

*.large_pool_size=12M

*.remote_login_passwordfile='EXCLUSIVE'

$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Mon Mar 16 10:51:02 2015

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

Connected to an idle instance.

SQL> startup

ORA-01078: failure in processing system parameters

ORA-29701: unable to connect to Cluster Synchronization Service

$  crsctl stat res -t

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

NAME          TARGET  STATE        SERVER                  STATE_DETAILS

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

Local Resources

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

ora.ons

OFFLINE OFFLINE      jy-dbs

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

Cluster Resources

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

ora.cssd

1        OFFLINE OFFLINE

ora.diskmon

1        OFFLINE OFFLINE

ora.evmd

1        ONLINE  ONLINE      jy-dbs

$  crsctl start resource ora.cssd

CRS-2672: Attempting to start 'ora.cssd' on 'jy-dbs'

CRS-2672: Attempting to start 'ora.diskmon' on 'jy-dbs'

CRS-2676: Start of 'ora.diskmon' on 'jy-dbs' succeeded

CRS-2676: Start of 'ora.cssd' on 'jy-dbs' succeeded

$ crsctl status res -t

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

NAME          TARGET  STATE        SERVER                  STATE_DETAILS

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

Local Resources

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

ora.ons

OFFLINE OFFLINE      jy-dbs

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

Cluster Resources

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

ora.cssd

1        ONLINE  ONLINE      jy-dbs

ora.diskmon

1        OFFLINE OFFLINE

ora.evmd

1        ONLINE  ONLINE      jy-dbs

$ sqlplus / as sysasm

SQL*Plus: Release 11.2.0.4.0 Production on Mon Mar 16 10:55:39 2015

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

Connected to an idle instance.

SQL> startup

ASM instance started

Total System Global Area 1135747072 bytes

Fixed Size                  2260728 bytes

Variable Size            1108320520 bytes

ASM Cache                  25165824 bytes

ORA-15110: no diskgroups mounted

SQL> select status from v$instance;

STATUS

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

STARTED

col description for a35

col process for a35

set linesize 120

select sid, serial#, process, name, description from v$session join v$bgprocess using(paddr);

col path for a45

col name for a30

select group_number, disk_number, mount_status, name, path from v$asm_disk order by group_number, disk_number;

GROUP_NUMBER DISK_NUMBER MOUNT_STATUS  NAME                          PATH

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

0          0 CLOSED                                        /dev/mapper/ora_vg-lv_asm3

0          1 CLOSED                                        /dev/mapper/ora_vg-lv_asm2

0          2 CLOSED                                        /dev/mapper/ora_vg-lv_asm1

查看A机器的磁盘组信息:

select group_number, name, type, total_mb, free_mb from v$asm_diskgroup

GROUP_NUMBER NAME                                                        TYPE          TOTAL_MB    FREE_MB

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

1 DATA1                                                        EXTERN            30708      29017

B机器创建ASM磁盘组DATA1:

select group_number, name, type, total_mb, free_mb from v$asm_diskgroup;

no rows selected

CREATE DISKGROUP data1 EXTERNAL REDUNDANCY DISK '/dev/mapper/ora*';

Diskgroup created.

select group_number, name, type, total_mb, free_mb from v$asm_diskgroup;

GROUP_NUMBER NAME                                                        TYPE          TOTAL_MB    FREE_MB

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

1 DATA1                                                        EXTERN            30708      30654

至此,准备工作结束。

二、DG部署配置

1. primary database 配置

确保将数据库的force_logging打开,设置为归档模式,数据库闪回打开

SQL> select name from v$datafile;

NAME

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

+DATA1/jyzhao/datafile/system.256.874084601

+DATA1/jyzhao/datafile/sysaux.257.874084601

+DATA1/jyzhao/datafile/undotbs1.258.874084601

+DATA1/jyzhao/datafile/users.259.874084601

SQL> select force_logging from v$database;

FOR

---

NO

SQL> alter database force logging;

Database altered.

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup mount

ORACLE instance started.

Total System Global Area 1620115456 bytes

Fixed Size                  2253704 bytes

Variable Size            1006636152 bytes

Database Buffers          603979776 bytes

Redo Buffers                7245824 bytes

Database mounted.

SQL> alter database archivelog;

Database altered.

SQL> alter database flashback on;

alter database flashback on

*

ERROR at line 1:

ORA-38706: Cannot turn on FLASHBACK DATABASE logging.

ORA-38709: Recovery Area is not enabled.

SQL> archive log list

Database log mode              Archive Mode

Automatic archival            Enabled

Archive destination            /u01/app/oracle/product/11.2.0/db_1/dbs/arch

Oldest online log sequence    12

Next log sequence to archive  14

Current log sequence          14

$ mkdir -p /u01/app/oracle/product/11.2.0/db_1/dbs/arch

SQL> alter database flashback on;

alter database flashback on

*

ERROR at line 1:

ORA-38706: Cannot turn on FLASHBACK DATABASE logging.

ORA-38709: Recovery Area is not enabled.

SQL> show parameter db_recover

NAME                                TYPE        VALUE

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

db_recovery_file_dest                string

db_recovery_file_dest_size          big integer 0

SQL> alter system set db_recovery_file_dest_size=5G;

System altered.

SQL> alter system set db_recovery_file_dest='/u01/app/oracle/product/11.2.0/db_1/dbs/arch';

System altered.

SQL> select status from v$instance;

STATUS

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

MOUNTED

SQL> alter database flashback on;

Database altered.

按之前的规划设置数据库的参数

主要是db_unique_name, log_archive_config, log_archive_dest_1,  log_archive_dest_2, log_archive_format, fal_server, fal_client, standby_file_management的设置,standby logfile的添加,密码文件的创建。

alter system set db_unique_name='jyzhao' scope=spfile;

alter system set log_archive_config='DG_CONFIG=(jyzhao,jyzhao_s)'  scope=spfile;

alter system set log_archive_dest_1='LOCATION=/u01/app/oracle/product/11.2.0/db_1/dbs/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=jyzhao' scope=spfile;

alter system set log_archive_dest_2='SERVICE=jyzhao_s ASYNC LGWR VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=jyzhao_s' scope=spfile;

alter system set log_archive_format='arch_%r_%t_%s.arc' scope=spfile;

alter system set fal_server=jyzhao_s scope=spfile;

alter system set fal_client=jyzhao scope=spfile;

alter system set standby_file_management=AUTO;

alter database add standby logfile group 4 size 50M;

alter database add standby logfile group 5 size 50M;

alter database add standby logfile group 6 size 50M;

alter database add standby logfile group 7 size 50M;

rm /u01/app/oracle/product/11.2.0/db_1/dbs/orapwjyzhao

orapwd file=$ORACLE_HOME/dbs/orapwjyzhao password=oracle entries=10 ignorecase=Y

grid用户配置监听

--listener.ora

DGL =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = JY-DB)(PORT = 1521))

)

SID_LIST_DGL =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = jyzhao)

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

(SID_NAME = jyzhao)

)

(SID_DESC =

(GLOBAL_DBNAME = jyzhao_dgmgrl)

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

(SID_NAME = jyzhao)

)

)

ADR_BASE_DGL = /u01/app/grid

oracle用户配置tnsnames.ora

--tnsnames.ora

LINUXIDC =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = JY-DB)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = jyzhao )

)

)

LINUXIDC_S =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = JY-DBS)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = jyzhao_s)

)

)

grid用户重启监听:

lsnrctl stop dgl

lsnrctl start dgl

oracle用户测试连接:

SQL> show parameter audi

NAME                                TYPE        VALUE

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

audit_file_dest                      string      /u01/app/oracle/admin/jyzhao/a

dump

重启primary

shutdown immediate

startup

2.机器B:standby数据库配置:

grid用户配置监听

--listener.ora

DGL =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = JY-DBS)(PORT = 1521))

)

SID_LIST_DGL =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = jyzhao_s)

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

(SID_NAME = jyzhao_s)

)

(SID_DESC =

(GLOBAL_DBNAME = jyzhao_s_dgmgrl)

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

(SID_NAME = jyzhao_s)
        )

)

ADR_BASE_DGL = /u01/app/grid

grid用户启动监听

$ lsnrctl start dgl

oracle用户配置tnsnames.ora

--tnsnames.ora

LINUXIDC =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = JY-DB)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = jyzhao )

)

)

LINUXIDC_S =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = JY-DBS)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = jyzhao_s)

)

)

echo "db_name=jyzhao" >> $ORACLE_HOME/dbs/initjyzhao_s.ora

echo $ORACLE_SID

sqlplus / as sysdba

startup nomount

oracle用户测试连接  :

3.机器A操作 duplicate数据库到机器B

验证到机器B可以登录

$ sqlplus sys/oracle@jyzhao_s as sysdba

vi duplicate_dg.sql

duplicate target database

for standby

from active database

DORECOVER

spfile

set db_unique_name='jyzhao_s'

set log_archive_dest_1='location=/u01/app/oracle/product/11.2.0/db_1/dbs/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES)

DB_UNIQUE_NAME=jyzhao_s'

set log_archive_dest_2='SERVICE=jyzhao ASYNC LGWR

VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=jyzhao'

set standby_file_management='AUTO'

set fal_server='jyzhao'

set fal_client='jyzhao_s'

set control_files='+DATA1'

set memory_target='0'

set sga_target='600M';

[oracle@JY-DB ~]$  rman target / auxiliary sys/oracle@jyzhaos cmdfile=duplicate_standby.sql

Recovery Manager: Release 11.2.0.4.0 - Production on Mon Mar 16 23:21:37 2015

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database: LINUXIDC (DBID=2463175424)

connected to auxiliary database: LINUXIDC (not mounted)

RMAN> duplicate target database

2> for standby

3> from active database

4> DORECOVER

5> spfile

6> set db_unique_name='jyzhao_s'

7> set log_archive_dest_1='location=/u01/app/oracle/product/11.2.0/db_1/dbs/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES)

8> DB_UNIQUE_NAME=jyzhao_s'

9> set log_archive_dest_2='SERVICE=MACDBN ASYNC LGWR

10> VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=jyzhao'

11> set standby_file_management='AUTO'

12> set fal_server='jyzhao'

13> set fal_client='jyzhao_s'

14> set control_files='+DATA1'

15> set memory_target='0'

16> set sga_target='600M';

17>

Starting Duplicate Db at 16-MAR-15

using target database control file instead of recovery catalog

allocated channel: ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: SID=111 device type=DISK

……

Recovery Manager complete.

[oracle@JY-DB ~]$

4. B机器 srvctl add数据库jyzhao_s

注:开始_s有问题,是因为添加指定的参数不足:

srvctl add database -d jyzhao_s -o /u01/app/oracle/product/11.2.0/db_1 -p  +DATA1/LINUXIDC_S/spfilejyzhao_s.ora -n jyzhao -i jyzhao_s

srvctl modify database -d jyzhao_s -r PHYSICAL_STANDBY

三、DG切换测试

3.1 手动switchover

1主库切换成standby,启动到mount

select OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUS, FORCE_LOGGING, DATAGUARD_BROKER, GUARD_STATUS from v$database;

alter database commit to switchover to physical standby;

2.备份切换成primary,启动到open

select OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUS, FORCE_LOGGING, DATAGUARD_BROKER, GUARD_STATUS from v$database;

alter database commit to switchover to primary;

3.新的备份执行日志应用

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

3.2 Data Guard Broker 快速switchover

SQL> show parameter dg_broker_start

NAME                                TYPE        VALUE

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

dg_broker_start                      boolean    FALSE

SQL> alter system set dg_broker_start = true;

System altered.

SQL> show parameter dg_broker_start

NAME                                TYPE        VALUE

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

dg_broker_start                      boolean    TRUE

配置dgmgrl

create CONFIGURATION jydb as primary database is jyzhao CONNECT IDENTIFIER IS jyzhao;

add database  jyzhao_s as CONNECT IDENTIFIER IS jyzhao_s MAINTAINED AS  PHYSICAL;

enable configuration;

show configuration;

switchover to jyzhao_s;

switchover to jyzhao;

show database verbose jydb

oracle dg 搭建方式,Linux平台 Oracle 11g DG测试环境快速搭建参考相关推荐

  1. dg建立linux分区,Linux平台 Oracle 11g DG测试环境快速搭建参考

    Linux平台 Oracle 11g DG测试环境快速搭建参考 环境现状: 两台虚拟主机A和B: 1. A机器已安装ASM存储的Oracle 11g 实例 参考: 2. B机器已安装系统,配置以及目录 ...

  2. 【DG】在Linux平台上搭建单实例的dataguard--duplicate

    [DG]在Linux平台上搭建单实例的dataguard--duplicate 一 : 实验环境介绍 *** 鉴于生产环境均采用 64 位系统和数据库软件,本实验也将采用这个标准 *** 采用vmwa ...

  3. Linux平台 Oracle 18c RAC安装Part2:GI配置

    三.GI(Grid Infrastructure)安装 3.1 解压GI的安装包 3.2 安装配置Xmanager软件 3.3 共享存储LUN的赋权 3.4 使用Xmanager图形化界面配置GI 3 ...

  4. Linux平台 Oracle 18c RAC安装Part3:DB配置

    四.DB(Database)配置 4.1 解压DB的安装包 4.2 DB软件配置 4.3 ASMCA创建磁盘组 4.4 DBCA建库 4.5 验证crsctl的状态 Linux平台 Oracle 18 ...

  5. Linux平台 Oracle 11gR2 RAC安装Part1:准备工作

    一.实施前期准备工作 1.1 服务器安装操作系统 1.2 Oracle安装介质 1.3 共享存储规划 1.4 网络规范分配 二.安装前期准备工作 2.1 各节点系统时间校对 2.2 各节点关闭防火墙和 ...

  6. maven环境快速搭建

    **1:下载最新版本的maven** http://maven.apache.org/download.cgi 下载apache-maven-3.0.4-bin.zip 将下载文件解压,然后设置mav ...

  7. Kali Linux安装dvwa本地shentou测试环境

    本地shentou测试环境 在学习网络安全中,常常没有真实实验环境帮助自己动手提升技术能力,而本地shentou测试环境就为大家带来了便利.本地shentou测试环境:搭建于本地来进行shentou测 ...

  8. wap2.0有关windows mobile模拟器测试环境的搭建

    wap2.0有关windows mobile模拟器测试环境的搭建 2009年08月01日 星期六 19:38 理论上测试只需要支持wap2.0的模拟器即可,但是各款模拟器不尽相同,起初我用openwa ...

  9. 【Oracle 集群】Linux下Oracle RAC集群搭建之基本测试与使用(九)

    Oracle 11G RAC数据库安装(九) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总 ...

最新文章

  1. NVIDIA Jetson Xavier NX使用SD镜像刷机流程
  2. leetcode算法题--最长等差数列★
  3. java中上转型概念_在java 中,什么叫向上转型?
  4. TensorFlow迁移学习的识别花试验
  5. python转移环境_python 虚拟环境及项目快速迁移
  6. Selenium2Lib库之输入常用关键字实战
  7. linux dns chroot,系统运维|在 CentOS7.0 上搭建 Chroot 的 Bind DNS 服务器
  8. mysql group_concat去重_MySQL group_concat() 函数用法
  9. Spring Boot 最佳实践(四)模板引擎Thymeleaf集成
  10. vue中使用百度地图,悬浮窗搜索功能
  11. 华为确定2019年目标:超三星成全球最大智能手机供应商
  12. [人生]不经历风雨怎么见彩虹
  13. 关于AngularJs中$http post、get 发送和接受参数详解
  14. 建模算法(五)——图与网络
  15. Mozilla Firefox安装Firepath Firebug找xpath最新可用的方法附老版本Firefox下载链接
  16. 九酷音乐真实地址解析
  17. python爬取公众号阅读量_公众号提升阅读量!免费推荐几个互阅推广平台.
  18. AD中使叠在一起的元器件快速分开排列
  19. 计算机上u盘变成快捷方式,win7系统U盘文件都变成快捷方式的解决方法
  20. 『现学现忘』Shell编程 — 22、基础正则表达式

热门文章

  1. 开发微信小程序中SSL协议的申请、证书绑定、TLS 版本处理等
  2. 激发你的灵感:16个精美视差效果网页设计作品
  3. JQuery让input从disabled变成enabled
  4. 系统架构的演变 -----自 罗文浩
  5. Android开发和调试必备工具-SDK Tools
  6. HDU2501_多米诺骨牌
  7. 从控件开发的角度看几个editor控件,Freetextbox,radtoolbar,abouteditor,cuteeditor
  8. 在asp.net中调用process.start执行程序
  9. [Diary]我也要向菁儿检讨一下
  10. 计算机博士英语复试题目,博士复试自我介绍中英文双语解读