前言:从单实例库pdb迁移到RAC pdb库,本次实验中,数据库中数据管理方式采用omf,通过dblink将单实例数据库迁移到RAC环境中。
一、环境介绍
1、操作系统版本
Oracle Linux Server 7.8
2、数据库版本
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0
二、源库(单实例库)
1、采用omf管理方式
SQL> show parameter db_create_file_dest;
NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
db_create_file_dest string /oradata
备注:采用omf数据管理方式时,db_create_file_dest设置不为空;
2、源库创建用户(cdb模式下)
create user c##dblk identified by oracle;
grant CREATE PLUGGABLE DATABASE to c##dblk container=all;
grant create session,connect,resource,cdb_dba,sysoper to c##dblk contai
ner=all;
grant create any table,unlimited tablespace to c##dblk container=all;
源库状态:
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB01 READ WRITE NO
4 PDB02 READ WRITE NO
备注:将pdb02迁移到rac环境;
3、目标库,创建dblink
编辑tnsnames.ora文件,添加如下配置
pdb02 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.100)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdb02)
)
)
创建dblink
create public database link pdb02_links connect to c##dblk identified by oracle using 'pdb02';
4、检查dblink
select * from v$version@pdb01_links;
SQL> select * from v$version@pdb01_links;
BANNER
--------------------------------------------------------------------------------
BANNER_FULL
--------------------------------------------------------------------------------
BANNER_LEGACY
--------------------------------------------------------------------------------
CON_ID
----------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
5、在目标库创建文件目录
#使用grid用户,asmcmd创建pdb01目录(方便管理标识)
ASMCMD> pwd
+data/orcl
ASMCMD> mkdir pdb01
ASMCMD> ls
3347E1A7DD8D4B99E0630B0A0A0A1598/
334820967F541799E0630C0A0A0AE1B8/
475603D597A6048AE0630B0A0A0AE0F1/
475603D597B7048AE0630B0A0A0AE0F1/
475E30D6835D9ABFE0630B0A0A0A8A69/
86B637B62FE07A65E053F706E80A27CA/
ARCHIVELOG/
AUTOBACKUP/
CONTROLFILE/
DATAFILE/
ONLINELOG/
PARAMETERFILE/
PASSWORD/
TEMPFILE/
pdb01/
6、迁移源库到目标库
SQL>
create pluggable database pdb02 from pdb02@pdb02_links file_name_convert=('/oradata/ORCL/4754A0E5C07AE302E063640A0A0AB703/datafile/','+DATA/ORCL/pdb01/'); SQL>
Pluggable database created.
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB01 READ WRITE NO
5 PDB02 MOUNTED
7、开启pdb02库
SQL> alter pluggable database pdb02 open;
Pluggable database altered.
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB01 READ WRITE NO
5 PDB02 READ WRITE NO
问题报错1:alert_orcl1.log日志
PDB02(5):***************************************************************
PDB02(5):WARNING: Pluggable Database PDB02 with pdb id - 5 is
PDB02(5): altered with errors or warnings. Please look into
PDB02(5): PDB_PLUG_IN_VIOLATIONS view for more details.
PDB02(5):***************************************************************
检查视图: select * from PDB_PLUG_IN_VIOLATIONS;
Database option RAC mismatch: PDB installed version NULL. CDB installed version 19.0.0.0.0.0 PENDING
解决方法:
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
5 PDB02 READ WRITE NO
SQL> set linesize 200;
SQL> col comp_name format a50;
SQL> col version format a50;
SQL> col status format a50;
SQL> select comp_name,version,status from dba_registry;
COMP_NAME VERSION STATUS
-------------------------------------------------- -------------------------------------------------- --------------------------------------------------
Oracle Database Catalog Views 19.0.0.0.0 VALID
Oracle Database Packages and Types 19.0.0.0.0 VALID
Oracle Real Application Clusters 19.0.0.0.0 OPTION OFF
JServer JAVA Virtual Machine 19.0.0.0.0 VALID
Oracle XDK 19.0.0.0.0 VALID
Oracle Database Java Packages 19.0.0.0.0 VALID
OLAP Analytic Workspace 19.0.0.0.0 VALID
Oracle XML Database 19.0.0.0.0 VALID
Oracle Workspace Manager 19.0.0.0.0 VALID
Oracle Text 19.0.0.0.0 VALID
Oracle Multimedia 19.0.0.0.0 VALID
COMP_NAME VERSION STATUS
-------------------------------------------------- -------------------------------------------------- --------------------------------------------------
Spatial 19.0.0.0.0 VALID
Oracle OLAP API 19.0.0.0.0 VALID
Oracle Label Security 19.0.0.0.0 VALID
Oracle Database Vault 19.0.0.0.0 VALID
15 rows selected.
备注:Oracle Real Application Clusters 19.0.0.0.0 OPTION OFF
在pdb02 处于open状态下执行 @?/rdbms/admin/catclust.sql
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
5 PDB02 READ WRITE NO
SQL> select comp_name,version,status from dba_registry;
COMP_NAME VERSION STATUS
-------------------------------------------------- -------------------------------------------------- --------------------------------------------------
Oracle Database Catalog Views 19.0.0.0.0 VALID
Oracle Database Packages and Types 19.0.0.0.0 VALID
Oracle Real Application Clusters 19.0.0.0.0 VALID
JServer JAVA Virtual Machine 19.0.0.0.0 VALID
Oracle XDK 19.0.0.0.0 VALID
Oracle Database Java Packages 19.0.0.0.0 VALID
OLAP Analytic Workspace 19.0.0.0.0 VALID
Oracle XML Database 19.0.0.0.0 VALID
Oracle Workspace Manager 19.0.0.0.0 VALID
Oracle Text 19.0.0.0.0 VALID
Oracle Multimedia 19.0.0.0.0 VALID
COMP_NAME VERSION STATUS
-------------------------------------------------- -------------------------------------------------- --------------------------------------------------
Spatial 19.0.0.0.0 VALID
Oracle OLAP API 19.0.0.0.0 VALID
Oracle Label Security 19.0.0.0.0 VALID
Oracle Database Vault 19.0.0.0.0 VALID
15 rows selected.
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
5 PDB02 READ WRITE NO
总结:至此单实例库pdb迁移到RAC环境pdb完成。
2026.1.2