oracle体系结构

本文介绍了Oracle数据库的基本结构,包括物理结构(如数据文件、日志文件等)、内存结构(如共享池、数据缓冲区等),并解释了实例、连接、事务等概念。此外,还提供了LOB对象使用示例和Oracle 9i的新特性介绍。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LOB对象使用

LOB类型:
BLOB、CLOB、NCLOB、BFILE
LOB使用举例
1)SQL>CREATE TABLE Employee(
name VARCHAR2(50),
birth_date DATE,
id_code NUMBER(7),
resume CLOB,
photo BLOB)
LOB (resume,photo)
STORE AS (TABLESPACE lob_data
STORAGE (INITIAL 1m
NEXT 1m
PCTINCREASE 50 )
CHUNK 2048 //一次读取的数据量
NOCACHE
);


2)

 Oracle9i增加了新的选项Oracle9i interMedia,可以将 image, text, audio, video, spatial 数据存储于Oracle9i数据库。interMedia Clipboard 及Web Agent 的结合可以构成Web驱动的Web-enable interMedia。基于HTML的Web开发工具WebDB可以使用数据库中的数据开发Web页面。
 Oracle9i集成Java虚拟机(Java Virtual Machine)


Oracl 系统体系结构

(1)物理结构
datafiles redo log files control files parameter file

数据文件 日志文件 控制文件 参数文件
*.dbf *log *ctl *.ora

(2)内存结构(SGA )
shared pool(共享池), database buffer cache(数据缓冲区), redo log buffer(重做日志缓冲区)
SGA=share_pool_size+db_block_size*db_block_buffers +log_buffers

(3)instance=SGA+background process
实例 = 内存分配 + 一组后台进程
如果把Oracle比作一部汽车,instance相当于汽车的发动机一样,启动oracle前提应先启动instance.
(4)session(连接)
Oracle是多用户、多任务、可分布式管理的数据库,同
时可有许 多个用户对数据库操作。
(5)transaction(一组修改动作的集合) 交易事务
Eg:
1、
insert DDL (数据定义语句)
delete 例如:create,alter,drop,commit 等
commit 每两个DDL语句间是一个transaction
2、
update DML (数据控制语句)
rollback 例如:Insert,Delete,Update

(6)后台进程 PMON,LCLN,RECO,SMON,DBWR,LGWR,CKPT,ARCH
PMON 做程序的清洁工作,处理一些不正常退出的事件.
SMON 做系统的清洁工作,执行系统出错后自动恢复工作.
LCKN Oracle系统表级或行级加锁的进程.
RECO 恢复进程.
DBWR 数据写进程 
LGWR 日志文件写的进程
CKPT 检测点
ARCH 归档方式备份进程

7)分析一个SQL语句是怎样在Orcle内部工作的。
A、用户发出SQL请求,打开游标;
B、把SQL语句语法分析,执行计划,数据字典等信息存入内存中共享池内;
C、从数据文件中把相关数据块读入数据缓冲区;
D、做相应操作,若做修改,先加上行级锁,经确认后,把改过前后记录内容存入重做日志缓冲区内;
E、返回结果给用户,关闭游标。



如果不小心物理上删除了一Oracle的数据文件

SVRMGR>connect internal
SVRMGR>startup mount
SVRMGR>alter database datafile ‘/directory/abc.dbf’
offline;
SVRMGR>alter database open;
SVRMGR>drop tablespace abc;

Oracle数据的存储结构
1、Oracle数据存储单位
a、block 数据块: 2k 最小的I-O单位,伴随database产生而产生,不可变
b、extent 一组连续的数据块:是用户所能分配存储的最小单位
c、segment 段:有共同结构的一个或几个区域( extent)
d、tablespace 表空间:一组物理数据的逻辑组合,(象逻辑间数据仓库)
e、 file 文件:属于某个表空间的物理文件
f、database 数据库:一组表空间所构成的逻辑的可共享的数据。

10)db trigger 数据触发器,处理updata,delete,insert中可能出现的问题

(2)物理备份 操作系统下的备份
归档方式 不关闭database状态 恢复到failure的前一刻
不归档方式 关闭database后物理文件进行备份,可恢复到上次备份点

Grant权限
connect (8) 连上Oracle,做最基本操作
resource(5) 具有程序开发最基本的权限
dba (77)数据库管理员所有权限
exp-full-database 可把数据库整个备份输出的权限
imp-full-datsabase 可把数据库整个备份恢复输入的权限

3)alter user;
(4)drop user [cascade];
(5)revoke role from user;


确定数据库归档模式
Sql>select dbid,name , log_mode from v$database;
Sql>Sql*plus /nolog
Sql>Connect as/sysdba
Sql>Archive log list


(低效)
select ... from table1 t1 where t1.id > 10 and pno in (select no from table2 where name like 'www%');
(高效)
select ... from table1 t1 where t1.id > 10 and exists (select 1 from table2 t2 where t1.pno = t2.no and name like 'www%');


如何查看oracle sql执行计划, 分析sql语句是否高效。
方法一

第一步:登入sql/plus 执行命令(无先后顺序)

set time on; (说明:打开时间显示)
set autotrace on; (说明:打开自动分析统计,并显示SQL语句的运行结果)
set autotrace traceonly; (说明:打开自动分析统计,不显示SQL语句的运行结果)

二者选一个执行

第二步: 输入你要查看的sql 执行

第三步:查看结果

方法二

先执行 EXPLAIN PLAN FOR select * from G_GAMBLING gamb where gamb.active=1

再 select * from table(DBMS_XPLAN.DISPLAY)便可以看到oracle的执行计划了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值