数据库管理-第141期 DG PDB - Oracle DB 23c(20240129)

数据库管理141期 2024-01-29

  • 第141期 DG PDB - Oracle DB 23c(20240129)
    • 1 概念
    • 2 环境说明
    • 3 操作
      • 3.1 数据库配置
      • 3.2 配置tnsname
      • 3.3 配置强制日志
      • 3.4 DG配置
      • 3.5 DG配置建立联系
      • 3.6 启用所有DG配置
      • 3.7 启用DG PDB
      • 3.8 创建源PDB的DG配置
      • 3.9 拷贝pdbprod1文件至proddg
      • 3.10 目标PDB添加standby log
      • 3.11 验证并启动DG PDB
      • 3.12 切换PDB角色
      • 3.13 源库PDB添加standby log
      • 3.14 开启备库查询
      • 3.15 回切测试
    • 总结

第141期 DG PDB - Oracle DB 23c(20240129)

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Associate: Database(Oracle与MySQL)
网思科技 DBA总监
10年数据库行业经验,现主要从事数据库服务工作
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP、认证技术专家,ITPUB认证专家,OCM讲师
圈内拥有“总监”、“保安”、“国产数据库最大敌人”等称号,非著名社恐(社交恐怖分子)
公众号:胖头鱼的鱼缸;CSDN:胖头鱼的鱼缸(尹海文);墨天轮:胖头鱼的鱼缸;ITPUB:yhw1809。
除授权转载并标明出处外,均为“非法”抄袭。

首先,这应该是我一月份最后一片文章了(不保证),本期回归一下技术,重新转头把去年Oracle 23c系列文章中高可用这部分的坑给填了,深入捯饬一下DG PDB。

1 概念

从Oracle DB 23c开始,引入了DG PDB,即在原来CDB级别DG的基础上,增加了PDB级别的DG,这种配置下CDB彻底沦为PDB的底座,PDB可以在任意CDB之间构建DG架构而不用考虑CDB的角色问题;相较于21c的功能,现在PDB备库可以为只读状态了。
DG PDB的好处可以充分利用主备端的硬件资源,让每个CDB都能承载生产PDB和灾备PDB。

2 环境说明

这里选择了最新版本的Oracle Linux9.3作为操作系统,俩CDB均已开启归档模式:
在这里插入图片描述

本次操作会根据实际情况进行,其中pdbprod1将在对端做DG PDB。

3 操作

3.1 数据库配置

俩CDB均执行:

alter system set dg_broker_start=true;
alter system set standby_file_management=auto;
alter database flashback on;prodcdb:
alter system set log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=prodcdb' scope=both;proddg:
alter system set log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=proddg' scope=both;

俩CDB需要使用同样的密码文件。

3.2 配置tnsname

/u01/app/oracle/product/23.0.0/dbhome_1/network/admin/tnsnames.ora

PRODCDB =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.101)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = prodcdb)))PRODDG =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.201)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = proddg)))

image.png

3.3 配置强制日志

alter database force logging;

3.4 DG配置

image.png

dgmgrl sys/oracle@prodcdb
dgmgrl>
CREATE CONFIGURATION 'dgconf_1' AS PRIMARY DATABASE IS 'prodcdb' CONNECT IDENTIFIER IS prodcdb;dgmgrl sys/oracle@proddg
dgmgrl>
CREATE CONFIGURATION 'dgconf_2' AS PRIMARY DATABASE IS 'proddg' CONNECT IDENTIFIER IS proddg;

image.png
image.png

3.5 DG配置建立联系

dgmgrl sys/oracle@prodcdb
dgmgrl>
ADD CONFIGURATION 'dgconf_2' CONNECT IDENTIFIER IS proddg;
show configuration;dgmgrl sys/oracle@proddg
dgmgrl>
show configuration;

image.png
image.png

3.6 启用所有DG配置

dgmgrl sys/oracle@prodcdb
dgmgrl>
enable configuration all;
show configuration;dgmgrl sys/oracle@proddg
dgmgrl>
show configuration;

image.png
image.png

3.7 启用DG PDB

dgmgrl sys/oracle@prodcdb
dgmgrl>
EDIT CONFIGURATION PREPARE DGPDB;

image.png

3.8 创建源PDB的DG配置

dgmgrl sys/oracle@proddg
dgmgrl>
add pluggable database pdbdg1 at proddg source is pdbprod1 at prodcdb PDBFileNameConvert is "'/u01/app/oracle/oradata/PRODCDB','/u01/app/oracle/oradata/PRODDG'";

image.png

3.9 拷贝pdbprod1文件至proddg

prodcdb:
alter session set container=pdbprod1;
alter database begin backup;
scp -r /u01/app/oracle/oradata/PRODCDB/100D0E78F6B3C90AE063650A0A0ACA90/ db23cdg:/u01/app/oracle/oradata/PRODDG/

image.png

prodcdb:
alter session set container=pdbprod1;
alter database end backup;

这里同样可以使用rman duplicate pluggable database来复制文件,这里不做演示。

3.10 目标PDB添加standby log

alter session set container=pdbdg1;
alter database add standby logfile size 200m;
alter database add standby logfile size 200m;
alter database add standby logfile size 200m;
alter database add standby logfile size 200m;

3.11 验证并启动DG PDB

dgmgrl sys/oracle@proddg
dgmgrl>
VALIDATE PLUGGABLE DATABASE pdbdg1 at proddg;

image.png

dgmgrl sys/oracle@proddg
dgmgrl>
edit PLUGGABLE DATABASE pdbdg1 at proddg set state='APPLY-ON';
show configuration;
show pluggable database pdbdg1 at proddg;
show pluggable database pdbprod1 at prodcdb;

image.png

3.12 切换PDB角色

dgmgrl sys/oracle@proddg
dgmgrl>
VALIDATE PLUGGABLE DATABASE pdbdg1 at proddg;
switchover to pluggable database pdbdg1 at proddg;

image.png
image.png
image.png
image.png
这时候新的备库会出现异常,因为没有添加standby log,需要处理。

3.13 源库PDB添加standby log

dgmgrl sys/oracle@proddg
dgmgrl>
edit PLUGGABLE DATABASE pdbprod1 at prodcdb set state='APPLY-OFF';alter session set container=pdbprod1;
alter database add standby logfile size 200m;
alter database add standby logfile size 200m;
alter database add standby logfile size 200m;
alter database add standby logfile size 200m;dgmgrl sys/oracle@proddg
dgmgrl>
edit PLUGGABLE DATABASE pdbprod1 at prodcdb set state='APPLY-ON';
show pluggable database pdbprod1 at prodcdb;

image.png

3.14 开启备库查询

alter session set container=pdbprod1;
alter pluggable database open;dgmgrl>
show pluggable database pdbprod1 at prodcdb;

image.png
image.png

3.15 回切测试

dgmgrl>
switchover to pluggable database pdbprod1 at prodcdb;show pluggable database pdbprod1 at prodcdb;
show pluggable database pdbdg1 at proddg;
show configuration;

image.png
至此DG PDB搭建完成。

总结

使用DG PDB初始化搭建还是比较繁琐的,但是不需要全量CDB级别同步数据,还是比较方便,切换也很方便。
老规矩,知道写了些啥。
参考文档:Scenarios for Using DGMGRL with a DG PDB Configuration (23c)(ttps://docs.oracle.com/en/database/oracle/oracle-database/23/dgbkr/scenarios-using-dgmgrl-dg-pdb-configuration-23c.html)

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

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

相关文章

2023年算法CDO-CNN-BiLSTM-ATTENTION回归预测(matlab)

2023年算法CDO-CNN-BiLSTM-ATTENTION回归预测(matlab) CDO-CNN-BiLSTM-Attention切诺贝利灾难优化器优化卷积-长短期记忆神经网络结合注意力机制的数据回归预测 Matlab语言。 切诺贝利灾难优化器Chernobyl Disaster Optimizer (CDO)是H. Shehadeh于202…

薅运营商羊毛?封杀!

最近边小缘在蓝点网上看到一则消息 “浙江联通也开始严格排查PCDN和PT等大流量行为 被检测到可能会封停宽带”。 此前中国联通已经在四川和上海等多个省市严查家庭宽带 (部分企业宽带也被查) 使用 PCDN 或 PT,当用户的宽带账户存在大量上传数据的情况,中…

Jupyter notebook文件默认存储路径以及更改方法

目录 1、文件默认存储路径怎么查?2、文件默认存储路径怎么改? 转自:https://blog.csdn.net/fengyeer20120/article/details/109483362 初次使用Jupyter Notebook,确实好用啊!但安装Anaconda后,打开Jupyter …

gorm框架之常用增删改查(CRUD)

最好的文档其实是官方的文档,大家可以参考这个文档链接,本文也只是个搬运工: GORM 指南 | GORM - The fantastic ORM library for Golang, aims to be developer friendly. 新建(create) 新建单条记录 一般新建记录…

cocos creator 调用预设体Prefab中的方法(调用另一个节点的方法)

调用预设体中的方法 通过cc.instantiate(this.star)创建这个预设体实例这个star预设体中添加了一个脚本组件star.ts 获取到这个脚本组件star.getComponent(‘star’).test(),并调用其中的test()方法同理可以用该方式像另一个节点中传值 //星星预设体property(cc.Pr…

[深度学习]paddleocrv4模型推理要比v3版本慢很多原因

请问为何 Mkldnn 在 ChineseV4 下运行会比 Onnx 和 Openblas 慢很多? 资料来源:https://github.com/sdcb/PaddleSharp/issues/75 qaqz111 commented on Dec 6, 2023 • edited 按 Readme 里面的说明来看,貌似 mkl 比 openblas 是要快的&…

【PostGIS】POSTGIS实现聚类统计提取外轮廓

项目需求根据某些条件进行聚类统计,然后返回聚类的外轮廓,这里主要用到POSTGIS的两个算法,一个是聚类统计功能,一个是提取外轮廓的功能。 1. 聚类统计 Postgis主要实现并提供了四种聚类方法,前两个为窗口函数&#x…

【动态规划】【图论】【C++算法】1575统计所有可行路径

作者推荐 【动态规划】【字符串】【行程码】1531. 压缩字符串 本文涉及知识点 动态规划汇总 图论 LeetCode1575统计所有可行路径 给你一个 互不相同 的整数数组,其中 locations[i] 表示第 i 个城市的位置。同时给你 start,finish 和 fuel 分别表示出…

RK3568 Android 13 系统裁剪

android 13 系统裁剪是个大工程,裁剪也是需要大量的测试,才能保证系统的稳定性,以下是RK官方给出的裁剪方案,有兴趣的可以去看一下,对裁剪不是要求过高的可以根据官方的建议,对系统进行裁剪: Rockchip And…

Web开发8:前后端分离开发

在现代的 Web 开发中,前后端分离开发已经成为了一种常见的架构模式。它的优势在于前端和后端可以独立开发,互不干扰,同时也提供了更好的可扩展性和灵活性。本篇博客将介绍前后端分离开发的概念、优势以及如何实现。 什么是前后端分离开发&am…

数据结构小练兵

二、程序填空 共1题 (共计18分) 第1题 (18.0分) 题号:316 难度:中 第1章 /*------------------------------------------------------- 【程序填空】 ----------------------------------------------…

Spring 学习1

1、什么是Spring Spring 是一款主流的 Java EE 轻量级开源框架 ,Spring 由“Spring 之父”Rod Johnson 提出并创立,其目的是用于简化 Java 企业级应用的开发难度和开发周期。Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言…

OpenHarmony隐藏应用(应用不在桌面显示,隐藏应用图标)

注意:此种方式是在OpenHarmony系统中生效 目录 一.找到UnsgnedReleasedProfileTemplate.json文件 二.修改 UnsgnedReleasedProfileTemplate.json文件 三.重新签名 一.找到UnsgnedReleasedProfileTemplate.json文件 什么是U

【书生·浦语大模型实战营】学习笔记目录

【书生浦语大模型实战营01】《书生浦语大模型全链路开源体系》【书生浦语大模型实战营02】《轻松玩转书生浦语大模型趣味Demo》学习笔记【书生浦语大模型实战营03】《基于 InternLM 和 LangChain 搭建你的知识库》学习笔记【书生浦语大模型实战营04】《(4)XTuner 大模型单卡低成…

5G安卓核心板开发板_MT6833天玑700规格参数

核心板采用沉金生产工艺,耐腐蚀抗干扰,支持-20℃-70℃环境下7x24小时稳定运行,尺寸仅为45mmx48mm x2.65mm,可嵌入到各种智能产品中,助力智能产品便携化及功能差异化。 联发科MT6833处理器采用台积电 7nm 制程的5G SoC…

log4j 日志级别及优先级排序

日志级别及优先级排序 : OFF(关闭) > fatal(致命错误) > error (错误) > warn (警告) > info(普通信息) > debug(调试信息) > TRACE > ALL(所有日志) 程序会打印 > 所设置级别的日志,故设置的日志等级越高,打印出来…

java里面File类的基本用法

File 类是 Java 中用于处理文件和目录的类。它提供了一些基本的文件和目录操作方法。以下是 File 类的一些基本用法: 创建 File 对象: 可以通过提供文件路径或目录路径来创建一个 File 对象。 // 创建 File 对象,指向文件 File file new Fil…

vue3 el-pagination 将组件中英文‘goto’ 修改 为 中文到‘第几’

效果如图&#xff1a; 要求&#xff1a;将英文中Go to 改为到第几 操作如下&#xff1a; <template><div class"paging"><el-config-provider :locale"zhCn"> // 注意&#xff1a;这是重要部分<el-pagination //分页组件根据官…

#Vue3篇:defineProps---withDefaults Vue3 中,有以下几种属性或函数不需要手动引入即可直接使用:

reactive<类型>({ }) defineProps import {defineProps} form vue import {type persons} from /types let props defineProps<{list?: Persons}>([a])withDefaults给默认值 import {defineProps,withDefaults} form vue import {type persons} from /typesl…

【C语言】exit函数详解

一、exit函数的定义 exit 函数是 C 标准库中的函数&#xff0c;其原型定义在 stdlib.h 头文件中。exit 函数的作用是终止当前程序的执行&#xff0c;并返回一个指定的退出码给操作系统。其基本用法如下&#xff1a; #include <stdlib.h>void exit(int status); 具体功能…