oracle 12c pdb&cdb

-- 查看是否cdb,如果NO则是普通数据库,由enable_pluggable_database参数TRUE|FALSE 控制
SQL> select name,cdb from v$database;

NAME      CDB
--------- ---
ORCL      YES
-- 察看当前连接:
SQL> show con_name;

CON_NAME
------------------------------
CDB$ROOT
-- 切换容器
alter session set container=pdb1;
-- 查看pdbs
SQL> select con_id,dbid,name,open_mode from v$pdbs;

    CON_ID       DBID NAME                           OPEN_MODE
---------- ---------- ------------------------------ ----------
         2 1240419916 PDB$SEED                       READ ONLY
         3 2066919739 PDB1                           READ WRITE

-- 创建删除pdb
CREATE PLUGGABLE DATABASE pdb2 ADMIN USER pdb2_admin IDENTIFIED BY oracle
STORAGE (MAXSIZE 2G MAX_SHARED_TEMP_SIZE 100M)  
DEFAULT TABLESPACE pdb2_tbs
DATAFILE 'G:\app\oracle\oradata\orcl\pdb2\pdb2_data01.dbf' SIZE 25M AUTOEXTEND ON 
PATH_PREFIX = 'G:\app\oracle\oradata\orcl\pdb2\'  
FILE_NAME_CONVERT = ('G:\app\oracle\oradata\orcl\pdbseed\','G:\app\oracle\oradata\orcl\pdb2\');

插接式数据库已创建

DROP PLUGGABLE DATABASE PDB2 INCLUDING DATAFILES;

-- 打开/关闭pdb
 -- 在cdb中跟pdb中有打开关闭略微差异,另外也可以看到权限不同查看的pdb个数不一样
SQL> alter session  set container=cdb$root;

会话已更改。

SQL> alter pluggable database pdb1 close immediate;

插接式数据库已变更。
SQL> alter session set container=pdb1;

会话已更改。

SQL> alter database pdb1  open;

数据库已更改。

SQL> select con_id,dbid,NAME,OPEN_MODE from v$pdbs;

    CON_ID       DBID NAME                           OPEN_MODE
---------- ---------- ------------------------------ ----------
         3 2066919739 PDB1                           READ WRITE

SQL> alter session set container=cdb$root;

会话已更改。

SQL> select con_id,dbid,NAME,OPEN_MODE from v$pdbs;

    CON_ID       DBID NAME                           OPEN_MODE
---------- ---------- ------------------------------ ----------
         2 1240419916 PDB$SEED                       READ ONLY
         3 2066919739 PDB1                           READ WRITE
         4 4180530913 PDB2                           READ WRITE
 --执行startup/shutdown
SQL> alter session set container=pdb4
  2  ;

会话已更改。

SQL> shutdown immediate;
插接式数据库已关闭。
SQL> select con_id,dbid,name,open_mode from v$pdbs;

    CON_ID       DBID NAME                           OPEN_MODE
---------- ---------- ------------------------------ ----------
         4  675327819 PDB4                           MOUNTED

SQL> startup
插接式数据库已打开。
SQL> select con_id,dbid,name,open_mode from v$pdbs;

    CON_ID       DBID NAME                           OPEN_MODE
---------- ---------- ------------------------------ ----------
         4  675327819 PDB4                           READ WRITE
-- 所有pdb一起打开关闭,如果不指定pdb名称,则一次执行所有pdb操作,比如
alter pluggable database all open;
alter pluggable database all close immediate;

--用户操作,
-- 在cdb,pdb创建用户是不同的,如果在cdb创建一个用户,会在每个pdb中(除了pdb$seed)都对应创建相应的用户
-- 并且以C##开头,另外授权操作也需要独立进行,看看监听
C:\Users\Administrator>lsnrctl status

LSNRCTL for 64-bit Windows: Version 12.1.0.2.0 - Production on 22-3月 -2016 16:4
9:11

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

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=loge-PC)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for 64-bit Windows: Version 12.1.0.2.0 - Produ
ction
启动日期                  22-3月 -2016 14:42:02
正常运行时间              0 天 2 小时 7 分 11 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          G:\app\oracle\product\12.1.0\dbhome_1\network\admin\li
stener.ora
监听程序日志文件          G:\app\oracle\product\12.1.0\dbhome_1\log\diag\tnslsnr
\loge-PC\listener\alert\log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=loge-PC)(PORT=1521)))
服务摘要..
服务 "orcl" 包含 1 个实例。
  实例 "ORCL", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "pdb1" 包含 1 个实例。
  实例 "ORCL", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功

-- 参数修改,在cdb中修改,pdb会继承进去;如果在pdb中修改会覆盖pdb从cdb中继承的参数含义

-- plug功能

CREATE PLUGGABLE DATABASE pdb4 ADMIN USER pdb2_admin IDENTIFIED BY oracle
STORAGE (MAXSIZE 2G MAX_SHARED_TEMP_SIZE 100M)  
DEFAULT TABLESPACE pdb4_tbs
DATAFILE 'G:\app\oracle\oradata\orcl\pdb4\pdb4_data01.dbf' SIZE 25M AUTOEXTEND ON 
PATH_PREFIX = 'G:\app\oracle\oradata\orcl\pdb4\'  
FILE_NAME_CONVERT = ('G:\app\oracle\oradata\orcl\pdbseed\','G:\app\oracle\oradata\orcl\pdb4\');

 -- 创建文件夹pdb4_c cd G:\app\oracle\oradata\orcl ;mkdir pdb4_c
 -- 执行
SQL> alter pluggable database pdb4 unplug into 'G:\app\pdb4.xml';

插接式数据库已变更。

SQL> drop pluggable database pdb4 ;

插接式数据库已删除。
SQL> create pluggable database pdb4 using 'G:\app\pdb4.xml' copy file_name_conve
rt=('G:\app\oracle\oradata\orcl\pdb4\','G:\app\oracle\oradata\orcl\pdb4_c\');

插接式数据库已创建。

SQL> select con_id,dbid,name,open_mode from v$database;

    CON_ID       DBID NAME      OPEN_MODE
---------- ---------- --------- --------------------
         0 1434174562 ORCL      READ WRITE

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

    CON_ID       DBID NAME                           OPEN_MODE
---------- ---------- ------------------------------ ----------
         2 1240419916 PDB$SEED                       READ ONLY
         3 2066919739 PDB1                           READ WRITE
         4  675327819 PDB4                           MOUNTED

SQL> exec dbms_pdb.sync_pdb();

PL/SQL 过程已成功完成。

SQL> alter pluggable database pdb4 open;

插接式数据库已变更。

-- 可以看到迁移数据库功能的强大之处

-- 默认数据库启动后所有pdb都是关闭状态,可以使用触发器打开
SQL> edit
已写入 file afiedt.buf

  1  create or replace trigger sys.after_startup after startup on database
  2  begin
  3  execute immediate 'alter pluggable database all open';
  4* end after_startup;
SQL> /

触发器已创建

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area 2466250752 bytes
Fixed Size                  3048632 bytes
Variable Size             671091528 bytes
Database Buffers         1778384896 bytes
Redo Buffers               13725696 bytes
数据库装载完毕。
数据库已经打开。
SQL> select con_id,dbid,name,open_mode from v$pdbs;

    CON_ID       DBID NAME                           OPEN_MODE
---------- ---------- ------------------------------ ----------
         2 1240419916 PDB$SEED                       READ ONLY
         3 2066919739 PDB1                           READ WRITE
         4  675327819 PDB4                           READ WRITE


一些概念:

Multitenant Environment:多租户环境

CDB(Container Database):数据库容器

PD(Pluggable Database):可插拔数据库

oracle 12c pdb&cdb_第1张图片

 

 

你可能感兴趣的:(--,Ora12c&13c)