oracle19c切换PDB服务器

之前在linux上进行了Oracle19c的安装以及数据库初始化,那个教程中初始化的是CDB数据库,我们平时使用的是PDB,所以要进行切换。关于PDB和CDB也是有区别的,
  1. Oracle 12c 开始有了CDB和PDB
    CDB与PDB是Oracle 12C引入的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为ContainerDatabase,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。
  2. 12c中,oracle 将CDB看成一个容器,用来存放数据库。
    在CDB中可以有多个PDB,其中存在一个root根容器(PDBROOT)、一个种子容器(PDBROOT)、一个种子容器(PDBROOT)、一个种子容器(PD
<think>我们面对的问题是将Oracle11gRAC升级到Oracle19cRAC的PDB环境。升级过程需要谨慎,因为涉及从较旧版本(11g)到较新版本(19c)的重大跨越,并且还要引入多租户架构(PDB)。根据Oracle的最佳实践,通常我们会采用数据泵导出导入、或使用DBUA(DatabaseUpgradeAssistant)进行升级,但考虑到RAC环境和目标版本的多租户特性,我们需要分阶段进行。参考引用[2]和[4],它们提到了19cRAC环境下的PDB配置和恢复,虽然不直接针对11g升级,但其中关于PDB的配置步骤和环境设置(如环境变量)对我们有参考价值。同时,引用[1]中环境变量的设置也是必要的。升级路径:Oracle11g(11.2.0.4)不能直接升级到19c,需要先升级到12.1.0.2版本,然后再升级到19c。或者,我们可以使用数据泵导出导入的方法,将数据迁移到新建的19cRACPDB中。在19c中,数据库作为CDB(容器数据库)运行,其中包含PDB(可插拔数据库)。步骤概述:1.准备目标环境:安装Oracle19cRAC软件并创建CDB(容器数据库)。2.将源数据库Oracle11gRAC)升级到中间版本(如12.1.0.2),然后升级到19c,或者使用数据泵导出导入的方式将数据迁移到19c的PDB中。由于跨版本较大且涉及架构变化(引入CDB/PDB),推荐使用数据泵导出导入,因为这样可以在迁移的同时完成升级,并且目标环境是一个全新的19cRACCDB,其中包含一个或多个PDB。具体步骤(采用数据泵方式):第一阶段:准备目标环境1.1安装OracleGridInfrastructure19cforRAC。1.2安装OracleRAC19c数据库软件。1.3创建CDB实例(使用DBCA),选择RAC方式创建,并创建为CDB。在创建CDB时,可以选择是否创建PDB,也可以先创建CDB然后手动添加PDB。参考引用[1],确保环境变量正确设置(ORACLE_BASE,ORACLE_HOME,ORACLE_SID等)。第二阶段:导出源数据库(11gRAC)2.1在源数据库(11g)上使用expdp(数据泵导出)导出所需的数据。2.2导出时注意,如果源数据库使用了某些特定的特性(如XMLDB,Spatial等),需要确保目标数据库已经安装了相应的组件。第三阶段:导入到目标PDB3.1在目标19cRACCDB中创建一个新的PDB(使用DBCA或SQL命令)。例如:CREATEPLUGGABLEDATABASEnewpdbADMINUSERpdbadminIDENTIFIEDBYpassword;3.2将导出的数据泵文件复制到目标环境(19cRAC的一个节点上)。3.3使用impdp命令将数据导入到新创建的PDB中。注意,导入时需要指定PDB的名称。例如:impdpsystem/password@rac19c:1521/newpdbdirectory=dpump_dirdumpfile=export.dmplogfile=imp.log第四阶段:升级后处理4.1运行升级后脚本(如果使用数据泵迁移,则不需要运行utlu121s.sql等升级脚本,因为数据泵会自动创建对象的新版本)。4.2检查数据库组件状态:使用SQL>SELECTCOMP_ID,COMP_NAME,STATUSFROMDBA_REGISTRY;4.3收集统计信息。另一种方法是使用DBUA进行升级,但11g升级到19c需要经过中间版本,步骤较为繁琐。而且,DBUA只能升级整个CDB,而11g是非CDB数据库,所以升级后将成为非CDB的19c数据库,然后再需要将其转换为PDB并插入到目标CDB中。这种方法操作复杂,风险较高。因此,我们推荐使用数据泵导出导入的方式,虽然数据量较大时耗时较长,但更为清晰和安全。注意事项:-在升级前,需要检查源数据库是否符合升级条件,例如使用ORAchk或Pre-UpgradeInformationTool(utlu121s.sql)进行升级前检查。-如果源数据库字符集不是AL32UTF8,可能需要转换字符集。-需要处理归档日志模式等问题。以上步骤仅供参考,具体操作请根据实际环境和需求进行调整。根据引用[3],在创建PDB后可能还需要配置OGG(OracleGoldenGate)等同步工具,如果不需要同步则可以忽略。相关问题:1.在使用数据泵导入导出进行升级时,有哪些常见错误及如何解决?2.Oracle19cRAC环境中如何管理PDB(如启动、停止、切换)?3.升级后如何测试确保数据完整性和业务连续性?</think> ### Oracle 11g RAC 升级至 Oracle 19c RAC PDB 的方法和步骤 以下升级流程基于**数据迁移方式**(推荐),结合多租户架构特性,需分阶段操作: --- #### **第一阶段:环境准备** 1. **检查源环境** - 确认 Oracle 11g RAC 版本为 **11.2.0.4**(最低要求)[^1] - 备份所有关键文件: ```bash rman target / <<EOF BACKUP DATABASE PLUS ARCHIVELOG; EOF ``` 2. **部署目标环境** - 在新服务器安装 **Oracle 19c RAC** 并创建 CDB 容器(参考引用[2][^2]): ```sql CREATE DATABASE cdb_root AS CONTAINER DATABASE; ``` - 配置环境变量(参考引用[1][^1]): ```bash ORACLE_SID=cdb_root ORACLE_HOME=/oracle/app/oracle/product/19c/db_1 ``` --- #### **第二阶段:源数据库升级至 12c** > *(11g → 19c 需通过 12c 过渡)* 1. **升级至 Oracle 12c RAC** - 使用 `DBUA` (Database Upgrade Assistant) 将 11g RAC 升级到 12.1.0.2 - 执行升级后检查: ```sql SELECT * FROM dba_registry WHERE status = 'INVALID'; ``` --- #### **第三阶段:迁移至 19c PDB** 1. **创建目标 PDB** ```sql CREATE PLUGGABLE DATABASE pdb_19c ADMIN USER pdbadmin IDENTIFIED BY password; ``` 2. **迁移数据(两种方案)** **方案一:Data Pump 跨版本导出导入(推荐)** ```bash # 在 12c 源端导出 expdp system/password SCHEMAS=prod_user DIRECTORY=dpump_dir DUMPFILE=11g_data.dmp # 在 19c 目标端导入至 PDB impdp system/password@19c_rac_host:1521/pdb_19c \ DIRECTORY=dpump_dir DUMPFILE=11g_data.dmp REMAP_SCHEMA=prod_user:new_owner ``` **方案二:GoldenGate 实时同步** - 配置 OGG 链路(参考引用[3][^3]),需在目标 PDB 建立同步账户。 3. **验证数据一致性** ```sql ALTER SESSION SET CONTAINER = pdb_19c; EXEC DBMS_UTILITY.compile_schema(schema => 'NEW_OWNER'); ``` --- #### **第四阶段:回切与测试** 1. **应用回切** - 修改应用连接字符串指向新 PDB TNS: ``` (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=scanip)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=pdb_19c))) ``` - 逐步切换流量(推荐使用负载均衡) 2. **升级后检查** - 使用 `utlusts.sql` 验证升级结果: ```sql @$ORACLE_HOME/rdbms/admin/utlusts.sql ``` - 检查 PDB 状态: ```sql SELECT name, open_mode FROM v$pdbs; ``` --- #### **关键注意事项** 1. **兼容性问题** - 若源库使用 `SPFILE`,需在导入后手动重建(PDB 不可复用非 CDB 参数文件)。 2. **字符集与字节序** 确保源(11g)和目标(19c)字符集一致(推荐 `AL32UTF8`)。 3. **权限继承** 迁移后需在 PDB 内重新授权: ```sql GRANT CREATE SESSION TO new_owner CONTAINER = CURRENT; ``` --- #### **灾备恢复方案** - 若迁移失败,使用备份进行 PDB 级恢复(参考引用[4][^4]): ```sql ALTER PLUGGABLE DATABASE pdb_19c CLOSE; RECOVER PLUGGABLE DATABASE pdb_19c USING BACKUP CONTROLFILE; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值