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介绍:<