按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
自底向上 右边放主键,左边放外键
level(伪列)
层次的级别:不固定值。
第 44 页,共 106 页
…………………………………………………………Page 45……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
使用 level 和 LPAD 层次化格式的显示
修剪分支
Oracle 9i 对 DML 和DDL 语句的扩展
多表插入的 INSERT 语句
insert 。。。。 select 语句可以被用来在单个 DML 语句中向多个表插入数据。
多表插入语句:
无条件 INSERT
条件 ALL INSERT
条件 FIRST INSERT
轮巡 INSERT
二、Management:
1。Oracle的构件和组件
instance 实例/例程
database 数据库
SGA 系统全局区
shared pool 共享池
library cache 库高速缓存区
data dictionary cache 字典高速缓存区
database buffer cache 数据库高速缓存区
redo log buffer 重做日志缓冲区
java pool java 池
large pool 大池
PMON 进程监视进程
SMON 系统监视进程
DBWR 数据库写进程
LGWR 日志写进程
CKPT 检查点进程
data file 数据文件
control file 控制文件
redo log file 重做日志文件
parameter file 初始化参数文件
password file 口令文件
archived log file 归档日志文件
user process 用户进程
server process 服务进程
PGA 程序全局区
tablespace 表空间
第 45 页,共 106 页
…………………………………………………………Page 46……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
2。数据库的物理结构:
1。控制文件
2。 数据文件
3。 重做日志文件
4。 data file 数据文件:
5。 作用:存放数据。
6。 数据文件大小可以扩展。
7。 tablespace 表空间:一个或多个数据文件的逻辑组成。
一个数据库最少有一个 system 表空间,一个表空间最少有一个数据文件。
8。 redo log file 重做日志文件
重做日志:在数据库中发生的所有改变,改变的每一条信息都叫做一条重做日志信息。
存放重做日志信息的文件就叫做重做日志文件。
作用:利用日志记录可以恢复损坏的数据库,保证数据的可恢复性。
重做日志组:包含一个或多个日志文件。
特点:
一个数据库最少有两个组,一个组最少有一个组成员。
重做日志的大小是固定的。
写入方式是顺序写入,按时间。
切换(一个写满往下一个写),循环(都写满了就重新回到头组写)。
9。 control file 控制文件
数据库中的核心文件。
存放内容:
数据库的名称和编号,数据库的结构信息(数据文件和重做日志文件的地址)
当前的 SCN system change number 系统改变号:
给系统的每一次改变编号(最后一次同步的 SCN 号)。
控制文件的 SCN 号和所有存放数据文件的头部的 SCN 相同。
启动的时候,一样启动,不一样恢复。
特点:一个数据库最少需要一个控制文件,但一般情况下都会有复用/副本。
10。 parameter file 初始化参数文件
非必要文件
跟实例有关。
第 46 页,共 106 页
…………………………………………………………Page 47……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
11。 password file 口令文件
非必要文件。
作用:做特权身份认证。
sysdba/sysoper/普通身份
12。 archived log file 归档日志文件
非必要文件。
内容:
重做日志文件(redo log file)内容的备份。
作用:使数据库所有的日志都会保留下来。
特点:每个重做日志内容都会对应一个归档文件。
LOG SEQUENCE 日志序列号:重做日志内容的序列号。
非归档日志:
没有归档日志文件;
性能要好一些;
可以选择归档模式或非归档模式。
3。instance 实例/例程
启动的步骤:
(1)启动实例;
实例包含:
1。SGA
2。后台进程
一个实例只有一个 SGA,可以有多个 PGA,建立一次连接(会话)就产生一次PGA。
ORACLE 的内存结构:
SGA 在实例启动的时候分配,是 ORACLE 实例的基本组件; 大小可以动态改变(内部大
小)
通过 SGA_MAX_SIZE 定义大小(总大小是静态的)
PGA 程序全局区(私有区域):在服务进程启动的时候分配。
PGA 程序全局区
是为每个用户进程连接 ORA 数据库提供的内存区域;
当进程创建时分配;
当进程结束时释放;
一个 PGA 只被一个进程使用;
包含:有连接的信息
SGA 系统全局区
所有数据库的后台进程和服务进程的共用内存区域。
包含:
1。shared pool 共享池
第 47 页,共 106 页
…………………………………………………………Page 48……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
设置大小的参数:SHARED_POOL_SIZE
包含:
library cahce 库高速缓存区
大小由共享池决定。
包含:SQL 语句和 SQLPLUS 文本,分析代码,执行计划
存储目的:与性能有关。
当两个语句相同的时候不需要重新分析,使用相同的执行计划即可。
管理方法:采用 LRU (最近使用算法)least recent used 当空间不足的时候,使用 LRU。
结构: SQL 区域、PL/SQL 区域
data dictionary cache 字典高速缓存区
内容:最近最多使用的数据字典信息
作用:为了能够在分析的时候所需要的字典信息能在内存中找到,避免使用物理 I/O。
管理方法:采用 LRU (最近使用算法)
2。database buffer cache 数据库高速缓存区
单位:块。
内容:最近最常数据块
作用:减少物理 I/O,提高性能
参数:DB_BLOCK_SIZE 决定主数据块的大小。
会影响性能;
设置后不允许修改;
管理方法:采用 LRU (最近使用算法)
由独立的自缓冲区组成:
DB_CACHE_SIZE
CB_KEEP_CACHE_SIZE
DB_RECYCLE_CACHE_SIZE
可以通过 ALTER SYSTEM 命令动态增加或收缩:
ALTER SYSTEM SET DB_CACHE_SIZE =96M;
redo log buffer 重做日志缓冲区
记录了对数据块所作的所有修改。
作用:数据库的恢复
大小由 LOG_BUFFER 决定。
顺序单条写入,批量写出到文件。
java pool java 池
可选
java_pool_size 大小
large pool 大池
可选
减轻共享池的负担。
被用于: 1。在共享服务器中的会话的内存需求(UGA);
2。I/O 辅助;
3。备份恢复操作或 RMAN;
4。并行执行的信息缓冲区;
large_pool_size 大小
第 48 页,共 106 页
…………………………………………………………Page 49……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
4、进程结构
1。 用户进程:开始于数据库用户请求连接数据库
2。 服务进程:与 ORA 实例连接,开始于用户会话的建立。
分为: 专用服务进程、共享服务进程
性能专用更好。
利用资源方面共享更好(网站方面)。
3。 后台进程:当 ORA 实例启动时启动
后台进程包含:
1。PMON 进程监视进程
监视用户进程(客户端连接服务器的进程)到服务进程(在服务器端响应用户进程的进程)的
连接。
创建会话。
监视会话是否异常中断,如果中断:PMON 会回滚事务、解锁、释放资源。
2。SMON 系统监视进程
任务:会检测 SCN 号,相等:启动
不相等,实例恢复(1)前滚将日志应用
(2)打开数据库
(3)恢复数据库
恢复的起点是走后一次 CHECKPOINT 的位置。
每 3 秒合并空闲空间
释放临时段
临时段:暂时存放在排序时中没有空间的字段值。
在排序中产生的。
数据量大的时候,排序是分成若干块执行的,当字段值排好序之后就放到临时段中。
1。 DBWR 数据库写进程
/DBW0/DBWn n:0…9
将脏数据写回到数据文件中。
当发生以下情况执行:
当发生检查点事件的时候,checkpoint
第 49 页,共 106 页
…………………………………………………………Page 50……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
脏块达到极限值;
没有空间的缓冲空间
超时
RAC PING 请求
表空间离线
表空间只读
在表执行 DROP 或TRUNCATE
表空间上执行 BEGIN BACKUP
2。 LGWR 重作日志写进