实验说明:创建PDB除了可以通过种子PDB创建外,现在测试通过一个现有的用户PDB克隆创建新的PDB数据库

实验步骤:
1.创建测试数据
SQL> alter session set container=emp;
Session altered.

SQL> conn dsg/dsg@emp
Connected.
SQL> create table test (id number(8));
Table created.

SQL> begin
  2  for i in 1..100 loop
  3  insert into test values(i);
  4  end loop;
  5  commit;
  6  end;
  7  /
PL/SQL procedure successfully completed.

SQL> select count(*) from test;
  COUNT(*)
----------
       100

2.通过现有PDB创建新的PDB  EMPTEST
SQL> conn / as sysdba
Connected.
SQL> create pluggable database emptest from emp;
create pluggable database emptest from emp
*
ERROR at line 1:
ORA-65081: database or pluggable database is not open in read only mode
----源数据库必须在read only状态

SQL> alter pluggable database emp close;

Pluggable database altered.

SQL> alter pluggable database emp open read only;
Pluggable database altered.

SQL> create pluggable database emptest from emp;
Pluggable database created.

3.在tnsnames.ora中添加下面的信息,这样就可以通过服务名连接数据库了
EMPTEST =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = EMPTEST)
    )
  )
 
新的PDB创建成功,查看alert日志:
create pluggable database emptest from emp
Sun Jan 19 22:26:48 2014
****************************************************************
Pluggable Database EMPTEST with pdb id - 4 is created as UNUSABLE.
If any errors are encountered before the pdb is marked as NEW,
then the pdb must be dropped
****************************************************************
Deleting old file#7 from file$
Deleting old file#8 from file$
Deleting old file#9 from file$
Adding new file#12 to file$(old file#7)
Adding new file#13 to file$(old file#8)
Adding new file#14 to file$(old file#9)
Successfully created internal service emptest at open
ALTER SYSTEM: Flushing buffer cache inst=0 container=4 local
****************************************************************
Post plug operations are now complete.
Pluggable database EMPTEST with pdb id - 4 is now marked as NEW.
****************************************************************
Completed: create pluggable database emptest from emp
新的PDB创建后数据库会自动监听
[oracle@localhost datafile]$ lsnrctl status

LSNRCTL for Linux: Version 12.1.0.1.0 - Production on 19-JAN-2014 22:31:31

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                         LISTENER
Version                   TNSLSNR for Linux: Version 12.1.0.1.0 - Production
Start Date               14-JAN-2014 10:29:20
Uptime                    5 days 12 hr. 2 min. 11 sec
Trace Level             off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/12.1.0/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=localhost.localdomain)(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle/admin/ora12c/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "emp" has 1 instance(s).
  Instance "ora12c", status READY, has 1 handler(s) for this service...
Service "emptest" has 1 instance(s).
  Instance "ora12c", status READY, has 1 handler(s) for this service...

Service "ora12c" has 1 instance(s).
  Instance "ora12c", status READY, has 1 handler(s) for this service...
Service "ora12cXDB" has 1 instance(s).
  Instance "ora12c", status READY, has 1 handler(s) for this service...
The command completed successfully

 
说明:
PDB的一些更改操作不能在CDB级别更改,必须切换到PDB下,下面以修改GLOBAL_NAME为例:
SQL> select service_id,name,pdb from v$services;

SERVICE_ID NAME                                                             PDB
---------- ---------------------------------------------------------------- ------------------------------
         0 emptest                                                          EMPTEST
         6 emp                                                                 EMP
         3 ora12cXDB                                                     CDB$ROOT
         4 ora12c                                                             CDB$ROOT
         1 SYS$BACKGROUND                                      CDB$ROOT
         2 SYS$USERS                                                     CDB$ROOT
SQL> alter pluggable database emptest rename global_name to emp_test;
alter pluggable database emptest rename global_name to emp_test
                                                       *
ERROR at line 1:
ORA-65046: operation not allowed from outside a pluggable database

SQL> alter pluggable database emptest close;
alter pluggable database emptest close
*
ERROR at line 1:
ORA-65020: pluggable database EMPTEST already closed

下面以RESTRICTED 模式打开数据库
SQL> alter pluggable database emptest open restricted;
Pluggable database altered.

SQL> conn sys/oracle@emptest as sysdba
Connected.
SQL> alter pluggable database emptest rename global_name to emp_test;
Pluggable database altered.

SQL> select service_id,name,pdb from v$services;

SERVICE_ID NAME                                                             PDB
---------- ---------------------------------------------------------------- ------------------------------
         1 emp_test                                                         EMP_TEST

SQL> conn / as sysdba
Connected.
SQL> select service_id,name,pdb from v$services;

SERVICE_ID NAME                                                             PDB
---------- ---------------------------------------------------------------- ------------------------------
         1 emp_test                                                         EMP_TEST
         6 emp                                                                   EMP
         3 ora12cXDB                                                        CDB$ROOT
         4 ora12c                                                                 CDB$ROOT
         1 SYS$BACKGROUND                                          CDB$ROOT
         2 SYS$USERS                                                        CDB$ROOT

6 rows selected.

3.通过现有的PDB创建一个新的PDB的更多相关文章

  1. linux内核分析作业6:分析Linux内核创建一个新进程的过程

    task_struct结构: struct task_struct {   volatile long state;进程状态  void *stack; 堆栈  pid_t pid; 进程标识符  u ...

  2. Step by Step 创建一个新的Dynamics CRM Organization

    原创地址:http://www.cnblogs.com/jfzhu/p/4012833.html 转载请注明出处 前面演示过如何安装Dynamics CRM 2013,参见<Step by st ...

  3. Step by step 如何创建一个新森林

    原创地址:http://www.cnblogs.com/jfzhu/p/4006118.html 转载请注明出处 创建一个新森林就是在一台计算机上安装AD DS,并将这台计算机提升为域控制器. 演示环 ...

  4. 【Cocos2d-x for WP8 学习整理】(1)创建一个新项目

    喜大普奔                         10.1假期之前看到了一个很振奋的消息,就是随着Cocos2d-x 2.2的发布,WP8/WIN8有史以来第一次的合并到主版本了. 之前 V2 ...

  5. ZeroMQ接口函数之 :zmq_ctx_new – 创建一个新的ZMQ 环境上下文

    ZeroMQ 官方地址 :http://api.zeromq.org/4-0:zmq_ctx_new zmq_ctx_new(3)               ØMQ Manual - ØMQ/3.2 ...

  6. 第六周——分析Linux内核创建一个新进程的过程

    "万子恵 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 &q ...

  7. 分析Linux内核创建一个新进程的过程

    一.原理分析 1.进程的描述 进程控制块PCB——task_struct,为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息. struct task_struct ...

  8. Android 创建一个新的Activity

    本文转载自:http://www.cnblogs.com/wuyudong/p/5658020.html 新建一个项目,创建一个java类,继承自Activity 新建一个Android.xml文件: ...

  9. soapui中文操作手册(一)----创建一个新的项目

    1) 创建一个新的项目 点击项目,选择新建项目SOAP.这将打开一个新的SOAP项目对话框. 注意:你也可以做CTRL + N(WIN)或CMD+ N(MAC)来创建一个新的SOAP项目. 在新的SO ...

随机推荐

  1. 【转载】JS中bind方法与函数柯里化

    原生bind方法 不同于jQuery中的bind方法只是简单的绑定事件函数,原生js中bind()方法略复杂,该方法上在ES5中被引入,大概就是IE9+等现代浏览器都支持了(有关ES5各项特性的支持情 ...

  2. java学习流程

    J2SE 面向对象-封装.继承.多态内存的分析递归集合类.泛型.自动打包与解包.Annotation IO 多线程.线程同步 TCP/UDP AWT.事件模型.匿名类 正则表达式反射机制 2:数据库( ...

  3. Win10家庭版升级专业版密钥

    步骤如下: Win10 Home 版本基础上,设置—更新安全—激活—更改产品密钥(或者 我的电脑右键—属性—右下角更改产品密钥),输入 VK7JG-NPHTM-C97JM-9MPGT-3V66T

  4. [Think In Java]基础拾遗3 - 容器、I/O、NIO、序列化

    目录 第十一章 持有对象第十七章 容器深入研究第十八章 Java I/O系统 第十一章 持有对象 1. java容器概览 java容器的两种主要类型(它们之间的主要区别在于容器中每个“槽”保存的元素个 ...

  5. 【Codeforces718C】Sasha and Array 线段树 + 矩阵乘法

    C. Sasha and Array time limit per test:5 seconds memory limit per test:256 megabytes input:standard ...

  6. Web Service 中返回DataSet结果大小改进

    http://www.cnblogs.com/scottckt/archive/2012/11/10/2764496.html Web Service 中返回DataSet结果方法: 1)直接返回Da ...

  7. TCP中的RST复位信号

    TCP中的RST复位信号 在TCP协议中RST表示复位,用来关闭异常的连接,在TCP的设计中它是不可或缺的. 发送RST包关闭连接时,不必等缓冲区的包都发出去,直接就丢弃缓存区的包发送RST包.而接收 ...

  8. Python 字符串操作及string模块使用

    python的字符串操作通过2部分的方法函数基本上就可以解决所有的字符串操作需求: python的字符串属性函数 python的string模块 1.字符串属性方法操作: 1.>字符串格式输出对 ...

  9. SQL Server附加数据库时报1813错误的解决方案

    SQL Server附加数据库时报1813错误的解决方案   无法打开新数据库 'ASR'.CREATE DATABASE 中止. 文件激活失败.物理文件名称'E:\SqlServer\MSSQL\D ...

  10. nginx图片处理

    前言 不管一个系统或网站的大与小,都存在相应的图片处理,生成缩略图.为图片加水印等等,如果涉及到APP端,这个图片的处理需求变得更加重要了,因为在目前看来,客户端的屏幕大小不一,会导致以下问题: 1. ...