前言

本文详细阐述了Oracle 19C容器数据库日常管理

📣 1.多租户架构

✨ 1.1 CDB 根容器

✨ 1.2 PDB

【德哥说库系列】-Oracle 19C容器数据库日常管理-LMLPHP

✨ 1.3 cdb 表空间

【德哥说库系列】-Oracle 19C容器数据库日常管理-LMLPHP

📣 2.PDB和CDB的管理

✨ 2.1 确认CDB

SQL> select name, decode(cdb, ‘YES’, ‘Multitenant Option enabled’,
'Regular 19c Database: ') “Multitenant Option” , open_mode, con_id from
v$database;

【德哥说库系列】-Oracle 19C容器数据库日常管理-LMLPHP

✨ 2.2 连接到 CDB

【德哥说库系列】-Oracle 19C容器数据库日常管理-LMLPHP

✨ 2.3 连接到 PDB

1)使用简单连接方式连接到 pdb3
[oracle@OEL7 ~]$ sqlplus / as sysdba
SYS@orcl(CDB$ROOT)> alter session set container=pdb3;
2)使用 net service 方式连接
[oracle@OEL7 ~]$ sqlplus system/oracle@192.168.6.30:1521/pdb3

✨ 2.4 PDB创建及删除

从 seed PDB 创建一个 PDB,每个 CDB 有一个 PDBtemplate,名为 PDB$Seed创建一个操作系统的目录用来存放新创建的 PDB 数据库的数据文件和临时文件:
mkdir -p /u01/app/oracle/oradata/cdb1/prod3

1)创建 PDB
select name from v$datafile where con_id=(select con_id from v$pdbs where name='PDB$SEED');

create pluggable database pdb4 admin user jeames identified by 123456
file_name_convert=('/u01/app/oracle/oradata/ORCL/pdbseed','/u01/app/oracle/oradata/ORCL/pdb4') ;

【德哥说库系列】-Oracle 19C容器数据库日常管理-LMLPHP
2)重命令PDB

rename  pdb 时,pdb需要处于 open restricted 状态。
SQL> select name ,open_mode from v$pdbs ;
SQL> alter pluggable database pdb4 close immediate ;
SQL> alter pluggable database pdb4 open restricted ;
SQL> select name ,restricted from v$pdbs ;
SQL> conn sys/oracle@192.168.6.5:1521/pdb4 as sysdba
SQL> alter pluggable database pdb4 rename global_name to pdb4_his ;
SQL> alter pluggable database close immediate ;
SQL> select name ,open_mode from v$pdbs ;
SQL> conn / as sysdba
SQL> alter pluggable database pdb4 open;
SQL> select name ,open_mode from v$pdbs ;

3)PDB 删除

SQL> conn / as sysdba
SQL> alter pluggable database PDB4_HIS close;
SQL> select name ,open_mode from v$pdbs ;
SQL> drop pluggable database PDB4_HIS including datafiles ;
SQL> select name ,open_mode from v$pdbs ;

📣 3.容器数据库自启动

✨ 3.1 PDB 自动启动

【德哥说库系列】-Oracle 19C容器数据库日常管理-LMLPHP

✨ 3.1 Oracle19c开机启动

# 1、root用户修改 /etc/oratab, 将上面的N改为Y
vi /etc/oratab
PROD:/u01/app/oracle/product/19.3.0/dbhome_1:N
将上面的N改为Y

# 2、oracle用户修改
su - oracle
cd $ORACLE_HOME/bin
vi dbstart
修改 #ORACLE_HOME_LISTNER=$1 为 ORACLE_HOME_LISTNER=$ORACLE_HOME

vi dbshut
修改 #ORACLE_HOME_LISTNER=$1 为 ORACLE_HOME_LISTNER=$ORACLE_HOME

# 3、root用户修改
chmod 777 /etc/rc.d/rc.local
vi /etc/rc.d/rc.local

添加 
# for oracle
su - oracle -lc 'lsnrctl start'
su - oracle -lc 'dbstart'

# 4. 重启,测试成功
reboot 或 init 6

注意: su - oracle -lc 'lsnrctl start'

-l 表示同时切换用户目录。比如你要换到oracle用户下你的目录就同时在oracle目录下了。
-c则表示执行完命令好再返回到原来的用户。

经过测试我们发现,服务器库开机自启动容器数据库19C

【德哥说库系列】-Oracle 19C容器数据库日常管理-LMLPHP

10-17 17:57