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中国
oracle pdb是什么意思,浅谈Oracle数据库12c PDB技术相关推荐
- oracle hash join outer,CSS_浅谈Oracle中的三种Join方法,基本概念
Nested loop join:
Outer - phpStudy...
浅谈Oracle中的三种Join方法 基本概念 Nested loop join: Outer table中的每一行与inner table中的相应记录join,类似一个嵌套的循环. Sort mer ...
- oracle归档日志的概念,浅谈Oracle归档日志
什么是归档日志 归档日志(Archive Log)是非活动的重做日志备份.通过使用归档日志,可以保留所有重做历史记录,当数据库处于ARCHIVELOG模式并进行日志切换式,后台进程ARCH会将重做日志 ...
- 管理中计算机系统的应用论文,浅谈计算机数据库的管理与应用论文
浅谈计算机数据库的管理与应用论文 摘要:随着社会经济的快速发展,信息化网络技术手段不断进步,信息技术在人们日常生活.工作及学习中的广泛渗透,不仅给人们生活带来了极大便利,还极大的提升了人们工作与学习效 ...
- 浅谈Oracle RAC --集群管理软件GI
浅谈Oracle RAC --集群管理软件GI基本架构 今天周五,想想可以过周末,心情大好.一周中最喜欢过的就是周五晚上,最不喜欢过的是周日晚上和周一,看来我不是个热爱劳动的人啊.趁着现在心情愉悦,赶 ...
- 浅谈oracle树状结构层级查询
oracle树状结构查询即层次递归查询,是sql语句经常用到的,在实际开发中组织结构实现及其层次化实现功能也是经常遇到的,虽然我是一个java程序开发者,我一直觉得只要精通数据库那么对于java开发你 ...
- 浅谈oracle树状结构层级查询测试数据
浅谈oracle树状结构层级查询 oracle树状结构查询即层次递归查询,是sql语句经常用到的,在实际开发中组织结构实现及其层次化实现功能也是经常遇到的,虽然我是一个java程序开发者,我一直觉得只 ...
- 单引号oracle如何转义_浅谈oracle中单引号转义
ORACLE 单引号转义: 在ORACLE中,单引号有两个作用: 1:字符串是由单引号引用 2:转义. 单引号的使用是就近配对,即就近原则.而在单引号充当转义角色时相对不好理解 1.从第二个单引号开始 ...
- 浅谈Oracle RAC -- OHAS组件
浅谈Oracle RAC – OHAS组件 懒惰了一周没有更新博客.这两天天气不好,索性利用今天下午的时间继续写一篇关于OHAS组件的介绍. 之前我们多次提到了OHAS组件是GI的根守护进程.这个组件 ...
- 浅谈云计算和大数据技术
浅谈云计算和大数据技术 背景: 随着计算机技术的发展,数据量日益增长,现有技术也很难满足业务的发展需求,在代码的层层迭代和优化之后,还是很难满足数据的增长需求,迫切需要一项新的技术来从事数据计算,因为 ...
最新文章
- System.Transactions事务超时设置
- 日本“女机器人”畅销全球,有三个地方最吸引人,网友:想拥有
- 简单粗暴, 包邮送 30 本 Python 新书。
- 现代网络管理员必备技能
- 数组和集合的相互转换
- iOS中SQLite持久化存储第三方库FMDB
- Qt学习笔记(持续更新)
- xstream不映射字段_XStream序列化与反序列化对象
- seo伪原创/百度链接推送/原创检测工具,python超简单POST案例
- android 数据永久删除,如何安全地彻底擦除Android
- pytorch中的normalize应用
- 针对面试官提出的WPF逻辑树和视觉树
- Ubuntu+Tesla M40上OpenCL问题解决过程
- linux nvme固态硬盘,Linux PCIe SSD NVME 性能调优篇
- 【算法】3 由招聘问题看随机算法
- vs 2010 sp1 中文版 安装sliverlight 5 正式版
- 学习周报20200216 | 学习计划安排整理
- Java的Lambda表达式实例
- org.xml.sax.SAXParseException: 在实体引用中, 实体名称必须紧跟在 '' 后面
- 网络设备流量及性能监控的实现
热门文章
- Mybatis 常用语句
- 命令逐行显示_Linux命令和Shell脚本学习随笔3
- 湖南hp服务器虚拟化解决方案,HP刀片服务器虚拟化整合解决方案-20210729062411.docx-原创力文档...
- mysql tree_MySQL树形遍历(二)
- java applog_java - 通过Logback登录到App Engine request_log - SO中文参考 - www.soinside.com
- python perl lisp,是否可能像python中的perl的lvalue或lisp的setf一样?
- linux 端口限速技术,linux下如何实现对每个IP进行限制带宽??
- centos php redhat,RHEL / CentOS 安装 OPcache 提升 PHP 效能
- js定位div坐标存入mysql_JavaScript与Div 对层定位和移动获得坐标
- mysql订单表上亿怎么分表_[转]单表上亿的数据量如何分表