8 . 1 存储结构
Physical:Datafiles+Online Redo Logs+Control Files (Archive Log +Parameter +Alert +Trace+Backup)
Datafile 是独立的操作系统文件 只属于一个数据库,可以设置为自动扩展,多个组成表空间 =table+index
ControlFile 包含 数据库名称,数据和日志文件的名称和位置创建数据库的 Timestamp
Trace 由服务器进程和后台进程写入,个个名称不同,但都包括跟踪进程的名字。后台 dest= 初始化参数 backgroud_dump_dest ,服务器进程 dest=user_dump_dest, , max_dump_file_size 用于限制该文件大小 xM 或者 unlimited
Logical:Data block+Extent+Segment+Tablespace
Tablespace 每个数据库包含一个 system 和 sysaux 表空间 创建时自动生成 默认为 smallfile, 也支持 bigfile
Block 是 oracle 执行 io 的最小单位,初始化参数 db_block_size-Standard Block, 也可 Nostandard Block, 最多支持 5 种非标准块。
Header 快的物理地址所属段的类型( data or index ) ,Table Directory,,Row Directory,
Row Data,Free Space
执行数据操作时,默认不进行自由空间合并,旨在插入或者更新不够时才进行合并
行链接 在存储大文件时 由多个块完成而形成,该行为链接行
行迁移 update 后导致该块不够,就会把整行数据移动到新的数据块,由指针指向, rowid 不变但是会影响性能 /
自动管理: bitmap 进行实时调整,更有效利用空间
手动管理: pctfree, 制定必须保留的最小空闲百分比,给与 update 使用,否则会产生行迁移 pctused 当使用空间小于其,变为有效快。可以插入数据
Extent
最大的连续存储空间,可扩展
表空间级别
CREATE TABSPACE STO1
DATAFILE '/u01/app/oradata/tbs_sto01.dat' SIZE 20M
DEFAULT STORAGE (INITIAL,128K NEXT 128K PCTINCREASE 40
#PCTINCREASE 第三个以后分配区的增长
MINEXTENTS 1 MAXEXTENT 999)
ONLINE;
表级别
CREATE TABLE tbsto
(ID NUMBER(10) NOT NULL,
NAME VARCHAR(10) NOT NULL)
TABSPACE STO1
STORAGE(INITIAL 1M NEXT 2M PCTINCREASE 60 MINEXTENTS 2
MAXEXTENS UNLIMITED);
表继承表空间的存储参数
CREATE TABLE tbsto
(ID NUMBER(10) NOT NULL,
NAME VARCHAR(10) NOT NULL)
TABSPACE STO1;
区地增长管理
AUTOALLOCATE
CREATE TABSPACE 1mtbsb DATAFILE '/u01/oracle/data/lmtbsb01.dbf' SIZE 50M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
UNIFORM 固定大小
CREATE TABSPACE 1mtbsb DATAFILE '/u01/oracle/data/lmtbsb01.dbf' SIZE 50M
EXTENT MANAGEMENT LOCATE UNIFORM SIZE 128K
区空间的释放
不会自动释放,除非 drop
TRUNCATE….. DROP STORAGE 回收给一个段的区
ALTER TABLE…...DEALLOCATE UNUSED 命令收回已分配但未使用的区
Segement 段
Data , index , temporary , rollback
Create user 时要利用 temporary tabspace 为用户指定临时表空间,否则会使用 system ,影响 system 中数据字典的存储,而且使用 system 进行排序时,会出警告
8.2 undo 表空间
用途: Transaction undo,read consistency,db recovery,flashback query
删除回滚: rollback,commit, 异常终止,正常终止
读一致性:一个用户修改数据,未提交;此时别的用户访问是从回滚段中查询数据 机理 @1
回滚段写入是循环使用的,至少有两个区,会依次检查下一区,直到找到不活动的区或者分配新的区,自动管理 UNDO_MANAGEMENT=AUTO
DML 自动开始事务,当前回滚段查询 V$ROLLNAME 回滚段拥有者是 sys
表空间管理方式
区的管理方式:字典、本地(推荐,减少递归 sql 调用,减少数据字典竞争,减少自由区合并,不产生回滚)
段的管理
手动 + 自动 ASSM auto segment space management (位图管理 ,SEGMENT SPACE MANAGEMENT AUTO )
8.3 数据文件
Autoextend