Oracle12c实例启动和pdb开启过程(含pdb随实例自动启动)

Oracle12c引入了CDB和PDB概念,数据库启动过程与以往不同。当CDB实例重启后,PDB默认处于mounted状态。本文详细阐述如何启动和关闭PDB,以及设置PDB随CDB实例自动启动的操作流程。

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

描述:

       由于Oracle12c体系结构和Oracle11g有着很大的不同,尤其在Oracle12c引入数据库容器CDB和可插入数据库PDB之后,因此数据库的启动有着明显的不同。当CDB实例关闭重新开启后,PDB均处于mounted状态,因此要通过特定的命令去开启和关闭。以及相应的PDB随实例CDB自动开启设置。

图解:

        

操作如下:

SQL> select con_id ,name,open_mode from v$pdbs;
 
    CON_ID NAME                           OPEN_MODE
---------- ------------------------------ ----------
         2 PDB$SEED                       READ ONLY
         3 PDBSKY                         READ WRITE
         4 PDBTEST                        READ WRITE
         5 PDBCLOUD                       READ WRITE
 
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
 
Total System Global Area  859832320 bytes
Fixed Size                  3051424 bytes
Variable Size             603979872 bytes
Database Buffers          247463936 bytes
Redo Buffers                5337088 bytes
数据库装载完毕。
SQL> select con_id ,name,open_mode from v$pdbs;          --实例为mounted,pdb也为mounted     
 
    CON_ID NAME                           OPEN_MODE
---------- ------------------------------ ----------
         2 PDB$SEED                       MOUNTED
         3 PDBSKY                         MOUNTED
         4 PDBTEST                        MOUNTED
         5 PDBCLOUD                       MOUNTED
 
SQL> alter database open;
 
数据库已更改。
 
SQL> select con_id ,name,open_mode from v$pdbs;          --实例开启后,pdb均为mounted          
 
    CON_ID NAME                           OPEN_MODE
---------- ------------------------------ ----------
         2 PDB$SEED                       READ ONLY
         3 PDBSKY                         MOUNTED
         4 PDBTEST                        MOUNTED
         5 PDBCLOUD                       MOUNTED
 
SQL> alter pluggable database pdbcloud open;            --开启可插入数据库pdbcloud
 
插接式数据库已变更。
 
SQL> select con_id ,name,open_mode from v$pdbs;         --pdbcloud为READ WRITE状态
 
    CON_ID NAME                           OPEN_MODE
---------- ------------------------------ ----------
         2 PDB$SEED                       READ ONLY
         3 PDBSKY                         READ WRITE
         4 PDBTEST                        MOUNTED
         5 PDBCLOUD                       MOUNTED
 
SQL> alter pluggable database all open;                --将所有可插入数据库开启
 
插接式数据库已变更。
 
SQL> select con_id ,name,open_mode from v$pdbs;        --剩余的两个pdb也被开启
 
    CON_ID NAME                           OPEN_MODE
---------- ------------------------------ ----------
         2 PDB$SEED                       READ ONLY
         3 PDBSKY                         READ WRITE
         4 PDBTEST                        READ WRITE
         5 PDBCLOUD                       READ WRITE
 
SQL> alter pluggable database all except pdbsky close;    --将除了pdbsky之外的pdb全部关闭
 
插接式数据库已变更。
 
SQL> select con_id ,name,open_mode from v$pdbs;           --pdbtest和pdbcloud关闭
 
    CON_ID NAME                           OPEN_MODE
---------- ------------------------------ ----------
         2 PDB$SEED                       READ ONLY
         3 PDBSKY                         READ WRITE
         4 PDBTEST                        MOUNTED
         5 PDBCLOUD                       MOUNTED
 
SQL> select count(*) from cdb_triggers;
 
  COUNT(*)
----------
      2372
 
SQL> select count(*) from dba_triggers;
 
  COUNT(*)
----------
       593
 
SQL> create trigger open_pdbsky after startup on database --创建触发器:指定pdb和实例同时开启
  2  begin
  3  execute immediate 'alter pluggable database pdbsky open';
  4  end;
  5  /
 
触发器已创建
 
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
 
Total System Global Area  859832320 bytes
Fixed Size                  3051424 bytes
Variable Size             603979872 bytes
Database Buffers          247463936 bytes
Redo Buffers                5337088 bytes
数据库装载完毕。
数据库已经打开。
SQL> select con_id ,name,open_mode from v$pdbs;          --CDB实例开启,pdbsky也同时开启
 
    CON_ID NAME                           OPEN_MODE
---------- ------------------------------ ----------
         2 PDB$SEED                       READ ONLY
         3 PDBSKY                         READ WRITE
         4 PDBTEST                        MOUNTED
         5 PDBCLOUD                       MOUNTED
 
SQL> alter pluggable database all except pdbsky open;
 
插接式数据库已变更。
 
SQL> select con_id ,name,open_mode from v$pdbs;
 
    CON_ID NAME                           OPEN_MODE
---------- ------------------------------ ----------
         2 PDB$SEED                       READ ONLY
         3 PDBSKY                         READ WRITE
         4 PDBTEST                        READ WRITE
         5 PDBCLOUD                       READ WRITE
 
SQL>
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
 
Total System Global Area  859832320 bytes
Fixed Size                  3051424 bytes
Variable Size             603979872 bytes
Database Buffers          247463936 bytes
Redo Buffers                5337088 bytes
数据库装载完毕。
数据库已经打开。
SQL> select con_id ,name,open_mode from v$pdbs;
 
    CON_ID NAME                           OPEN_MODE
---------- ------------------------------ ----------
         2 PDB$SEED                       READ ONLY
         3 PDBSKY                         READ WRITE
         4 PDBTEST                        MOUNTED
         5 PDBCLOUD                       MOUNTED
 
SQL> alter session set container=pdbtest;                --切换容器到pdbtest
 
会话已更改。
 
SQL> startup                                             --在特定容器下开启pdb自身
插接式数据库已打开。
SQL> select con_id ,name,open_mode from v$pdbs;
 
    CON_ID NAME                           OPEN_MODE
---------- ------------------------------ ----------
         4 PDBTEST                        READ WRITE
 
SQL> conn / as sysdba
已连接。
SQL> select con_id ,name,open_mode from v$pdbs;
 
    CON_ID NAME                           OPEN_MODE
---------- ------------------------------ ----------
         2 PDB$SEED                       READ ONLY
         3 PDBSKY                         READ WRITE
         4 PDBTEST                        READ WRITE
         5 PDBCLOUD                       MOUNTED
 
SQL>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

sky@sea

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

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

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

打赏作者

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

抵扣说明:

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

余额充值