数据库管理员手册.docx
《数据库管理员手册.docx》由会员分享,可在线阅读,更多相关《数据库管理员手册.docx(7页珍藏版)》请在冰豆网上搜索。
数据库管理员手册
《Oracle8i数据库管理员手册》读书笔记
第1章Oracle体系结构
数据库内部的结构(如表)。
.存储区内部的结构(包括共享存储区和进程)。
.数据库外部的结构。
语句触发器:
对每一个触发语句触发一次。
.行触发器:
对受语句影响的表中的每一个行触发一次。
ora中的SHAREDPOOL-SIZE参数来设置。
ora文件中的LOG_CHECKPOINT_INTERVAL参数来设置一个频繁出现的检查点。
一个或多个数据文件。
.一个或多个控制文件。
.两个或多个联机重做日志文件。
多用户/模式。
.一个或多个回滚段。
.一个或多个表空间。
.数据字典表。
.用户对象(表、索引、视图等)。
一个SGA(其中包括数据块缓存区、重做日志缓存区、SQL共享池)。
.SMON后台进程。
.PMON后台进程。
.DBWR后台进程。
.LGWR后台进程。
.CKPT后台进程。
.与PGA相关联的用户进程。
3之后的版本提供了OracleEnterpriseManager(OEM,Oracle企业管理器)—图形用户界面(GUI)工具。
客户机,用于提供应用程序。
.应用程序服务器,用于应用程序的业务逻辑处理。
.数据库服务器,用于数据的存储和检索。
以相同方式使用的段类型应当存储在一起。
.应当按照最通常的使用情况(事务大小、用户数量、事务数量等)来设计系统。
.应有用于例外情况的单独区域。
.应使表空间冲突最小化。
.应将数据字典分离开。
9节“段空间的重新分配方法”。
一个段由一些称作盘区(extent)—一些连续的Oracle块—的区段组成。
一旦现有的盘区不能再存储新数据,这个段就要获取另一个盘区。
这种扩展过程将一直持续下去,直到表空间中的数据文件已没有自由空间,或者已达到每个段的最大内部盘区数量为止。
如果一个段由多个盘区组成,则无法保证这些盘区的连续性。
dbf’resize200M;
dbf’
size50M
autoextendON
maxsize300M;
要改变一个现有数据文件的属性,可使用alterdatabase命令,如下所示:
alterdatabase
datafile‘/db05/oracle/CC11/data01.dbf’
autoextendON
maxize300M;
ora文件或config.ora文件中指定,通常是config.ora文件包含此信息。
若要移动控制文件,必须关闭实例,移动文件,编辑config.ora文件,然后再重新启动该实例。
bf)、控制文件(.ctl)、日志文件(.log)三种文件组成。
所有的表空间数据都是放在数据文件(.dbf)中的。
ora参数DB_FILE_MULTIBLOCK_READ_COUNT来设置并受操作系统的I/O缓冲区大小的限制。
例如,如果数据库的块大小是4KB,操作系统的I/O缓冲区大小是64KB,那么在全表扫描时每次最多可读取16块。
在这种情况下,把DB_FILE_MULTIBLOCK_READ_COUNT的值设置为大于16不会改变全表扫描的性能。
3起,可以规定段的最大盘区数量不受限制。
如果段的最大盘区数量设置为不受限制,则可以由数据库块的大小来决定盘区的最大数量。
对于一个2048字节的块,段最多可达121个盘区;对4096字节的块,盘区的最大数量为249。
ora文件中列出,并且SYSTEM回滚段不能被撤消;它总是同实例能获得的其他回滚段一起被获取。
SOURCE$表。
由于这个表是数据字典的一部分,所以过程代码就存储在SYSTEM表空间中。
因此,如果使用这些对象,就必须确保给SYSTEM表空间分配更多的空间—一般是它的两倍。
ora文件中的DBWR_IO_SLAVES参数来设置。
作为创建DBWR从进程的一种替代方案,可以创建多个DBWR进程。
所有数据文件。
.所有控制文件。
.所有联机重做日志。
.文件(可选择)。
ora文件,该文件列出机器中所有监听进程的名字和地址以及它们所支持的实例。
监听程序进程接收来自SQL*NetV2和Net8客户机的连接。
ora文件
SAVE_CONFIG给Net8中的新命令。
创建现有的文件的备份,然后用已由lisnrctl更改的参数来更新listener.ora文件
SERVICES给显示可用服务及其连接历史。
它也列出是否为远程DBA或自动注册访问而启动每个服务
SET给设置参数值。
这些选项是:
给connet_timeout:
以秒为单位,监听程序启动之后等待合法连接请求的时间
给current_listener:
改变其参数正被设置或显示的监听程序进程
给log_directory:
监听程序日志文件的目录
给log_file:
监听程序日志文件的名称
给log_status:
日志记录是ON还是OFF
给password:
监听程序口令
给save_config_on_stop:
在Net8中新引入。
当退出lsnrctl时把配置
变化保存到文件
给startup_waittime:
监听程序在响应lsnrctlstart命令之前的休眠秒数
给trc_directory:
监听程序跟踪文件的目录
给trc_file:
监听程序跟踪文件的名称
给trc_level:
跟踪级(ADMIN、USER、SUPPORT或OFF)。
参见lsnrctltrace
SHOW给显示当前参数设置。
这些选项与除password命令外的set选项一样
SPAWN给产生一个以listener.ora文件中的别名运行的程序
START给启动监听程序
STATUS给提供有关监听程序的状态信息,包括它的启动时间、参数文件名、日志文件和它支持的服务。
该命令可用来查询远程服务器上的监听程序的状态
STOP给停止监听程序
TRACE给把监听程序的跟踪级设置为下列4种选择之一:
给OFF
给USER(有限跟踪)
给ADMIN(高级跟踪)
给SUPPORT(Oracle支持)
VERSION给显示监听程序、TNS和协议适配器的版本信息
注意lsnrctl的新选项会随着Net8的每一个新版本而不断引入。
1)at文件并在该文件中发出命令:
netstartOracleTNSListener
一旦启动Net8监听程序,它就开始监听来自网络上客户机的连接请求。
一旦接收请求,Net8就负责进行客户机和数据库之间的连接。
//===============================================================2004-4-2019:
35
一旦连接被从监听程序传送到线程,就完成了监听程序的处理,并且在监听程序和该特定客户机的连接之间不再有进一步的交互。
如果由于某种原因必须关闭和重新启动监听程序,那么当前的客户机到数据库的连接不受这些动作的影响。
//===============================================================
第16章分布式数据库管理
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//===============================================================2004-4-216:
57
要查询远程数据库,必须创建一个数据库链接。
//===============================================================2004-4-217:
00
注意数据库链接不能用于从LONG数据类型的列中返回值。
//===============================================================2004-4-217:
03
实现远程数据操作,需要使用Two-PhaseCommit(2PC,两阶段提交)—这也是Oracle分布式数据库的功能本质。
2PC可以把几个节点间的事务组看作是一个单元;或者是所有事务都提交,或者是它们都回滚。
//===============================================================2004-4-217:
06
注意不能用快照复制使用LONG、LONGRAW、BFILE或抽象数据库类型的数据。
//===============================================================
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//===============================================================2004-4-233:
11
如果FQON中的任一部分—如用户名—被嵌入数据库链接中,那么对FQON中该部分的改变都需要撤消数据库链接并重新创建。
//===============================================================2004-4-233:
13
若要创建私有数据库链接,则必须登录到将要拥有该链接的数据库帐户。
//===============================================================2004-4-233:
18
注意如果使用触发器进行数据库复制,则主数据库中事务处理成功与否依赖于远程事务处理是否成功。
//===============================================================
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//===============================================================2004-4-249:
49
注意快照查询不能引用用户SYS所拥有的表或视图。
//===============================================================2004-4-249:
57
使用刷新组是解决快照引用完整性问题的第四个方案。
可以通过DBMS_REFRESH软件包来实现刷新组的所有操作。
注意属于刷新组的快照不必属于相同的模式,但它们都应当存储在同一个数据库中。
//===============================================================2004-4-2410:
00
如果刷新组要包含一个已属于其他刷新组的快照(例如,把一个旧刷新组中的快照转移到新创建的刷新组中),则必须将lax参数设置为TRUE。
一个快照一次只能属于一个刷新组。
//===============================================================2004-4-2410:
03
注意对快照组的刷新操作可能比类似的快照刷新操作要长。
快照组刷新还可能需要较大的回滚段空间,以便在刷新时维持数据的一致性。
//===============================================================2004-4-2410:
14
对于自动快照刷新,则必须通知Oracle创建SNP后台进程,由这些后台进程执行快照刷新。
SNP后台进程的数量由参数JOB_QUEUE_PROCESSES来确定。
如果不为这个参数设置一个值,则缺省为0且不会出现自动刷新。
除非有许多快照需要同时刷新,否则一般只需要一个这样的后台进程(SNP0)。
不过,可以设置多达36个SNP进程。
SNPn进程的“唤醒调用”之间的时间间隔(以秒为单位),由参数文件中的JOB_QUEUE_INTERVAL参数进行设定。
缺省时间间隔为60秒。
//===============================================================2004-4-2410:
23
可以通过DBA_SNAPSHOT_LOGS数据字典视图来查询快照日志的信息。
这个视图列出了快照日志的拥有者、主表、快照日志表和使用的触发器。
//===============================================================
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//===============================================================2004-4-2510:
37
注意除非启动前把实例的文件中的DISTRIBUTED_TRANSACTIONS参数设置为非零值,否则RECO后台进程就不会启动。
这个参数应设置成并发分布式事务的预期最大数。
//===============================================================
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//===============================================================2004-4-2914:
00
因此是刷新的频率而不是其大小决定哪个快照类型对用户有更好的性能。
//===============================================================