本文主要是介绍step by step oracle 12c 手工创建CDB数据库(插件数据库),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
### Code Reference
- URL:https://blog.csdn.net/leshami/article/details/72821806
- DESC:12c下手工创建CDB数据库(参考docker实例化Oracle12c EE作为部署基础)
- Last Update:2020-7-14 16:00
-
CDB创建相关说明
使用CREATE DATABASESQL语句创建CDB非常类似于创建非CDB.使用CREATE DATABASESQL语句创建CDB时,必须启用PDB并指定根文件和种子文件的名称和位置.要创建CDB,CREATE DATABASE语句必须包含ENABLE PLUGGABLE DATABASE子句.当包含此子句时,该语句使用根和种子创建CDB.如果未指定ENABLE PLUGGABLE DATABASE子句 那新创建的数据库是非CDB.该语句不会创建根和种子,非CDB永远不会包含PDB.- 插件库&非插件库初始化差异部分
-
CDB数据库创建时应指定ENABLE PLUGGABLE DATABASE子句
-
CDB数据库应指定根文件和种子文件的名称和位置
1 使用 seed FILE_NAME_CONVERT 子句SEED FILE_NAME_CONVERT = ('/app/oracle/ora12c/oradata/cdb1/','/app/oracle/ora12c/oradata/pdbseed/')表示将cdb1目录下的文件转换到pdbseed目录下2 基于oracle文件托管方式(OMF)3 使用PDB_FILE_NAME_CONVERT初始化参数
-
可以为PDB种子数据库制定不同的属性
根SYSTEM和SYSAUX表空间的数据文件的属性可能不适合种子。在这种情况下,您可以使用子句为种子的数据文件指定不同的属性tablespace_datafile。使用这些子句指定所有数据文件包含的属性SYSTEM和SYSAUX表空间中的种子。从根继承的值用于尚未提供其值的任何属性。DATAFILE '/u01/app/oracle/oradata/newcdb/system01.dbf' SIZE 325M REUSESYSAUX DATAFILE '/u01/app/oracle/oradata/newcdb/sysaux01.dbf' SIZE 325M REUSE--下面的seed部分使用了不同于上面root容器的配置,--如system数据文件此处大小为125M,而root容器中为352M--seed中开启了自动扩展,sysaux也同样使用了一些不同于root容器的属性--对于在seed中未明确指定的属性,则继承root容器数据文件属性SEEDSYSTEM DATAFILES SIZE 125M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITEDSYSAUX DATAFILES SIZE 100M
-
- 插件库&非插件库初始化差异部分
-
CDB数据库创建
--设定环境变量$ export ORACLE_SID=cdb1$ export ORACLE_UNQNAME=cdb1--创建相应目录$ mkdir -pv /u01/app/oracle/oradata/cdb1$ mkdir -pv /u01/app/oracle/oradata/pdbseed--生成参数文件$ mount -o remount,size=1500m /dev/shm/$ df -h | grep shm$ vi $ORACLE_HOME/dbs/initcdb1.oraDB_NAME=cdb1CONTROL_FILES='/u01/app/oracle/oradata/cdb1/contorl01.ctl'MEMORY_TARGET=380mENABLE_PLUGGABLE_DATABASE=true--开始建库$ sqlplus / as sysdbaSQL> create spfile from pfile='$ORACLE_HOME/dbs/initcdb1.ora';SQL> startup nomount;ORA-00845: MEMORY_TARGET not supported on this systemhttps://blog.csdn.net/weixin_39373989/article/details/88189412SQL> CREATE DATABASE cdb1USER SYS IDENTIFIED BY passUSER SYSTEM IDENTIFIED BY passLOGFILE GROUP 1 ('/u01/app/oracle/oradata/cdb1/redo01a.log','/u01/app/oracle/oradata/cdb1/redo01b.log') SIZE 100M BLOCKSIZE 512,GROUP 2 ('/u01/app/oracle/oradata/cdb1/redo02a.log','/u01/app/oracle/oradata/cdb1/redo02b.log') SIZE 100M BLOCKSIZE 512MAXLOGHISTORY 1MAXLOGFILES 16MAXLOGMEMBERS 3MAXDATAFILES 1024CHARACTER SET AL32UTF8NATIONAL CHARACTER SET AL16UTF16EXTENT MANAGEMENT LOCALDATAFILE '/u01/app/oracle/oradata/cdb1/system01.dbf' SIZE 700MSYSAUX DATAFILE '/u01/app/oracle/oradata/cdb1/sysaux01.dbf' SIZE 550MDEFAULT TABLESPACE deftbsDATAFILE '/u01/app/oracle/oradata/cdb1/deftbs01.dbf' SIZE 500MDEFAULT TEMPORARY TABLESPACE tempts1TEMPFILE '/u01/app/oracle/oradata/cdb1/temp01.dbf' SIZE 20M UNDO TABLESPACE undotbs1DATAFILE '/u01/app/oracle/oradata/cdb1/undotbs01.dbf' SIZE 200M ENABLE PLUGGABLE DATABASE SEEDFILE_NAME_CONVERT = ('/u01/app/oracle/oradata/cdb1/', '/u01/app/oracle/oradata/pdbseed/')SYSTEM DATAFILES SIZE 125M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITEDSYSAUX DATAFILES SIZE 100MUSER_DATA TABLESPACE usertbsDATAFILE '/u01/app/oracle/oradata/pdbseed/usertbs01.dbf' SIZE 200M;--填充数据字典,如果是12cR2版本,则直接执行catcdb.sql代替以下脚本 --使用sysdba权限执行以下脚本SQL> @?/rdbms/admin/catalog.sql --数据库字典,动态视图创建等SQL> @?/rdbms/admin/catproc.sql --PL/SQL存过过程相关代码SQL> @?/rdbms/admin/utlrp.sql --编译--使用SYSTEM用户执行以下脚本SQL> @?/sqlplus/admin/pupbld.sql #SQL*Plus相关--验证结果show parameter ENABLE_PLUGGABLE_DATABASE
-
这篇关于step by step oracle 12c 手工创建CDB数据库(插件数据库)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!