内核解密 | Oracle 18c 数据库安装ORA-12754的两种解决方案

Oracle 率先在 Oracle Cloud 上发布了 18c 的数据库版本,也对外发布了针对 Exadata 的下载包。这些软件首先在 Edelivery 网站上提供了下载。


也可以参考公众号之前文章:极速体验:Oracle 18c 下载和Scalable Sequence新特性 关注本公众号回复:18cNF 找到下载软件。


目前发布的版本,已经声明限制在 Exadata 上安装,安装软件之后会遇到 ORA-12754 错误,无法启动实例:

SQL> startup

ORA-12754: Feature 'startup' is disabled due to missing capability 'Runtime Environment'.


目前这个问题有两种解决方案:方案一 是通过Oracle Cloud找到非限制版本的libserver18.a资源,重新编译;方案二 是通过添加参数 _exadata_feature_on 来解决。以下的这些方法,仅供测试参考,请勿侵犯Oracle的软件版权。相信通用版本很快就会发布。


目前Oracle公有云上已经发布了18c的安装版本,申请免费账号就可以登录使用18c的云版本。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

在安装之后,可以在 $ORACLE_HOME/lib 下找到 libserver18.a 库文件,这个文件:

[oracle@O18c lib]$ ls -l libserver18.a

-rw-r--r-- 1  462876440 Mar  1 04:13 libserver18.a

这个文件其实有 450MB,但是真正的启动限制来自其中的 ksct.o 文件,其中增加了一个函数 kscxnfy 功能检测环境,下载这个文件仅有 160 KB 大小,将这个文件复制到 $ORACLE_HOME/lib 目录,更新替换原来的文件:

[oracle@sdb0 lib]$ ls -l libserver18.a 

-rw-r--r-- 1 oracle oinstall 462826398 Mar  1 11:13 libserver18.a

[oracle@sdb0 lib]$ ar -r libserver18.a ksct.o 

[oracle@sdb0 lib]$ pwd

/u01/app/oracle/product/18.1.0/lib

然后重新make oracle执行文件即可:

[oracle@sdb0 lib]$ pwd

/u01/app/oracle/product/18.1.0/rdbms/lib

[oracle@sdb0 lib]$ make -f ins_rdbms.mk ioracle

chmod 755 /u01/app/oracle/product/18.1.0/bin

 - Linking Oracle 

rm -f /u01/app/oracle/product/18.1.0/rdbms/lib/oracle

/u01/app/oracle/product/18.1.0/bin/orald  。。。。

rm -f /u01/app/oracle/product/18.1.0/bin/oracle 

mv /u01/app/oracle/product/18.1.0/rdbms/lib/oracle /u01/app/oracle/product/18.1.0/bin/oracle

chmod 6751 /u01/app/oracle/product/18.1.0/bin/oracle

数据库此后就可以正确使用,DBCA 等可以正常使用进行建库等操作:

[oracle@sdb0 lib]$ sqlplus / as sysdba

SQL*Plus: Release 18.0.0.0.0 Production on Mon Mar 1 12:27:42 2018

Version 18.1.0.0.0

SQL> startup

ORACLE instance started.

Database mounted.

Database opened.


方案二,是通过手工建库在参数文件中增加(需要修改在 init.ora 参数文件中,以下是一个对比验证的输出效果):

SQL> alter system set "_exadata_feature_on"=true scope=spfile;


[oracle@sdb0 dbs]$ sqlplus / as sysdba

SQL*Plus: Release 18.0.0.0.0 Production on Mon Mar 1 11:18:25 2018

Version 18.1.0.0.0


SQL> startup

ORACLE instance started.


Total System Global Area 1459617328 bytes

Database mounted.

Database opened.

SQL> alter system set "_exadata_feature_on"=false scope=spfile;


System altered.


SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup

ORA-12754: Feature 'startup' is disabled due to missing capability 'Runtime Environment'.


Oracle 18c 自治数据库的时代已经来临,欢迎大家测试和分享关于 18c 有意思的新特性。

资源下载

关注公众号:数据和云(OraNews)回复关键字获取

2017DTC,2017 DTC 大会 PPT

DBALIFE,“DBA 的一天”海报

DBA04,DBA 手记4 经典篇章电子书

RACV1, RAC 系列课程视频及 PPT

122ARCH,Oracle 12.2 体系结构图

2017OOW,Oracle OpenWorld 资料

PRELECTION,大讲堂讲师课程资料

640?wx_fmt=png

云和恩墨

数据驱动,成就未来。整合业界顶尖的技术与合作伙伴资源,围绕数据及相关领域,提供解决方案和专业服务。业务架构电子渠道(网络销售)分析系统、数据治理IT基础架构分布式存储解决方案 | zData一体机 | 容灾环境建设数据架构Oracle DB2 MySQL NoSQL专项服务:架构/安全/容灾/优化/整合/升级/迁移运维服务:运维服务  代维服务人才培养:个人认证  企业内训软件产品:SQL审核、监控、数据恢复应用架构应用软件和中间件:数据建模 | SQL审核和优化 | 中间件服务
原文地址:https://www.cnblogs.com/hzcya1995/p/13312428.html