【Data Guard】Oracle DataGuard 搭建
DataGuard 搭建
一 、 准备工作
1. 规划
主库 |
备库 |
|
ip |
192.168.131.100 |
192.168.131.101 |
instance_name |
orcl1 |
o rcl 1 |
service_names |
db01 |
db02 |
db_unique_name |
db01 |
db02 |
H ostName |
primary |
standby |
OS 版本 |
Oracle linux 6.4 |
Oracle linux 6.4 |
DB 版本 |
11.2.0.4 |
11.2.0.4 |
2. 关闭 防火墙
service iptables stop
chkconfig iptables off
3. 禁用 selinux 防火墙
vi /etc/selinux/config
selinux=disabled
二 、 开启 归档模式( 主备库 )
1 、创建归档目录
[oracle@ primary ~]# mkdir -p /u01/app/oracle/archivelog
2 、 开启归档模式
( 1 )数据库到 mount 状态开启归档模式
[root@primary ~]# su - oracle
[oracle@primary ~]$ sqlplus / as sysdba
SQL> startup mount;
ORACLE instance started.
Total System Global Area 776646656 bytes
Fixed Size 2257272 bytes
Variable Size 507514504 bytes
Database Buffers 264241152 bytes
Redo Buffers 2633728 bytes
Database mounted.
( 2 )设置主库归档目录
SQL> alter system set log_archive_dest_1='location=/u01/ app/oracle/ archivelog';
( 3 )开启归档模式
SQL> alter database archivelog;
Database altered.
( 4 )查看归档设置
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u01/ app/oracle/ archivelog
Oldest online log sequence 2
Next log sequence to archive 4
Current log sequence 4
( 5 ) 开启 数据库
SQL> alter database open;
Database altered.
三 、 强制 主库为 force logging 模式(主库)
SQL> select force_logging from v$database;
FOR
---
NO
SQL> alter database force logging;
Database altered.
SQL> select force_logging from v$database;
FOR
---
YES
四、 HOST 文件 配置( 主备库 )
R oot 用户(主备库 相同 )
[root@primary ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain
# Primary database IP
192.168.131.100 primary
#Standby database IP
192.168.131.101 standby
五 、 配置 l intener & tnsnames (主备库)
O racle 用户
1 、 主备库监听配置
( 1 ) 主库 监听 配置
[oracle@primary ~]$ vi $ORACLE_HOME/network/admin/listener.ora
(添加 以下内容 )
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl1 )
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
(SID_NAME = orcl1)
)
)
( 2 )备库监听 配置
[oracle@primary ~]$ vi $ORACLE_HOME/network/admin/listener.ora
(添加 以下内容 )
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl1 )
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
(SID_NAME = orcl 1 )
)
)
2 、修改 tnsname s .ora 文件(主备库)
( 1 )主库修改
[oracle@primary ~]$ vi $ORACLE_HOME/network/admin/tnsnames.ora
db01 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = primary )(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl1 ) ## 此处service_name 应 和上面 GLOBAL_NAME 值相等
)
)
db02 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = standby )(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl 1 )
)
)
( 2 )备库修改
[oracle@primary ~]$ vi $ORACLE_HOME/network/admin/tnsnames.ora
db01 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = primary )(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl1 )
)
)
db02 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = standby )(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl1)
( UR=A )
)
)
( 3 )主备库 检测 ( 主备库 )
[oracle@primary admin]$ tnsping db01
TNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 11-JUL-2018 08:48:56
Copyright (c) 1997, 2013, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = primary)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl1)))
OK (10 msec)
[oracle@primary admin]$ tnsping db02
TNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 11-JUL-2018 08:49:01
Copyright (c) 1997, 2013, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = standby)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl1) (UR=A)))
OK (10 msec)
六 、 修改 参数文件 (主备库)
1 、主库修改 参数
( 1 )生成参数文件
SQL> create pfile from spfile;
File created.
( 2 )修改参数文件
[oracle@primary ~]$ cd /u01/app/oracle/product/11.2.0/db_1/dbs
[oracle@primary dbs]$ vi initorcl1.ora
添加 以下内容 :
db_unique_name= db01
log_archive_config='dg_config=(db01,db02)'
log_archive_dest_1='location=/u01/app/oracle/archivelog valid_for=(all_logfiles,all_roles) db_unique_name= db01 '
log_archive_dest_2='service= db02 lgwr async valid_for=(online_logfiles,primary_roles) db_unique_name= db02 '
log_archive_dest_state_1=enable
log_archive_dest_state_2=enable
db_ file_name_convert='/u01/app/oracle/oradata/orcl2','/u01/app/oracle/oradata/orcl1'
log_file_name_convert='/u01/app/oracle/oradata/orcl2','/u01/app/oracle/oradata/orcl1'
fal_server= db02
fal_client= db01
standby_file_management=auto
( 3 )生成 spfile ( shutdown 状态)
create spfile from pfile =' /u01/app/oracle/product/11.2.0/db_1/dbs/initorcl1.ora' ;
( 4 )开启 数据库
st artup( 使新 参数生效 )
2 、备库修改 参数
( 1 )生成参数文件
SQL> create pfile from spfile;
File created.
( 2 )修改参数文件
[oracle@primary ~]$ cd /u01/app/oracle/product/11.2.0/db_1/dbs
[oracle@primary dbs]$ vi initorcl 1 .ora
添加 以下内容 :
db_unique_name= db02
log_archive_config='dg_config=(db01,db02)'
log_archive_dest_1='location=/u01/app/oracle/archivelog valid_for=(all_logfiles,all_roles) db_unique_name= db02 '
log_archive_dest_2='service= db01 lgwr async valid_for=(online_logfiles,primary_roles) db_unique_name= db01 '
log_archive_dest_state_1=enable
log_archive_dest_state_2=enable
db_ file_name_convert='/u01/app/oracle/oradata/orcl1','/u01/app/oracle/oradata/orcl2'
log_file_name_convert='/u01/app/oracle/oradata/orcl1','/u01/app/oracle/oradata/orcl2'
fal_server= db01
fal_client= db02
standby_file_management=auto // 如果 要修改备库 日志 文件的大小,需要将此处 auto 修改成 ma nual
* ***************
( 3 )生成 spfile (shutdown 状态 )
create spfile from pfile =' /u01/app/oracle/product/11.2.0/db_1/dbs/init orcl1 .ora' ;
( 4 )开启 数据库
st artup( 使新 参数生效 )
七 、 复制 数据库
1 、备库 开启到 nomount 模式
SQL> shutdown immediate;
SQL > startup nomount;
2 、 RMAN 进行 复制 (主库)
[ oracle@primary ~ ]$ rman target sys/oracle@db01 auxiliary sys/oracle@db02
RMAN>duplicate target database for standby nofilenamecheck from active database;
此时 ,已经完成了 D ataGuard 搭建 部分 !
八 、查询主备库角色
1 、 主库查询
SQL> col db_unique_name for a15
SQL> select db_unique_name,open_mode,database_role,switchover_status from v$database;
DB_UNIQUE_NAME OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS
--------------- -------------------- ---------------- --------------------
db01 READ WRITE PRIMARY SESSIONS ACTIVE
2 、 备库查询
SQL> col db_unique_name for a15
SQL> select db_unique_name,open_mode,database_role,switchover_status from v$database;
DB_UNIQUE_NAME OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS
--------------- -------------------- ---------------- --------------------
db02 READ ONLY WITH APPLY PHYSICAL STANDBY NOT ALLOWED
3. 参数 设置检查
SQL> col name for a25
SQL> col value for a30
SQL> select a.name, a.value from v$parameter a where a.name like '%file_name_convert' or a.name like '%fal%' or a.name like 'standby_file%';
NAME VALUE
------------------------- ------------------------------
db_file_name_convert /u01/app/oracle/oradata/orcl2,
/u01/app/oracle/oradata/orcl1
log_file_name_convert /u01/app/oracle/oradata/orcl2,
/u01/app/oracle/oradata/orcl1
fal_client db01
fal_server db02
standby_file_management auto
九 、 备库添加 standby 日志 组( 备库 )
1 、查看 数据库日志组
查看数据库的日志组个数与大小,因为我们创建 standby 日志组的个数是原日志
组个数 +1 再与 thread 的积 ((1)*3) , size 不能小于原日志文件的大小。
SQL> select group#,thread#,bytes/1024/1024 M,status from v$log;
GROUP# THREAD# M STATUS
---------- ---------- ---------- ----------------
1 1 50 UNUSED
2 1 50 CLEARING
3 1 50 CURRENT
SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl2/redo03.log
/u01/app/oracle/oradata/orcl2/redo02.log
/u01/app/oracle/oradata/orcl2/redo01.log
2 、新建备库日志组
SQL> alter database add standby logfile thread 1 group 4
2 ('/u01/app/oracle/oradata/orcl2/redo04.log') size 50M;
Database altered.
SQL> alter database add standby logfile thread 1 group 5
2 ('/u01/app/oracle/oradata/orcl2/redo05.log') size 50M;
Database altered.
SQL> alter database add standby logfile thread 1 group 6
2 ('/u01/app/oracle/oradata/orcl2/redo06.log') size 50M;
Database altered.
SQL> alter database add standby logfile thread 1 group 7
2 ('/u01/app/oracle/oradata/orcl2/redo07.log') size 50M;
Database altered.
3 、查看日志 组 状态
SQL> select group#,status,type,member from v$logfile;
GROUP# STATUS TYPE MEMBER
---------- ------- ------- --------------------------------------------------
3 ONLINE /u01/app/oracle/oradata/orcl2/redo03.log
2 ONLINE /u01/app/oracle/oradata/orcl2/redo02.log
1 ONLINE /u01/app/oracle/oradata/orcl2/redo01.log
4 STANDBY /u01/app/oracle/oradata/orcl2/redo04.log
5 STANDBY /u01/app/oracle/oradata/orcl2/redo05.log
6 STANDBY /u01/app/oracle/oradata/orcl2/redo06.log
7 STANDBY /u01/app/oracle/oradata/orcl2/redo07.log
十 、 备库 应用日志
SQL> alter database recover managed standby database using current logfile disconnect from session;
十一 、 验证数据库操作
1 、在主库创建用户
SQL> create user test identified by test;
User created.
SQL> alter system switch logfile;
System altered.
2 、在备库查看
SQL> select username from dba_users where username='TEST';
USERNAME
------------------------------
TEST
- ------------ end ------------
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31529886/viewspace-2157710/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31529886/viewspace-2157710/
【Data Guard】Oracle DataGuard 搭建相关推荐
- oracle dg 增加redo组,【学习笔记】Oracle Data Guard 修改dataguard主库redo组数和大小
天萃荷净 运维DBA反映检查到Oracle DataGuard环境redo日志较小,总结一下修改dataguard主库redo组数和大小方法 在一个dg环境中,配置的是实时同步,需要增加主库的redo ...
- oracle active data guard,Oracle Active DataGuard配置手册(一)
第一章 搭建Active DG 开始配置dg Primary db: 1. 判断dataguard是否安装 SQL> select * from v$option where parameter ...
- Oracle Data Guard(DG)11g12C搭建部署
搭建之前备库不需要dbca库只需要安装软件即可: 服务pri和sta,实例名一致即可 步骤概要: 1.主库前期准备 2.设置备库 3.配置网络 4.恢复备库 5.同步数据 6.应用日志 7.管理物理备 ...
- 怎么让dg连接mysql_搭建DG(data guard),及搭建过程中遇到的一些小问题
一.准备工作:主库:虚拟机名称host06 主机名:host06 IP:192.168.100.60 db_name&SID:ENMO db_unique_name:PROD 存储:文件系统 ...
- 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 ...
- Oracle 11g Data Guard环境中的归档管理
在11g里面,随着ASM.RAC.Data Guard(包括Active Data Guard)的成熟,使用RAC+ASM+Data Guard越来越成为一种可靠的.维护简单.稳定的高可用性和容灾保护 ...
- ORACLE 11G DATA GUARD配置之Dataguard简介
Oracle DataGuard是Oracle自带的数据同步功能,基本原理是将日志文件从原数据库传输到目标数据库,然后在目标数据库上应用这些日志文件,从而使目标数据库与源数据库保持同步,是一种数据库级 ...
- Oracle 12C 利用Rman Duplicate搭建 Data Guard
环境(备库只需要安装数据库软件): 主库:192.168.1.100 OS: CentOS 7.3 X64 DB: ORACLE12.2.0.1 SID ...
- oracle查效能,【DataGuard】Oracle 11g物理Active Data Guard实时查询(Real-time query)特性...
在Oracle 11g以前版本中的的Data Guard物理备用数据库,可以以只读的方式打开数据库,但此时Media Recovery利用日志进行数据同步的过程就停止了,如果物理备用数据库处于恢复的过 ...
最新文章
- SringMVC从入门到源码,这一篇就够
- linux nm工具 查看静动态库导出函数
- java instantiation,Instantiation of List (Java)
- mysql关于日期的函数_MySQL中关于日期函数汇总
- The Distribution File System
- 【报错】解决logstash tracking_column not found in dataset. {:tracking_column=>“updated_time“}问题
- HashTable和HashMap的区别详解(转)
- matlab for 循环中怎么做到只取其中一个数_公益心 码客行(8)—— 循环语句
- 爱默生电梯维修服务器,爱默生电梯故障代码及导致原因和解决方法
- python:文件处理之TXT
- 为什么要放弃 JSP ?
- 杭电1001 java_杭电ACM1001
- java中继承applet类_Java - 33 Java Applet基础
- WIN10 LTSC 转 WIN10 专业版(纯净)
- 小程序下划线和删除线的操作
- 光盘显示0字节可用_u盘显示0字节怎么办 u盘显示0字节解决步骤【方法】
- 用计算机程序计算兴利库容,闸坝多目标泄流估算方法及系统与流程
- yy安全中心官网首页登录html,YY安全中心
- vue用mand-mobile ui做交易所移动版实战示例
- 笔记———计算机网络原理(二)