【德哥说库系列】-Oracle 19C PDB创建大全

news2024/11/26 18:32:17

📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前服务于工业互联网
擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

文章目录

  • 前言
    • 📣 1.Scratch方式
    • 📣 2.Cloning方式
      • ✨ 2.1 Cloning from Local
      • ✨ 2.2 Cloning Remote PDB
      • ✨ 2.3 Cloning Remote Non-CDB
    • 📣 3. Relocating
    • 📣 4. PDB热插拔

前言

可以使用多种技术创建 pdb、应用程序容器并且迁移

在这里插入图片描述

📣 1.Scratch方式

以种子容器为模板去新创建一个新的PDB
例 1:Creating a PDB Using No Clauses
alter session set pdb_file_name_convert=‘pdbseed’,‘salpdb1’;
create pluggable database salpdb1 admin user saladm identified by 123;
alter pluggable database SALPDB1 open;

在这里插入图片描述

例 2:创建 PDB 并将预定义的 Oracle 角色授予 PDB 管理员
alter session set pdb_file_name_convert=‘pdbseed’,‘salpdb2’;
create pluggable database salpdb2 admin user saladm identified by 123 roles=(dba);
alter pluggable database SALPDB2 open;

3 : Creating a Pdb Using The Storage, Default Tablespace, Path_Prefix, And
File_Name_Convert Clauses

create pluggable database pdb3 admin user saladm identified by oracle storage (maxsize 3g)
default tablespace wl
datafile '/u01/app/oracle/oradata/ORADB/pdb3/wl01.dbf' size 200m autoextend on
path_prefix = '/u01/app/oracle/oradata/ORADB/pdb3/'
file_name_convert = ('/u01/app/oracle/oradata/ORADB/pdbseed',
'/u01/app/oracle/oradata/ORADB/pdb3');

alter pluggable database PDB4 open;

📣 2.Cloning方式

✨ 2.1 Cloning from Local

方法一:
alter pluggable database pdb3 close;
alter pluggable database pdb3 open read only;
alter session set pdb_file_name_convert=‘pdb3’,‘pdb5’;
create pluggable database pdb5 from pdb3;
alter pluggable database PDB5 open;

方法二:
alter pluggable database pdb2 close;
alter pluggable database pdb2 open read only;
create pluggable database pdb6 from pdb2
path_prefix = ‘/u01/app/oracle/oradata/ORADB/pdb4/’
file_name_convert = (‘/u01/app/oracle/oradata/ORADB/pdb2/’,
‘/u01/app/oracle/oradata/ORADB/pdb4/’)
service_name_convert = (‘pdb2’,‘pdb4’) nologging;
alter pluggable database PDB6 open;

✨ 2.2 Cloning Remote PDB

确保字符集一致
select * from nls_database_parameters where parameter=‘NLS_CHARACTERSET’
or parameter=‘NLS_LANGUAGE’ or parameter=‘NLS_NCHAR_CHARACTERSET’;

在这里插入图片描述

确保字节序一致
select d.inst_id, t.platform_id, t.platform_name, t.endian_format, d.name from
v$transportable_platform t, gv$database d
where t.platform_name = d.platform_name;

在这里插入图片描述

目标端创建 dblink

目标端创建 dblink
source =
 (DESCRIPTION =
 (ADDRESS_LIST =
 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.6.31)(PORT = 1521))
 )
 (CONNECT_DATA =
 (SERVICE_NAME =prod)
 )
)

create database link mydb connect to system identified by oracle using 'source';

源端授权
grant CREATE PLUGGABLE DATABASE,cdb_dba,sysoper to system container=all;
目标端创建 pdb
create pluggable database mypdb1 from PDB3@mydb
path_prefix = ‘/u01/app/oracle/oradata/PROD/mypdb1’
file_name_convert = (‘/u01/app/oracle/oradata/PROD/pdb3/’,
‘/u01/app/oracle/oradata/PROD/mypdb1’);

✨ 2.3 Cloning Remote Non-CDB

源断创建非容器数据库
dbca -silent -createDatabase -createAsContainerDatabase false -templateName
General_Purpose.dbc -gdbname oradb -sid oradb -responseFile NO_VALUE
-characterSet AL32UTF8 -memoryPercentage 30 -emConfiguration LOCAL

确保字符集一致
select * from nls_database_parameters where parameter=‘NLS_CHARACTERSET’
or parameter=‘NLS_LANGUAGE’ or parameter=‘NLS_NCHAR_CHARACTERSET’;

确保字节序一致
select d.inst_id, t.platform_id, t.platform_name, t.endian_format, d.name from
v$transportable_platform t, gv$database d
where t.platform_name = d.platform_name;

目标端创建 dblink

目标端创建 dblink
nocdb =
 (DESCRIPTION =
 (ADDRESS_LIST =
 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.6.31)(PORT = 1521))
 )
 (CONNECT_DATA =
 (SERVICE_NAME =oradb)
 )
)

create database link orcl_link connect to system identified by beijing using 'nocdb';

源端授权
grant CREATE PLUGGABLE DATABASE,cdb_dba,sysoper to system;

目标端创建 PDB
create pluggable database mypdb2 from oradb@orcl_link
file_name_convert = (‘/u01/app/oracle/oradata/ORADB/’,
‘/u01/app/oracle/oradata/PROD/mypdb2’);

容器转换
alter session set container=MYPDB2;
@$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql

–若开库有报错,查询此数据字典
SQL> select message,time from pdb_plug_in_violations;

📣 3. Relocating

#兼容性检查方法
源端生成 pdb 的 xml 文件
begin
dbms_pdb.describe(
pdb_descr_file=>‘/home/oracle/PDB1.xml’,
pdb_name=>‘PDB1’);
end;
/

#将 PDB1.xml 复制到上标主机,目标端进行检查
set serveroutput on
declare
compatible constant varchar2(3):=
case dbms_pdb.check_plug_compatibility(
pdb_descr_file=>‘/home/oracle/PDB1.xml’,
pdb_name=>‘PDB1’)
WHEN TRUE THEN ‘YES’
ELSE ‘NO’
end;
begin dbms_output.put_line(compatible);
end;
/

##源库打开
alter Pluggable database PDB1 open;

##源端授权
grant create pluggable database,cdb_dba,sysoper to system container=all;

#目标库创建容器,源库和目标库容器名字保持一致
create pluggable database MYPDB3 from PDB1@mydb relocate availability max file_name_convert=(‘/u01/app/oracle/oradata/PROD/pdb1/’,‘/u01/app/oracle/oradata/PROD/MYPDB3/’);

#目标端开库,则源端即关库了
SQL> alter pluggable database PDB1 open;

📣 4. PDB热插拔

alter pluggable database PDB1 close immediate;
alter pluggable database PDB1 unplug into ‘/home/oracle/PDB1.xml’;
drop pluggable database PDB1 keep datafiles;
create pluggable database PDB1 using ‘/home/oracle/PDB1.xml’ nocopy tempfile reuse;

补充案例:CDB 与非 CDB 在同一台主机进行热插拔

1.非 CDB 处于事务一致状态,并将其置于只读模式
startup open read only

ORA-00845: MEMORY_TARGET not supported on this system
tmpfs /dev/shm tmpfs defaults,size=3G 0 0
mount -o remount,size=3G /dev/shm


2.非 CDB 的 XML 文件
begin
dbms_pdb.describe(
pdb_descr_file => '/tmp/ncdb.xml');
end;
/

3.兼容性检查,CDB中确认
SET SERVEROUTPUT ON
declare
compatible constant varchar2(3) :=
case dbms_pdb.check_plug_compatibility(pdb_descr_file =>
'/tmp/ncdb.xml',pdb_name => 'NCDB')
when true then 'yes'
else 'no'
end;
begin
dbms_output.put_line(compatible);
end;
/

4.关闭非 CDB
shutdown immediate


5.创建目录
mkdir /u01/app/oracle/oradata/ORADB/ncdb


6.插入非 CDB,将文件复制到新位置
create pluggable database ncdb using '/tmp/ncdb.xml' copy 
file_name_convert = ('/u01/app/oracle/oradata/ORCL/','/u01/app/oracle/oradata/ORADB/ncdb/');


7.必须先运行脚本,才能首次打开 PDB
alter session set container=ncdb;
@$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql

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

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

相关文章

双绞线(寻线仪,测线仪),光纤测试工具(红光笔,OTDR,光功率计)

网络测试方式: 根据测试中是否向被测网络注入测试流量,可以将网络测试方法分为主动测试和被动测试。 主动测试:利用测试工具有目的地主动问被测网络注入测试流量,根据测试流量的传送情况分析网络技术参数。优点是具备良好的灵活…

读程序员的制胜技笔记03_有用的反模式(上)

1. 教条 1.1. 一成不变的法则 1.2. 这些东西会遮蔽我们的双眼,你坚持相信的时间越久,你被遮蔽双眼的程度也就越深 2. 质疑所有教给你的东西 2.1. 它们有多么有用 2.2. 使用它们的理由 2.3. 使用它们的好处 2.4. 使用它们的代价 3. 反模式 3.1. …

13、Kubernetes核心技术 - Ingress

目录 一、概述 二、Ingress工作原理 三、Ingress 使用 3.1)、Ingress-http方式 3.1.1)、创建Ingress Controller和对应的Service 3.1.2)、创建tomcat的Pod和Service 3.1.3)、创建nginx的Pod和Service 3.1.4)、创建ingress http代理 3.1.5)、配置本地host文件 3.1.6)、…

基于STM32设计的室内环境监测系统(华为云IOT)_2023

一、设计需求 基于STM32+华为云物联网平台设计一个室内环境监测系统,以STM32系列单片机为主控器件,采集室内温湿度、空气质量、光照强度等环境参数,将采集的数据结果在本地通过LCD屏幕显示,同时上传到华为云平台并将上传的数据在Android移动端能够实时显示、查看。 【1…

更新版PHP神算网八字算命星座解梦周易占卜程序源码/PC+H5移动端整站适配/PHP源码带手机版

源码简介: 这个是更新版PHP神算网八字算命星座解梦周易占卜程序源码,能够在PCH5移动端整站适配。作为H5付费算命PHP源码,八字算命网站源码,功能很多强大实用。 2023.3 更新记录: 1、更新了23年属相信息;…

12 pinctrl 和 gpio 子系统

一、pinctrl 子系统 1. 什么是 pinctrl 子系统? 首先回顾一下如何初始化 LED 所使用的 GPIO: ①、修改设备树,添加相应的节点,节点里面重点是设置 reg 属性, reg 属性包括了 GPIO相关寄存器。 ②、获取 reg 属性中 …

基于顺序表实现的可存储性通讯录!!!

基于顺序表实现的通讯录 通讯录的基本功能 顺序表顺序表的部分变量修改修改处一修改处二修改处三 头文件 Contact.h通讯录自定义结构体 功能实现 源文件 Contact.c读取文件中联系人的信息 void ContactReadFile(contact* pcon)保存到文件 void ContactSave(contact* pcon) 测试…

Python:知道什么叫类吗,我这人实在不知道啥叫累。Python类的定义和使用。

前言 在 python 中,对于相同类型的对象进行分类,抽象后,得出共同的特征而形成了类(class),面向对象程序设计的关键就是如何合理地定义这些类并且组织多个类之间的关系。 创建类时用变量形式表示对象特征的…

ChinaSoft 论坛巡礼|开源软件供应链论坛

2023年CCF中国软件大会(CCF ChinaSoft 2023)由CCF主办,CCF系统软件专委会、形式化方法专委会、软件工程专委会以及复旦大学联合承办,将于2023年12月1-3日在上海国际会议中心举行。 本次大会主题是“智能化软件创新推动数字经济与社…

Python基础之列表、元组和字典

一文拿捏Python基本数据类型“列表、数组和字典” 引言 Python中的 列表(英文叫list) 、 元组(英文叫tuple)和字典(dictionary) 也是 序列 特性的,它们也是非常常用的数据类型。 1、列表(List) 01、概述 列表&#…

【黑马程序员】SSM框架——SSM整合

文章目录 前言一、SSM 整合1. SSM 整合思路1.1 Spring 整合 MyBatis配置模型数据层标准开发业务层标准开发测试接口事务处理 1.2 Spring 整合 SpringMVCweb 配置类SpringMVC 配置类基于 Restful 的 Controller 开发 2. SSM 整合具体实现2.1 创建工程2.2 SSM 整合SpringMyBatisS…

forward和完美转发

std::move(value)是独立于值的右值引用&#xff0c;一个右值引用参数作为函数的形参&#xff0c;在函数内部再转发该参数的时候已经变成了一个左值&#xff0c;并不是它原来的类型了。 template<typename T> void forwardValue(T& val) {processValue(value); //…

基于STC12C5A60S2系列1T 8051单片机A/D转换器应用

基于STC12C5A60S2系列1T 8051单片机A/D转换器应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍STC12C5A60S2系列1T 8051单片机A/D转换器介绍STC12C5A60S2系列1T 805…

算法题:870. 优势洗牌

该算法是临时想出来的&#xff0c;Java代码的实现在时间上不占优&#xff0c;之后有时间要优化一下&#xff0c;目前就是给大家提供一下思路。 解题思路&#xff1a;田忌赛马的思想 贪心法。 Step1. 对两个数组进行排序。 Step2. 同时遍历排序后的nums2和nums1&#xff0c;将…

RAM和ROM的区别(详解)

RAM和ROM的区别 RAM&#xff08;随机存取存储器&#xff09;和ROM&#xff08;只读存储器&#xff09;都是计算机中常见的存储器类型&#xff0c;它们在计算机系统中有不同的作用和特性。 RAM&#xff08;随机存取存储器&#xff09;&#xff1a; 作用&#xff1a; 用于临时存储…

鸿蒙LiteOs读源码教程+向LiteOS中添加一个简单的基于线程运行时的短作业优先调度策略

一、鸿蒙Liteos读源码教程 鸿蒙的源码是放在openharmony文件夹下&#xff0c;openharmony下的kernel文件夹存放操作系统内核的相关代码和实现。 内核是操作系统的核心部分&#xff0c;所以像负责&#xff1a;资源管理、任务调度、内存管理、设备驱动、进程通信的源码都可以在…

利用maven的dependency插件将项目依赖从maven仓库中拷贝到一个指定的位置

https://maven.apache.org/plugins/maven-dependency-plugin/copy-dependencies-mojo.html 利用dependency:copy-dependencies可以将项目的依赖从maven仓库中拷贝到一个指定的位置。 使用默认配置拷贝依赖 如果直接执行mvn dependency:copy-dependencies&#xff0c;是将项目…

解决方案中word中分页符的使用

在投标方案中要善于使用“分页符”&#xff0c;尽可能少使用分节符号&#xff0c;没有分页符前&#xff0c;你每次修改你的标书或者文件&#xff0c;增加或者修改内容后。你的格式字段前后都是会发生变化&#xff0c;如何稳定的保证结构呢&#xff0c;那就是分页符的使用&#…

如何提高Python图像表格数据提取的准确率?

Python图像表格数据提取 1、数据来源2、目标图像3、图像文本提取4、图像灰度化与二值化可以提高识别准确率吗1、数据来源 国家统计局:http://www.stats.gov.cn/sj/ 数据来源:国家统计局中国统计年鉴2022年人口数及构成 2、目标图像 数据(部分)如下: 数据形式:http://www…

【触想智能】4U触摸工控机具有哪些优势?

工控机也叫工控主机&#xff0c;和我们常见的普通电脑主机是一样的&#xff0c;都是由CPU、主板、内存、硬盘、电源以及机箱组成的。 工控机有很多分类&#xff0c;有无风扇工控机、嵌入式工控机、上架式工控机、4U触摸工控机等。上架式工控机在市场上是比较受欢迎的&#xff0…