首页 > 数据库 >Oracle 12c、18c、19c CDB、PDB常用命令

Oracle 12c、18c、19c CDB、PDB常用命令

时间:2022-10-29 19:32:18浏览次数:55  
标签:18c 12c CDB database -- pluggable open PDB ora


一、CDB、PDB常用管理命令

  • 查看PDB信息(在CDB模式下)
show pdbs  --查看所有pdb
select name,open_mode from v$pdbs为PDB信息视图
select con_id, dbid, guid, name , open_mode from v$pdbs;
  • 切换容器
alter session set container=orcl1  --切换到PDBorcl1容器
alter session set container=CDB$ROOT --切换到CDB容器
  • 查看当前属于哪个容器
select sys_context('USERENV','CON_NAME') from dual; --使用sys_context查看属于哪个容器
show con_name --用show查看当前属于哪个容器
  • 启动PDB
alter pluggable database orcl1 open;    --开启指定PDB
alter pluggable database all open; --开启所有PDB
alter session set container=orcl1; --切换到PDB进去开启数据库
startup
  • 关闭PDB
alter pluggable database orcl1 close;      --关闭指定的PDB
alter pluggable database all close; --关闭所有PDB
alter session set container=orcl1; --切换到PDB进去关闭数据库
shutdown immediate
  • 创建或克隆前要指定文件映射的位置(需要CBD下sysdba权限)
alter system set db_create_file_dest='/u01/app/oracle/oradata/orcl/orcl2';
  • 创建一个新的PDB:(需要CBD下sysdba权限)
create pluggable database test admin user admin identified by admin;    
alter pluggable database test_pdb open; --将test_pdb 打开
  • 克隆PDB(需要CBD下sysdba权限)
create pluggable database orcl2 from orcl1;  --test_pdb必须是打开的,才可以被打开
alter pluggable database orcl2 open; --然后打开这个pdb
  • 删除PDB(需要CBD下sysdba权限)
alter pluggable database  orcl2 close;  --关闭之后才能删除
drop pluggable database orcl2 including datafiles; --删除PDB orcl2
  • 设置CDB启动PDB自动启动(在这里使用的是触发器)
CREATE OR REPLACE TRIGGER open_pdbs
AFTER STARTUP ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN';
END open_pdbs;
/

二、Oracle 从PDBSEED创建PDB

  • 要确认PDBSEED的文件位置
select name from v$datafile;
  • 创建一个目录,这个目录是新创建的PDB的名字
mkdir -p /u01/app/oracle/oradata/ora12cdb/ora_pdb3
  • 从PDBSEED创建PDB
create pluggable database ora_pdb3 admin user hu identified by hu roles=(connect) default tablespace users datafile '/u01/app/oracle/oradata/ora12cdb/ora_pdb3/users01.dbf' size 20M autoextend on file_name_convert=('/u01/app/oracle/oradata/ora12cdb/pdbseed/','/u01/app/oracle/oradata/ora12cdb/ora_pdb3/');
  • 查看PDB
show pdbs;
  • 打开PDB
alter pluggable database ora_pdb3 open;
  • 关闭PDB
alter pluggable database ora_pdb3 colse immediate;
show pdbs;

三、通过已有PDB在本地克隆出新的PDB

实验步骤:

  • 查看PDB
show pdbs
  • 关闭需要被克隆的PDB,并打开为只读状态
alter pluggable database ora_pdb1 close immediate;
alter pluggable database ora_pdb1 open read only;
  • 创建一个目录,这个目录是新创建的PDB的名字
mkdir -p /u01/app/oracle/oradata/ora12cdb/ora_pdb4
  • 克隆PDB
create pluggable database ora_pdb4 from ora_pdb1 file_name_convert=('/u01/app/oracle/oradata/ora12cdb/ora_pdb1/','/u01/app/oracle/oradata/ora12cdb/ora_pdb4/');
show pdbs
  • 打开PDB
alter pluggable database ora_pdb4 open;
show pdbs

四、Oracle 12c 使用Non-CDB来创建PDB

现有一个非CDB的数据库ora12cdb,计划将其作为PDB,装入CDB中。

  • 进入ORCL,将其设置为只读模式
startup mount
alter database open read only;
select OPEN_MODE from v$database;
  • 连接到Non-CDB,并执行dbms_pdb.describe过程来创建描述Non-CDB的XML元数据文件。执行该过程的用户必须有sysdba权限。
BEGIN
DBMS_PDB.DESCRIBE
( pdb_descr_file => '/home/oracle/ncdb.xml');
END;
/
  • 关闭Non-CDB
shutdown immediate
srvctl stop database -db ora12cdb(集群)
  • 插入Non-CDB
CREATE PLUGGABLE DATABASE old12c_pdb USING '/home/oracle/ncdb.xml' source_file_name_convert = ('/u01/app/oracle/oradata/ora12cdb/', '/u01/app/oracle/oradata/ora12cdb/old12c_pdb/') nocopy tempfile reuse;
select name,open_mode from v$pdbs;
  • 执行$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql脚本

这个脚本必须在第一次打开新PDB之前执行。如果PDB不是由Non-CDB创建而来,那么就不需要执行这个脚本。为了执行noncdb_to_pdb.sql脚本,完成以下操作:

a.访问PDB,当前用户必须有sysdba权限,并且权限必须是公共或本地授予给PDB。最好使用as sysdba进行连接。

alter session set container=old12c_pdb;

b.执行noncdb_to_pdb.sql脚本:

SQL>@$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
  • 以读写模式打开新PDB
alter pluggable database old12c_pdb open read write; -- 默认启动就是read/write模式 
select name,open_mode from v$pdbs;
  • 备份PDB

Oracle 19c创建PDB的几种方式

Oracle 12c、18c、19c CDB、PDB常用命令_数据库

 

标签:18c,12c,CDB,database,--,pluggable,open,PDB,ora
From: https://blog.51cto.com/jackin/5806479

相关文章

  • 浙江理工大学入队200题——12C
    问题C:零基础学C/C++128——矩阵计算题目描述给定2个rc阶矩阵m1、m2以及若干运算符包括:+、-、、=,分别代表加(m1+m2)、减(m1-m2)、乘(m1*m2)、赋值(m1=m2)操作。计算矩......
  • TVS二极管SD12C在智能扫地机静电保护中的应用
    杭州东沃电子(DOWOSEMI)推出SD12C静电ESD保护器件(特别说明:有电子工程师也习惯把静电ESD保护器件称为TVS二极管),其具体参数详情,查看ESD-SD12CDatasheet可知:反向截止电压:12V最小......
  • AGC018C
    先设\(n=x+y+z\)。首先将三元组\((a,b,c)\)替换成二元组\((e=b-a,f=c-a)\)。即先默认所有人拿金币。然后问题转换为在\(n\)个二元组中选\(y\)个获得\(e\)收益,......
  • SYS.WRI$_ADV_OBJECTS对象清理-12Cand19C
    有时候我们的sysaux表空间增长很快,通过查询我们发现是SYS.WRI$_ADV_OBJECTS对应太大导致的,那么这个时候我们就需要清理该表SQL>COLSEGMENT_NAMEFORMATA30SQL>COL......
  • 解决oracle18c没有hr用户
    1.查找系统变量ORACLE_HOME的值2.按照路径寻找sql文件ORACLE_HOME变量值+demo\schema\human_resources3.把hr_main.sql脚本文件放在此处4.登入sys用户执行@+路径+文......
  • 好文分享 | 记一次Oracle12c数据库SQL短暂缓慢问题分析
    本文为墨天轮社区作者张sir原创作品,记录了日常运维Oracle数据库过程中遇到的一个慢SQL问题的解决、优化过程,文章内容全面具体、分析到位,且含有经验总结,分享给各位。问......
  • CF 1012C. Hills 题解
    题目传送门:Link。算法:DP。设计状态第一眼看着道题就感觉像是DP,再观察数据范围大概是\(O(n^2)\)的时间复杂度。因为要求多个\(k\)的答案,那么状态第一维显然是令多......
  • Oracle 12C R2-新特性---增强索引压缩
    高级索引压缩可以很好的应用于所有支持的索引。使用高级索引压缩创建索引可以减少所有唯一和非唯一索引的大小,并显着提高压缩率,占用更少的空间,同时仍然可以有效地访问索引。......
  • Oracle 18c-可伸缩序列(Scalable Sequence)
    说明在18c之前的版本中对于序列的使用,存在着对同一个序列争用的情况,特别是对于RAC这种高并发的环境中争用序列情况更是容易发生。针对这种情况,Oracle退出了可伸缩序列,大大减......
  • Oracle 12C R2-新特性-新的初始化参数
    12.2中新引入的初始化参数ALLOW_GLOBAL_DBLINKSALLOW_GROUP_ACCESS_TO_SGAAPPROX_FOR_AGGREGATIONAPPROX_FOR_COUNT_DISTINCTAPPROX_FOR_PERCENTILEASM_IO_PROCESSESAUTOTAS......