1z0_031摘录

来源:互联网 发布:永久免费一级域名注册 编辑:程序博客网 时间:2024/04/29 00:22

oracle连接

用户进程(如:打开sql_plus)-->提供相应的验证信息(如:lwb/123456@database01)-->在服务器端会创建一相应的 服务进程(拥有PGA程序全局区,不被共享,是某一服务进程独享的内存结构)

任何对数据库的修改都是通过 Istance实例去修改database的物存在。(Istance与database是1对N的关系)

Istance --包括SGA系统全局区(被系统低下所有用户共享的,内存结构,eg. shared pool, large pool, java pool, database buffer cache, redo log buffer cache等)和后台进程(eg.进程监控,系统监控,DBWR,checkpoint,归档进程等)

database --包括三个必需的文件:data files, control files, redo log files。以及一些parameter file, password file, arichived log files等。

打开database的步骤:
1、conn sys/admin as sysdba
2、startup nomount       --启动一个实例
3、alter database mount  --读取control file
4、alter database open   --对data files和control file一致性的验证。

查看相关信息:
1、select * from v$bgprocess;    --查看所有的后台进程,当paddr不为00时,即分配到有效地址时,证明该进程有启动。
2、select * from v$controlfile;  --查看控制文件
3、select * from v$datafile;     --查看数据文件
4、select * from v$logfil;       --查看日志文件
5、show sga;                     --查看系统全局区
6、show parameter share;         --查看特定的参数
7、show parameter db_cache;
8、show parameter log;

alter system set db_cache_size=20m;  --将db_cache_size值置为20兆大。

shared pool中的结构
1、library cache     --保存近期的sql pl/sql语句以及其执行计划,编译sql command的结果等。要求足够大,99%命中率!
2、dictionary cache  --row cache,包括tables, indexes, columns, user privileges等信息。在parse阶段用到。用(LRU,least recently used最近最少使用算法)

可以通过定义share pool size来定义library cache和dictionary cache的总容量,但这两个cache不能分别单独定义。

oracel 9i 新增的一些参数。
1、oracle 9i以前只支持同一大小的cache块,现已支持不同大小的cache块。db_block_size是以前使用的参数,而db_*k_buffer_cache是现在新增的,一般情况还是会使用db_block_size定义的默认大小。
db_block_size
db_2k_buffter_cache、db_4k_buffter_cache、db_8k_buffter_cache、db_16k_buffter_cache、db_32k_buffter_cache。

2、为了性能优化,除db_cache_size外,还会引入db_keep_cache_size, db_recycle_cache_size。oracle 9i引入一个新的参数,db_cache_advice 让oracle依据系统的特征,给出advice。  alter system set db_cache_advice=on;

oracle 进程介绍
1 DBWn 把database buffer cache里面的脏数据写入database file里.
  这个进程做写动作的条件是:
    1/checkpoint的时候
    2/Dirty buffers threshold reached(脏数据达到一个阈值的时候)
    3/No free buffer
    4/TimeOut(3秒钟)
    5/TableSpace Offline(做该操作时会触发)
    6/TalbeSpace read only
    7/Table DROP or TRUNCATE
    8/Table BEGIN BACKUP(进入备份模式)

2 LGWR 日志写,把Redo Buffer里的内容写到Redo log files里
    1/At commit
    2/When one-third full
    3/When there's 1MB of redo
    4/Every 3 seconds
    5/before DBWn writes(写日志优先!)

3 SMON System Monitor系统监控
    会完成系统的recovery, 当启动时发现需要REDO的,回滚的,都会自动完成.
    会每三秒对系统的自由空间作一次整理
    负责对临时段空间的清空(系统启动的过程完成的)

4 PMON Process Monitor进程监控进程
    1/Rolling back the transaction
    2/Reasling locks
    3/Reasling other resources
    4/Restart dead dispatchers(重启调度器--在共享服务器里面用)

5 CKPT CheckPoint--用来实现同步(database所有的datafile必须周期性的同步,就是靠CKPT进程来实现)
    1/Signalling DBWn at checkpoints(在同步之前会强制写)
    2/Updating datafile headers with chectpoint information(更新记录同步所需的信息)
    3/Updating controlfile headers with checkpoint information

6 ARCn Archiver归档进程--自动备份在线日志(Redo log files-->Archived redo log files)

oracle 逻辑结构
tablespace, segments, extents, blocks
表空间  是逻辑区间,如可以放表数据,索引,临时数据等等
段空间
分区    空间分配的一个单位(为了减少分配的频率)
块      使用单位

原创粉丝点击