【收藏整理】Oracle数据库体系架构
原文见http://blog.csdn.net/kele1121/archive/2009/10/30/4742051.aspx与http://www.itpub.net/thread-1105403-1-1.html
所谓
Oracle
的体系架构,是指
Oracle
数据库管理系统的的组成部分和这些组成部分之间的相互关系,包括
内存结构、后台进程、物理与逻辑结构等。
Oracle
数据库的体系很复杂,复杂的原因在于它最大限度的节约
内存,从上图可以看出,它在整体上分实例和数据库文件两部分。
(
1
)首先区分一下数据库的实例(
Instance
)和数据库两个概念:
l
ORACLE
实例
=
进程
+
进程所使用的内存
(SGA)
,实例是一个临时性的东西,你也可以认为它代表了数据库某一时刻的状态!
l
数据库
=
重做文件
+
控制文件
+
数据文件
+
临时文件,数据库是永久的,是一个文件的集合。
ORACLE
实例和数据库之间的关系
1.
临时性
(instance)
和永久性
(
数据库
)
2.
实例(
instance
)可以在没有数据文件的情况下单独启动
startup nomount ,
通常没什么意义
3.
一个实例在其生存期内只能装载
(alter database mount)
和打开
(alter database open)
一个数据库
4.
一个数据库可被许多实例同时装载和打开
(
即
RAC)
,
RAC
环境中实例的作用能够得到充分的体现
!
下面对实例和数据库做详细的诠释:
在
Oracle
领域中有两个词很容易混淆,这就是
“
实例
”
(
instance
)和
“
数据库
”
(
database
)。作为
Oracle
术语,这两个词的定义如下:
数据库
(
database
):物理操作系统文件或
磁盘
(
disk
)的集合。使用
Oracle 10g
的自动存储管理(
Automatic Storage Management
,
ASM
)或
RAW
分区时,数据库可能不作为操作系统中单独的文件,但定义仍然不变。
实例
(
instance
):一组
Oracle
后台进程
/
线程以及一个共享内存区,这些内存由同一个计算机上运行的线程
/
进程所共享。这里可以维护易失的、非持久性内容(有些可以刷新输出到磁盘)。就算没有磁盘存储,数据库实例也能存在。也许实例不能算是世界上
相关文档:
在上篇文章里“走近Oracle数据字典--数据字典表”,我们谈到了数据字典对于我们作为DBA对数据库维护的重要性。数据库的对象信息,比如表,用户,存储过程,函数,视图,索引等等,这些存在在数据库里的对象的信息,都是在数据字典表里进行维护的,我们可以借用一些比较好的Oracle开发工具比如PLSQL dev或者 ......
自从学ORACLE以来就从来没有发生过什么故障,比较幸运。其实也不能算幸运,因为这样就少了锻炼的机会了,呵呵,怎么觉得自己有点求虐的倾向……
即便是在学习backup and recovery basics的时候,也只是做做备份的实验,没做过恢复,因为身边没有人指导,也没其他同学在学ORACLE,所以怕一出问题肯定很麻烦,解 ......
前段时间,新公司的面试官问了一个问题,临时表的作用,以前我们用缓存中间数据时候,都是自己建一个临时表。其实oracle本身在这方面就已经考虑很全了,除非有些高级应用,我再考虑自己创建临时表。由于本人对临时表的了解不是很多,于是回来搜集下这方面的资料,弥补下这块的不足。
1、前言
......
1. round(Num,n) : 四舍五入数字Num,保留n位小数,不写N默认不要小数,四舍五入到整数个位
select ROUND(21.237,2) from dual;
结果: 21.24
2. trunc(Num,n) : 截取数字Num,保留n位小数,不写N默认是0,即不要小数
select TRUNC(21.237,2) from dual;
结果:21.2 ......
DML Error Logging in Oracle 10g
主要在于使用DBMS_ERRLOG.create_error_log 这个包来跟踪dml错误信息
SQL> CREATE TABLE source (
2 id NUMBER(10) NOT NULL,
3 code VARCHAR2(10),
4 description VARCHAR2(50),
5 CONSTRAINT source_pk PRIMARY KEY (id)
6 );
表已创建。
SQL> DECLARE
2 TYPE t_tab IS ......