Oracle 数据库初识

Oracle 数据库初识

1. 基础概念

1.1 数据库和数据库实例

一台 Oracle 数据库服务器由一个数据库和至少一个数据库实例(通常简称为实例)组成。

由于实例和数据库紧密相连,因此术语Oracle 数据库有时既指实例又指数据库。从最严格的意义上讲,这些术语具有以下含义:

  • 数据库

数据库是位于磁盘上的一组文件,用于存储数据。这些文件可以独立于数据库实例而存在。

  • 数据库实例

实例是一组管理数据库文件的内存结构。该实例由一个共享内存区域(称为系统全局区域(SGA))和一组后台进程组成。实例可以独立于数据库文件而存在。

下图显示了一个数据库及其实例。对于与实例的每个用户连接,客户端进程都会运行该应用程序。每个客户端进程都与其自己的服务器进程相关联。服务器进程有自己的私有会话内存,称为程序全局区域(PGA)

1.2 CDB和PDB

CDB与PDB是Oracle 12C引入的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器CDB(Container Database)承载多个可插拔数据库PDBPluggable Database。在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。

12c中 oracle引入了容器数据库 CDB(container database),和可插拔数据库 PDB(pluggable database)。oracle 将CDB看成一个容器,用来存放数据库。 在CDB中可以有多个PDB,其中存在一个root根容器(CDB R O O T )、一个种子容器( P D B ROOT)、一个种子容器(PDB ROOT)、一个种子容器(PDBSEED)和多个PDBS。所有的PDB共用一个硬件系统资源、sga和pga、redo、临时段、控制文件、参数文件、还原段(还可对每个PDB单独指定)。

CDB$ROOT:根容器用来做所有容器的跟,用来对每个PDB进行统一管理,sqlplus / as sysdba连接进来默认是连接的根容器,需要切换到其他的PDB容器才可以对单独的PDB操作。其中有 system数据文件、sysaux数据文件、(undo数据文件、temp数据文件、redo、控制文件)。一般不存放生产数据文件

PDB$SEED:种子容器作为插入PDB的模板而存在,每个CDB都有一个种子容器,且不可对其中对象进行修改。其中有 system数据文件、sysaux数据文件、其他数据文件。

PDB:新插入容器,该容器用来存放数据库。其中有 system数据文件、sysaux数据文件、其他数据文件。12c中可以插入多个容器进行统一管理,来减少DBA的工作量。其中的数据库可以插入或拔出。

用户:12c中PDB$ROOT中的普通目录可以通过权限分配来访问一个或多个指定的PDB容器,最大权限用户是sysdba。其中PDB也可单独创建普通用户来管理该容器的数据库。

PDB资源管理:12c中将多个数据库运行在一个硬件资源上,CDB性能上得到优化。在CDB中为每个PDB确定使用CPU最低份额,CDB会按照一个PDB份额/分配的总份额数*100%,来保证PDB最低份额数。

官网地址

2. 数据库常见操作

2.1 连接数据库

sqlplus / as sysdba

sqlplus / as sysdba 是一个用于连接 Oracle 数据库的命令。具体来说,它有以下含义:

  1. sqlplus:这是 Oracle 提供的一个命令行工具,用于与数据库进行交互,执行 SQL 语句和 PL/SQL 块。

  2. /:这个斜杠表示使用操作系统认证登录。这意味着你将以操作系统当前用户的身份连接到数据库,而不是使用数据库用户名和密码。

  3. as sysdba:这是一个用于指定连接方式的选项。在这里,sysdba 是一个特权角色,它允许用户以数据库管理员的身份连接,拥有所有数据库管理的权限。

结合起来,sqlplus / as sysdba 的作用是通过操作系统认证,以数据库管理员(SYSDBA)的身份连接到 Oracle 数据库。这种方式常用于需要执行高级管理任务的情况,比如备份和恢复数据库、创建和管理用户等。

请注意,执行这个命令需要在操作系统中具有适当的权限和数据库的相应配置。

2.2 查询该容器是CDB还是非CDB

select name,cdb,open_mode,con_id from v$database;

2.3 查看当前容器

show con_name;

2.4 查看所创建的PDB

show pdbs

2.5 创建一个新PDB

create pluggable database testpdb admin user root identified by 123456 file_name_convert=('/opt/oracle/oradata/ORCLCDB/pdbseed/','/opt/oracle/oradata/ORCLCDB/testpdb/');

这个 CREATE PLUGGABLE DATABASE 语句用于在 Oracle 数据库中创建一个新的可插拔数据库(PDB)。具体来说,这条语句的作用是创建一个名为 pdb1 的可插拔数据库,并且在创建过程中指定了一些参数。

  1. CREATE PLUGGABLE DATABASE pdb1: 这是创建一个名为 pdb1 的可插拔数据库(PDB)的命令。

  2. ADMIN USER pdb1 IDENTIFIED BY pdb1: 创建一个名为 pdb1 的管理员用户,并设置其密码为 pdb1。这个管理员用户具有对新创建的 PDB 的管理权限。

  3. file_name_convert=('/opt/oracle/oradata/ORCLCDB/pdbseed/','/opt/oracle/oradata/ORCLCDB/testpdb/'): 这个参数指定了文件名转换的规则。具体来说,它会将 PDB 从 pdbseed(种子 PDB)的数据文件路径 /opt/oracle/oradata/ORCLCDB/pdbseed/ 复制到新 PDB pdb1 的数据文件路径 /opt/oracle/oradata/ORCLCDB/testpdb/。这个参数的作用是确保新创建的 PDB 拥有自己的数据文件副本,避免与种子 PDB 的文件路径冲突。
    /opt/oracle/oradata/ORCLCDB/pdbseed/ 自己oracle的数据路径,其中ORCLCDB是自己创建的CDB容器数据库

2.6 PDB启停

#打开PDB数据库
alter pluggable database testpdb open;

#关闭PDB数据库
alter pluggable database testpdb close;
#关闭PDB数据库,如没有加上immediate参数,会等待连接断开后再进行关闭
alter pluggable database testpdb close immediate;

#启动或者停止所有PDB
ALTER PLUGGABLE DATABASE ALL OPEN;
ALTER PLUGGABLE DATABASE ALL CLOSE IMMEDIATE;

#以指定模式启动PDB
ALTER PLUGGABLE DATABASE testpdb OPEN READ WRITE;
ALTER PLUGGABLE DATABASE testpdb OPEN READ ONLY;

#启/停当前会话的CDB/PDB
startup;
shutdown immediate;

#设置pdb随cdb启动,在pdb是open情况下执行
alter pluggable database testpdb save state;
#设置所有pdb随着cdb启动
alter pluggable database all save state;


2.7 查询PDB文件

#查询PDB文件
SELECT p.PDB_ID, p.PDB_NAME, d.FILE_ID, d.TABLESPACE_NAME, d.FILE_NAME FROM DBA_PDBS p, CDB_DATA_FILES d WHERE p.PDB_ID = d.CON_ID ORDER BY p.PDB_ID;

2.8 卸载和删除PDB数据库(包括了数据文件一起删除)

 DROP PLUGGABLE DATABASE testpdb  INCLUDING DATAFILES;

2.9 切换PDB数据库到testpdb

ALTER SESSION SET CONTAINER=testpdb;

2.10 字符集设置

#查询当前字符集
select userenv('language') from dual;
#如果PDB想使用不同的字符集,根容器必须使用AL32UTF8字符集。要更改PDB字符集,必须以RESTRICTED模式启动PDB,如下
ALTER PLUGGABLE DATABASE testpdb OPEN READ WRITE RESTRICTED;
ALTER DATABASE CHARACTER SET internal_use ZHS16GBK;
ALTER PLUGGABLE DATABASE testpdb CLOSE;
ALTER PLUGGABLE DATABASE testpdb OPEN;

3. 参考和感谢

oracle 12C的新特性-CDB和PDB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值