零度雨
发表于 2017-8-23 22:54:54
好东西学习学习
X_T1234
发表于 2017-8-23 22:59:45
谢谢分享,顶一个
pissa
发表于 2017-8-31 10:36:06
谢谢分享
西门
发表于 2017-8-31 17:04:35
/u01/app/oracle/product/11.2.0/dbhome_1/dbs/
飞舞雪儿
发表于 2017-8-31 17:17:00
不错,很好的分享,谢谢楼主
PQ529339062
发表于 2017-9-1 16:41:16
应该还可以吧,进去看了再说
yiyopp
发表于 2017-10-5 14:36:24
oracle必须的五大进程:
1、server process 服务器进程
【以客户端执行一条sql为例说明】:
1、sql语句通过网络到达实例、server process 接收sql语句
2、server process 去shard pool找sql和执行计划 若没有则硬解析解析sql
3、server process根据执行计划去buffer cache(缓存dbf的数据)找相关的数据(逻辑读),
如没有找到则到dbf文件中取出数据(物理读)放到buffer chache 再返给用户。
4、若需要修改数据,server process 读出数据到buffer cache中,在内存中修改数据,修改完返给用户。
server process始终为用户服务,故:server process处理的快慢直接影响用户体验的快慢。
PGA就是为了server process服务
PGA会为每一个新产生的server process分配一块内存,这块内存就是这个server process的工作空间
server process什么时候会大量的使用到pga分配的内存空间?
1)排序
sort order by
group by
union
2)hash join
server process进行排序或者hash的时候,如果所需要的pga内存不足
server process就会把一部分数据写入到temp表空间,产生物理io
性能会很差(大部分结果是性能非常差)
查看进程
select * from v$process;
查看临时文件使用情况,以确认PGA是否出现过问题
select * from v$tempstat;(可查看临时表物理IO情况)
select * from v$tempfile;
select * from v$sql_workarea_active;
根据sql_id查看SQL语句
select t.SQL_FULLTEXT from v$sql t where sql_id='23p6x4thkyfsz'
2、PMONServr process进程监视器
1.清理与实例非法断开的server procese残留的资源,非正常终止的用户进程产生的垃圾资源
2.负责重启以外死掉的调度器(网络监听中使用的)
3.将实例的信息注册到监听程序
3、SMON 系统监视进程
空间管理:定期合并空间(老版本才有) 定期回收临时段
实例恢复:(如掉电导致实例意外终止)
恢复的方法: 先前滚==>后回滚==>释放资源
前滚 将数据库中的SQL(包括提交的和未提交的)全部重新做一遍
回滚 将没提交的SQL句从数据库中将老的镜像取出覆盖
释放资源 将前滚和回滚中使用到的资源释放
IO带宽是否被占满
4、LGWR 只有一个进程,不会向数据写进程那么多,因为写要求有顺序 将redo log buffer里的条目写到redo文件
LGWR触发写的条件
1.commit
2.redo log buffer 1/3满
3.redo log buffer 日志缓冲区达到1M
4.写日志优先(任何一次数据写之前)
当更新数据量很多时 日志量很少(就是一update) 数据量却很多 所以采用写日志优先
5.3秒写一次
查看redo Log buffer大小的语句
show parameter log_buffer
数据文件重要性
1、日志的重要性高于一切
特别是redo log
redo log 一定要实现复用
select * from v$log;
DBWn n指的是0-9 a-j 多个写进程的区分 将脏块写盘
触发写的条件
1.产生检查点
2.脏数据缓冲区达到阀值 默认10%
3.扫描整个db buffer没有空闲db buffer中包含脏的和未脏的 优先写脏数据列表 再写未改的
4.timeout超时 如果DBWR没事做 会被每三秒唤醒一次去巡检 写不写不一定
5.集群环境的ping请求触发多实例的数据写请求
6.表级别的truncate或drop也会触发数据写
7.修改表空间的read only
8.做表空间的offline(离线)
9.热备份 begin backup命令
CKPT 把新的检查点写入指定位置
1.调度数据写dbwN
2.将新检查点写数据文件头
3.将新检查点写控制文件中的数据文件头的记录
z1204880901
发表于 2017-10-9 16:37:07
学习一下
我心飞翔/zhq
发表于 2017-10-10 09:48:44
感谢分享,学习了!
feifei110
发表于 2017-10-25 23:12:01
谢谢分享,顶一个。