oracle的cdb可以创建表吗,Oracle 12c 手工创建CDB数据库

本文详细介绍了在Oracle12c中手工创建CDB数据库的步骤,包括创建密码文件、服务器参数文件SPFILE、启动数据库、编写创建数据库的脚本,并修改相关参数。在创建过程中,特别强调了对enable_pluggable_database参数的设置为true以启用多租户特性。在执行创建脚本时,可能遇到Perl组件缺失的问题,解决方法是通过yum安装Perl组件。
摘要由CSDN通过智能技术生成

下面我们来看一下,Oracle 12c 如何的来手工创建cdb的数据库

与10G,11G一样,创建数据库的基本的流程是一样的

1. 手工创建密码文件

2. 创建服务器参数文件spfile

3. startup nomount

4. 使用create database的语句才创建我们的数据库

5. 执行后续的脚本

下面我们来一步一的分析下每一步的操作

先看看密码文件创建,还是与10g,11g相同

orapwd file=orapwenmo password=oracle entries=10

下面我们来创建spfile文件,在12c数据库中,也是提供了一个init.ora的文件的,但是这个init.ora的文件还是11g的,所以我们需要对这个初始化参数进行一下修改。

cat init.ora |grep -v ^# |grep -v ^$ >>initenmo.ora

原来的参数

db_name='ORCL'

memory_target=1G

processes = 150

audit_file_dest='/admin/orcl/adump'

audit_trail ='db'

db_block_size=8192

db_domain=''

db_recovery_file_dest='/fast_recovery_area'

db_recovery_file_dest_size=2G

diagnostic_dest=''

dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'

open_cursors=300

remote_login_passwordfile='EXCLUSIVE'

undo_tablespace='UNDOTBS1'

control_files = (ora_control1, ora_control2)

compatible ='11.2.0'

修改以后的参数

*.audit_file_dest='$ORACLE_BASE/admin/enmo/adump'

*.audit_trail='db'

*.control_files='/u01/app/oracle/oradata/enmo/control01.ctl','/u01/app/oracle/oradata/enmo/control02.ctl'

*.db_block_size=8192

*.db_domain=''

*.db_name='enmo'

*.db_recovery_file_dest='$ORACLE_BASE/fast_recovery_area'

*.db_recovery_file_dest_size=2G

*.diagnostic_dest='$ORACLE_BASE'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'

*.enable_pluggable_database=TRUE

*.memory_target=1G

*.open_cursors=300

*.processes=150

*.remote_login_passwordfile='EXCLUSIVE'

*.undo_tablespace='UNDOTBS1'

我们这儿需要删除掉compatible 参数以及 把enable_pluggable_database设置为true,这样我们才能够创建cdb

下一步,我们需要手动编写创建cdb的脚本,

CREATE DATABASE newcdb

USER SYS IDENTIFIED BY sys_password

USER SYSTEM IDENTIFIED BY system_password

LOGFILE GROUP 1 ('/u01/logs/my/redo01a.log','/u02/logs/my/redo01b.log')

SIZE 100M BLOCKSIZE 512,

GROUP 2 ('/u01/logs/my/redo02a.log','/u02/logs/my/redo02b.log')

SIZE 100M BLOCKSIZE 512,

GROUP 3 ('/u01/logs/my/redo03a.log','/u02/logs/my/redo03b.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/newcdb/system01.dbf'

SIZE 700M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED

SYSAUX DATAFILE '/u01/app/oracle/oradata/newcdb/sysaux01.dbf'

SIZE 550M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED

DEFAULT TABLESPACE deftbs

DATAFILE '/u01/app/oracle/oradata/newcdb/deftbs01.dbf'

SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED

DEFAULT TEMPORARY TABLESPACE tempts1

TEMPFILE '/u01/app/oracle/oradata/newcdb/temp01.dbf'

SIZE 20M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED

UNDO TABLESPACE undotbs1

DATAFILE '/u01/app/oracle/oradata/newcdb/undotbs01.dbf'

SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED

ENABLE PLUGGABLE DATABASE

SEED

FILE_NAME_CONVERT = ('/u01/app/oracle/oradata/newcdb/',

'/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 REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

我们修改成

CREATE DATABASE enmo

USER SYS IDENTIFIED BY oracle

USER SYSTEM IDENTIFIED BY oracle

LOGFILE GROUP 1 ('/u01/app/oracle/oradata/enmo/redo01a.log','/u01/app/oracle/oradata/enmo/redo01b.log')

SIZE 100M BLOCKSIZE 512,

GROUP 2 ('/u01/app/oracle/oradata/enmo/redo02a.log','/u01/app/oracle/oradata/enmo/redo02b.log')

SIZE 100M BLOCKSIZE 512,

GROUP 3 ('/u01/app/oracle/oradata/enmo/redo03a.log','/u01/app/oracle/oradata/enmo/redo03b.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/enmo/system01.dbf'

SIZE 700M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED

SYSAUX DATAFILE '/u01/app/oracle/oradata/enmo/sysaux01.dbf'

SIZE 550M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED

DEFAULT TABLESPACE deftbs

DATAFILE '/u01/app/oracle/oradata/enmo/deftbs01.dbf'

SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED

DEFAULT TEMPORARY TABLESPACE tempts1

TEMPFILE '/u01/app/oracle/oradata/enmo/temp01.dbf'

SIZE 20M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED

UNDO TABLESPACE undotbs1

DATAFILE '/u01/app/oracle/oradata/enmo/undotbs01.dbf'

SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED

ENABLE PLUGGABLE DATABASE

SEED

FILE_NAME_CONVERT = ('/u01/app/oracle/oradata/enmo/',

'/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 REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

最后我们执行脚本

@?/rdbms/admin/catcdb.sql

在这行这个脚本的时候,我们可能会遇到错误

Can't locate Term/ReadKey.pm in @INC (@INC contains: /u01/app/oracle/product/11.2.0/db/rdbms/admin /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 . /u01/app/oracle/product/11.2.0/db/rdbms/admin/) at /u01/app/oracle/product/11.2.0/db/rdbms/admin/catcon.pm line 189.

BEGIN failed--compilation aborted at /u01/app/oracle/product/11.2.0/db/rdbms/admin/catcon.pm line 189.

Compilation failed in require at /u01/app/oracle/product/11.2.0/db/rdbms/admin/catcon.pl line 94.

BEGIN failed--compilation aborted at /u01/app/oracle/product/11.2.0/db/rdbms/admin/catcon.pl line 94. 这个是perl的包没有安装,我们直接通过yum源安装perl组建,就可以顺利的完成安装的工作了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值