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 REUSE
            SYSAUX DATAFILE '/u01/app/oracle/oradata/newcdb/sysaux01.dbf' SIZE 325M REUSE
            
            --下面的seed部分使用了不同于上面root容器的配置,
            --如system数据文件此处大小为125M,而root容器中为352M
            --seed中开启了自动扩展,sysaux也同样使用了一些不同于root容器的属性
            --对于在seed中未明确指定的属性,则继承root容器数据文件属性
            
            SEED
            SYSTEM DATAFILES SIZE 125M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
            SYSAUX 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.ora
        
        DB_NAME=cdb1
        CONTROL_FILES='/u01/app/oracle/oradata/cdb1/contorl01.ctl'
        MEMORY_TARGET=380m
        ENABLE_PLUGGABLE_DATABASE=true
        
        --开始建库
        $ sqlplus / as sysdba
        
        SQL> create spfile from pfile='$ORACLE_HOME/dbs/initcdb1.ora';
        
        SQL> startup nomount;
        ORA-00845: MEMORY_TARGET not supported on this system
        https://blog.csdn.net/weixin_39373989/article/details/88189412
      
        SQL> CREATE DATABASE cdb1
          USER SYS IDENTIFIED BY pass
          USER SYSTEM IDENTIFIED BY pass
          LOGFILE 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 512
          MAXLOGHISTORY 1
          MAXLOGFILES 16
          MAXLOGMEMBERS 3
          MAXDATAFILES 1024
          CHARACTER SET AL32UTF8
          NATIONAL CHARACTER SET AL16UTF16
          EXTENT MANAGEMENT LOCAL
          DATAFILE '/u01/app/oracle/oradata/cdb1/system01.dbf' SIZE 700M
          SYSAUX DATAFILE '/u01/app/oracle/oradata/cdb1/sysaux01.dbf' SIZE 550M
          DEFAULT TABLESPACE deftbs
             DATAFILE '/u01/app/oracle/oradata/cdb1/deftbs01.dbf' SIZE 500M
          DEFAULT TEMPORARY TABLESPACE tempts1
             TEMPFILE '/u01/app/oracle/oradata/cdb1/temp01.dbf' SIZE 20M 
          UNDO TABLESPACE undotbs1
             DATAFILE '/u01/app/oracle/oradata/cdb1/undotbs01.dbf' SIZE 200M 
          ENABLE PLUGGABLE DATABASE   
            SEED
            FILE_NAME_CONVERT = ('/u01/app/oracle/oradata/cdb1/', 
                                 '/u01/app/oracle/oradata/pdbseed/')
            SYSTEM DATAFILES SIZE 125M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
            SYSAUX DATAFILES SIZE 100M
          USER_DATA TABLESPACE usertbs
            DATAFILE '/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
      

你可能感兴趣的:(docker&k8s,oracle,oracle,docker)