创建和配置CDB

来源:互联网 发布:mysql入门教程推荐 编辑:程序博客网 时间:2024/05/21 10:37

 CDB全称为Container Database,中文翻译为数据库容器

CDB组件(Components of a CDB)
一个CDB数据库容器包含了下面一些组件:
ROOT组件
ROOT又叫CDB$ROOT, 存储着ORACLE提供的元数据和Common User,元数据的一个例子是ORACLE提供的PL/SQL包的源代码,Common User 是指在每个容器中都存在的用户。
SEED组件
  Seed又叫PDB$SEED,这个是你创建PDBS数据库的模板,你不能在Seed中添加或修改一个对象。一个CDB中有且只能有一个Seed。
PDBS
    CDB中可以有一个或多个PDBS,PDBS向后兼容,可以像以前在数据库中那样操作PDBS,这里指大多数常规操作。
这些组件中的每一个都可以被称为一个容器。因此,ROOT(根)是一个容器,Seed(种子)是一个容器,每个PDB是一个容器。每个容器在CDB中都有一个独一无二的的ID和名称。

如下cdb结构图:



You can easily plug a PDB into a CDB and unplug a PDB from a CDB. When you plug in a PDB, you associate the PDB with a CDB. When you unplug a PDB, you disassociate the PDB from a CDB. An unplugged PDB consists of an XML file that describes the PDB and the PDB's files (such as the data files and wallet file).

You can unplug a PDB from one CDB and plug it into a different CDB without altering your schemas or applications. A PDB can be plugged into only one CDB at a time.

Each PDB has a globally unique identifier (GUID). The PDB GUID is primarily used to generate names for directories that store the PDB's files, including both Oracle Managed Files directories and non-Oracle Managed Files directories.

CDB创建可以通过

1.DBCA工具创建,图形化界面,DBCA也可以静默方式创建

2.通过CREATE DATABASE 语句创建

oracle推荐使用DBCA创建CDB(如下图,创建空的容器数据库不包含pdb)


dbca创建完一个不包含pdb的cdb

C:\Users\Administrator>set oracle_sid=cdb1
C:\Users\Administrator>sqlplus "/as sysdba"
SQL*Plus: Release 12.1.0.2.0 Production on 星期三 12月 24 14:35:02 2014
Copyright (c) 1982, 2014, Oracle.  All rights reserved.
连接到:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

--查看pdb信息,只包含pdb$seed
SQL>   select PDB_NAME,CON_UID,pdb_id,status from dba_pdbs;

PDB_NAME                CON_UID     PDB_ID STATUS
-------------------- ---------- ---------- ---------
PDB$SEED             3720733916          2 NORMAL

SQL>

SQL> select con_id,dbid,NAME,OPEN_MODE from v$pdbs;

    CON_ID       DBID NAME                           OPEN_MODE
---------- ---------- ------------------------------ ----------
         2 3720733916 PDB$SEED                       READ ONLY


--查看cdb的信息

SQL> select name,cdb,con_id,open_mode from v$database;

NAME      CDB     CON_ID OPEN_MODE
--------- --- ---------- --------------------
CDB1      YES          0 READ WRITE

SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT
SQL>


手动创建cdb数据

1.创建目录
D:\app\oracle12c\admin\newcdb
D:\app\oracle12c\admin\newcdb\adump
D:\app\oracle12c\admin\newcdb\dpdump
D:\app\oracle12c\admin\newcdb\pfile
D:\app\oracle12c\admin\newcdb\scripts
D:\app\oracle12c\admin\newcdb\xdb_wallet
D:\app\oracle12c\oradata\newcdb
D:\app\oracle12c\oradata\newcdb\pdbseed
D:\app\oracle12c\fast_recovery_area\newcdb
   
2.创建密码文件
C:\Users\Administrator>orapwd FILE=D:\app\oracle12c\product\12.1.0\dbhome_1\data
base\PWDnewcdb.ora ENTRIES=30 force=y
Enter password for SYS:
C:\Users\Administrator>

3.构造初始化参数文件initnewcdb.ora
*.audit_file_dest='D:\app\oracle12c\admin\newcdb\adump'
*.audit_trail='newcdb'
*.compatible='12.1.0.2.0'
*.control_files='D:\app\oracle12c\oradata\newcdb\control01.ctl','D:\app\oracle12c\fast_recovery_area\newcdb\control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='cdb1'
*.db_recovery_file_dest='D:\app\oracle12c\fast_recovery_area'
*.db_recovery_file_dest_size=6600m
*.diagnostic_dest='D:\app\oracle12c'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=cdb1XDB)'
*.enable_pluggable_database=true
*.local_listener='LISTENER_CDB1'
*.memory_target=763m
*.nls_language='SIMPLIFIED CHINESE'
*.nls_territory='CHINA'
*.open_cursors=300
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'

4.创建实例(windows下需要)
C:\Users\Administrator>oradim -NEW -SID newcdb
输入 Oracle 服务用户的口令:
实例已创建。

C:\Users\Administrator>

5.启动到nomount状态
C:\Users\Administrator>set oracle_sid=newcdb
C:\Users\Administrator>sqlplus "/as sysdba"
SQL*Plus: Release 12.1.0.2.0 Production on 星期三 12月 24 15:42:44 2014
Copyright (c) 1982, 2014, Oracle.  All rights reserved.

已连接到空闲例程。

SQL> startup nomount pfile='D:\app\oracle12c\product\12.1.0\dbhome_1\database\in
itnewcdb.ora';
ORACLE 例程已经启动。


Total System Global Area  801112064 bytes
Fixed Size                  3050744 bytes
Variable Size             624952072 bytes
Database Buffers          167772160 bytes
Redo Buffers                5337088 bytes
SQL>

6.执行 CREATE DATABASE

SQL>
SQL> CREATE DATABASE newcdb
  2    USER SYS IDENTIFIED BY Wanagwei123
  3    USER SYSTEM IDENTIFIED BY Wanagwei123
  4    LOGFILE GROUP 1 ('D:\app\oracle12c\oradata\newcdb\redo01a.log','D:\app\or
acle12c\oradata\newcdb\redo01b.log')
  5               SIZE 100M BLOCKSIZE 512,
  6            GROUP 2 ('D:\app\oracle12c\oradata\newcdb\redo02a.log','D:\app\or
acle12c\oradata\newcdb\redo02b.log')
  7               SIZE 100M BLOCKSIZE 512,
  8            GROUP 3 ('D:\app\oracle12c\oradata\newcdb\redo03a.log','D:\app\or
acle12c\oradata\newcdb\redo03b.log')
  9               SIZE 100M BLOCKSIZE 512
 10    MAXLOGHISTORY 1
 11    MAXLOGFILES 32
 12    MAXLOGMEMBERS 3
 13    MAXDATAFILES 1024
 14    CHARACTER SET AL32UTF8
 15    NATIONAL CHARACTER SET AL16UTF16
 16    EXTENT MANAGEMENT LOCAL
 17    DATAFILE 'D:\app\oracle12c\oradata\newcdb\system01.dbf'
 18      SIZE 700M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
 19    SYSAUX DATAFILE 'D:\app\oracle12c\oradata\newcdb\sysaux01.dbf'
 20      SIZE 550M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
 21    DEFAULT TABLESPACE deftbs
 22       DATAFILE 'D:\app\oracle12c\oradata\newcdb\deftbs01.dbf'
 23       SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
 24    DEFAULT TEMPORARY TABLESPACE tempts1
 25       TEMPFILE 'D:\app\oracle12c\oradata\newcdb\temp01.dbf'
 26       SIZE 20M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
 27    UNDO TABLESPACE undotbs1
 28       DATAFILE 'D:\app\oracle12c\oradata\newcdb\undotbs01.dbf'
 29       SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED
 30    ENABLE PLUGGABLE DATABASE
 31      SEED
 32      FILE_NAME_CONVERT = ('D:\app\oracle12c\oradata\newcdb\',
 33                           'D:\app\oracle12c\oradata\newcdb\pdbseed\')
 34      SYSTEM DATAFILES SIZE 125M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
 35      SYSAUX DATAFILES SIZE 100M
 36    USER_DATA TABLESPACE usertbs
 37      DATAFILE 'D:\app\oracle12c\oradata\newcdb\pdbseed\usertbs01.dbf'
 38      SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

数据库已创建。

SQL>

7.执行脚本建立数据字典
In SQL*Plus, connect to your Oracle Database instance with the SYSDBA administrative privilege:
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
In SQL*Plus, connect to your Oracle Database instance as SYSTEM user:
@?/sqlplus/admin/pupbld.sql


创建完之后查询

SQL>  select name,cdb,con_id,open_mode from v$database;

NAME               CDB        CON_ID OPEN_MODE
------------------ ------ ---------- ----------------------------------------
NEWCDB             YES             0 READ WRITE

SQL>
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
SQL>


oracle官方提供的创建步骤:

Step 1: Specify an Instance Identifier (SID)

Step 2: Ensure That the Required Environment Variables Are Set

Step 3: Choose a Database Administrator Authentication Method

Step 4: Create the Initialization Parameter File

Step 5: (Windows Only) Create an Instance

Step 6: Connect to the Instance

Step 7: Create a Server Parameter File

Step 8: Start the Instance

Step 9: Issue the CREATE DATABASE Statement

Step 10: Create Additional Tablespaces

Step 11: Run Scripts to Build Data Dictionary Views

Step 12: (Optional) Run Scripts to Install Additional Options

Step 13: Back Up the Database.

Step 14: (Optional) Enable Automatic Instance Startup


0 0
原创粉丝点击