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

在这里插入图片描述

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

  1. 实例启动

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

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

    • 从CDB根目录执行catcdb.sqlcatalog.sqlcatproc.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 325M REUSE
SYSAUX DATAFILE '/u01/app/oradata/CDB1/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TABLESPACE users
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/u01/app/oradata/CDB1/temp01.dbf' SIZE 20M REUSE
UNDO TABLESPACE undotbs
DATAFILE '/u01/app/oradata/CDB1/undotbs01.dbf' SIZE 200M REUSE
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
    

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

  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考试资料分享

  • 23
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周同学的技术栈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值