【收藏整理】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 10G的过程中遇到一个问题,关闭数据库(shutdown immediate)后,再重启数据库(startup),启动失败,12514的错误,如果通过sqlplus /nolog进入数据库以后,用conn连接,一样不行。重新打开一个cmd窗口,输入:
sqlplus
用户名:sys@sim as sysdba,密码输入完成后,仍然出现如下错误:
ORA ......
1、序列定义
ORACLE:
CREATE SEQUENCE <sequence_name>
INCREMENT BY <integer>
&n ......
CREATE OR REPLACE PROCEDURE sendemailtest
(mailmsg IN Varchar2)
IS
--using mail server to send email.
mailconn UTL_SMTP.connection;
mailhost & ......
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 ......
今天在一个帖子里看到shiyiwan的回帖中提及到了两个自己以前没见过的概念,save exception和dml error logging。上网搜了搜相关内容,看了看大概明白意思,不过在实际运用中还是没怎么用过。保存下来,以后用的到的话方便查阅。
这一篇是关于save exception的,另外一篇dml error logging的参见如下链接
http://blog.csdn ......