重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3309|回复: 1
打印 上一主题 下一主题

12Cpdb自启动,使用Oracle自带的save state属性完成

[复制链接]
跳转到指定楼层
楼主
发表于 2022-9-19 17:18:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
默认情况下12c的pdb不会随着cdb启动而自动open, 在某些时候,数据库因故重启后,pdb无法正常访问。绝大多数情况下,我们还是希望pdb随着cdb一起启动(open)的。 因此,我们需要设置pdb随cdb一起启动。


对于Oracle 12.1.0.2 之后, Oracle推荐使用save state属性,也就是说,保存上次的状态,pdb关之前是open/close状态,cdb重启后pdb会保留这个状态。

例子:

[oracle@sztech ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Mon Sep 19 16:58:13 2022
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle.  All rights reserved.
Connected to an idle instance.

SQL> startup;
ORACLE instance started.

Total System Global Area 1241510080 bytes
Fixed Size                  9134272 bytes
Variable Size             452984832 bytes
Database Buffers          771751936 bytes
Redo Buffers                7639040 bytes
Database mounted.
Database opened.

查看当前pdb状态

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         5 ORCL                           MOUNTED


手动启动pdb实例orcl
SQL> alter pluggable database orcl open;
Pluggable database altered.

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         5 ORCL                           READ WRITE NO



启用保存所有pdb状态, 建议加上instances=all,否则命令只对当前实例下的PDB有效。
ALTER PLUGGABLE DATABASE all save STATE;

启用保存某个pdb状态
SQL> ALTER PLUGGABLE DATABASE  orcl save STATE;
Pluggable database altered.


状态保留在
dba_pdb_saved_states

我们关闭cdb,在启动cdb验证一下
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup;
ORACLE instance started.

Total System Global Area 1241510080 bytes
Fixed Size                  9134272 bytes
Variable Size             452984832 bytes
Database Buffers          771751936 bytes
Redo Buffers                7639040 bytes
Database mounted.
Database opened.
SQL> show pdbs

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



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

沙发
 楼主| 发表于 2022-9-19 17:24:46 | 只看该作者
本帖最后由 jiawang 于 2022-9-20 09:07 编辑

对于Oracle 12.1.0.2之前的版本, 就只能通过trigger触发器实现:

CREATE TRIGGER open_all_pdbs

  AFTER STARTUP ON DATABASE

BEGIN

   EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN';

--   EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE <pdb1> OPEN'; 某个pdb

END ;

/
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-4-20 09:48 , Processed in 0.084891 second(s), 18 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表