color=00B82E
color=FF0000
完整的Oracle数据库系统通常由两个部分组成: 实例(INSTANCE)和数据库(DATABASE)。
总体结构:
数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等)。
实例是由一系列的后台进程和内存区组成。简单来说,是内存和后台进程的集合。
Oracle体系结构:
概念: 指Oracle的组成、工作过程和基本原理,以及数据在数据库中的管理和组织机制。
Oracle-存储结构
存储结构之逻辑结构
表空间:
表空间(Tablespace)是数据库的逻辑划分,一个Oracle数据库由若干个表空间组成。
任何数据库对象在存储时都必须存储在某个表空间中。
一个表空间对应于磁盘上的一个或多个数据文件。
通常一个Oracle数据库可能会有7个表空间:System、SYSAUX、Users、Undo、Temp、Example、BigTBS。
System表空间: 一个Oracle数据库至少有一个表空间,既System表空间。当数据库创建时,必须指明System表空间的数据文件的特征,如数据文件名称、大小。在System表空间中存储了Oracle自身的内部结构信息.
SYSAUX表空间: 是System表空间的辅助表空间,许多数据库的工具和可选组件将其对象存储在SYSAUX表空间内,它是许多数据库工具和可选组件的默认表空间。
Users表空间: 用于存储用户的数据。
Undo表空间: 用于事务的回滚、撤销。
Temp表空间用于存放Oracle运行中需要临时存放的数据,如排序的中间结果等。
数据字典:
是Oracle数据库的核心组件,它由基表和数据字典视图组成;
数据字典中记录了数据库的系统信息、例程运行性能;
数据字典表和数据字典视图都保存在SYSTEM表空间中;
用途: 用户可以从数据字典的只读视图中,获取各种与对象有关的信息;
任何用户都可以将数据字典视为数据库的只读参考信息。
每次修改方案对象后,Oracle都在数据字典中记录下所做的修改;
常用的三类视图
user_* 存储了关于当前用户所拥有的对象的信息。(即所有在该用户模式下的对象)
all_* 存储了当前用户能够访问的对象的信息。(与user_相比,all_ 并不需要拥有该对象,只需要具有访问该对象的权限即可)
dba_* 存储了数据库中所有对象的信息。(前提是当前用户具有访问这些数据库的权限,一般来说必须具有管理员权限)
查询视图dba_tablespaces,显示表空间的信息
select tablespace_name,contents,status from dba_tablespaces;
显示表空间所包含的数据文件
select file_name,bytes from dba_data_files where tablespace_name='SYSTEM';
显示表空间包括的所有表
select owner,table_name from all_tables where tablespace_name=’USERS’;
创建本地管理表空间
Create tablespace orcltb
Datafile ‘f:\mag\tb01.dbf’ size 10m
Extent management local
Autoallocate;
创建临时表空间
Create temporary tablespace tmptbs
tempfile ‘f:\mag\tmpo1.dbf size 20m
Extent management local;
创建永久表空间
创建永久性表空间user_commerce01,对应数据文件为“user_commerce01.dbf”,该数据文件的“文件目录”为“D:\app\admin\oradata\orcl\”,文件大小为“100MB”,数据文件“user_commerce01”满后自动扩展,增量为“50MB”,最大文件大小为“1GB”。
Create Tablespace user_commerce01
Datafile 'D:\app\admin\oradata\orcl\user_commerce01.dbf'
Size 100M
Autoextend On Next 50m
Maxsize 1G;
创建表的同时,指定表空间。
create table tablename(id int) tablespace tablespacename;
将表空间user_commerce02重命名为user_commerce02_new 的命令如下:
alter tablespace user_commerce02 rename to user_commerce02_new;
将表空间user_commerce02_new 设置为读写状态的命令:
alter tablespace user_commerce_02_new read write;
将表空间user_commerce设置为默认的表空间的命令如下:
alter database default tablespace user_commerce;
将临时表空间user_commerce_temp设置为默认的临时表空间的命令如下:
alter database default temporary tablespace user_commerce_temp;
将表空间user_commerce02_new 及其数据文件一并删除的命令为:
drop tablespace user_commerce02_new including contents and datafiles;
将表空间user_commerce01对应的数据文件user_commerce01.dbf的大小修改为200MB的命令;
alter database datafile 'D:\app\admin\oradata\orcl\user_commerce01.dbf' resize 200M;
修改表空间中数据文件的自动拓展性,关闭表空间user_commerce01中数据文件user_commerce01.dbf的自动拓展性的命令为:
alter database datafile 'D:\app\admin\oradata\orcl\user_commerce01.dbf' autoextend off;
设置表空间user_commerce01中数据文件user_commerce01.dbf的自动拓展性,且将空间大小的增量设置为10MB,最大文件的大小限制为500M。
alter database datafile 'D:\app\admin\oradata\orcl\user_commerce01.dbf' autoextend on
next 10M maxsize 500M;
在表空间user_commerce01中增加一个数据文件commerce03.dbf的命令:
alter tablespace user_commerce01 add datafile 'D:\app\admin\oradata\orcl\commerce03.dbf' size 50M autoextend on next 10M maxsize 100M;
删除表空间user_commerce中数据文件commerce03.dbf的命令:
alter tablespace user_commerce01 drop datafile 'D:\app\admin\oradata\demo\commerce03.dbf';
CDB全称为Container Database,中文翻译为容器数据库。
PDB全称为Pluggable Database,中文翻译为可插拔数据库。
CDB有三个组成:ROOT SEED PDBS
ROOT:又名CDB$ ROOT,用来存储Oracle提供的metadata和common user 一个CDB只能有一个根。
SEED:又名PDB$SEED,是用来创建新的PDB的模版。一个CDB只能有一个SEED。
PDBS:普通数据库
实例与数据库可以是一对多的关系
大大方便了数据的迁移。我们可以很方便的将一个特定的PDB从一个CDB挪到另一个CDB上面而不改变里面的任何数据和架构。
默认的连接模式是CDB
进入PDB
alter session set container=pdborcl;
startup;
显示连接容器
show con_name
在PDB中查看相关信息
在PDB中有哪些数据文件
select tablespace_name,file_id,file_name from dba_data_files;
查看有哪些默认表空间
select tablespace_name,status,contents from dba_tablespaces;
查看某用户所有数据表的信息
select table_name from user_tables;
退出PDB
alter pluggable database pdborcl close immediate;
alter session set container=CDB$ROOT;
对象命名规则
- 必须以字母开头
- 允许使用数字、字母和#_$,不允许空格和*
- 长度最多为30个字符
- 不能使用Oracle的保留字
- 同一用户下的对象不能同名
- 尽量使用约定:如有意义的名字,表名首字母t,视图首字母v
Oracle数据类型
date和timestamp
DATE只记录日期
TIMESTAMP还保存时间
clob和blob
CLOB存放海量文字
BLOB存放图片、电影、音乐等的二进制文件