oracle pdb是什么意思,浅谈Oracle数据库12c PDB技术

PDB大致功能描述:

创建:

用create pluggable database的命令,

用file_name_convert的方式拷贝seed pdb的文件到对应的新pdb的路径下。拷贝的是最基本system和sysaux表空间,

将新建的pdb从mount的状态打开到read write的状态。

建立pdb用户的默认表空间。

拔出:

a)用dbca进行拔出有2种生成结果,一种是生成打包文件,一种是生成.xml文件和.DFB文件。

a .1)打包方式:

操作的时候,先close pdb,然后在$ORACLE_HOMEassistantsdbcatemplates,生成一个xml文件描述pdb原来文件的路径和scn等信息;

将pdb的数据文件复制到$ORACLE_HOMEassistantsdbcatemplates路径下;

生成一个pdb_info.txt描述本次pdb unplug的相关文件。

将上述3种类型的文件打包成一个gz包。

在cdb中,以drop pluggable database的方式,删除pdb的信息和在物理上删除pdb的数据文件。

a.2)生成.xml和.DFB文件的方式

也是类似,只是不打包成一个gz包,且pdb的多个数据文件也被整合在一个.DFB文件中。最后也删除cdb中关于此pdb的信息。

插入:

如果用dbca,原来打包成gz包的来做plug就非常方便,只要选中gz包,直接plug即可。如果原来是分开文件的方式,也只需根据xml文件和.DFB文件,先restore数据文件,再create pluggable database using xml文件。

克隆:

将pdb至于read only模式,然后利用create pluggable database xxx from xxx…命令进行可克隆。注该方法需要将原pdb至于read only模式。可以常用在测试环境用克隆另外一个类似的环境。

PDB手工操作:

a)创建

SQL> CREATE PLUGGABLE DATABASE mypdb1 ADMIN USER pdbadmin IDENTIFIED BY Orac1e_1981 ROLES=(CONNECT)

2  file_name_convert=(‘E:ORA12CAPPORACLEUSERORADATAORA12CPDBSEED’,’E:ORA12CAPPORACLEUSERORADATAORA12Cmypdb1′);

Pluggable database created.

SQL>

SQL> alter pluggable database mypdb1 open;

Pluggable database altered.

SQL>

b)拔出:

SQL> ALTER PLUGGABLE DATABASE mypdb1 CLOSE;

Pluggable database altered.

SQL>

SQL> alter pluggable database MYPDB1 unplug into ‘E:ora12capporacleuserproduct12.1.0dbhome_1assistantsdbcatemplatesora12c_MYPDB1.xml’;

Pluggable database altered.

SQL>

SQL> host cp -R E:ora12capporacleuseroradataora12cmypdb1 E:ora12capporacleuseroradataora12cmypdb1_bak

SQL> DROP PLUGGABLE DATABASE mypdb1 including datafiles;

Pluggable database dropped.

c)插入:

SQL>  –注:不需要拷贝回去temp tablespace的文件。不然在下一个create pluggable database的时候会报错ORA-01119。

SQL> host cp E:ora12capporacleuseroradataora12cmypdb1_bak*.DBF  E:ora12capporacleuseroradataora12cmypdb1

SQL>

SQL> create pluggable database b_pdb1 using ‘E:ora12capporacleuserproduct12.1.0dbhome_1assistantsdbcatemplatesora12c_MYPDB1.xml’ nocopy;

Pluggable database created.

SQL>

SQL> alter pluggable database b_pdb1 open;

Pluggable database altered.

SQL>

d)克隆:

SQL> select dbid,name,open_mode from v$pdbs;

DBID NAME                           OPEN_MODE

———- —————————— ———-

4039091088 PDB$SEED                       READ ONLY

2213957720 B_PDB1                         READ WRITE

4261134367 MYPDB2                         READ WRITE

SQL>

SQL>

SQL>

SQL> alter pluggable database mypdb2 close;

Pluggable database altered.

SQL> alter pluggable database mypdb2 open read only;

Pluggable database altered.

SQL> create pluggable database b_pdb2

2  from MYPDB2

3  file_name_convert =(‘E:ora12capporacleuseroradataora12cmypdb2′,’E:ora12capporacleuseroradataora12cb_pdb2’);

Pluggable database created.

SQL> select dbid,name,open_mode from v$pdbs;

DBID NAME                           OPEN_MODE

———- —————————— ———-

4039091088 PDB$SEED                       READ ONLY

2213957720 B_PDB1                         READ WRITE

4261134367 MYPDB2                         READ ONLY

2540280635 B_PDB2                         MOUNTED

SQL> alter pluggable database B_PDB2 open;

Pluggable database altered.

SQL>

常用检查语句:

SQL> SELECT sys_context(‘userenv’,’con_name’) MY_CONTAINER FROM dual;

MY_CONTAINER

——————–

CDB$ROOT

SQL>

SQL> SHOW con_name

CON_NAME

——————————

CDB$ROOT

SQL>

SQL> SELECT

2  ‘DB_NAME: ‘  ||sys_context(‘userenv’, ‘db_name’)||

3  ‘ / CDB?: ‘     ||(select cdb from v$database)||

4  ‘ / AUTH_ID: ‘  ||sys_context(‘userenv’, ‘authenticated_identity’)||

5  ‘ / USER: ‘     ||sys_context(‘userenv’, ‘current_user’)||

6  ‘ / CONTAINER: ‘||nvl(sys_Context(‘userenv’, ‘con_Name’), ‘NON-CDB’)

7  as “DB DETAILS”

8  FROM DUAL;

DB DETAILS

—————————————————————————————————-

DB_NAME: ora12c / CDB?: YES / AUTH_ID: HE-PCjijihe / USER: SYS / CONTAINER: CDB$ROOT

SQL>

SQL> alter session set container=MYPDB2;

Session altered.

SQL> SELECT

2  ‘DB_NAME: ‘  ||sys_context(‘userenv’, ‘db_name’)||

3  ‘ / CDB?: ‘     ||(select cdb from v$database)||

4  ‘ / AUTH_ID: ‘  ||sys_context(‘userenv’, ‘authenticated_identity’)||

5  ‘ / USER: ‘     ||sys_context(‘userenv’, ‘current_user’)||

6  ‘ / CONTAINER: ‘||nvl(sys_Context(‘userenv’, ‘con_Name’), ‘NON-CDB’)

7  as “DB DETAILS”

8  FROM DUAL;

DB DETAILS

————————————————————————————————

DB_NAME: ora12c / CDB?: YES / AUTH_ID: HE-PCjijihe / USER: SYS / CONTAINER: MYPDB2

SQL>

SQL> select v.name, v.open_mode, nvl(v.restricted, ‘n/a’) “RESTRICTED”, d.status

2  from v$PDBs v inner join dba_pdbs d

3  using (GUID)

4  order by v.create_scn

5  /

NAME                           OPEN_MODE  RESTRICTED      STATUS

—————————— ———- ————— ————-

PDB$SEED                       READ ONLY  NO              NORMAL

MYPDB1                         READ WRITE NO              NORMAL

MYPDB2                         READ WRITE NO              NORMAL

SQL> alter pluggable database mypdb1 close;

Pluggable database altered.

SQL> select v.name, v.open_mode, nvl(v.restricted, ‘n/a’) “RESTRICTED”, d.status

2  from v$PDBs v inner join dba_pdbs d

3  using (GUID)

4  order by v.create_scn

5  /

NAME                           OPEN_MODE  RESTRICTED      STATUS

—————————— ———- ————— ————-

PDB$SEED                       READ ONLY  NO              NORMAL

MYPDB1                         MOUNTED    n/a             NORMAL

MYPDB2                         READ WRITE NO              NORMAL

SQL> alter pluggable database mypdb1 open restricted;

Pluggable database altered.

SQL> select v.name, v.open_mode, nvl(v.restricted, ‘n/a’) “RESTRICTED”, d.status

2  from v$PDBs v inner join dba_pdbs d

3  using (GUID)

4  order by v.create_scn

5  /

NAME                           OPEN_MODE  RESTRICTED      STATUS

—————————— ———- ————— ————-

PDB$SEED                       READ ONLY  NO              NORMAL

MYPDB1                         READ WRITE YES             NORMAL

MYPDB2                         READ WRITE NO              NORMAL

SQL>

评:感觉PDB不像什么革命性的技术,只是将数据库至于mount模式后,拷贝数据文件,做成一个备份,然后将此备份plug和unplug。这样的技术,感觉跨平台的迁移不太理想。

另外,由于一个cdb中可以挂多个pdb,资源的分配使用就变得非常重要了,在12c中,估计原来几乎不常用的Resource Manager plan会逐步用起来。

关于redo,由于redo是可以多个pdb共享,因此cdb的管理者可以通过logmnr的方式去挖对应pdb的日志,从dump出来的redo log来看,redo log中含有container id(CON_ID,0为cdb,1为cdb$root, 2为pdb seed,3以上为pdb),pdbid和pxid,至少这些信息可以用于区分不同pdb中的事务。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget

官方微博

TechTarget中国

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

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

相关文章

oracle查询sql时间ain,Oracle SQL 时间查询

一、在使用Oracle的to_date函数来做日期转换时,很多Java程序员也许会和我一样,直觉的采用ldquo;yyyy-MM-dd HH:mm:ssrdquo;的to_date()与24小时制表示法及mm分钟的显示:一、在使用Oracle的to_date函数来做日期转换时,很多Java程序…

室内定位算法_001:室内定位算法技术咨询服务工作室简介(更新)

点击蓝字关注我们团队成员:何博士(中国科学院大学,博士) 杨博士(加拿大多伦多大学,博士后)微信联系号:UWB_cwhe服务模式:1. 为企业提供定位算法技术支持与指导,以提高企业室内定位系统产品的稳定…

双系统还是虚拟机 linux系统时间,你会选择Mac虚拟机还是双系统

在Mac上运行双系统,你是会选择Mac虚拟机呢还是直接双系统?今天我们就这个问题来讨论一下这两之前的区别,究竟是选择Mac最好用的虚拟机 parallels desktop还是Boot Camp?1、安装在pd虚拟机中,安装系统和安装驱动完全自动…

oracle中修改多个字段默认值_利用VBA代码在已有的数据表中删除、添加、修改字段...

大家好,今日继续给大家讲解VBA数据库解决方案的第21讲,如何利用VBA代码在已有的数据表中删除,添加,修改字段。这个内容是操作数据库的一项必修的内容,还望大家在实际工作中多利用,所以这节的知识,对于读者提高自己的数…

cs1.5 linux服务端,CS1.5在linux上的配置

CS1.5在linux上的配置作者:作者第一步下载所需要的软件:hlds_l_3110_full.tar.gzhlds_l_3110b_beta.tar.gzcs_15_full.tar.gzmetamod-1.13.tgzcm_cstrike_1_80_19-en_beta.zipsm_cstrike-2.6.15.zip第二步 解压 hlds_l_3110_full.tar.gzhlds_l_3110b_bet…

java跟python优势_当前Java与Python相比还有哪些优势

首先,Java语言与Python语言都是非常流行的全场景编程语言,在很多开发场景下,既可以使用Java语言,也可以采用Python语言,比如Web开发、大数据开发等等。随着近几年大数据和人工智能领域的热度越来越高,Pytho…

linux添加删除回环地址,CentOS7如何添加本地回环地址?CentOS7添加本地回环地址的方法...

1、临时添加ip addr add 10.10.1.1/32 dev lo:1重启失效2、永久添加cd /etc/sysconfig/network-scriptscp ifcfg-lo ifcfg-lo:1[rootlocalhost network-scripts]# cat ifcfg-lo:1DEVICElo:1IPADDR10.10.1.1NETMASK255.255.255.255ONBOOTyesNAMEloopback1[rootlocalhost network…

python判断语句的复杂度_Python内置方法的时间复杂度(转)

本文翻译自Python Wiki本文基于GPL v2协议,转载请保留此协议。本页面涵盖了Python中若干方法的时间复杂度(或者叫“大欧”,“Big O”)。该时间复杂度的计算基于当前(译注:至少是2011年之前)的CPython实现。其他Python的实现(包括老版本或者尚…

linux中的码字软件,码字写作软件下载

极音创作linux版一款的掌上码字软件,这款软件支持ios,mac,Windows和Android设备上自动同步文件,有需要的朋友快来下载吧!软件特色1、【文件功能】在本软件的左侧是导航栏,罗列了几个常用的功能。在导航条上…

linux svn可视化工具,CentOS6.5安装SVN 可视化管理工具iF.SVNAdmin

实际系统环境:CentOS 6.5 x64一、安装Apache通常系统都已经装好了,但我的服务器上却没有安装,所以要安装:# yum install httpd二、安装SVN根据SVN官网指南使用yum进行安装:# yum install subversion mod_dav_svn三、配…

skywalking使用方法_SkyWalking 源码分析—— Collector Server Component 服务器组件

摘要: 原创出处 http://www.iocoder.cn/SkyWalking/collector-server-component/「芋道源码」欢迎转载,保留摘要,谢谢!本文主要基于 SkyWalking 3.2.6 正式版1. 概述2. 接口2.1 Server2.2 ServerHandler3. gRPC 实现3.1 GRPCServer3.2 GRPCHa…

linux dns及时添加,在ARM Linux上成功实现添加DNS库

工作需要要在嵌入Linux上实现DNS, 从Delphi的Indy9中移植了一个DNS,用了半年了还可以。今日偶然看到了网上有源码(竟然原来没有搜到ftp://ftp.isc.org/isc/bind9/9.5.0/bind-9.5.0.tar.gz)1. 找到bind-9.5.0.tar.gz源码,其中有包含DNS协议的源…

扫地机器人返充原理_扫地机器人全解析

文章引用自 薛先生 ,版权完全归属薛先生。其公众号:Alphatree and Evelyn2018-12-12思考出发点:那个多数人印象中乱碰乱撞、还拖着脏污满屋跑的添乱扫地机,还需要多久才能变聪明?扫地机器人的本质到底是什么? 该用家电…

wxpython多线程 假死_wxpython中利用线程防止假死的实现方法

前段时间我编写了一个工业控制的软件,在使用中一直存在一个问题,就是当软件检索设备时,因为这个功能执行的时间比较长,导致GUI界面假死,让用户分辨不清楚软件到底仍在执行,还是真的挂掉了。(虽然我设计了同…

linux dns 内网ip,Ubuntu中ip地址、网关、网络号、DNS等解释

在Ubuntu中查看ip地址,输入指令:ifconfig在Ubuntu中查看网关,DNS服务器的命令:nm-tool其中,inet 地址即为ip地址。在图中,我们看到有广播地址,还有掩码,当然在一个计算机网络中&…

10分钟用python编写贪吃蛇小游戏_牛得一批!10分钟用Python编写一个贪吃蛇小游戏...

贪吃蛇,大家应该都玩过。当初第一次接触贪吃蛇的时候 ,还是能砸核桃的诺基亚上,当时玩的不亦乐乎。今天,我们用Python编程一个贪吃蛇游戏,下面我们先看看效果:好了,先介绍一个思路所有的游戏最主…

linux 进程函数替换,Linux使用exec函数实现进程替换的代码分享

这篇文章主要介绍了Linux 进程替换(exec函数)实现代码的相关资料,需要的朋友可以参考下Linux 进程替换(exec函数)实现代码# include#include#include#include#include#include#includeint main(){pid_t idfork();if(id0){printf("child is running\n");sleep(1);char…

ad怎么批量改元器件封装_AD6.8的原理图中如何批量修改封装?

AD6.8的原理图中如何批量修改封装呀?一直未用这个功能,99SE中全局参数很好用,不过在AD6做修改的却只有当前选中的一个有效.相同属性的不作修改....是不是在别的地方有设置呀?高手指教...protel dxp 中将原件的对象整体编辑在工作区选择要改的原件 右击鼠标 选择fi…

cnn程序流程图_C# VISIO 画流程图

还是没有做PPT的灵感,总结下前段时间做的VISIO好了。网上VISIO的资料那个少啊,姐艰辛地做了一个星期啊一个星期,中间还夹杂着PMP道德题的高强度训练,和各种“不知道为啥那么难,为啥怎么做准确率都不高,难道…

Linux下netstat常用,Linux netstat常用命令

1、统计80端口连接数netstat -nat|grep -i "80"|wc -l2、统计httpd协议连接数(查看Apache的并发请求数及其TCP连接状态)ps -ef|grep httpd|wc -l3、统计已连接上的,状态为“establishednetstat -na|grep ESTABLISHED|wc -l4、查出哪个IP地址连接最多,将其…