在Oracle数据库中(12c及以上版本),创建可插拔数据库(Pluggable Database, PDB)的常用方式包括以下五种,每种方式均提供详细的操作步骤和SQL语句:
一、从种子库(PDB$SEED)创建新PDB
原理:基于预定义的模板(PDB$SEED)快速生成新PDB。
步骤:
-- 1. 连接到CDB实例(使用SYSDBA权限)
CONN / AS SYSDBA
-- 2. 创建PDB并指定文件路径转换(将种子库文件复制到新位置)
CREATE PLUGGABLE DATABASE pdb_name
ADMIN USER pdb_admin IDENTIFIED BY password
FILE_NAME_CONVERT = ('/path/to/pdbseed/', '/path/to/new_pdb/');
-- 3. 切换到新PDB并打开
ALTER SESSION SET CONTAINER = pdb_name;
ALTER PLUGGABLE DATABASE OPEN;
-- 4. 验证状态
SELECT name, open_mode FROM v$pdbs;
二、克隆现有PDB创建新PDB
原理:从已有的PDB克隆生成新PDB(支持热克隆,无需关闭源PDB)。
步骤:
-- 1. 确保源PDB处于READ WRITE模式
ALTER PLUGGABLE DATABASE source_pdb OPEN READ WRITE;
-- 2. 克隆PDB(Oracle 12c R2+支持热克隆)
CREATE PLUGGABLE DATABASE new_pdb FROM source_pdb
FILE_NAME_CONVERT = ('/path/to/source_pdb/', '/path/to/new_pdb/');
-- 3. 打开新PDB
ALTER PLUGGABLE DATABASE new_pdb OPEN;
-- 4. 验证克隆结果
SELECT name, open_mode FROM v$pdbs;
三、插入未插拔的PDB(Plug-in)
原理:将已拔出的PDB(XML元数据文件和数据文件)插入到当前CDB中。
步骤:
-- 1. 将PDB元数据文件和数据文件拷贝到目标服务器
-- 假设已拔出PDB的元数据文件为 `unplugged_pdb.xml`
-- 2. 插入PDB到当前CDB
CREATE PLUGGABLE DATABASE new_pdb USING '/path/to/unplugged_pdb.xml'
NOCOPY -- 如果数据文件已在正确路径下,无需复制
SOURCE_FILE_NAME_CONVERT = ('/original/path/', '/new/path/');
-- 3. 同步并打开PDB
ALTER PLUGGABLE DATABASE new_pdb OPEN;
四、使用DBCA(图形化工具)创建PDB
原理:通过Oracle提供的Database Configuration Assistant工具创建PDB。
步骤:
# 1. 运行DBCA命令
dbca
# 2. 选择操作:
# - 选择 "Manage Pluggable Databases" > "Create a Pluggable Database"
# - 按向导配置名称、管理员密码、存储路径等
# - 完成创建
五、通过RMAN复制PDB
原理:使用RMAN备份恢复功能克隆PDB。
步骤:
-- 1. 在源CDB中备份PDB
RMAN> BACKUP PLUGGABLE DATABASE source_pdb;
-- 2. 在目标CDB中恢复备份
RMAN> RESTORE PLUGGABLE DATABASE source_pdb TO new_pdb
FROM BACKUP '/path/to/backup'
AUXILIARY DESTINATION '/path/to/temp';
-- 3. 插入并打开PDB
ALTER PLUGGABLE DATABASE new_pdb OPEN;
通用操作
1. 创建后配置
-- 创建用户并授权
CREATE USER pdb_user IDENTIFIED BY password;
GRANT CREATE SESSION, RESOURCE TO pdb_user;
-- 配置监听(修改tnsnames.ora)
LISTENER_ORA:
(SERVICE_NAME = new_pdb)
2. 关闭/删除PDB
ALTER PLUGGABLE DATABASE pdb_name CLOSE IMMEDIATE;
DROP PLUGGABLE DATABASE pdb_name INCLUDING DATAFILES;
注意事项
- 权限要求:需
SYSDBA或CREATE PLUGGABLE DATABASE权限。 - 文件路径:确保目标路径有足够空间,路径转换需正确。
- 兼容性:源PDB和目标CDB的字符集、版本需兼容。
- 监听配置:插入后需更新监听文件以支持客户端连接。
通过以上方式,可灵活创建适应不同场景的PDB。建议在生产环境中优先使用克隆或DBCA工具以提高效率。
评论区