Oracle Database 12C 学习之多租户(连载二)

简介:

要使用可插拔数据库,必须在创建CBD时,设置可插拔选项。创建CDB,可以有如下方式:

1,使用create database命令手工创建;

2,使用DBCA;

3,通过DBCA生成脚本,然后修改并手工执行;

4,使用RMAN复制现有的CDB。

这里我们只阐述前两种创建CDB的方式,其他方式,各位小伙伴可以自己琢磨。

使用create database命令创建CDB,实际上就是手工建库了。

手工建库的内容,在官方文档的管理员手册中的第二章中的

Creating a Database with the CREATE DATABASE Statement

已有详细描述。这里不做赘述。只说在创建普通数据库也就是non-CDB和CDB时的区别。

1,参数文件部分:

需要添加enable_pluggable_database,并且该参数必须为true

2,create database语句部分(注意目录需要事先创建):


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,
          GROUP 2 ('/u01/logs/my/redo02a.log','/u02/logs/my/redo02b.log') 
             SIZE 100M,
          GROUP 3 ('/u01/logs/my/redo03a.log','/u02/logs/my/redo03b.log') 
             SIZE 100M
  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;


这里,着重看一下黑体部分的内容。

需要指定种子容器的文件存放路径。

3,脚本执行部分

原来手工建库完成之后,需要以sys用户执行$ORACLE_HOME/rdbms/admin下面的catalog.sql,以及catproc.sql,当然,还可以执行$ORACLE_HOME/sqlplus/admin下面的pupbld.sql。

但是在创建CDB的时候,oracle建议使用perl脚本运行所有上述sql。


[oracle@ora12 ~]$ cd /u01/oracle/product/11.2.0/rdbms/admin/

[oracle@ora12 admin]$ ls -lrt|grep catcon.pl

-rw-r--r--. 1 oracle oinstall 13220 Jun 14 2014 catcon.pl

[oracle@ora12 admin]$ more catcon.pl

运行命令如下:

[oracle@ora12 admin]$ perl catcon.pl -u sys/oracle -s -e -d $ORACLE_HOME/rdbms/admin -b catalog1 catalog.sql > catalog.log;

[oracle@ora12 admin]$ perl catcon.pl -u sys/oracle -s -e -d $ORACLE_HOME/rdbms/admin -b catproc1 catproc.sql > catproc.log;

[oracle@ora12 admin]$ perl catcon.pl -u system/oracle -s -e -d $ORACLE_HOME/sqlplus/admin -b pupbld1 pupbld.sql > pupbld.log;

完成之后,就可以连接CDB进行维护及后继操作了。

需要记得前面选择了高级安装模式,然后在这里,你就可以设置数据库为CDB,并且指定pdb的个数及其名称的前缀。

CDB创建完成之后,

SYS@ora12c> select name,cdb from v$database;

NAME  CDB

--------- ---

ORA12C  YES

可以看到,我们创建的就是CDB。

SYS@ora12c> select con_id,name from v$containers;



CON_ID NAME

---------- ------------------------------

 1 CDB$ROOT

 2 PDB$SEED

 3 ORA12C_PDB1

我这里的环境,是使用DBCA方式创建了一个带有一个PDB的CDB。

也可以使用SYS_CONTEXT函数:

SYS@ora12c> SELECT SYS_CONTEXT ('USERENV', 'CON_NAME') FROM DUAL;

SYS_CONTEXT('USERENV','CON_NAME')

--------------------------------------------------------------------------------

CDB$ROOT

管理CDB时,通常需要使用sys用户连接到根容器。只有在使用具有sysdba权限的用户,才可以执行如下操作:

1,实例的启动和关闭;

2,归档的启用和关闭;

3,管理所有与CDB相关的设置,比如修改内存设置;

4,对数据文件进行备份和恢复操作;

5,管理控制文件;

6,管理redo log;

7,管理根容器的undo 表空间;

8,管理根容器的临时表空间;

9,创建公共用户及角色。

ok,我们来看相关的实验:

[oracle@ora12 ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Thu Dec 17 09:13:35 2015

Copyright (c) 1982, 2014, Oracle. All rights reserved.

Connected to an idle instance.

SYS@ora12c> startup

ORACLE instance started.

Total System Global Area 838860800 bytes

Fixed Size  2929936 bytes

Variable Size  687868656 bytes

Database Buffers  142606336 bytes

Redo Buffers  5455872 bytes

Database mounted.

Database opened.

SYS@ora12c> show pdbs;

CON_ID CON_NAME  OPEN MODE RESTRICTED

---------- ------------------------------ ---------- ----------

 2 PDB$SEED  READ ONLY NO

 3 ORA12C_PDB1  MOUNTED

SYS@ora12c> alter pluggable database ora12c_pdb1 open;

--打开某一个可插拔数据库。

SYS@ora12c> show pdbs;



CON_ID CON_NAME  OPEN MODE RESTRICTED

---------- ------------------------------ ---------- ----------

 2 PDB$SEED  READ ONLY NO

 3 ORA12C_PDB1  READ WRITE YES

SYS@ora12c> alter pluggable database all open;



Pluggable database altered.

--当然,也可以打开所有的可插拔数据库。

接下来,看容器切换:



SYS@ora12c> show con_name;



CON_NAME

------------------------------

CDB$ROOT
当前容器为根容器。

切换到种子容器:

SYS@ora12g> alter session set container=PDB$SEED;

Session altered.

SYS@ora12g> select file_name from dba_data_files;

FILE_NAME

--------------------------------------------------------------------------------

/u01/oracle/oradata/ora12g/pdbseed/system01.dbf

/u01/oracle/oradata/ora12g/pdbseed/sysaux01.dbf

SYS@ora12g> select file_name from dba_temp_files;

FILE_NAME

--------------------------------------------------------------------------------

/u01/oracle/oradata/ora12g/pdbseed/pdbseed_temp012015-10-08_07-32-05-PM.dbf

--可见,种子容器中默认只有system,sysaux以及temp表空间。

SYS@ora12c> shutdown immediate;

ORA-65017: seed pluggable database may not be dropped or altered

切换到可插拔数据库:

SYS@ora12c> alter session set container=ORA12C_PDB1;

Session altered.

SYS@ora12c> shutdown immediate;

Pluggable Database closed.

---可插拔数据库是可以关闭或者打开的,但是种子容器就不行了。

本文来自云栖社区合作伙伴“DBGEEK”

目录
相关文章
|
7天前
|
存储 NoSQL Oracle
Oracle 12c的内存列存储:数据的“闪电侠”
【4月更文挑战第19天】Oracle 12c的内存列存储以超高速度革新数据处理,结合列存储与内存技术,实现快速查询与压缩。它支持向量化查询和并行处理,提升效率,但需合理配置以平衡系统资源。作为数据管理员,应善用此功能,适应业务需求和技术发展。
|
7天前
|
存储 Oracle 关系型数据库
Oracle 12c的多重索引:数据的“多维导航仪”
【4月更文挑战第19天】Oracle 12c的多重索引提升数据查询效率,如同多维导航仪。在同一表上创建针对不同列的多个索引,加速检索过程。虽然过多索引会增加存储和维护成本,但合理选择和使用索引策略,结合位图、函数索引等高级特性,能优化查询,应对复杂场景。数据管理员应善用这些工具,根据需求进行索引管理,支持企业数据分析。
|
7天前
|
存储 Oracle 数据管理
Oracle 12c的自动数据优化(ADO)与热图:数据管理的“瘦身”与“透视”艺术
【4月更文挑战第19天】Oracle 12c的ADO和热图技术革新数据管理。ADO智能清理无用数据,优化存储,提升查询速度,实现数据"瘦身";热图则以直观的视觉表示展示数据分布和状态,助力识别性能瓶颈,犹如数据的"透视"工具。这两项技术结合,强化数据管理,为企业业务发展保驾护航。
|
7天前
|
Oracle 安全 数据管理
Oracle 12c多租户架构:数据管理的“摩天大楼”
【4月更文挑战第19天】Oracle 12c的多租户架构允许多个独立数据库环境在同一实例中共享资源,提高效率,降低成本。该架构保证了数据隔离和安全性,同时提供灵活性和可扩展性,简化管理任务。通过理解其原理和管理方法,我们可以充分利用这一架构,为企业数据管理和业务发展提供强大支持。
|
4月前
|
SQL Oracle 关系型数据库
oracle学习
oracle学习
27 0
|
1月前
|
Oracle 关系型数据库 Linux
服务器Centos7 静默安装Oracle Database 12.2
服务器Centos7 静默安装Oracle Database 12.2
86 0
|
2月前
|
SQL 存储 关系型数据库
MySQL技能完整学习列表——1、数据库基础概念——1、关系型数据库(Relational Database)
MySQL技能完整学习列表——1、数据库基础概念——1、关系型数据库(Relational Database)
179 0
|
4月前
|
Oracle 关系型数据库 数据库
windows Oracle Database 19c 卸载教程
打开任务管理器 ctrl+Shift+Esc可以快速打开任务管理器,找到oracle所有服务然后停止。 停止数据库服务 在开始卸载之前,确保数据库服务已经停止。你可以使用以下命令停止数据库服务: net stop OracleServiceORCL Universal Installer 卸载Oracle数据库程序 一般情况运行Oracle自带的卸载程序,如使用Universal Installer 工具卸载。 点击开始菜单找到Oracle,然后点击Oracle安装产品,再点击Universal Installer。 点击之后稍等一会然后会进入进入下图界面,点击卸载产品。 选中要删除的Orac
118 1
|
3月前
|
Oracle 关系型数据库 数据库连接
【Oracle学习】—新建数据库连接,超详细
【Oracle学习】—新建数据库连接,超详细
|
3月前
|
Oracle 关系型数据库 数据库
【Oracle学习】—Oracle11g修改用户名与密码(一)
【Oracle学习】—Oracle11g修改用户名与密码(一)

推荐镜像

更多