Oracle-创建PDB

Oracle-创建PDB

创建PDB的方式

  • 从PDB$SEED新建PDB
  • 克隆已存在的PDB
    • 本地PDB克隆到同一个CDB中
    • 将远程PDB克隆到CDB中
  • 将非CDB插入或克隆到CDB中
  • 通过插拔的方式创建PDB

image-20210909100643634

sql 命令语法

条件

  • CDB必须open并且read write模式
  • 连接CDB$ROOT 用户并且具有CREATEPLUGGABLEDATABASE系统权限

具体实现

从PDB$SEED新建PDB

img

示例

CREATE PLUGGABLE DATABASE salespdbADMIN USER salesadm IDENTIFIED BY passwordROLES = (dba)DEFAULT TABLESPACE salesDATAFILE '/disk1/oracle/dbs/salespdb/sales01.dbf' SIZE 250M AUTOEXTEND ONFILE_NAME_CONVERT = ('/disk1/oracle/dbs/pdbseed/','/disk1/oracle/dbs/salespdb/')STORAGE (MAXSIZE 2G)PATH_PREFIX = '/disk1/oracle/dbs/salespdb/';
参数说明
关键字描述
ADMIN USER用于执行管理任务的本地用户
STORAGE (MAXSIZE 2G)指定了PDB可用的最大空间
DEFAULT TABLESPACE为PDB指定默认的Tablespace
PATH_PREFIX用来限制directory objects/Oracle XML/Create pfile/Oracle wallets所在的目录
FILE_NAME_CONVERT设置子容器和数据文件副本的位置

create pluggable database命令创建PDB2

-- 12.1
create pluggable database pdb2 admin user pdb2_admin identified by oracle roles=(connect) file_name_convert=('/u01/app/oracle/oradata/CDB3/pdbseed','/u01/app/oracle/oradata/CDB3/pdb2');-- 12.2
create pluggable database pdb2 admin user pdbadmin identified by "oracle" create_file_dest='+DATA';

打开PDB2

alter pluggable database pdb2 open instances=all;
alter pluggable database pdb2 save state instances=all;
show pdbs;set lines 168 pages 99
col name for a16
col open_mode for a16
col restricted for a12
select inst_id, con_id, name, open_mode, restricted from gv$containers;

克隆已存在的PDB

克隆本地PDB

img

在12.1版本中在创建PDB时,SOURCE PDB必须处于read only状态,在12.2版本中,因为undo local mode新特性的推出,在创建PDB时,SOURCE PDB在read write状态也可以创建。而且,在12.2版本中Oracle推出了refresh PDB特性,具有对SOURCE PDB进行增量同步的功能。

注意事项
  • 如果CDB为shared undo,PDB必须为READ-ONLY状态
  • 如果CDB不是归档模式,那么PDB必须为READ-ONLY状态
  • 如果是Oracle Database 版本为12.1,那么PDB只能为READ-ONLY状态,因在12.1中undo模式,还只能选择shared undo
  • 使用的用户必须拥有 CREATE PLUGGABLE DATABASE 的权限
示例
CREATE PLUGGABLE DATABASE newpdb FROM salespdbFILE_NAME_CONVERT = ('/disk1/oracle/dbs/salespdb/', '/disk1/oracle/dbs/newpdb/')PATH_PREFIX = '/disk1/oracle/dbs/newpdb';
检查undo模式
COL PROPERTY_NAME FOR A24
COL PROPERTY_VALUE FOR A16
SELECT property_name, property_value
FROM database_properties
WHERE property_name='LOCAL_UNDO_ENABLED';

image-20210909102708748

克隆方式创建PDB
create pluggable database pdb3 from pdb2 file_name_convert=('pdb2','pdb3');
打开PDB3
alter pluggable database pdb3 open instances=all;
alter pluggable database pdb3 save state instances=all;
show pdbs;set lines 168 pages 99
col name for a16
col open_mode for a16
col restricted for a12
select inst_id, con_id, name, open_mode, restricted from gv$containers;

克隆远程PDB或non-CDB

img

注意事项

  • 如果PDB被Clone到的CDB的字符集不是AL32UTF8,那么源与目标字符集必须兼容。
  • 源端与目标端的字节顺序必须相同.
  • 连接的用户在CDB中必须拥有'CREATE PLUGGABLE DATABASE'的权限
  • 源PDB不可以是关闭状态
  • 如果远端CDB为shared undo,源PDB必须为READ-ONLY状态
  • 如果远端CDB不是归档模式,源PDB必须为READ-ONLY状态

准备

查看源端与目标的字符集
col parameter for a30
col value for a30
select * from nls_database_parameters where parameter='NLS_CHARACTERSET'
or parameter='NLS_LANGUAGE' or parameter='NLS_NCHAR_CHARACTERSET';
检查字节序
col platform_name for a32
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;
检查undo模式
COL PROPERTY_NAME FOR A24
COL PROPERTY_VALUE FOR A16
SELECT property_name, property_value
FROM database_properties
WHERE property_name='LOCAL_UNDO_ENABLED';

源库启动只读模式

startup open read only;
select open_mode from v$database;

目标CDB中配置

配置tnsnames.ora文件
cd $ORACLE_HOME/network/admin
cat> tnsnames.ora <<EOF
ORCL =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.181)(PORT = 1533))(LOAD_BALANCE = YES)(FAILOVER = ON)(CONNECT_DATA =(SERVER= DEDICATED)(SERVICE_NAME = ORCL)(FAILOVER_MODE =(TYPE = select)(METHOD = basic)(RETRIES = 180)(DELAY = 5))))
EOF
创建dblink
create database link dblink1 connect to sys identified by oracle using 'orcl';

使用的用户必须拥有 CREATE PLUGGABLE DATABASE 的权限

验证dblink连接
select sysdate from dual@dblink1;
克隆方式创建PDB
-- non-CDB
create pluggable database pdb4 from non$cdb@dblink1 file_name_convert=('/u01/app/oracle/oradata/ORCL','/u01/app/oracle/oradata/CDB3/pdb4');-- remote pdb
create pluggable database pdb4 from pdb1@dblink1 file_name_convert=('/u01/app/oracle/oradata/ORCL','/u01/app/oracle/oradata/CDB3/pdb4');
non-CDB转换pdb(可选)
alter session set container=pdb4;
show pdbs
@?/rdbms/admin/noncdb_to_pdb.sql
打开PDB
alter pluggable database pdb4 open instances=all;
alter pluggable database pdb4 save state instances=all;
show pdbs;set lines 168 pages 99
col name for a16
col open_mode for a16
col restricted for a12
select inst_id, con_id, name, open_mode, restricted from gv$containers;

拔插PDB

拔出PDB

img

关闭PDB
alter pluggable database pdb1 close immediate instances=all;
拔出PDB
alter pluggable database pdb1 unplug into '/tmp/pdb1.xml';
删除PDB
drop pluggable database pdb1 keep datafiles;

keep datafiles:保留数据文件,不删除数据文件

将拔插的PDB插入CDB

img

检查兼容性

使用DBMS_PDB.CHECK_PLUG_COMPATIBILITY函数检查拔出的pdb1与cdb1是否兼容

SET SERVEROUTPUT ON
DECLAREcompatible CONSTANT VARCHAR2(3) :=CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY(pdb_descr_file => '/tmp/pdb1.xml',pdb_name => 'PDB1')WHEN TRUE THEN 'YES'ELSE 'NO'
END;
BEGINDBMS_OUTPUT.PUT_LINE(compatible);
END;
/
示例
CREATE PLUGGABLE DATABASE salespdbUSING '/disk1/usr/salespdb.xml'SOURCE_FILE_NAME_CONVERT =('/disk1/oracle/dbs/salespdb/', '/disk2/oracle/dbs/salespdb/')NOCOPYSTORAGE (MAXSIZE 2G)TEMPFILE REUSE;
插入CDB1
create pluggable database pdb1 using '/tmp/pdb1.xml' nocopy;
  • COPY - Copy the tablespace files to the new location.
  • MOVE - Move the tablespace files to the new location.
  • NOCOPY - Do not copy or move the tablespace files to the new location.
打开PDB
alter pluggable database pdb1 open instances=all;
alter pluggable database pdb1 save state instances=all;
show pdbs;set lines 168 pages 99
col name for a16
col open_mode for a16
col restricted for a12
select inst_id, con_id, name, open_mode, restricted from gv$containers;

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

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

相关文章

如何快速解决集成环信IM遇到的问题?

1、环信FAQ频道发布了 环信FAQ帮助中心提供了各客户端、RESTful API、环信控制台以及商务相关的集成环信常见问题及解决方法&#xff0c;帮您快速解决集成问题 2、当我有问题时&#xff0c;从哪里进FAQ&#xff1f; 干脆收藏这个网址&#xff1a;https://faq.easemob.com/ 环…

Android的学习系列之Android Studio Setup安装

Android的学习系列之Android Studio Setup安装 [TOC](Android的学习系列之Android Studio Setup安装) 前言Android平台搭建总结 前言 还是项目需要&#xff0c;暂时搭建安卓的运行平台。 Android平台搭建 安装包 双击安装包&#xff0c;进入安装。 下一步 根据自己需求&a…

Flink源码之JobMaster启动流程

Flink中Graph转换流程如下&#xff1a; Flink Job提交时各种类型Graph转换流程中&#xff0c;JobGraph是Client端形成StreamGraph后经过Operator Chain优化后形成的&#xff0c;然后提交给JobManager的Restserver&#xff0c;最终转发给JobManager的Dispatcher处理。 Completa…

C#--StringComparison枚举值解析

StringComparison 枚举值是在 C# 中用于指定字符串比较规则的枚举类型。它提供了不同的选项&#xff0c;以满足不同的比较需求。下面是 StringComparison 枚举值的解析&#xff1a; StringComparison.CurrentCulture&#xff1a;使用当前线程的区域设置&#xff08;Culture&am…

Zookeeper与Redis 对比

1. 为什么使用分布式锁&#xff1f; 使用分布式锁的目的&#xff0c;是为了保证同一时间只有一个 JVM 进程可以对共享资源进行操作。 根据锁的用途可以细分为以下两类&#xff1a; 1、 允许多个客户端操作共享资源&#xff0c;我们称为共享锁。 这种锁的一般是对共享资源具有幂…

24数据结构-图的基本概念与存储结构

目录 第六章 图6.1 图的基本概念知识回顾 6.2 图的储存结构&#xff08;邻接矩阵法&#xff09;1. 数组表示法(1) 有向图&#xff0c;无向图的邻接矩阵 2. 定义邻接矩阵的结构3. 定义图的结构4. 构造图G5. 特点 第六章 图 6.1 图的基本概念 图是一种非线性结构 图的特点&am…

手把手教你快速实现内网穿透

快速内网穿透教程 文章目录 快速内网穿透教程前言*cpolar内网穿透使用教程*1. 安装cpolar内网穿透工具1.1 Windows系统1.2 Linux系统1.2.1 安装1.2.2 向系统添加服务1.2.3 启动服务1.2.4 查看服务状态 2. 创建隧道映射内网端口3. 获取公网地址 前言 要想实现在公网访问到本地的…

海康威视iVMS综合安防系统任意文件上传(0Day)

漏洞描述 攻击者通过请求/svm/api/external/report接口任意上传文件,导致获取服务器webshell权限,同时可远程进行恶意代码执行。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和…

如何正确的向chatgpt提问?

有没有发现&#xff0c;在使用ChatGPT的时候&#xff0c;他回答的一些问题并不是我们想要的甚至有的时候出现牛头不对马嘴的情况。 这时候就会感慨一句&#xff0c;人工智能也不怎么样嘛! 但是&#xff0c;有没有想过&#xff0c;是自己问的问题太宽泛&#xff0c;没有问到点上…

Oracle数据库审计

1.什么是审计 审计是用来监控和记录用户的数据库操作的 2.审计级别 语句审计权限审计对象审计 3.查看审计功能是否开启&#xff1a; show parameter audit;相关参数&#xff1a; audit_file_destOS中审计信息存放位置audit_sys_operations默认值为FALSE&#xff0c;即不审…

为什么商业基础软件需要开源

Bytebase 本身是一家商业软件公司&#xff0c;而作为最核心资产的代码从 Day 0 却是开源的。同时我们还是 star-history.com 的运营者&#xff0c;大家在各种开源渠道会看到它生成的图&#xff1a; 一直以来&#xff0c;常会被别人问起的一个问题&#xff0c;就是为什么 Byteba…

【学习日记】【FreeRTOS】任务句柄、任务控制块TCB、任务栈、任务、就绪表详解

写在前面 本文是对FreeRTOS中任务句柄、任务控制块TCB、任务栈、任务、就绪表详解。 一、裸机和RTOS中函数存储位置详解 左图为裸机开发时 RAM 的使用情况&#xff0c;右图是使用了 FreeRTOS 后 RAM 的使用情况&#xff08;图片来自野火&#xff09;。 无论是裸机开发还是Fr…

【docker】设置 docker 国内镜像报错,解决方案

一、报错&#xff1a; [rootlocalhost ~]# systemctl restart docker Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.二、原因&#xf…

实现分布式事务:Java与MySQL的XA事务协调

目录 一、什么是XA事务 二、Java中的XA事务支持 三、MySQL的XA事务协调 四、注意事项和最佳实践 五、基于 java 语言的开发工具 六、小结 分布式事务是在跨多个数据库或服务之间保持一致性的重要机制。Java与MySQL的XA&#xff08;eXtended Architecture&#xff09;事务…

NPM包的安装、更新、卸载

目录 1、下载安装全局包 2、解决全局安装包时的EACCES权限错误 2.1 重新安装NPM 2.2 手动更改npm的默认目录 3、更新从注册表下载的包 3.1 更新本地包 3.2 更新全局安装的软件包 3.3 确定哪些全局包需要更新 3.4 更新单个全局包 3.5 更新所有全局安装的软件包 4、在项…

【ASP.NET MVC】使用动软(五)(13)

一、问题 前文完成的用户登录后的首页如下&#xff1a; 后续账单管理、人员管理等功能页面都有相同的头部&#xff0c;左边和下边&#xff0c;唯一不同的右边内容部分&#xff0c;所以要解决重复设计的问题。 二、解决方法——使用布局页 在Views上右键添加新建项&#xff…

【结构型设计模式】C#设计模式之享元模式

享元模式&#xff08;Flyweight Pattern&#xff09;是一种结构型设计模式&#xff0c;旨在通过尽可能共享对象来减少内存使用和提高性能。它将对象分为两种类型&#xff1a;内部状态&#xff08;Intrinsic State&#xff09;和外部状态&#xff08;Extrinsic State&#xff09…

CRUD操作-select

CRUD操作-select 基本查询&#xff08;一&#xff09; -- CRUD操作 -- insert into -- insert -- replace intouse dbok; show tables; drop table if exists t5,t6,t_stu,t_student,t_teacher;-- 建立学生表 create table t_student(sid int unsigned auto_increment,sname v…

AWS认证SAA-C03每日一题

本题库由云计算狂魔微信公众号分享。 【SAA-C03助理级解决方案架构师认证】A company has a multi-tier application that runs six front-end web servers in an Amazon EC2 Auto Scaling group in a single Availability Zone behind an Application Load Balancer(ALB).A …

python 转换带时区的时间字符串为统一时区的时间

python 转换带时区的时间字符串为统一时区的时间 比如我们将gitlab上面commit的提交时间统一转换成北京时间 及0800 东八区时间 gitlab接口获取的commit信息中&#xff1a; “committed_date”: “2023-07-27T19:32:41.000-07:00” 美国时间 “committed_date”: “2023-07-2…