日期:2014-05-16  浏览次数:20423 次

ORALCE DBA学习1
1 oracle的服务架构
    服务器启动监听进程,用户进程发出请求,到达该监听进程,监听进程收到请求后,派生出一个
服务进程出来(可以重新建一个,也可以从服务器进程池中拿出来),监听进程把用户请求转发给
服务进程后,继续去监听其他请求
    ORACLE 有NET 8协议,实现了OSI中的上三层,负责客户和服务器之间建立完整的SQL会话,解析SQL语句,执行

SQL等

2 服务端的listner.ora,有专有模式和共享模式两种,区别为:
    专有模式:为每个用户连接启动一个单独的进程,而共享模式为多个用户连接共享一个进程,也就是多个用户共

享一个会话通道

3 监听器进程的静态注册和动态注册
   静态注册,配置监听器时,明确告诉监听器某个数据库的信息,告诉需要连接哪个SID的信息
    动态注册:由数据库动态向监听器注册,由PMON进程完成的,也可以用
      alter system register,命令马上强制pmon立即注册
    动态注册的话,在lsnrctl status中,可以看到静态的是unknown状态,动态的能准确监视其数据库状态

4 lsnrctl命令
   lsnrctl status,lsnrctl start,lsnrctl stop
5 在10g中,可以使用easy connect naming method,客户端不再需要配置
tnsname.ora,格式为
   sqlplus xxx/xxxx@//host/sid

6 数据库物理结构:分为数据文件,控制文件,日志文件,最重要三种

7 联机日志组: LGWR进程会不断的向redo log中写入日志内容,当一组日志文件被写满时,会触发log switch,然

后lgwr继续向另外一组日志写入
会覆盖掉以前的;如果要保留全部日志,必须用归档日志。

8 归档日志,当一组联机日志写满后,在触发日志切换的同时,还触发arcn进程,将写满的日志copy到另外一个位置


即使在rac环境中,每个日志线程的要求也是一样的
9 trace文件 分别是内核跟踪文件,后台进程跟踪文件,用户追踪文件。

10 OMF:
   实际上就是设置了一些预先的参数位置,让比如创建相关操作时,不用进行指定文件路径等;
11 数据块:一般OLTP设置为8KB比较好,OLAP可以适当设置大点。
         数据块分为数据块头(block header):包括数据块地址,数据块类型(索引块,undo),事务表(ITL)
     row directory:为数据块内部的一个指针表,找某条记录时,不需要再遍历整个
数据块
    free space:空闲的空间 used space:数据记录占用的空间
   分区:为了更好地管理数据块,分区数量可多可少,是连续的空间,但会产生空间碎片
    段:每个表或索引都对应一个段,段不要求连续
  表空间:分为永久表空间,临时表空间和undo表空间。永久表空间为system,sysaux,user表空间;sysaux为10G以

后辅助功能而设置的表空间
   临时表空间组:一个临时表空间组至少包含一个临时表空间(10g开始提供)
    select * from dba_tablespace_groups;
    移动临时表空间到新的临时表空间组:
     alter tablespace temp tablespace group tmpgroup1;
    undo表空间:一个数据库中可存在多个undo表空间,但任一时间只有一个UNDO
表空间被激活

12 段空间管理
    在手动创建segments时,手动空间管理方式中,oracle通过一个freelist链表来记录
数据块的使用,但容易引起DML时的竞争
   因此9I开始,使用自动空间管理方式,ASSM,不再使用freelist,而是通过位图方式记录每个数据块的使用情况,

用来记录数据块的位图的数据块叫bitmapped block(BMB),
分散在段中,减少了竞争。
   oracle对于extent的管理分字典管理和本地管理,本地管理使用位图,比较快和好

13  desc dba_objects
     两者可以这样区别:object_id可以看做是对象的一个逻辑id,在对象创建时分配,一经分配即不再改变;而

data_object_id为一个物理id,在对象物理存储变化时可能发生改变。
    
14  后台进程
    1) DBWN:负责把sga被修改的数据同步到磁盘中去;写的时机包括:检查点,每3秒唤醒一次,数据库最多有20

个dbwn进程
   2)LGWR:将log buffer中的日志内容写到联机日志文件中去。当DBWR试图把一个脏数据块写到磁盘前,先确定其

REDO记录是否写到联机日志文件中,如果没有,则通知LGWR进程去写入。
  3)PMON:监视用户进程,负责发现用户进程异常后清理资源等工作
  4)SMON:负责实例的恢复工作
  5)ARCN:归档日志进程
  6)MMON,MMNL,MMAN:10G中的AWR进程收集
  7)CJQO:负责定时任务
  8)RVWR:10G中负责flashback功能
15 SGA:共享进程,适用OLTP,PGA对与OLAP比较重要
    1)data buffer  cache,分为keep buffer pool,recycle buffer ppol,
default buffer ppol,其中keep buffer pool的初始化参数为db_keep_cache size,
该区域内的数据会尽可能保留在内存中
       recycle buffer pool:一用完就会被移走,比如体积大的日志表等,可以考虑用这个
       default_buffer_pool:db_cache_size 缺省的cache
     2)shardpool:存放的为代码,分为library cache和dictionary cache两个
区域,library中存放代码部分,dicitionary存放数据字典部分,加快解析用。
    3)redo log  buffer:存放redo记录
    4)大对象池,JAVA池
16 PGA:完成排序,HASH,连接等
17 归档模式和非归档模式
    1) 切换为归档模式:alter database archivelog;
      定义归档位置: alter system set log_archive_dest="location=d:\....."
scope=both;

    2) RMAN介绍:<