Oracle学习笔记
什么是数据库?
数据库就是处理数据文件的一批程序。
==============================================
Oracle数据库中存放有两种类型的信息:
. 用户数据是特定应用程序的数据(例如客户发货单)。
. 系统数据是数据库系统管理自身所需的数据(例如与特定数据库有关的所有数据文件的名称及存放地点)。
=============================================
数据库就是柜子,柜中的抽屉是表空间,抽屉中的文件夹是数据文件,文件夹中的纸是表,写在纸上的信息就是数据。
=============================================
1) 表空间是一个或多个数据文件的集合。
2) 下列表空间在大多数数据库中是必备的或者是常见的:
. 系统表空间中保存用于管理O r a c l e系统自身及其中存放的数据所需的信息。这些表空间的名称是固定的。
. 临时表空间是O r a c l e中临时使用的区域。当特定事件发生时, O r a c l e需要用这些磁盘空间管理有关的事务。
. 工具表空间保存那些O r a c l e数据库上运行的工具软件所需的对象。
. 用户表空间中存放用户专用的数据库对象。
. 回滚表空间中存放数据库对象的回滚段。
. 数据和索引表空间中存放用户的应用数据。
. 索引是数据库对象的一个特殊类型。O r a c l e使用索引进行快速数据检索。
3) 全表扫描(Full Table Scan)指O r a c l e访问特定对象的每行数据。
4) 恢复( U n d o )信息保存在一个称作回滚段(Rollback Segment)的专用数据库对象中,在出现失败或临时中止事务时,可以用回滚段使数据库对象退回到旧值。
=====================================================
重做日志(Redo Log)也称作事务日志( Transaction Log),O r a c l e在这些特殊的操作系统文件中记录针对数据库进行的修改操作或事务。对数据库所做的所有修改工作都在内存中进行.
=====================================================
1) Oracle数据库由两种类型的文件组成:
. 结合在一起构成表空间的数据文件。
. 结合在一起构成重做日志系列的数据文件。
2) 一个数据库必须至少具有两个重做日志。
3) 重做日志中含有数据库中发生的所有事务条目。
4) 重做日志常常也称为事务日志。
5) 为了防止数据丢失,必须使用事务日志,事务日志的功能为:出现意外故障时恢复数据。
6) Oracle数据库可以在下列两种模式下运行:
. ARCHIVELOG模式下将保存所有的事务日志。
. NOARCHIVELOG模式下不保存旧事务日志。
===================================================
脏数据块(Dirty Data Block) 是计算机内存中的一块内存区,其中存有读自数据库并已做修改的数据。
脏数据块:存放在内存中脏数据块中的原始数据已被修改,而修改后的数据还未写入数据库中。
热数据块(Hot Data Block) 存放着那些要频繁修改的数据。
L R U (Least Recently Used,最近最少使用)
快照(Snapshot) 是一个存放在一个或多个表中的数据的只读拷贝,从一个站点(主站点)存入另一个站点(远程站点)。
回滚( R o l l b a c k )的功能是将用户改变的数据恢复到原先所处的状态。
恢复信息(Undo Information) 由于种种原因,当数据库需要恢复或回滚用户的操作时,将产生恢复信息。
===================================================
控制文件是一个非常小的文件,其中存放一些与O r a c l e数据库所有文件相关的关键信息。
O r a c l e系统通过控制文件保持数据库的完整性( I n t e g r i t y )以及决定恢复数据时使用哪些重做日志。
===================================================
. 每个数据库至少有两个控制文件。我们极力建议用户最少生成两个控制文件,并分别放在不同的磁盘上。
. 数据库结构的所有修改都被记录在控制文件中。
==================================================
有两种类型的程序或进程。
. 一种是用户(或称作客户机)进程,如S Q L * P l u s、Oracle Forms、Oracle Reports及其他任何用于访问数据库的工具都是用户进程。
. 服务器进程接收来自客户进程的请求,然后通过与数据库的交互满足这些要求。
=================================================
O r a c l e提供了许多支持进程帮助用户进程与数据库服务器通信。这些支持进程用于:
. 在出现校验点时将数据写回数据文件中( D B W R )。
. 在出现校验点时确保将脏数据块写回磁盘( C K P T )。
. 读写重做日志( L G W R )。
. 在启动系统时运行以完成数据库恢复的功能( S M O N )。
. 用户在会话期间异常终止后,可用来释放用户占用的资源( P M O N )。
. 在A R C H I V E L O G模式下,出现重做日志交换时归档重做日志的拷贝( A R C H )。
. 在并行服务器配置中管理锁( L C K )。
. 当使用O r a c l e分布式选件时恢复可疑的事务( R E C O )。
. 支持Oracle 的快照技术( S N P )。
. 支持O r a c l e的高级队列( Q M N )。
================================================
关于内存结构总结如下:
1) 内存区有两种:
. 系统全局区( S G A )。
. 程序全局区( P G A )。
2) SGA由所有的服务器和客户机进程共享。
3) SGA主要由四部分组成:
. 数据高速缓冲区(Data Buffer Cache)。
. 字典高速缓冲区(Rows Cache)中存放O r a c l e管理自身所需信息。
. 重做日志缓冲区为事务高速缓冲区。
. 共享S Q L池为程序高速缓冲区。
4) 用户进程需要查看的信息必须首先放到S G A中。
5) SGA是一个大通信器,所有进程都可以通过它共享信息。
6) PGA不能在进程间共享。
7) PGA中存放数据和进程控制信息。
================================================