[Oracle 工程师手记]如何设置RAC环境自动启动 PDB
2023-09-11 14:20:28 时间
RAC环境如何设置当CDB打开时,PDB 也打开呢?
我需要用到 alter pluggable database orclpdb1 save state 语句。
具体过程,如下面的例子:
在第一个节点执行:
[oracle@orc01 ~]$ export ORACLE_SID=orclcdb1 [oracle@orc01 ~]$ sqlplus / as sysdba SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 ORCLPDB1 MOUNTED 4 ORCLPDB2 MOUNTED SQL> <<<<< 打开数据库后,执行 “save state" 语句: SQL> alter pluggable database orclpdb1 open; SQL> alter pluggable database orclpdb1 save state; <<<<< 重启数据库: [oracle@orc01 ~]$ srvctl stop database -db orclcdb [root@orc02 ~]# srvctl start database -db orclcdb <<<<< 可以看到,此时,数据库自动打开了(READ WRITE): [oracle@orc01 ~]$ export ORACLE_SID=orclcdb1 [oracle@orc01 ~]$ sqlplus / as sysdba SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 ORCLPDB1 READ WRITE NO *** 4 ORCLPDB2 MOUNTED SQL> <<<<< 但是我们到另外一个节点去看,看到的是,这个PDB 并没有被打开。 [oracle@orc02 ~]$ export ORACLE_SID=orclcdb2 [oracle@orc02 ~]$ sqlplus / as sysdba SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 ORCLPDB1 MOUNTED *** 4 ORCLPDB2 MOUNTED SQL>
可以说,PDB 数据库的 save state ,是以节点(instance) 为单位的。
那么,如何再各个节点,都自动打开PDB呢,可以指明 instance 名字:
SQL> alter pluggable database orclpdb1 save state instances=('orclcdb1','orclcdb2'); [oracle@orc01 ~]$ srvctl stop database -db orclcdb [oracle@orc01 ~]$ [oracle@orc01 ~]$ srvctl start database -db orclcdb 节点一查看: SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 ORCLPDB1 READ WRITE NO 4 ORCLPDB2 MOUNTED SQL> 节点二查看: SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 ORCLPDB1 MOUNTED 4 ORCLPDB2 MOUNTED
还有一个问题需要注意,如果设置了 PDB 自动打开之后,我怎么知道我已经设置过了呢?可以查询:
SELECT con_name, instance_name, state FROM dba_pdb_saved_states;
相关文章
- 数据库历险记(三) | 缓存框架的连环炮 数据库历险记(二) | Redis 和 Mecached 到底哪个好? 数据库历险记(一) | MySQL这么好,为什么还有人用Oracle? 面对海量请求,缓存设计还应该考虑哪些问题?
- Oracle数据库软件标准版的一个限制:仅仅能用一个rman channel
- Oracle数据库:oracle执行计划性能代价cost,全表扫描速度慢,索引扫描速度快
- Oracle数据库:oracle嵌套分组函数(聚合函数),组函数的练习题,挺复杂的,用好decode函数,很有趣
- Oracle数据库:oracle函数,单行函数,多行函数,upper,lower,initcap,字符串函数
- Oracle数据库:啥是oracle数据库?你为啥要学oracle?
- [转]oracle 11g jdbc jar包在哪个文件目录
- ORACLE建表练习
- 【Docker】安装Presto连接Hive、mysql、oracle、postgresql、SQL server等7种类型数据库
- oracle 删除表空间及数据文件方法
- oracle函数 ln(y)
- oracle函数 SUBSTR(c1,n1[,n2])
- oracle审计实施
- Index Skip Scan in Oracle in 11g
- 转: oracle 存储过程 执行动态 实现sql
- Oracle-SQL语句的语法顺序和执行顺序
- Oracle的exp/imp详解
- Oracle V$SESSION详解
- [Oracle工程师手记]如何查询表空间的使用率
- [Oracle 工程师手记] EM Express 上的备份完成时间和RMAN表示的时间不一致
- [Oracle工程师手记]如何将一个特定的表空间恢复到一个特定的时间
- [Oracle工程师手记]X$KCCAL表
- [Oracle工程师手记]包含结构体的向数据库表插入数据的PL/SQL匿名块例子
- [Oracle工程师手记] 说说什么是 Active Data Guard
- [Oracle工程师手记]如何获得 RMAN 的 debug log
- [Oracle 工程师手记] 如何构造数据库的 log on trigger
- [Oracle 工程师手记] 如何查看 FRA 的使用率
- [Oracle数据库工程师手记] Data Guard broker 与 ORA-32701
- [Oracle工程师手记] 备份恢复双城记(一)
- [Oracle 工程师手记]探究 Oracle PDB Application Container (三)
- [Oracle 工程师手记]探究 Oracle PDB Application Container (二)
- [Oracle]获得PDB相关的xml 文件
- Oracle的sqlnet.ora与password文件试验
- Oracle物联网 (IoT) 云服务的神奇世界
- Oracle数据库sql常用