others linux服务器运维 django3 监控 k8s golang 数据库 大数据 前端 devops 理论基础 java oracle 运维日志

oracle 12c 实例启动、pdb开启过程

访问量:1828 创建时间:2021-04-08

原文链接:https://blog.csdn.net/u013986802/article/details/90669213

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

查看当前数据库状态

SQL> set linesize 8000 
SQL> column NAME   format a40 
SQL> select con_id ,name,open_mode from v$pdbs; 

    CON_ID NAME                                     OPEN_MODE
---------- ---------------------------------------- ----------
         2 PDB$SEED                                 READ ONLY
         3 ESBQASPDB                                READ WRITE

关闭数据库,重新启动到mounted状态

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area 1577058304 bytes
Fixed Size                  8793208 bytes
Variable Size             905970568 bytes
Database Buffers          654311424 bytes
Redo Buffers                7983104 bytes
Database mounted.
#--实例为mounted,pdb也为mounted ;如果直接startup ,ESBQASPDB 也是MOUNTED,ESBQASPDB不随实例自动启动
SQL> select con_id ,name,open_mode from v$pdbs; 

    CON_ID NAME                                     OPEN_MODE
---------- ---------------------------------------- ----------
         2 PDB$SEED                                 MOUNTED
         3 ESBQASPDB                                MOUNTED

开启实例,如果有多个pdb 均为mounted

SQL> alter database open;

Database altered.

SQL> select con_id ,name,open_mode from v$pdbs; 

    CON_ID NAME                                     OPEN_MODE
---------- ---------------------------------------- ----------
         2 PDB$SEED                                 READ ONLY
         3 ESBQASPDB                                MOUNTED

开启pdb

SQL> alter pluggable database ESBQASPDB open;

Pluggable database altered.

SQL> select con_id ,name,open_mode from v$pdbs; 

    CON_ID NAME                                     OPEN_MODE
---------- ---------------------------------------- ----------
         2 PDB$SEED                                 READ ONLY
         3 ESBQASPDB                                READ WRITE

创建触发器,指定pdb和实例同时开启,可以通过关闭数据库shutdown immediate; 和启动数据库startup ,查看状态,验证pdb是否随实例启动。

SQL> select count(*) from cdb_triggers;
  COUNT(*)
----------
       290

SQL> select count(*) from dba_triggers;
  COUNT(*)
----------
       145

SQL> create trigger open_esbqaspdb after startup on database
  2  begin
  3  execute immediate 'alter pluggable database ESBQASPDB open';
  4  end;
  5  /

Trigger created.

SQL> select count(*) from cdb_triggers;
  COUNT(*)
----------
       291

SQL> select count(*) from dba_triggers;
  COUNT(*)
----------
       146

切换到pdb打开pdb

SQL> alter pluggable database all  close;

SQL> alter session set container=ESBQASPDB;

Session altered.

SQL> startup
Pluggable Database opened.
SQL> conn / as sysdba
Connected.
SQL> select con_id ,name,open_mode from v$pdbs;

    CON_ID NAME                                     OPEN_MODE
---------- ---------------------------------------- ----------
         2 PDB$SEED                                 READ ONLY
         3 ESBQASPDB                                READ WRITE
登陆评论: 使用GITHUB登陆