很多 Oracle 数据库在初始安装的数据时候选择了标准版,而相对企业版来说就少了:RAC、库标ASM、准版转换DataGuard、为企闪回功能、业版分区表等等一些很实用的数据功能: SELECT FROM v$option WHERE parameter IN (Oracle Data Guard, Active Data Guard, Flashback Table, Flashback Database, Online Index Build, Partitioning); PARAMETER VALUE ------------------------------------------------- Partitioning FALSE Online Index Build FALSE Oracle Data Guard FALSE Flashback Table FALSE Flashback Database FALSE 那么如何将标准版升级到企业版呢?Oracle 给我们提供了具体方案: 下面我就来测试一下升级过程!库标 主机名 IP地址 主机版本 Oracle 版本 实例名 orcl 10.211.55.100 rhel8.6 19.15 SE2 orcl Oracle 创建数据库均使用相同的准版转换 SQL.BSQ 脚本,因此数据库在内部几乎相同,为企转换过程不是业版很复杂。 首先,数据出于数据安全考虑,库标转换前进行一次备份: run { allocate channel c1 device type disk; allocate channel c2 device type disk; backup database include current controlfile format /backup/backdb_%d_%T_%t_%s_%p; backup archivelog all format /backup/arch_%d_%T_%t_%s_%p; release channel c1; release channel c2; 确保备份成功: select input_type,准版转换 status, to_char(start_time, yyyy-mm-dd hh24:mi:ss), to_char(end_time, yyyy-mm-dd hh24:mi:ss), input_bytes_display, output_bytes_display, time_taken_display, COMPRESSION_RATIO from v$rman_backup_job_details 最好把参数文件、密码文件以及监听文件: cp -r $ORACLE_HOME/dbs /soft/ 关闭数据库相关的为企所有服务: lsnrctl stop sqlplus / as sysdba< shu immediate exit 这里的卸载不建议使用 deinstall,建议使用 runInstaller 来卸载 ORACLE_HOME: 使用以上命令 $ORACLE_HOME 下的云服务器提供商业版所有文件和目录都被保留,实际上没有从 $ORACLE_HOME 文件系统中删除任何内容。它只是从 Oracle Central Inventory 中删除了该特定 $ORACLE_HOME 的所有信息。 可参考 MOS 文档:Behaviour of the Oracle De-install/Deinstall/Uninstall Utility in 11gR2 (Doc ID 1363753.1)。 由于旧的 ORACLE_HOME 没有删除,所以建议创建新的 ORACLE_HOME 目录: ## 创建新的 ORACLE_HOME mkdir -p /u01/app/oracle/product/19.3.0/db1 ## 修改环境变量 export ORACLE_HOME=/u01/app/oracle/product/19.3.0/db1 ## 解压 DB 软件至新的 ORACLE_HOME unzip -q LINUX.X64_193000_db_home.zip -d $ORACLE_HOME ## 解压 OPatch 补丁包 unzip -q -o p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME ## 安装 RU 补丁和 Oracle EE 软件(需要调用图形化界面) cd $ORACLE_HOME ./runInstaller -applyRU /soft/33806152 ## 执行 root.sh 至此,Oracle EE 安装完成。 启动数据库之前,需要将原先的 $ORACLE_HOME/dbs 下的参数文件、密码文件拷贝到新的 $ORACLE_HOME 下: ## 恢复参数文件和密码文件 cd /soft/dbs cp orapworcl $ORACLE_HOME/dbs cp spfileorcl.ora $ORACLE_HOME/dbs ## 恢复监听文件 cd /soft/admin cp listener.ora $ORACLE_HOME/network/admin cp sqlnet.ora $ORACLE_HOME/network/admin 启动监听和数据库: lsnrctl start sqlplus / as sysdba< startup exit 此时再次查询版本以及可选功能: -- 查看数据库版本 SQL> select banner_full from v$version; BANNER_FULL ---------------------------------------------------------------------- Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.15.0.0.0 -- 查看可选功能 SELECT FROM v$option WHERE parameter IN (Oracle Data Guard, Active Data Guard, Flashback Table, Flashback Database, Online Index Build, Automatic Storage Management, Partitioning, Real Application Clusters); PARAMETER VALUE ------------------------------------------------- Partitioning TRUE Online Index Build TRUE Oracle Data Guard TRUE Flashback Table TRUE Flashback Database TRUE 此时已经转换成功。 运行 catalog.sql 和 catproc.sql 脚本: sqlplus / as sysdba @?/rdbms/admin/catalog.sql 这两个脚本的源码下载执行可能不是在所有情况下都是强制性的,但最好运行它们,因为数据字典的复杂性,我们无法确保创建所有 EE 对象。 最后,重新编译数据库中的所有无效对象: 在整个转换过程中,有哪些需要注意的点:前言
环境准备
正式转换
备份数据库
关闭数据库
卸载 Oracle SE 软件
安装 Oracle EE 软件
启动数据库
执行升级脚本
编译无效对象
注意事项