启动与关闭CDB、PDB

本文介绍了Oracle 12c数据库中CDB(Container Database)和PDB(Pluggable Database)的概念,详细阐述了如何启动和关闭CDB与PDB,包括SHUTDOWN命令的各种参数及其影响,并提到了创建用户的流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、连接工具

sqlplus、pl/sql developer、TOAD等。

Oracle DBA常用的是sqlplus,登录过程如下:

SQL> sqlplus / as sysdba  --在本机,以超级管理员身份登录
SQL> startup  --默认是open状态,数据库将打开数据文件并进行一系列的检查工作,这些检查工具用于数据恢复

创建的实例名为:oracs133

    

二、PDB与CDB

Oracle 12c中,增加了可插接数据库的概念,即PDB,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)

CDB全称为Container Database,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。

在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。

下面是官方文档关于CDB与PDB的关系图。

三、启动和停止数据库

(一)启动数据库

  • CDB启动

使用命令:

/*在本机,以超级管理员身份登录*/
SQL> sqlplus / as sysdba
/*开启startup,默认是open*/
SQL> startup
/*查看目前CDB的状态*/
SQL> select status from v$instance;

12c通过“sqlplus / as sysdba”登录连接的是CDB,现在连接上的是root container

执行过程如下:

[oracle@zhangqian ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Thu Sep 27 16:36:15 2018

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


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> startup
ORA-01081: cannot start already-running ORACLE - shut it down first
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 1593835520 bytes
Fixed Size                  2924880 bytes
Variable Size            1023413936 bytes
Database Buffers          553648128 bytes
Redo Buffers               13848576 bytes
Database mounted.
Database opened.

SQL> select status from v$instance;

STATUS
------------------------
OPEN

STARTUP的选项如下:

  • NOMOUNT:只启动数据库实例,此时读取参数文件
  • MOUNT:根据参数文件中的控制文件位置找到并打开控制文件,读取控制文件中的各种参数信息,如数据文件和日志文件的位置,但此时并不打开数据文件;
  • OPEN:打开数据文件、日志文件等,并进行一系列检查工作,这些检查工作用语数据恢复(默认情况下,如果不加任何参数即是启动到OPEN状态)
  •     OPEN也有两个选项:OPEN READ ONLY(只读模式打开数据库),OPEN READ WRITE(默认是这个,读写模式打开数据库
  • FORCE:启动数据库,与OPEN选项的区别是,用FORCE选项启动,如果当前数据库已经启动不会报错,而是自动SHUTOWN ABORT当前数据库,然后再启动,可以理解为RESTART
  • RESTRICT:
  • PFILE:
  • PDB启动

使用命令:

SQL> select name,open_mode from v$pdbs;  --查看当前pdb的状态
SQL> alter session set container = PDB1;  
SQL> alter pluggable database open;
SQL> select name,open_mode from v$pdbs;

具体过程如下:

SQL> select name,open_mode from v$pdbs;

NAME
------------------------------------------------------------
OPEN_MODE
--------------------
PDB$SEED
READ ONLY

PDB1
MOUNTED


SQL> alter session set container=PDB1;

Session altered.

SQL> alter pluggable database open;

Pluggable database altered.

SQL>  select name,open_mode from v$pdbs;

NAME
------------------------------------------------------------
OPEN_MODE
--------------------
PDB1
READ WRITE

PDB$SEED是系统创建的,下面的ORACS133PDB1是用户创建的,默认在CDB 启动之后,PDB 是自动启动到mount状态,而不是OPEN。所以需要手动到open状态

(二)关闭数据库

继续上面的操作,目前在pdb1中,如果要退出Oracle,需要先关闭PDB1,再关闭数据库。

使用命令:

SQL> alter pluggable database pdb1 close;

执行过程:

SQL> alter pluggable database pdb1 close;

Pluggable database altered.

SQL> select name,open_mode from v$pdbs;

NAME
------------------------------------------------------------
OPEN_MODE
--------------------
PDB1
MOUNTED


SQL> show con_name;

CON_NAME
------------------------------
PDB1

选择CDB之后,执行数据库关闭。

使用命令:

SQL> alter session set container=CDB$ROOT;
SQL> show con_name;
SQL> shutdown immediate;

执行过程如下:

SQL> alter session set container=CDB$ROOT;

Session altered.

SQL> show con_name;

CON_NAME
------------------------------
CDB$ROOT
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

也可以分解关闭步骤:

依次关闭数据文件、日志文件等(close),控制文件(dismount),最后关闭实例(shutdown)。

也可以一步完成数据库关闭:

我们关闭CDB之前PDB 是没有关闭的,所以这个操作也会把PDB 关闭掉。

2、SHUTDOWN的几个参数及含义

exit退出数据库后,数据本身的连接状态没有变化。

SHUTDOWN NORMAL:shutdown的默认方式,a.不允许新的数据库连接;b.只有当所有连接都断开后才能关闭,效率较低

SHUTDOWN IMMIDIATE:shutdown的常用方式,a.不允许创建新连接;b.已经创建的连接,如果有未执行完的SQL语句,等待其完成,如果没有立刻断开;c.未提交事务全部回滚

SHUTDOWN TRANSACTIONAL:使用率很低

SHUTDOWN ABORT:a.未提交事务不回滚;b.终止所有SQL操作;c.所有连接都断开。数据库关闭迅速,但是下一次开启需要进行实例恢复,启动慢;而且回滚段数据与数据文件可能不一致。

数据库开启和关闭的语句总结(顺序执行,有上下文关系):

//开启数据库

  • sqlplus / as sysdba;                  //登录连接CDB,默认是root container;
  • startup open;                         //open 模式,但此时的pdb模式是mounted,需要手工开启
  • alter session set container=ORACS133PDB1;                   //选定pdb
  • alter pluggable database open;                                  //开启pdb

//关闭数据库

  • alter pluggable database all close;
  • alter session set container = CDB$ROOT;
  • shutdown immediate;

(三)创建用户

1、schema

为Oracle 12c添加scott用户的方法:https://www.2cto.com/database/201610/553547.html


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值