跳到主要内容
返回博客列表实战篇:Oracle 数据库标准版(SE)转换为企业版(EE) 大家好,这里是 Lucifer三思而后行,专注于提升数据库运维效率。 @TOC目录 很多 Oracle 数据库在初始安装的时候选择了标准版,而相对企业版来说就少了:RAC、ASM、DataGuard、闪回功能、分区表等等一些很实用的功能: sql SELECT FROM v$option WHERE parameter IN 'Oracle Data Guard',
2738+ 篇实战文章 1500+ 步骤截图 10 大核心模块
大家好,这里是 Lucifer三思而后行 ,专注于提升数据库运维效率。
前言
本章目标 :掌握本章核心知识点
前置要求 :完成前序章节学习
预计时长 :60 分钟
很多 Oracle 数据库在初始安装的时候选择了标准版,而相对企业版来说就少了:RAC、ASM、DataGuard、闪回功能、分区表等等一些很实用的功能:
1 SELECT *
2 FROM v$option
3 WHERE parameter IN ('Oracle Data Guard',
4 'Active Data Guard',
5 'Flashback Table',
6 'Flashback Database',
7 'Online Index Build',
8 'Partitioning');
9 PARAMETER VALUE
10 -------------------------------------------------
11 Partitioning FALSE
12 Online Index Build FALSE
13 Oracle Data Guard FALSE
14 Flashback Table FALSE
15 Flashback Database FALSE
16 Active Data Guard FALSE
那么如何将标准版升级到企业版呢?Oracle 给我们提供了具体方案:
下面我就来测试一下升级过程!
环境准备
主机名 IP地址 主机版本 Oracle 版本 实例名 orcl 10.211.55.100 rhel8.6 19.15 SE2 orcl
正式转换
Oracle 创建数据库均使用相同的 SQL.BSQ 脚本,因此数据库在内部几乎相同,转换过程不是很复杂。
备份数据库
首先,出于数据安全考虑,转换前进行一次备份:
1 run {
2 allocate channel c1 device type disk;
3 allocate channel c2 device type disk;
4 backup database include current controlfile format '/backup/backdb_%d_%T_%t_%s_%p';
5 backup archivelog all format '/backup/arch_%d_%T_%t_%s_%p';
6 release channel c1;
7 release channel c2;
8 }
确保备份成功:
1 select input_type,
2 status,
3 to_char(start_time,
4 'yyyy-mm-dd hh24:mi:ss'),
5 to_char(end_time,
6 'yyyy-mm-dd hh24:mi:ss'),
7 input_bytes_display,
8 output_bytes_display,
9 time_taken_display,
10 COMPRESSION_RATIO
11 from v$rman_backup_job_details
12 order by 3 desc;
最好把参数文件、密码文件以及监听文件:
1 cp -r $ORACLE_HOME/dbs /soft/
2 cp -r $ORACLE_HOME/network/admin /soft/
关闭数据库
关闭数据库相关的所有服务:
1 lsnrctl stop
2 sqlplus / as sysdba<<EOF
3 shu immediate
4 exit
5 EOF
卸载 Oracle SE 软件
这里的卸载不建议使用 deinstall,建议使用 runInstaller 来卸载 ORACLE_HOME:
1 $ORACLE_HOME/oui/bin/runInstaller -silent -detachHome -invPtrLoc /etc/oraInst.loc ORACLE_HOME=$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 EE 软件
由于旧的 ORACLE_HOME 没有删除,所以建议创建新的 ORACLE_HOME 目录:
1 ## 创建新的 ORACLE_HOME
2 mkdir -p /u01/app/oracle/product/19.3.0/db1
3 ## 修改环境变量
4 export ORACLE_HOME=/u01/app/oracle/product/19.3.0/db1
5 ## 解压 DB 软件至新的 ORACLE_HOME
6 unzip -q LINUX.X64_193000_db_home.zip -d $ORACLE_HOME
7 ## 解压 OPatch 补丁包
8 unzip -q -o p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME
9 ## 安装 RU 补丁和 Oracle EE 软件(需要调用图形化界面)
10 cd $ORACLE_HOME
11 ./runInstaller -applyRU /soft/33806152
12 ## 执行 root.sh
13 /u01/app/oracle/product/19.3.0/db1/root.sh
至此,Oracle EE 安装完成。
启动数据库
启动数据库之前,需要将原先的 $ORACLE_HOME/dbs 下的参数文件、密码文件拷贝到新的 $ORACLE_HOME 下:
1 ## 恢复参数文件和密码文件
2 cd /soft/dbs
3 cp orapworcl $ORACLE_HOME/dbs
4 cp spfileorcl.ora $ORACLE_HOME/dbs
5
6 ## 恢复监听文件
7 cd /soft/admin
8 cp listener.ora $ORACLE_HOME/network/admin
9 cp sqlnet.ora $ORACLE_HOME/network/admin
10 cp tnsnames.ora $ORACLE_HOME/network/admin
启动监听和数据库:
1 lsnrctl start
2 sqlplus / as sysdba<<EOF
3 startup
4 exit
5 EOF
此时再次查询版本以及可选功能:
1 -- 查看数据库版本
2 SQL> select banner_full from v$version;
3
4 BANNER_FULL
5 ----------------------------------------------------------------------
6 Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
7 Version 19.15.0.0.0
8 -- 查看可选功能
9 SELECT *
10 FROM v$option
11 WHERE parameter IN ('Oracle Data Guard',
12 'Active Data Guard',
13 'Flashback Table',
14 'Flashback Database',
15 'Online Index Build',
16 'Automatic Storage Management',
17 'Partitioning',
18 'Real Application Clusters');
19 PARAMETER VALUE
20 -------------------------------------------------
21 Partitioning TRUE
22 Online Index Build TRUE
23 Oracle Data Guard TRUE
24 Flashback Table TRUE
25 Flashback Database TRUE
26 Active Data Guard TRUE
此时已经转换成功。
执行升级脚本
运行 catalog.sql 和 catproc.sql 脚本:
1 sqlplus / as sysdba @?/rdbms/admin/catalog.sql
2 sqlplus / as sysdba @?/rdbms/admin/catproc.sql
这两个脚本的执行可能不是在所有情况下都是强制性的,但最好运行它们,因为数据字典的复杂性,我们无法确保创建所有 EE 对象。
编译无效对象
最后,重新编译数据库中的所有无效对象:
1 sqlplus / as sysdba @?/rdbms/admin/utlrp.sql
注意事项
在整个转换过程中,有哪些需要注意的点:
确保你的企业版服务器软件的版本号(和补丁版本)与原始标准版服务器软件的版本相同;
Windows 系统,必须在重新安装软件后重新创建数据库服务(通过 ORADIM);
END!
往期精彩文章
感谢您的阅读,这里是 Lucifer三思而后行 ,欢迎点赞+关注 ,我会持续分享数据库知识、运维技巧。
实战篇:Oracle 数据库标准版(SE)转换为企业版(EE) - DBA 学习之路