实验说明:创建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.

转载于:https://www.cnblogs.com/haoxiaoyu/p/3911479.html

3.通过现有的PDB创建一个新的PDB相关推荐

  1. 假设Linux系统中不存在文件newfile,现要创建一个新文件newfile,以下哪个命令无法实现该功能。...

    要创建一个新文件newfile,可以使用Linux系统中的touch命令.例如: touchnewfile 这样就可以在Linux系统中创建一个名为newfile的空文件了. 如果使用的是cp命令,那 ...

  2. 创建一个新的extender

    写在前面的话: 本人在前一段的ASP.NET AJAX的学习中,本想使用一个<ajaxToolkit:ValidatorCalloutExtender >,但是折腾了几天,发现不能够使用, ...

  3. 01_创建一个新的activityactivity配置清单文件

    今天开始学四大组件.今天是学Activity,然后是广播接收者,然后是服务,然后是内容提供者.四大组件,咱们一天一个.Activity就是跟用户交互的界面,大部分的应用都不会只有这么一个界面.创建多个 ...

  4. python生成一个窗口_PyQt5创建一个新窗口的实例

    更多python教程请到友情连接: 菜鸟教程www.piaodoo.com 人人影视www.sfkyty.com 飞卢小说网www.591319.com 韩剧网www.op-kg.com 兴化论坛ww ...

  5. docker commit (从容器创建一个新的镜像)

    从容器创建一个新的镜像 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] -a :提交的镜像作者:-c :使用Dockerfile指令来创建镜像 ...

  6. 如何在Java中创建一个新的List

    本文翻译自:How to make a new List in Java We create a Set as: 我们创建一个Set为: Set myset = new HashSet() How d ...

  7. 关卡设计快速入门_3. 创建一个新关卡

    接下来,创建一个新关卡,来构建您的游戏环境.当创建一个新关卡时,就和您创建一个新项目类似.虚幻引擎允许您选择 模板 .默认情况下,有一个 默认 模板(它具有非常简单的场景) 和一个 Empty Lev ...

  8. C语言socket accept()函数(提取出所监听套接字的等待连接队列中第一个连接请求,创建一个新的套接字,并返回指向该套接字的文件描述符)

    文章目录 名称 使用格式 功能参数描述 参数 sockfd addr addrlen 返回值 示例 man 2 文档中的accept解释 错误处理 名称 accept() 接收一个套接字中已建立的连接 ...

  9. IDEA中添加tomcat服务器和创建一个新的web项目

    1.tomcat服务器的配置 第一步: 第二步:找到Templates 第三步: 第四步: 第五步: 第六步: 这样就完成了 2.创建一个新的web项目 第一步: 第二步: 第三步 第四步:

最新文章

  1. Load-time relocation of shared libraries
  2. python画图如何调整图例位置_matplotlib中legend位置调整解析
  3. 工具类软件操作手册_北京数字化的金蝶云团队-北京金普蝶软件科技有限公司...
  4. java学习(133):泛型
  5. Zend Framework(一)概述介绍
  6. 腾讯TIM自动回复内容怎么自定义添加
  7. Go 标准库 http.FileServer 实现静态文件服务
  8. Python爬取并简单分析2024年普通高校招生专业(专业类)选考科目要求
  9. 选择数据分析工具时要注意哪些问题
  10. Nginx+Tomcat部署Angular+javaweb项目(解决刷新404)
  11. sed截取连接数升高时的慢日志
  12. python画马鞍面_在matlab中怎么画马鞍面?
  13. word自动生成目录如何设置第一页和页码不齐问题
  14. python图像纹理提取_python 实现 gabor 滤波器提取纹理特征 提取指静脉纹理特征 指静脉切割代码...
  15. vue小白的自学笔记
  16. Android 显示文字超过指定长度部分使用省略号表示
  17. element-ui时间选择器如何把今日日期改为“至今”
  18. C语言——任意分数化简
  19. 平常水题 - Atcoder 058 - C - 怪文書 / Dubious Document(字符串的处理)
  20. android 视频录制尺寸裁剪,galleryfinal 实现Android图片单选/多选、拍照、裁剪、压缩。视频选择和录制。...

热门文章

  1. Scala类中的+方法
  2. Spring boot 将配置文件属性注入到一个bean中
  3. Scala高阶函数详解
  4. Qt IFW框架简介
  5. python提供了_Python中 为我们提供了一些独特的解决方案的方法特性
  6. 算法练习day13——190401(前缀树、贪心策略拼接字符串使字典序最小)
  7. android canvas_Android自定义View之绘制虚线
  8. ARM GIC简介与Linux中断处理分析
  9. 俄罗斯机器人雄鹿_在雄鹿无球可打,在火箭重获新生!哈登,你又让一人打出身价...
  10. python数组用sum求和_对python中array.sum(axis=?)的用法介绍