暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 19C入门到精通之CDB与PDB及设置数据库自启动

ITPro进化论 2023-11-24
708

1. Oracle的一些基本概念

  • 表空间——逻辑概念,物理上是个文件;
  • CDB——Container Database,即容器数据库;
  • PDB——Pluggable Database,即可拔插数据库;
  • 公共用户——CDB公共用户,必须以C##或c##开头,Oracle会在每个PDB中同时创建该用户;
  • 本地用户——PDB的用户,本地用户所在PDB中必须是唯一的,每个PDB可以有不同的本地用户;

Oracle 19C中的CDB和PDB是数据库中的两种重要概念。

CDB是一个容器数据库,可以容纳多个PDB,类似于一个父容器。在CDB环境中,用户称为公共用户,而在PDB环境中,用户称为本地用户。

PDB是一种可插拔数据库,它可以在CDB中独立地创建、停止和启动。每个PDB都有自己的数据文件、控制文件和日志文件,并且可以独立地进行备份和恢复操作。PDB提供了更高的隔离性和安全性,因为每个PDB都有自己的安全上下文,并且只能通过指定的用户访问。

CDB:容器数据库,名称为 CDB$ROOT,其作用就是系统数据库,sys等账号都保存在里面,同时它可以管理PDB数据库。

PDB:可插拔的数据库,用户可以自建PDB数据库,Oracle安装成功后有个默认的pdb数据库(在安装Oracle时自己设定),Oracle 19C数据库中自带有名为PDB$SEE的模板数据库,创建数据库的时候以此库为模板;PDB可以从一个CDB拔出,插入到另一个CDB中。

2. CDB与PDB常用命令

--打开PDB
alter pluggable database pdb名称 open;
--关闭PDB
alter pluggable database pdb名称 close;
--切换PDB
alter session set container=pdb名称(指定容器);

--查看当前所在容器
show con_name;

--查看所有的PDB
show pdbs;

--切换到mypdb
alter session set container=mypdb;

创建一个名为NEWPDB的PDB;

--切换到pdb$seed
alter session set container=pdb$seed ;

--查询模板pdb的pdb$seed数据文件路径
select name, con_id from v$datafile order by con_id;
select name, con_id from v$tempfile order by con_id;

退出sqlplus,在oracle账号下创建NEWPDB目录;

#在pdb$seed同级目录下创建NEWPDB目录
mkdir -p /opt/oracle/oradata/ORCLCDB/NEWPDB

#以sysdba身份登录sqlplus
sqlplus / as sysdba 

--创建一个名为"NEWPDB"的可插拔数据库(PDB),并设置一个名为"itpro"的管理用户,密码为"123456",并赋予该用户DBA、CONNECT和RESOURCE角色。
create pluggable database NEWPDB admin user itpro identified by 123456 roles=(dba,connect,resourcefile_name_convert=('/opt/oracle/oradata/ORCLCDB/pdbseed','/opt/oracle/oradata/ORCLCDB/NEWPDB');


--删除NEWPDB
DROP PLUGGABLE DATABASE NEWPDB INCLUDING DATAFILES;

--查看所有PDB打开情况
select name,open_mode from v$pdbs;

--切换到NEWPDB
alter session set container=NEWPDB;

--打开NEWPDB
alter pluggable database open;

--创建名为NEWITPRO的表空间,初始大小为100M,自动扩展大小为100M
CREATE BIGFILE TABLESPACE "NEWITPRO" DATAFILE '/opt/oracle/oradata/ORCLCDB/NEWPDB/NEWITPRO.dbf' SIZE 100AUTOEXTEND ON NEXT 100MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

--给用户赋值表空间,修改itpro的默认表空间为NEWITPRO
alter user itpro default tablespace NEWITPRO;

至此,新创建的NEWPDB数据库就可以使用了。

3. Oracle 19C数据库设置自启动

  1. 以root身份登录系统,修改/etc/oratab
vim /etc/oratab

ORCLCDB:/opt/oracle/product/19c/dbhome_1:N后面的N修改为Y(N表示开机不自动启动,Y表示开机自动启动)

  1. 编辑 /etc/rc.d/rc.local 在文件最后面加入以下内容
su - oracle -c 'lsnrctl start'
su - oracle -c 'dbstart'

  1. 设置这两个文件的权限为可执行文件
chmod 755 /etc/oratab
chmod 755 /etc/rc.d/rc.local

4.打开要设置自启动的PDB,保存当前状态

--打开NEWPDB
alter pluggable database NEWPDB open;
--保存NEWPD的启动状态
alter pluggable database NEWPDB save state;

以上就完成了Oracle 19C数据库开机自启动设置,重启服务器后,CDB与NEWPDB实现自启动。

今天的文章就到这里,感谢各位的点赞、在看。

文章转载自ITPro进化论,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论