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

环境现状:

两台虚拟主机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

0b1331709591d260c1c78e86d0c51c18.png

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

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

相关文章

細微之處看看mysql與sql server的一些差別

以前不怎麼使用mysql,最近有些事情,需要用到php和mysql。目前使用的版本是5.5.1 發現mysql與sql server有很多不同。可能逐漸地會整理一些文檔出來給大家參考。 今天第一篇說說,update操作的差異。在mysql中,如果update語句要設置…

引用参数

• 默认情况下CLR规定所有方法的参数都按值传递的 • 参数类型分为:值类型参数和引用类型参数 • 参数传递方式:传值方式和传址方式 • Ref和Out的共同:传址传递 • Ref和Out的异同:ref修饰的参数必须在传递前对参数进行初始化;out反之,且必须在参数返回前进行初始化赋值 •在值…

jmp指令

功能: 无条件转移指令 jmp指令要给出两种信息: 转移的目标地址转移的距离(段间转移、段内短转移、段内近转移) 段内短转移: jmp short 标号) assume cs:code code segmentstart:mov ax,0jmp short sad…

aspnet_Membership_GetUserByEmail////aspnet_Membership_GetUserByName

ALTERPROCEDUREdbo.aspnet_Membership_GetUserByEmail --通过邮箱获取用户名ApplicationNameNVARCHAR(256), EmailNVARCHAR(256)ASBEGINIF( EmailISNULL) SELECTu.UserName FROMdbo.aspnet_Applications a, dbo.aspnet_Users u, dbo.aspnet_Membership m …

php delete和truncate,TRUNCATE 删除表,无法回退。默认选择为整个表的内容,所以不能加条件。...

TRUNCATE 删除表,无法回退。默认选择为整个表的内容,所以不能加条件。DELETE 删除表,可以回退。可以带where 条件。建议使用delete。但是TRUNCATE 删除表数据比delete要快。使用TRUNCATE TABLE语句TRUNCATE TABLE语句提供了一种删除表中所有记…

砂.随笔.三

刚在整理电脑中的照片,把朋友们的照片都整进了"众生相",当点到他的照片时,迟疑了,没拉进去当剪切粘贴时,不知出了什么故障,"铛"地一声,"众生相"成了一空文件夹我不是一个容易觉得可惜的人,只是居然不禁窃喜适才没将他的照片放进去敲了敲脑袋,按住…

标志寄存器EFLAGES

EFLAGES是32位,对我们比较有用的是低16位 OF:溢出标志。溢出为1,否则为1DF:方向标志。串处理指令的方向IF:中断标志AF:辅助进位标志。进位时为1,否则为0ZF:零标志。运算结果为0时为1…

去除对象中的类型集合

一般来说,当某一个对象有多个集合类型的子元素时,我们都会给每个子元素创建一个集合对象来承载子元素,类似于: publicclassProcess {publicvar isExecutable:Boolean;publicvar refLaneSet:LaneSet;publicvar startEventList:Arra…

服务器安装centos6 linux,CentOS6.5安装详细教程,手把手教你安装Linux操作系统(CentOS6.5)...

CentOS6.5安装详细教程1、准备好CentOS-6.5.iso文件,并刻录到光盘中,放入光驱,重启服务器,修改BIOS为光驱启动,之后开始进入安装:2、按任意键,进入引导菜单。按上下键,移动光标&…

linux停止ssh服务的命令,开启、关闭、查看SSH服务

一、临时启用SSH服务1、通过SSH服务器的启动脚本文件启动SSH服务通过OpenSSH服务器的脚本文件“/etc/rc.d/init.d/sshd”启动SSH服务,命令执行如下。/etc/rc.d/init.d/sshd start命令执行后, SSH服务开始运行。2、使用Linux下的service命令启动SSH服务使…

参考站点

26个杰出的jQuery幻灯片插件http://woshao.com/article/6807a76a43d611e081e1000c2959fd2a/周公的专栏http://blog.csdn.net/zhoufoxcn/ W3SCHOOL在线教程http://www.w3school.com.cn/jQuery API 中文版http://www.css88.com/jqueryapi在ASP.NET中使用Highcharts js图表http://…

linux多进程通过中断实现,Linux驱动中断上下文中会发生什么结果实验测试

一、前言每一个Linux驱动工程师都知道这样一个准则:在中断上下文中不能睡眠。但是为什么interrupt context中不能调用导致睡眠的kernel API呢?如果驱动这么做会导致什么样的后果呢?这就是本文探讨的主题。为了理解这个主题,我们设…

cmp指令

功能:比较 格式: CMP destination,sourceCMP 指令比较整数。字符代码也是整数,因此可以用 CMP 指令。 如果比较的是两个无符号数,则零标志位和进位标志位表示的两个操作数之间的关系 如果比较的是两个有符号数,则符…

游戏后的迷茫

9月份花了很多时间耐下心的玩了一个游戏——三国志11,这个是我继三国5以后耐下心玩得最多的一个游戏了,也是2年来耐下心玩得最多的游戏。现在是不是真的太浮躁了。连玩游戏都耐不下心。每天的泡论坛,看电影,下载,刻录的…

两个人 三声叹 一钵泪

寂寞的人,流下的泪珠是单数的 转载于:https://www.cnblogs.com/aque1984/archive/2006/10/02/520282.html

散列碰撞_散列中的碰撞和碰撞解决技术

散列碰撞Prerequisite: Hashing data structure 先决条件: 哈希数据结构 碰撞 (Collisions) Hash functions are there to map different keys to unique locations (index in the hash table), and any hash function which is able to do so is known as the per…

JAVA JDK环境渲染

①(随便在哪个盘里都行)创建一个文件夹名称:Java; ②在文件夹Java下创建一个子文件夹 名称:jdk; ③在子文件夹jdk下再创建一个子文件夹 名称jre; (文件夹名称随便,我这…

使用C和汇编实现一个加法操作

在C/C嵌入汇编指令格式: __asm{;汇编指令 }代码: #include "stdio.h"int main() {int a1;int b2;int c0;__asm{mov eax,amov ebx,badd eax,ebxmov c,eax}printf("ab%d\n",c);return 0; }结果:

FPU数据寄存器

FPU有8个独立的、可寻址的80位数据寄存器R0-R7,如下图所示,这些寄存器合称为寄存器栈。FPU 状态字中名为 TOP 的一个 3 位字段给出了当前处于栈顶的寄存器编号。例如,在下图中,TOP 等于二进制数 011,这表示现在栈顶为 …