零度雨 发表于 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

谢谢分享,顶一个。
页: 3 4 5 6 7 8 9 10 11 12 [13] 14 15 16 17 18 19
查看完整版本: Oracle 函数介绍