暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle数据库新手指南:创建CDB的详细步骤与示例

周同学带您玩AI 2024-07-25
111

创建容器数据库(CDB)的流程

  1. 实例启动

    • 通过initCDB1.ora
      初始化参数文件启动实例。实例包括进程结构和SGA(系统全局区)。
  2. 创建CDB

    • 启动实例后,创建CDB。CDB包括CDB根目录和种子数据库。根目录包含SYSTEM、SYSAUX、UNDO、TEMP等数据文件,以及控制文件和重做日志文件。
  3. 执行脚本

    • 从CDB根目录执行catcdb.sql
      catalog.sql
      catproc.sql
      等脚本来完成数据库的初始化和配置。

使用SQL命令创建CDB的示例

步骤1:启动实例

a. 设置ORACLE_SID

export ORACLE_SID=CDB1

b. 创建initCDB1.ora
文件并设置以下参数:

CONTROL_FILES = ('/path/to/controlfile1.ctl', '/path/to/controlfile2.ctl')
DB_NAME = 'CDB1'
ENABLE_PLUGGABLE_DATABASE = TRUE

c. 连接到数据库并启动实例:

SQL> CONNECT / AS SYSDBA
SQL> STARTUP NOMOUNT

步骤2:创建数据库

执行以下命令创建数据库:

SQL> CREATE DATABASE cdb1 ENABLE PLUGGABLE DATABASE
     SEED FILE_NAME_CONVERT = ('/oracle/dbs''/oracle/seed');

此命令创建一个名为cdb1
的CDB,并启用可插拔数据库功能。

步骤3:执行脚本

从CDB根目录执行以下脚本初始化数据字典:

SQL> @?/rdbms/admin/catcdb.sql
SQL> @?/rdbms/admin/catproc.sql

使用SEED FILE_NAME_CONVERT
子句的示例

这张图片展示了如何使用SEED FILE_NAME_CONVERT
子句创建一个容器数据库(CDB)。具体步骤如下:

CREATE DATABASE cdb1
USER SYS IDENTIFIED BY password
USER SYSTEM IDENTIFIED BY password
LOGFILE GROUP 1 ('/u01/app/oradata/CDB1/redo01.log'SIZE 100M,
        GROUP 2 ('/u01/app/oradata/CDB1/redo02.log'SIZE 100M,
        GROUP 3 ('/u01/app/oradata/CDB1/redo03.log'SIZE 100M
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL
DATAFILE '/u01/app/oradata/CDB1/system01.dbf' SIZE 325REUSE
SYSAUX DATAFILE '/u01/app/oradata/CDB1/sysaux01.dbf' SIZE 325REUSE
DEFAULT TABLESPACE users
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/u01/app/oradata/CDB1/temp01.dbf' SIZE 20REUSE
UNDO TABLESPACE undotbs
DATAFILE '/u01/app/oradata/CDB1/undotbs01.dbf' SIZE 200REUSE
ENABLE PLUGGABLE DATABASE
SEED FILE_NAME_CONVERT = ('/u01/app/oradata/CDB1/''/u01/app/oradata/pdbseed/');

  1. 数据库名称

    CREATE DATABASE cdb1

    这条命令创建一个名为cdb1
    的数据库。

  2. 管理员用户

    USER SYS IDENTIFIED BY password
    USER SYSTEM IDENTIFIED BY password

    这部分定义了两个管理员用户SYS
    SYSTEM
    的密码。

  3. 日志文件

    LOGFILE GROUP 1 ('/u01/app/oradata/CDB1/redo01.log') SIZE 100M,
            GROUP 2 ('/u01/app/oradata/CDB1/redo02.log') SIZE 100M,
            GROUP 3 ('/u01/app/oradata/CDB1/redo03.log') SIZE 100M

    这部分定义了三个重做日志组,每个日志文件的大小为100MB。

  4. 字符集和国家字符集

    CHARACTER SET AL32UTF8
    NATIONAL CHARACTER SET AL16UTF16

    数据库使用AL32UTF8
    字符集和AL16UTF16
    国家字符集。

  5. 区管理

    EXTENT MANAGEMENT LOCAL

    这表示表空间使用本地管理。

  6. 数据文件

    DATAFILE '/u01/app/oradata/CDB1/system01.dbf' SIZE 325M REUSE
    SYSAUX DATAFILE '/u01/app/oradata/CDB1/sysaux01.dbf' SIZE 325M REUSE

    定义了SYSTEM和SYSAUX表空间的数据文件,大小为325MB。

  7. 默认表空间

    DEFAULT TABLESPACE users

    指定默认表空间为users

  8. 临时表空间

    DEFAULT TEMPORARY TABLESPACE tempts1
    TEMPFILE '/u01/app/oradata/CDB1/temp01.dbf' SIZE 20M REUSE

    指定默认临时表空间为tempts1
    ,文件大小为20MB。

  9. 撤销表空间

    UNDO TABLESPACE undotbs
    DATAFILE '/u01/app/oradata/CDB1/undotbs01.dbf' SIZE 200M REUSE

    定义UNDO表空间和数据文件,大小为200MB。

  10. 启用可插拔数据库

    ENABLE PLUGGABLE DATABASE

  11. 种子文件转换

    SEED FILE_NAME_CONVERT = ('/u01/app/oradata/CDB1/', '/u01/app/oradata/pdbseed/');

    定义种子数据库文件位置转换规则。

不使用SEED FILE_NAME_CONVERT
子句的示例

在不使用SEED FILE_NAME_CONVERT
子句的情况下创建一个容器数据库(CDB)。具体步骤如下:

SQL> CONNECT / AS SYSDBA
SQL> STARTUP NOMOUNT
SQL> CREATE DATABASE cdb2
    USER SYS IDENTIFIED BY password
    USER SYSTEM IDENTIFIED BY password
    EXTENT MANAGEMENT LOCAL
    DEFAULT TEMPORARY TABLESPACE temp
    UNDO TABLESPACE undotbs
    DEFAULT TABLESPACE users
    ENABLE PLUGGABLE DATABASE;

  1. 连接到数据库并启动实例

    SQL> CONNECT / AS SYSDBA
    SQL> STARTUP NOMOUNT

    连接到数据库并启动实例,但不装载数据库。

  2. 创建数据库

    SQL> CREATE DATABASE cdb2
        USER SYS IDENTIFIED BY password
        USER SYSTEM IDENTIFIED BY password
        EXTENT MANAGEMENT LOCAL
        DEFAULT TEMPORARY TABLESPACE temp
        UNDO TABLESPACE undotbs
        DEFAULT TABLESPACE users
        ENABLE PLUGGABLE DATABASE;

    创建一个名为cdb2
    的数据库,并启用可插拔数据库功能。

不使用SEED FILE_NAME_CONVERT
的替代方案

如果不使用SEED FILE_NAME_CONVERT
子句,可以使用以下方法之一:

  1. 使用OMF(Oracle Managed Files)

    OMF: DB_CREATE_FILE_DEST = '/u02/app/oradata'

    使用OMF管理文件时,设置DB_CREATE_FILE_DEST
    参数指定文件路径。

  2. **初始化参数PDB_FILE_NAME_CONVERT
    **:

    PDB_FILE_NAME_CONVERT = ('/u02/app/oradata/CDB2/', '/u02/app/oradata/seed')

    通过设置PDB_FILE_NAME_CONVERT
    参数,定义文件位置转换规则。

非常感谢您读到这里!如果您觉得这篇文章对您有帮助,可以关注一下博主。关注后,您将第一时间获得最新的AI、云计算、运维(Linux、数据库,容器等)技术,以及更多实用的技能干货。

全网第一个AI+PPT提效小册希望能对大家有帮助订阅之后有专属学习交流群 以及AI考试资料分享


文章转载自周同学带您玩AI,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论