Oracle 18c For Exadata 版本的介质已经发布, 作为一名心急的老粉丝, 欣喜的发现可以安装在普通的 Linux 平台.
但是在通过 DBCA 建库的时候会报 ORA-12754 错误, 不过这也难不倒万能的网络. 图形界面不行, 我们还可以手工建库, 前提是在参数文件中加入下面的参数.
_exadata_feature_on=true1
安装好 18c 做什么? 一些 PDB 的新特性当然是要体验的, 可是悲催的发现, PDB 中连一些基础的数据字典视图都没有!!!
- [ora18c@localhost ~]$ sqlplus '/as sysdba'
- SQL*Plus: Release 18.0.0.0.0 - Production on Wed Jun 27 06:29:20 2018
- Version 18.2.0.0.0
Copyright (c) 1982, 2018, Oracle. All rights reserved.
- Connected to:
- Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
- Version 18.2.0.0.0
- SQL>
- SQL>
- SQL> show pdbs
- CON_ID CON_NAME OPEN MODE RESTRICTED
- ---------- ------------------------------ ---------- ----------
- 2 PDB$SEED READ ONLY NO
- 3 PDB1 MOUNTED
- SQL> alter pluggable database pdb1 open;
Pluggable database altered.
SQL> alter session set container=pdb1;
Session altered.
- SQL> desc dba_users
- ERROR:
- ORA-04043: object dba_users does not exist
开始怀疑是 PDB$SEED 的问题, 但 18c 的种子库貌似已经不能像 12c 那样随意 open, 只能作罢.
无奈之下只能再去翻官方文档, 原来问题出在手工建库的过程中. 简单的使用创建传统数据库的模式创建 CDB 数据库, 才产生了上述诡异的问题.
根据官方文档, create database 创建完控制文件之后, 需要运行 catcdba.sql 脚本创建 CDB 相关的对象, 然后再跑 catalog.sql 等脚本.
@?/rdbms/admin/catcdb.sql
根据提示输入
- SQL> host perl -I &&rdbms_admin &&rdbms_admin_catcdb --logDirectory &&1 --logFilename &&2
- Enter value for 1: /tmp
- Enter value for 2: create_cdb.log
- Enter new password for SYS: ********
- Enter new password for SYSTEM: ********
- Enter temporary tablespace name: TEMP
其实这个问题在建库过程中就已经有提示, 只是没有注意.
- 2018-06-27T06:41:39.961677+08:00
- Successfully created internal service SYS$BACKGROUND at open
- Successfully created internal service SYS$USERS at open
- replication_dependency_tracking turned off (no async multimaster replication found)
- Starting background process AQPC
- 2018-06-27T06:41:40.352715+08:00
- AQPC started with pid=42, OS id=23014
- PDB$SEED(2):JIT: pid 22024 requesting stop
- PDB$SEED(2):Buffer Cache flush started: 2
- PDB$SEED(2):Buffer Cache flush finished: 2
- 2018-06-27T06:41:40.922925+08:00
- PDB$SEED(2):While transitioning the pdb 2 to clean state, clearing all its abort bits in the control file.
- 2018-06-27T06:41:41.482842+08:00
- PDB$SEED(2):Endian type of dictionary set to little
- 2018-06-27T06:41:41.987095+08:00
- PDB$SEED(2):Database Characterset for PDB$SEED is AL32UTF8
- PDB$SEED(2):Accessing dba_registry_sqlpatch hit error: 942
- Accessing dba_registry_sqlpatch hit error: 942
经过一番折腾之后, 终于顺利的完成了手工创建 18c CDB 数据库的任务, 搭建起了测试环境.
来源: http://www.linuxidc.com/Linux/2018-08/153473.htm