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.hqwc.cn/news/61642.html

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

相关文章

【C++】set 和 map 简单了解使用

文章目录 关联式容器set 和 multisetmap 和 multimap 关联式容器 set 和 multiset map 和 multimap

武汉凯迪正大—串联谐振在电力系统中应用的优点:

变频串联谐振耐压试验装置在电力系统中应用的优点 1、所需电源容量大大减小。串联谐振电源是利用谐振电抗器和被试品电容谐振产生高电压和大电流的&#xff0c;在整个系统中&#xff0c;电源只需要提供系统中有功消耗的部分&#xff0c;因此&#xff0c;试验所需的电源功率只有…

无涯教程-Perl - glob函数

描述 此函数返回与EXPR匹配的文件的列表,这些文件将由标准Bourne shell进行扩展。如果EXPR未指定路径,请使用当前目录。如果省略EXPR,则使用$_的值。 从Perl 5.6开始,扩展是在内部完成的,而不是使用外部脚本。扩展遵循csh(以及任何派生形式,包括tcsh和bash)的扩展方式,其翻译…

使用Git进行项目版本控制

1、什么是Git&#xff1f; GIT&#xff0c;全称是分布式版本控制系统&#xff0c;git通常在编程中会用到&#xff0c;并且git支持分布式部署&#xff0c;可以有效、高速的处理从很小到非常大的项目版本管理。分布式相比于集中式的最大区别在于开发者可以提交到本地&#xff0c…

勘探开发人工智能技术:机器学习(2)

0 提纲 3.1 k k k 近邻算法 3.2 决策树 3.3 k k kMeans 3.4 如何定义机器学习问题 3.5 线性回归 1 k k k 近邻算法 开卷考试, 在桌上堆的资料越多, 越是 “见多识广”. 1.1 核心思想 具有讽刺意味的是: 机器学习最基本的算法居然是不学习, 也称为惰性学习 (lazy learni…

pdf怎么压缩到1m?这样做压缩率高!

PDF是目前使用率比较高的一种文档格式&#xff0c;因为它具有很高的安全性&#xff0c;还易于传输等&#xff0c;但有时候当文件体积过大时&#xff0c;会给我们带来不便&#xff0c;这时候简单的解决方法就是将其压缩变小。 想要将PDF文件压缩到1M&#xff0c;也要根据具体的情…

CommStudio for .NET Crack

CommStudio for .NET Crack CommStudio for.NET使您的应用程序可以轻松地使用串行端口和调制解调器进行通信。CommStudio for.NET是一套全面的组件和可视化调试工具&#xff0c;可将远程系统和设备与visual Studio 2005和visual Studio 2008集成。开发与遗留系统和外部设备集成…

scikit-plot 使用笔记

scikit-plot是基于sklearn和Matplotlib的库&#xff0c;主要的功能是对训练好的模型进行可视化。 安装&#xff1a; pip install scikit-plot 功能1&#xff1a;评估指标可视化 scikitplot.metrics.plot_confusion_matrix快速展示模型预测结果和标签计算得到的混淆矩阵。 im…

【枚举】CF1706 C

有人一道1400写了一个小时 Problem - C - Codeforces 题意&#xff1a; 思路&#xff1a; 首先先去观察样例&#xff1a; 很显然&#xff0c;对于n是奇数的情况&#xff0c;只有一种情况&#xff0c;直接操作偶数位就好了 主要是没搞清楚n是偶数的情况 其实有个小技巧&…

ElasticSearch详细操作

ElasticSearch搜索引擎详细操作以及概念 文章目录 ElasticSearch搜索引擎详细操作以及概念 1、_cat节点操作1.1、GET/_cat/nodes&#xff1a;查看所有节点1.2、GET/_cat/health&#xff1a;查看es健康状况1.3_、_GET/_cat/master&#xff1a;查看主节点1.4、GET/_cat/indices&a…

对话音视频牛哥:如何设计功能齐全的跨平台低延迟RTMP播放器

开发背景 2015年&#xff0c;我们在做移动单兵应急指挥项目的时候&#xff0c;推送端采用了RTMP方案&#xff0c;这在当时算是介入RTMP比较早的了&#xff0c;RTMP推送模块做好以后&#xff0c;我们找了市面上VLC还有Vitamio&#xff0c;来测试整体延迟&#xff0c;实际效果真…

emqx-5.1.4开源版使用记录

emqx-5.1.4开源版使用记录 windows系统安装eqmx 去官网下载 emqx-5.1.4-windows-amd64.zip&#xff0c;然后找个目录解压 进入bin目录,执行命令启动emqx 执行命令 emqx.cmd start使用emqx 访问内置的web管理页面 浏览器访问地址 http://localhost:18083/#/dashboard/overv…