5,139
社区成员




环境:oracle19c,已存在一个CDB,这个cdb下有俩pdb,字符集为AL32UTF8。现在需求是我们上线了一个新的应用,字符集为ZHS16GBK,我该如何创建新的字符集为ZHS16GBK的pdb。
可以使用下面的命令进行修改
alter database character set internal_use zhs16gbk;
在Oracle 19c中创建一个新的PDB,并指定其字符集为ZHS16GBK,你需要按照以下步骤进行操作:
确认CDB支持多字符集: 首先确保你的CDB启用了多字符集支持。如果未启用,则需要启用它以允许不同字符集的PDB共存。
准备数据库环境: 确保有足够的存储空间用于新的PDB,并且操作系统环境中已经安装了对应ZHS16GBK字符集的支持。
创建新的PDB并指定字符集: 在CDB根容器(CDB$ROOT)中作为管理员登录,使用CREATE PLUGGABLE DATABASE命令创建新PDB,并指定字符集参数CHARACTER SET为ZHS16GBK。示例命令如下:
ALTER SESSION SET CONTAINER = CDB$ROOT;
CREATE PLUGGABLE DATABASE new_pdb_name
ADMIN USER admin_user IDENTIFIED BY password
CHARACTER SET ZHS16GBK
FILE_NAME_CONVERT=('<source_file_prefix>', '<target_file_prefix>');
这里,
new_pdb_name 替换为你打算创建的新PDB的名字。
admin_user 和 password 是为新PDB创建的管理员用户及其密码。
<source_file_prefix> 和 <target_file_prefix> 是文件名转换参数,用来指定数据文件路径的模板替换规则。比如,如果你从pdbseed复制文件结构,那么可能需要将pdbseed的数据文件路径前缀替换成新PDB的数据文件存放路径。
完成创建并开启新PDB: 创建后,还需要打开这个新PDB以便能够对其进行进一步的操作和应用部署。
ALTER PLUGGABLE DATABASE new_pdb_name OPEN;
验证字符集设置: 登录到新创建的PDB中,检查当前会话的字符集是否已正确设置。
ALTER SESSION SET CONTAINER = new_pdb_name;
SELECT value FROM v$nls_parameters WHERE parameter = 'NLS_CHARACTERSET';