Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Oracle 19c DG主库不停机搭建(主库RAC、备库standalone)

Oracle 19c DG主库不停机搭建(主库RAC、备库standalone)

作者头像
甚至熊熊
发布于 2022-04-27 11:05:19
发布于 2022-04-27 11:05:19
4.3K00
代码可运行
举报
运行总次数:0
代码可运行

这篇梳理一下主库不停机状态下搭建DG备库的流程。

一、环境规划

主库(RAC)

备库(standalone)

说明

db_name

xkdb

xkdb

必须一致

db_unique_name

xkdb

xkdg

必须不一致

instance_name

xkdb

xkdg

一致不一致都行

IP

192.168.10.101/102

192.168.10.8

tns_name

tnsxkdb

tnsxkdg

数据盘

+DATA

+DG_DATA

归档盘

+CRS

+DG_REDO

standby不用建库

二、主库设置

1. 主库是否开启归档及force logging

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select log_mode,force_logging from v$database;
alter database force logging;

2. 主库参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
alter system set log_archive_config='DG_CONFIG=(xkdb,xkdg)' scope=both sid='*';

alter system set log_archive_dest_1='LOCATION=+data VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=xkdb' scope=both sid='*';

alter system set log_archive_dest_2='SERVICE=tnsxkdg LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=xkdg' scope=both sid='*';

alter system set standby_file_management=auto scope=both sid='*';

alter system set fal_client='tnsxkdb' scope=both sid='*';
alter system set fal_server='tnsxkdg' scope=both sid='*';

/* 注意:以下两个参数是需要重启后生效的,为了实现主库不停机,我们在duplicate的时候设置
1、db_file_name_convert
2、log_file_name_convert
另外有些教程会让修改主库的db_unique_name也是需要重启,但是该参数安装完成后就有值,所以没必要
*/

3. TNS配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
--节点1:
tnsxkdb =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.101)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = xkdb)
    )
  )

tnsxkdg =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.8)(PORT = 1522))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = xkdb)
    )
  )

--节点2:
tnsxkdb =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.102)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = xkdb)
    )
  )

tnsxkdg =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.8)(PORT = 1522))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = xkdb)
    )
  )

4. 拷贝密码文件

将主库密码文件传输到备库 查询主库pw文件位置

  • 方法1:srvctl config database -d xkdb
  • 方法2:asmcmd 进去 pwget --dbuniquename xkdb
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
--grid
asmcmd pwcopy +DATA/XKDB/PASSWORD/pwdxkdb.267.1099262109 /tmp/mypwfile

--root
scp /tmp/mypwfile 192.168.10.8:/tmp

--备库
cd /tmp
mv mypwfile orapwxkdg
chown oracle:oinstall orapwxkdg
cp orapwxkdg $ORACLE_HOME

5. 添加附加日志

redo log数量+1,注意大小一致

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
alter database add standby logfile thread 1 group 11 ('+DATA') size 200M;
alter database add standby logfile thread 1 group 12 ('+DATA') size 200M;
alter database add standby logfile thread 1 group 13 ('+DATA') size 200M;

三、备库设置

1. 创建参数文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
su - oracle
cd $ORACLE_HOME/dbs
vi initxkdg.ora

--添加
db_name=xkdb 

--启动
startup nmount

2. 创建文件夹

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
--oracle
mkdir -p /u01/app/oracle/admin/xkdg/adump

3. 静态监听

备库为什么一定要配置静态监听? nomount状态下必须使用静态监听才能连接到实例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
su - grid
--监听参数文件添加名为listener1的静态监听
LISTENER1 =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = xkdg)(PORT = 1522))
      )
    )
  )

SID_LIST_LISTENER1 =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = xkdb)
      (SID_NAME = xkdg)
      (ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)
    )
  )

--启动
lsnrctl start listener1

4. TNS配置

主备库tns配置完可以分别tnsping测试通不通

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
--vi $ORACLE_HOME/network/admin/tnsnames.ora
TNSXKDG =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.8)(PORT = 1522))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = xkdb)
    )
  )

TNSXKDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.101)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.102)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = xkdb)
    )
  )

四、duplicate创建备库

1. duplicate脚本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
--standby
rman target sys/"Oracle123"@tnsxkdb auxiliary sys/"Oracle123"@tnsxkdg << EOF
run {
	allocate channel c1 type disk;
	allocate channel c2 type disk;
	allocate channel c3 type disk;
	allocate channel c4 type disk;
	allocate channel c5 type disk;
	allocate channel c6 type disk;
	allocate channel c7 type disk;
	allocate channel c8 type disk;
	allocate auxiliary channel s1 type disk;
	allocate auxiliary channel s2 type disk;
	allocate auxiliary channel s3 type disk;
	allocate auxiliary channel s4 type disk;
	allocate auxiliary channel s5 type disk;
	allocate auxiliary channel s6 type disk;
	allocate auxiliary channel s7 type disk;
	allocate auxiliary channel s8 type disk;
	duplicate target database
		for standby
		from active database nofilenamecheck
		dorecover
		spfile
		parameter_value_convert 'xkdb','xkdg','+DATA','+DG_DATA','+CRS','+DG_REDO'
		set db_name='XKDB'
		set db_unique_name='xkdg'
		set db_create_file_dest='+DG_DATA'
		set db_create_online_log_dest_1='+DG_REDO'
		set cluster_database='FALSE'
		set fal_server='tnsxkdb'
		set remote_listener=''
		set local_listener=''
		set standby_file_management='AUTO'
		set log_archive_dest_1='LOCATION=+DG_DATA VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=xkdg'
		set log_archive_dest_2='SERVICE=tnsxkdb LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=xkdb'
		set control_files='+DG_DATA'
		set db_file_name_convert='+DATA','+DG_DATA'
		set log_file_name_convert='+CRS','+DG_REDO'
		set instance_name='xkdg'
		;
	}
EOF

2.备库状态查看

duplicate完成,登录备库查看状态,执行open

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       MOUNTED
         3 TEST01                         MOUNTED
SQL> alter database open;

Database altered.

SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 TEST01                         MOUNTED

3. 备库添加standby redo log

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
alter database add standby logfile thread 1 group 11 ('+DG_DATA') size 200M;
alter database add standby logfile thread 1 group 12 ('+DG_DATA') size 200M;
alter database add standby logfile thread 1 group 13 ('+DG_DATA') size 200M;
													   
alter database add standby logfile thread 2 group 14 ('+DG_DATA') size 200M;
alter database add standby logfile thread 2 group 15 ('+DG_DATA') size 200M;
alter database add standby logfile thread 2 group 16 ('+DG_DATA') size 200M;

五、开启同步

19c的开启同步命令与11g有变化,但是原先命令也兼容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
--实时同步
alter database recover managed standby database disconnect;

--日志切换才同步
alter database recover managed standby database using archived logfile disconnect;

--取消同步
alter database recover managed standby database cancel;

--查看状态
select name,open_mode,database_role,protection_mode,protection_level from v$database;

六、需要注意的

建完备库,发现能够正常登录使用,但是在集群资源里没有db服务,执行下方命令加入集群资源

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
--详细看-h
srvctl add database -db xkdg -o /u01/app/oracle/product/19.0.0/dbhome_1 -spfile /u01/app/oracle/product/19.0.0/dbhome_1/dbs/spfilexkdg.ora -role PHYSICAL_STANDBY -pwfile /u01/app/oracle/product/19.0.0/dbhome_1/dbs/orapwxkdg -instance xkdg

另外: 1、不加入集群资源,不能用dbca -silent删库 2、正常dbca静默建库能加入集群资源

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据库学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
主备库内存不一致的Data Guard环境搭建全过程
墨墨导读:一个单节点RAC,要做一套Data Guard,但是备库能给数据库的内存只有主库的一半左右,可以实现吗?答案是可以的,本文详述整个过程。
数据和云
2020/06/01
1K0
Oracle 11G ADG 搭建 RAC to Single 详细教程(RMAN DUPLICATE)
经过交流群中朋友的多次要求,这次给大家分享一下 RAC to Single 的 ADG 搭建教程!
Lucifer三思而后行
2022/01/08
2K0
Oracle 11G ADG 搭建 RAC to Single 详细教程(RMAN DUPLICATE)
RAC 主库配置单实例ADG
写在前面: 最终实现环境:11.2.0.4版本 2节点RAC + 1节点DG 本文旨在弄清楚整个搭建过程中涉及到的基础概念; 本文安装maximum performance mode(最大性能模式)也是DG默认的数据保护模式;
Alfred Zhao
2019/05/24
1.1K0
RHEL6.4 + Oracle 11g DG测试环境快速搭建参考
     参考:http://www.cnblogs.com/jyzhao/p/4332410.html
Alfred Zhao
2022/05/06
4780
ADG搭建系列之 11G RAC to Single DATABASE
一键安装脚本可参考:ORACLE一键安装单机11G/12C/18C/19C并建库脚本
Lucifer三思而后行
2021/08/17
6390
oracle11g dataguard安装实施
Oracle DataGuard 实施 1.环境准备 1.1 修改主备机hosts文件 vi /etc/hosts 128.160.11.84    wang 128.160.11.218  dg2 1.2 修改(添加)主备机listener.ora和tnsnames.ora文件 vi $ORACLE_HOME/network/admin/listener.ora SID_LIST_LISTENER =         (SID_LIST =           (SID_DESC =                 (SID_NAME = softdb)                 (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1/)           )         ) LISTENER =   (DESCRIPTION_LIST =     (DESCRIPTION =       (ADDRESS = (PROTOCOL = TCP)(HOST = wang)(PORT = 1521))       (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))     )   ) ADR_BASE_LISTENER = /u01/app/oracle vi $ORACLE_HOME/network/admin/tnsnames.ora SOFTPRI =   (DESCRIPTION =     (ADDRESS = (PROTOCOL = TCP)(HOST = wang)(PORT = 1521))     (CONNECT_DATA =       (SERVER = DEDICATED)       (SERVICE_NAME = softdb)     )   ) SOFTSTD =   (DESCRIPTION =     (ADDRESS = (PROTOCOL = TCP)(HOST = dg2)(PORT = 1521))     (CONNECT_DATA =       (SERVER = DEDICATED)       (SERVICE_NAME = softdb)     )   ) 1.3 确定主备机parameter/control/data/log/archivelog file 的路径 audit_file_dest='/u01/app/oracle/admin/softdb/adump' 1.4 设置主库强制写日志 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 1.5 设置主库归档模式 SQL> archive log list; SQL> shutdown immediate; SQL> startup mount; SQL> alter database archivelog; SQL> alter database open; 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     175 Next log sequence to archive   177 Current log sequence           177 2. 产生用于建立Standby库的全备份集及控制文件 2.1 创建并修改主库参数文件pfile SQL> shutdown immediate; SQL> create pfile from spfile; 修改initsoftdb.ora vi $ORACLE_HOME/db
吹水老王
2022/05/17
8080
ORACLE dataguard学习笔记 (91天)
今天在一台机器上模拟了dataguard,主备两个实例从物理上不共享任何归档文件路径。 主要有以下内容: dataguard Physical standby的创建 protection mode的切换 switch over 模拟了两台机器oel1,oel2 主库的归档放在oel1里面,备库的放在oel2里面 --创建的路径如下 ./oel1: orcl_pri_arch orcl_stdby_arch ./oel2: standby_pri_arch standby_stdby_arch --强制
jeanron100
2018/03/14
8950
模拟生产搭建Standby RAC实验环境(11.2.0.4 DG)
目前,我有一套正常运行的Oracle 11.2.0.4 RAC实验环境。这是一套VirtualBox的虚拟化环境,整套环境均放在我的台式机服务器的D盘(SSD固态盘)。也就是说,这套RAC环境的系统磁盘和共享磁盘均在本地D盘。
Alfred Zhao
2019/05/24
9140
Oracle 19c Data Guard 配置
NAME TYPE VALUE
markco
2022/09/20
2.1K0
手工搭建Data Guard
Data Guard的搭建可以使用GC图形化安装,优缺点很明显,优点就是图形化操作,符合国人的习惯(据secooler介绍外国程序员能用图形化做的事就一定用图形做,因为boss看得懂,和国人正相反。。。),缺点就是如同Windows一样,宛如黑盒,换句话说,要时刻祈祷不要出问题,否则有时很难知道他为什么挂了。。。
bisal
2019/01/29
7840
ADG单实例搭建系列之(Active Database Duplicate Using Image Copies)
参考自:Data Guard Physical Standby Setup in Oracle Database 11g Release 2
Lucifer三思而后行
2021/08/17
6660
ADG单实例搭建系列之(Active Database Duplicate Using Image Copies)
手工冷备搭建 Oracle 11g DataGuard 物理备库
本文通过手工冷备+pfile文件的方式,搭建oracle11g dataguard 物理备库。在搭建前的规划中,特意将主库的数据库名和服务名、备库的文件存放位置等等做了差异处理。 在进行初始化参数文件的配置时,也进行了最小化处理。这样能够更好的理解DataGuard搭建所需要的的日志传输、应用所需参数配置。
JiekeXu之路
2019/07/30
9060
手工冷备搭建 Oracle 11g DataGuard 物理备库
怎样对生产环境10T RAC新增Adg 不对现有主库产生任何负载,不占用网络带宽?
**导读** > 作者:杨漆 > 16年关系型数据库管理,从oracle 9i 、10g、11g、12c到Mysql5.5、5.6、5.7、8.0 到TiDB获得3个OCP、2个OCM;运维路上不平坦,跌过不少坑、熬过许多夜。把工作笔记整理出来分享给大伙儿,希望帮到大家少走弯路、少熬夜。 提问: 如果您的生产环境为3节点的Rac+ASM,10T以上数据,业务对主库有极高性能要求,不能占用主库资源、通道、带宽,且主库归档日志每4小时会定时删除一次(归档存储空间有限,且无法扩容),现有备库上的归档每小时不定
杨漆
2021/07/02
5960
怎样对生产环境10T RAC新增Adg 不对现有主库产生任何负载,不占用网络带宽?
Oracle 11g DG配置简明版
环境: 主库A机:在线生产环境,RHEL 6.4 + Oracle 11.2.0.3 备库B机:新增备机,RHEL 6.4 需求: 对生产环境最小影响前提下配置DG备库。 目录: 一、B机安装相同版本Oracle软件 二、A机,B机配置网络连接
Alfred Zhao
2019/05/24
1.6K0
Oracle 11g DG Broker开启和配置
1.SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=/data/u01/app/oracle/archive/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=db1';
星哥玩云
2022/08/18
1.1K0
【DG】DataGuard搭建-11gR2单主单备
整理一份DG的搭建流程,参考了一些教程及文档,环境是Oracle 11gR2 1+1。DG计划整理三篇:搭建、概念、维护。
甚至熊熊
2021/04/22
8581
【DG】DataGuard搭建-11gR2单主单备
【DG】物理DG中主库的LNSn、NSS、NSA进程的比较
同事说dg不能同步,让我帮忙看看,我用自己写的2个视图查看了下,首先发现主库没有常见的LNSn进程,下意识的认为主库这个进程没有启动,需要切换日志唤醒LNSn进程,事实上也这样做了,(alter system set log_archive_dest_state_2='defer'; alter system switch logfile; alter system set log_archive_dest_state_2='enable'; alter system switch logfile;),切换后发现日志可以正常传输了,但是主库还是看不到LNSn这个进程,于是找找资料,深入的研究了一下这个问题。
AiDBA宝典
2023/04/27
1.8K0
【DG】物理DG中主库的LNSn、NSS、NSA进程的比较
【DB宝29】使用Docker搭建Oracle 11g的DG环境
如果由于特殊原因导致备库不可用,必须进行重建,那么可以使用如下过程直接进行重建DG
AiDBA宝典
2020/11/25
1.9K0
ADG单实例系列搭建之(RMAN备份恢复)
参考文章:Data Guard Physical Standby Setup in Oracle Database 11g Release 2
Lucifer三思而后行
2021/08/17
1.3K0
ADG单实例系列搭建之(RMAN备份恢复)
Oracle通过rman进行克隆
  备库的service_name设置为db_standby;需要到参数文件修改。
星哥玩云
2022/08/18
4560
相关推荐
主备库内存不一致的Data Guard环境搭建全过程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验