Oracle 12c 基于PDB种子数据库创建PDB
在Oracle中基于PDB种子复制数据库的方式,这个与SQLServert中直接创建数据库比较类似。在SQLServer中有一个model数据库,这个库的功能就和PDB种子数据库一样,就是一个模板数据库。从某种程度上来说,Oracle的多租户数据库几乎借鉴了80%的SQLserver的一些设计架构和理念。也即是通过从pdb数据库复制数据文件来达到快速建库的目的。下文是基于PDB种子建库的步骤及演示。
一、基于PDB$SEED创建PDB示意图及步骤
示意图
主要完成以下步骤(create pluggable database方式)
1、从PDB种子数据库复制数据文件
2、创建系统表空间system,sysaux
3、创建指向Oracle系统提供对象的元数据链接目录
4、创建公共用户,如sys,system等
5、创建本地系统管理员,并授予PDB_DBA角色
6、创建一个新的缺省服务
二、创建语法及简单示例
CREATE PLUGGABLE DATABASE{ { pdb_name [ AS APPLICATION CONTAINER ] } | { AS SEED } }{ create_pdb_from_seed | create_pdb_clone | create_pdb_from_xml } ;
语法参考详细链接:http://docs.oracle.com/database/122/SQLRF/CREATE-PLUGGABLE-DATABASE.htm#SQLRF55686
简单创建示例
CREATE PLUGGABLE DATABASE PDB_NAME
ADMIN USER PDBA IDENTIFIED BY PASS ROLES=(CONNECT)
FILE_NAME_CONVERT=('/path/pdbseed','/path/pdb_name');说明:
FILE_NAME_CONVERT:主要用于种子数据库文件与目标数据库文件位置转换
如上示例,FILE_NAME_CONVERT=('/path/pdbseed','/path/pdb_name') 表示新创建的PDB数据库数据文件位于/path/pdb_name
对于以下两种情形,可以不需要FILE_NAME_CONVERT子句
1、启用OMF功能(参数DB_CREATE_FILE_DEST)DB_CREATE_FILE_DEST='/u01/app/oradata/cdb1/pdb1'
2、设定初始化参数PDB_FILE_NAME_CONVERTPDB_FILE_NAME_CONVERT='/u01/app/oradata/cdb1/seed','/u01/app/oradata/cdb1/pdb'对于不需要FILE_NAME_CONVERT子句,使用如下方式创建:
CREATE PLUGGABLE DATABASE PDB_NAME
ADMIN USER PDBA IDENTIFIED BY PASS ROLES=(CONNECT);
三、基于PDB$SEED演示创建PDB
--当前的数据库版本及环境
SQL> SELECT name,2 DECODE (cdb,3 'YES', 'Multitenant Option enabled',4 'Regular 12c Database: ')5 "Multitenant Option",6 open_mode,7 con_id8 FROM v$database;NAME Multitenant Option OPEN_MODE CON_ID
------------------------------ -------------------------- -------------------- ----------
CDB1 Multitenant Option enabled READ WRITE 0SQL> select 'Leshami' Author,'http://blog.csdn.net/leshami' Blog,2 '645746311' QQ from dual;
AUTHOR BLOG QQ
------- ---------------------------- ---------
Leshami http://blog.csdn.net/leshami 645746311 --查看当前数据库pdb容器,如下一个种子数据库,一个cdb1pdb1数据库
SQL> select con_id,name,open_mode from v$pdbs;CON_ID NAME OPEN_MODE
---------- ------------------------------ ----------2 PDB$SEED READ ONLY3 CDB1PDB1 READ WRITE--创建pdb数据库
SQL> create pluggable database cdb1pdb22 admin user pdb2admin identified by pass roles=(connect)3 file_name_convert=('/app/oracle/ora12c/oradata/cdb1/pdbseed',4 '/app/oracle/ora12c/oradata/cdb1/cdb1pdb2');Pluggable database created.--查看创建后的状态,刚刚创建的pdb status列为NEW
SQL> select pdb_id,pdb_name,status,creation_time from cdb_pdbs where pdb_name='CDB1PDB2';PDB_ID PDB_NAME STATUS CREATION_
---------- ------------------------------ ---------- ---------4 CDB1PDB2 NEW 13-JUN-17--如下查询,当前的数据库处于mount状态
SQL> select con_id,name,open_mode from v$pdbs where name='CDB1PDB2';CON_ID NAME OPEN_MODE
---------- ------------------------------ ----------4 CDB1PDB2 MOUNTED--将pdb数据库切换到open状态
SQL> alter pluggable database cdb1pdb2 open;Pluggable database altered.--使用公共用户sys连接到刚刚创建的pdb数据库
SQL> conn sys/pass@192.168.1.244:1521/cdb1pdb2 as sysdba
Connected.--使用pdb本地管理员账户连接到pdb数据库
SQL> conn pdb2admin/pass@192.168.1.244:1521/cdb1pdb2
Connected.SQL> show user;
USER is "PDB2ADMIN"--查看当前用户的角色
SQL> select * from user_role_privs;USERNAME GRANTED_ROLE ADM DEL DEF OS_ COM INH
---------------- ------------------ --- --- --- --- --- ---
PDB2ADMIN PDB_DBA YES NO YES NO NO NO--查看当前用户的权限
SQL> select * from session_privs;PRIVILEGE
----------------------------------------
CREATE SESSION
CREATE PLUGGABLE DATABASE
SET CONTAINER--查看自动添加的服务名
SQL> ho lsnrctl status |grep cdb1pdb2 -B1Instance "cdb1", status READY, has 1 handler(s) for this service...
Service "cdb1pdb2" has 1 instance(s).
Oracle 12c 基于PDB种子数据库创建PDB相关推荐
- oracle中pdb,Oracle12c数据库创建pdb的3种方法
Oracle12c数据库创建pdb的3种方法 1.根据seed创建pdb CREATE PLUGGABLE DATABASE salespdb ADMIN USER salesadm IDENTIFI ...
- oracle 12c tns,oracle 12c 怎样配置TNS来访问PDB
oracle 12c 怎样配置TNS来访问PDB 淆癏宙 | 浏览 147 次 我有更好的答案 发布于2016-06-27 16:18 最佳答案 1.配置监听 首先要明确,所有的PDB都使用1个监听, ...
- oracle 12c 客户端如何使用,客户端如何访问访问oracle 12c 64位的数据库
服务器A安装的oracle 12c 64位的数据库,机器B如何访问oracle数据库. 准备: 1.下载instantclient-basic-nt-12.1.0.2.0.zip,下载地址:http: ...
- oracle如何建pdb,教你创建PDB的三种方法
12C官方文档提到6种创建PDB的技术,如下:Create a PDB by using the seed Create a PDB by cloning an existing PDB or non ...
- 如何连接oracle 12c可插拔数据库
启动根容器:[oracle@eric ~]$ export ORACLE_SID=cup[oracle@eric ~]$ sqlplus / as sysdbaSQL*Plus: Release 12 ...
- oracle adg 人工干预,ORACLE 12C ADG 之十四 (ADG PDB级闪回(Flashback PDB))
#PDB级闪回(Flashback PDB) #PDB闪回有几个基本的前提条件: 1,enable local undo 2,enable archivelog mode 3,enable flash ...
- oracle的种子文件,Oracle用RMAN还原种子数据库
起一个新实例名newdata 1.准备pfile cp ...../dbs/init.ora ..../dbs/initnewdata.ora vim initnewdata.ora 改变contro ...
- linux给oracle导入sql语句,Linux数据库创建与数据导入
之前没搞过linux,这次客户的系统装的linux,项目发布环境及数据库已经安装好了.由于要急着上线,所以就边摸索边处理了.简单记 之前没搞过linux,这次客户的系统装的linux,项目发布环境及数 ...
- Oracle 12C -- 基于sequence的列的默认值
12C支持先创建一个sequence,然后再将该sequence指定为某个列的值的默认表达式. 和"identity column"具有以下不同点: ·对列的个数没有限制 ·seq ...
最新文章
- 自定义对话框JDialog的使用实例
- 遍历Repeater与ItemDataBound事件发现的几个问题。
- python拼音怎么写-Python 获取中文字拼音首个字母的方法
- java求导数_OO_JAVA_表达式求导
- LeetCode题组:第206题-反转链表
- Linux / argv、environ 和 env 的联系
- 【架构一】高可用之冗余备份
- Squid-4.1(最新)安装及构建代理服务器
- oracle rownum 特别慢,select * from table where rownum=1怎么会特别慢??表的数据在千万左右...
- Mysql - 安装与配置
- pythonstdin_如何写入Python子进程'stdin?
- 数学与计算机教学设计,数学和信息技术整合的思考 教案教学设计
- css 中引入第三方字体
- centos rpm安装mysql5.6_CentOS 7下使用RPM安装MySQL 5.6
- python源码学习(七)——String对象
- 阿兹卡塔防 Azgard Defense 详细攻略
- HTML5 小组 北京站 沙龙
- mysql8安装成功后忘记密码,密码重置
- ddr走线教程_DDR走线规则
- 苹果7计算机有什么功能是什么,iPhone7有哪些新功能 iPhone7新功能汇总【详细介绍】...
热门文章
- 提取一张图像内红框标注的区域-python
- ucos OS_ENTER_CRITICAL
- 《1024 程序员节》—我喂自己袋盐
- 深度学习和机器博弈如何结合_对抗机器学习的博弈论方法
- 安装nvm,配置nvm源,配置npm源
- android 广播失败,android - 发送广播Intent SIM_STATE_CHANGED失败 - 堆栈内存溢出
- B2C电子商务能否通吃线上线下?
- servlet生命周期:
- 宁德时代揭晓调研纪要:一定要进美国市场,友商扩产不会增加竞争
- *《Qt5+安装包制作(Qt Installer Framework)》二