Oracle体系结构、表空间

1.体系结构

Oracle 服务器的工作原理

体系结构

Oracle 的体系结构可分客户端 、 服务器两⼤部分 。
客户端:在客户机上安装管理⼯具后 , 运⾏⼯具启动用户进程 。(常见的有 PL/SQL、DEVELOPER、SQL DELVELOPER、AVICAT、FOR ORACLE 等 )
服务器 : 包括实例和数据库两部分 。
实例 : 包括 SGA(System Global Area,系统全局区) 及后台进程 。
数据库 : 包括控制⽂件 、 数据⽂件 、 重做日志⽂件、参数⽂件、口令文件(物理存储结构)。

逻辑存储结构 
可以分为4 部分 : 表空间 、 段 、 区 、 块 。
表空间是数据库的逻辑划分的最⼤单元。
区是 Oracle 存储分配的最小单位。

Oracle 数据库服务器主要由两部分组成 :物理数据库和数据库管理系统
数据库服务器启动时 :Oracle 首先要在内存中获取 、 划分 、 保留各种用途的区域,  运⾏各种用途的后台,  即 : 创建⼀个实例 (instance) ,然后由该实例装载 (mount) 、 打开 (open) 数据库,最后由这个实例来访问和控制数据库的各种物理结构。
当用户连接到数据库并使用数据库时,实际上是连接到该数据库的实例,通过实例来连接、使用数据库。
每个实例通过SID(System IDentify) 加以区分。

Oracle 内存结构由两个部分组成:
•  系统全局区( SGA): 在启动实例时分配, 是Oracle 实例的基础组件 。
•  程序全局区( PGA): 当启动服务器进程时分配

Oracle 使用各种类型进程: 
•  用户进程: 当用户请求连接到 Oracle server 时启动
•  服务进程: 连接到实例 , 并且当用户建立会话时启动
•  后台进程: 当启动实例时启动

2.表空间

表空间是用户可以在Oracle 系统中使用的最大的逻辑存储结构。
从物理上说数据库的数据存放在数据文件中 ,从逻辑上说数据是被存放在表空间中的。

创建表空间

CREATE [TEMPORARY | UNDO]TABLESPACE 表空间名
[DATAFILE 子句]
[MINIMUM EXTENT 正整数 [K | M]]
[BLOCKSIZE 正整数 K]
[ONLINE | OFFLINE]
[LOGGING | NOLOGGING]
[DEFAULT STORAGE 存储子句]
[EXTENT MANAGEMENT DICTIONARY | LOCAL [AUTOALLOCATE | UNIFORM SIZE 正整数 K | M]]
[SEGMENT SPACE MANAGEMENT AUTO | MANUAL] ;
  • TEMPORARY表示创建临时表空间,UNDO表示创建回滚表空间,如未使用表示创建永久表空间。
  • DATAFILE 子句--指定与表空间相关联的数据文件的位置、名称和大小。
  • MINIMUM EXTENT– 表空间中盘区可以分配到的最小的尺寸,该值是块的整数倍。
  • BLOCKSIZE – 为表空间说明非标准块的大小, 该选项只适用于永久表空间。
  • ONLINE | OFFLINE – 设置为ONLINE 则创建的表空间立即可以使用,设置为OFFLINE则使表空间不可用。
  • LOGGING | NOLOGGING – 表空间中所有数据变化是否写入重做日志文件中,默认为LOGGING
  • DEFAULT STORAGE 存储子句 –  说明在该表空间中所创建的对象的默认存储参数。
  • EXTENT MANAGEMENT – 表空间的区管理方式是采用数据字典管理方式(DICTIONARY)还是本地化管理方式(LOCAL) 
  • SEGMENT SPACE MANAGEMENT –  表空间中段的管理方式采用自动管理方式(AUTO)还是手动管理方式(MANUAL)
CREATE TABLESPACE mytbs04
DATAFILE 'C:\OraDb\JHH_IDX00.dbf' SIZE 50M
AUTOEXTEND ON NEXT 50M MAXSIZE 4000M
DEFAULT STORAGE (INITIAL 24K NEXT 24K
MINEXTENTS 1 MAXEXTENTS UNLIMITED
PCTINCREASE 0);
create tablespace mytbs05
datafile ‘c:\mytbs05.dbf ’ size reuse
uniform
segment space management auto;  // oracle极力推荐auto的方式

临时表空间

临时表空间主要用途是在数据库进行排序运算、管理索引、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理。

// 创建一个本地管理的临时表空间TEMPTBS
create temporary tablespace temptbs
tempfile 'c:\oracle\product\10.2.0\orcl\temp01.ora'
size 50M autoextend on next 5M maxsize unlimited
extent management local;
// 把临时数据放在TEMP临时表空间
alter database default temporary tablespace temptbs;
// 查看临时文件信息
select file#, status, bytes, name from v$tempfile

回滚表空间

回滚(UNDO)表空间用于存放回滚数据,当执行DML操作时,Oracle会将这些操作的旧数据写入到回滚段。

// 创建回滚表空间UNDOTBS
create undo tablespace undotbs
datafile 'c:\oracle\product\10.2.0\orcl \undo01.ora'
size 40M;
// 创建undo表空间时不能指定统一区大小的选项(uniform),否则出错
// 把回滚数据放在undotbs回滚表空间
alter system set undo_management=auto scope=spfile;
alter system set undo_tablespace=undotbs scope=spfile;

表空间的状态

  • 离线(Offline)状态 –  表空间不可用。任何保存在该表空间中的数据库对象将不可存取。具有Normal 、 Temporary 、 Immediate 和For Recovery四种模式。
  •  在线(Online)状态 –  用户可以访问其中的数据。
  • 只读(Read-Only)状态 –  表空间中的表只能读,不能更新。
  • 读写(Read-Write)状态 –  表空间能正常使用的状态。

表空间信息查询

// 查询表空间的基本信息
select tablespace_name, contents, status
from dba_tablespaces;

// 查询表空间的默认存储参数
select tablespace_name, initial_extent, next_extent, extent_management
from dba_tablespaces;

// 查询表空间中数据文件的信息
select tablespace_name, file_name, bytes/(1024*1024) MB
from dba_data_files;

// 查询表空间中空闲空间大小
select tablespace_name, sum(bytes/(1024*1024)) free_MB
from dba_free_space
group by tablespace_name;

删除表空间

DROP TABLESPACE 表空间名
[INCLUDING CONTENTS [AND DATAFILES] ]
[CASCADE CONSTRAINTS];
  • INCLUDING CONTENTS –  将表空间及其中保存的数据库对象全部删除。
  • AND DATAFILES –  删除表空间同时也删除对应的数据文件。
  • CASCADE CONSTRAINTS –  删除所有的引用完整性约束。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漂流の少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值