Oracle19c的CDB和PDB

本文详细介绍了Oracle12c的多租户架构,重点解释了容器数据库(CDB)和可插拔数据库(PDB)的概念。通过具体实例演示了如何在Oracle12c中操作CDB和PDB,包括查询、创建、删除PDB以及创建用户等常见任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       一、Oracle 12c Multitenant Architecture多租户框架最重要的2个概念是容器数据库CDB(multitenant container database)和可热插拔数据库PDB(pluggable databases)。可以把CDB想象成一个大的容器,这个大的容器在物理上是一个整体,在这个大的容器中还有一些小的容器PDB。容器的目的是将Oracle固有元数据和用户数据(包括用户元数据)隔离。

 

        二、CDB和PDB含义

        CDB:容器数据库,名称为 CDB$ROOT。其作用就是系统数据库,sys等账号都保存在里面。同时它可以管理PDB数据库。

        PDB:可插拔的数据库。用户可以在PDB自建数据库。Oracle安装成功后有个默认的pdb数据库(在安装Oracle时自己设定),PDB中自带有PDB$SEED,属于PDB的模板数据库,自己创建数据库的时候以此库为模板。 

         三、CDB和PDB实操

1、查询当前所在容器

# show con_name;

2、查看所有的PDB

# show pdbs;

3、切换到指定的pbd

# alter session set container=XRGPDB;

# alter session set container= PDB$SEED ;

4、创建新的NEWPDB

# 切换到pdbseed,查询模板pdb的pdbseed的数据文件路径

# select name, con_id from v$datafile order by con_id;
# select name, con_id from v$tempfile order by con_id;

 

# 在pdbseed 同级目录创建NEWPDB

# mkdir -p /opt/oracle/oradata/ORCLCDB/NEWPDB

# 创建新的NEWPDB

# create pluggable database NEWPDB admin user newxrg identified by 123456 roles=(dba,connect,resource) file_name_convert=('/opt/oracle/oradata/ORCLCDB/pdbseed','/opt/oracle/oradata/ORCLCDB/N;WPDB');

# 删除pbd

# drop pluggable database 数据库名称 including datafiles;

 增加监听,停止监听,开启监听

(SID_DESC =
      (GLOBAL_DBNAME = NEWPDB)      
      (SID_NAME = ORCLCDB)
      (ORACLE_HOME = /opt/oracle/product/19c/dbhome_1)
    )

查看pdb打开情况

# 查询所有pdb打开情况

# select name,open_mode from v$pdbs;

# 找到指定的pdb,进入该pdb
# alter session set container = NEWPDB;

# 打开此pdb
# alter pluggable database open; 

# 创建表空间

# CREATE BIGFILE TABLESPACE "NEWXRG" DATAFILE '/opt/oracle/oradata/ORCLCDB/NEWPDB/newxrg.dbf' SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

# 给用户赋值表空间
# alter user newxrg default tablespace NEWXRG;

 这样这个新创建的数据库就可以使用了

 四、创建用户

1、全局用户

create user c##用户名 identified by 密码;

 2、某个pdb的用户

# alter session set container=XRGPDB;

# create user 用户名 identified by 密码;

3、删除用户

# drop user c##用户名;

# drop user 用户名;

 

<think>好的,用户问的是如何在Oracle 19c中配置CDBPDB。我需要根据提供的引用资料已有的知识来构建一个清晰的步骤指南。首先,我应该先确认用户的问题范围,他们可能想了解从创建CDB到管理PDB的全过程。 根据引用[2],创建CDB的过程与非CDB类似,但需要指定enable_pluggable_database参数。所以第一步应该是创建CDB,这可能包括使用DBCA工具或者SQL命令。然后,引用[3]提到了一些常用的CDBPDB命令,比如切换容器、启动关闭PDB等,这些需要详细列出。 接下来,用户提供的引用[1]中有一个错误示例,ORA-65019,说明在打开PDB时如果已经打开的话会报错,所以需要确保在操作时PDB处于正确的状态。这可能涉及到使用alter pluggable database命令,如打开或关闭PDB,这部分需要包括在配置步骤中。 另外,引用[4]提到增加监听配置,这部分可能涉及到修改listener.ora文件,确保PDB能够被正确访问。因此,配置监听也是关键步骤之一,需要详细说明如何添加SID描述重启监听服务。 可能还需要考虑创建新PDB的方法,比如从种子创建或克隆现有PDB。引用[3]中有创建PDB的命令示例,应该包括这些步骤,并说明如何通过SQL命令执行。 最后,测试连接部分也很重要,确保配置正确。可能需要使用sqlplus连接到不同的PDB,或者通过应用程序测试连接字符串。 需要确保步骤逻辑清晰,分阶段进行:创建CDB、创建PDB、配置监听、管理PDB状态、测试连接。每个步骤都需要具体的命令注意事项,例如在打开PDB时的错误处理,引用[1]中的例子需要提醒用户检查当前状态。 还要注意引用标记的正确使用,比如在提到启动PDB时引用[1],创建CDB时引用[2],命令示例引用[3],监听配置引用[4]。确保每个引用都自然融入文本,并在相关位置标注。 最后生成相关问题,可能涉及CDBPDB的区别、迁移数据、备份恢复、常见错误解决等,参考用户之前的示例问题结构。</think>以下是在Oracle 19c中配置CDBPDB的详细步骤指南: ### 一、创建CDB容器数据库 1. **通过DBCA工具创建** 使用Database Configuration Assistant(DBCA)选择"Create Container Database"选项,勾选`Enable Pluggable Database`[^2],设置CDB名称(如ORCLCDBPDB种子模板。 2. **手动SQL创建** 在创建数据库时添加参数: ```sql CREATE DATABASE ORCLCDB ENABLE PLUGGABLE DATABASE FILE_NAME_CONVERT=('/opt/oracle/oradata/ORCLCDB/pdbseed/','/opt/oracle/oradata/ORCLCDB/ORCLPDB/'); ``` --- ### 二、创建可插拔数据库PDB) 1. **从PDB种子创建** ```sql CREATE PLUGGABLE DATABASE ORCLPDB ADMIN USER pdbadmin IDENTIFIED BY password FILE_NAME_CONVERT=('/opt/oracle/oradata/ORCLCDB/pdbseed/','/opt/oracle/oradata/ORCLCDB/ORCLPDB/'); ``` 2. **查看PDB状态** ```sql SELECT name, open_mode FROM v$pdbs; ``` --- ### 三、管理PDB生命周期 1. **启动/关闭PDB** ```sql ALTER PLUGGABLE DATABASE ORCLPDB OPEN; -- 打开PDB[^1] ALTER PLUGGABLE DATABASE ORCLPDB CLOSE IMMEDIATE; -- 强制关闭 ``` 2. **切换容器** ```sql ALTER SESSION SET CONTAINER=ORCLPDB; -- 进入PDB[^3] ALTER SESSION SET CONTAINER=CDB$ROOT; -- 返回CDB ``` --- ### 四、监听配置(关键步骤) 修改`$ORACLE_HOME/network/admin/listener.ora`: ```xml SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = ORCLPDB) (SID_NAME = ORCLCDB) (ORACLE_HOME = /opt/oracle/product/19c/dbhome_1) ) ) ``` 重启监听: ```bash lsnrctl stop lsnrctl start ``` (配置后需验证tnsping连通性)[^4] --- ### 五、连接测试 1. **CDB级连接** ```bash sqlplus sys@ORCLCDB as sysdba ``` 2. **PDB级连接** ```bash sqlplus pdbadmin/password@ORCLPDB ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值