《DBA的思想天空:感悟Oracle数据库本质》第一章 要点摘录[原创]_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2043 | 回复: 0   主题: 《DBA的思想天空:感悟Oracle数据库本质》第一章 要点摘录[原创]        下一篇 
lei.wang
注册用户
等级:上尉
经验:767
发帖:21
精华:0
注册:1970-1-1
状态:离线
发送短消息息给lei.wang 加好友    发送短消息息给lei.wang 发消息
发表于: IP:您无权察看 2015-3-13 16:19:41 | [全部帖] [楼主帖] 楼主

本文为《DBA的思想天空:感悟Oracle数据库本质》学习笔记 第一章 要点摘录

1.3章节

  • 在本机上不经过 SQL*Net 连接数据库,前台进程和用户进程之间通过 IPC 机制进行通信,通信协议就是著名的 Bequeath协议,简称 BEQ协议。而如果通过 SQL*Net连接数据库,那么就需要使用网络协议
  • 使用 SQL*Net协议的前台进程和用户进程之间的通信采用 Socket通信。实际上,在服务器上,我们也可以使用 SQL*Net连接数据库,很少会去这样做,因为 BEQ协议在效率上高于 Socket通信


  • 在一个存在防火墙的环境中,往往是由于在防火墙环境下的 Socket重定向引起的TNS-12535 之类的错误。原因在于客户端连接的是一个 NAT翻译后的 IP地址,而重定向的时候,监听器要求客户端连接到真实的 IP 地址上,这样就会出现连接超时导致的失败。这种情况一般的解决方案是使用 connect manager(CMAN)
  • 实例数据库是 Oracle高可用架构和高可扩展性架构的核心技术,多个实例同时打开数据库进行读写,可以避免某个实例故障导致的系统不可用,同时多实例实现负载分担,也可以减轻某个实例的工作负载,从而提高整体吞吐能力
  • RAC更严格地说是 RAC RDBMS,RAC 只是 Oracle RDBMS 的一个选件,安装并启用了 RAC 功能的数据库我们称之为 RACRDBMS,这是一个多实例的关系型数据库系统。而 CRS只是一个CLUSTER的组件,它提供了RAC RDBMS 运行所必需的底层集群环境。CRS 本身也不提供共享存储系统,它只提供了CLUSTER的节点管理、健康性检查以及一系列 CLUSTER应用(比如 VIP、ONS等应用) ,真正在 RAC中提供共享存储的是 ASM、HACMP或者 CFS等技术。 
  • 多实例的数据库中,每个实例拥有一组独立的在线日志记录,每个实例独立生成在线日志信息,并且拥有独立的 LGWR 进程用于写入在线日志文件。


  • 要从数据库中删除一个实例的时候,我们必须关闭这个 THREAD,否则无论这个实例是否被使用,数据库恢复的时候,仍然会需要使用这个 THREAD 的日志。
  • 在多实例数据库环境中,临时表空间是可以多个实例共享的,不过能够共享的仅仅是临时表空间,临时段是不能共享的。在一个临时表空间上,每个实例必须拥有自己独立的临时段。当临时表空间满的时候,如果其他实例的临时段有空闲空间,那么这个实例可以从其他实例的临时段中偷取一个 EXTENT,用于扩展自己的临时段。 


1.4章节

  • 如果应用和 Oracle在同一台机器上运行,而不通过网络,那么用户进程和服务器进程之间可以通过 BEQ协议通信,从而降低系统开销。然而,当应用和 Oracle运行在不同的机器上时,用户进程使用 TCP/IP协议,通过服务器进程访问 Oracle,可执行下列任务。 




 对应用所发出的 SQL语句进行语法分析和执行。  

 从磁盘(数据文件)中读入必要的数据块到 SGA的共享数据库缓冲区(该块不在缓冲区时)。  

 将结果返回给应用程序处理。



  • DBWR进程执行将数据块缓冲区写入数据文件的工作,,DBWR 的主要任务是将这些标为“DIRTY”的缓冲区写入磁盘,使缓冲区保持“CLEAN”
  • Oracle采用 LRU算法(最近最少使用算法)保持内存中的数据块是最近使用的,使 I/O最小。




 当服务器进程将一缓冲区移入“DIRTY”链,此“DIRTY”链达到临界长度时,该服务器进程将通知DBWR进行写入操作

 服务器进程在 LRU 表中查找可用的数据块缓冲时,如果在查找了参数_DB_BLOCK_ MAX_SCAN_CNT 所定义数量的缓冲区后,仍没有查到未用的缓冲区,那么它将会停止查找,并通知 DBWR进行数据写入。DBWR每次休眠时都会设置定时器,如果出现超时(每次 3秒), DBWR将通知自身。当出现检查点时, LGWR将通知 DBWR进行写入操作。

 如果 DBWR在 3秒内未活动,则出现超时。在这种情况下,DBWR对 LRU表查找指定数目的缓冲区,将所找到的任何弄脏的缓冲区写入磁盘。

 在出现检查点时,LGWR指定一修改缓冲区表必须写入到磁盘,而 DBWR负责将指定的缓冲区写入磁盘。 



  • LGWR 进程将日志缓冲区写入磁盘上的日志文件


  • 触发 LGWR写操作的条件如下。 




 当用户进程提交一事务时写入一个提交记录。 

 每 3秒将日志缓冲区输出。 

 当日志缓冲区的已满 1/3时,将日志缓冲区输出。 

 当 DBWR将修改缓冲区写入磁盘时,则将日志缓冲区输出。 

 当 log buffer达到 1MB时。 



  • LGWR进程同步地写入到活动的镜象在线日志文件组。如果组中一个文件被删除或不可用,LGWR可继续地写入该组的其他文件,而数据库实例可以继续运行。
  • 当需要更多的日志缓冲区时,LWGR 会在一个事务提交前就将日志项写出,而这些日志项仅当后续事务提交后才永久化


  • CKPT 进程在检查点出现时,对全部数据文件的文件头进行修改,并在控制文件中记录该检查点。


  • SMON进程负责在实例启动时执行实例恢复,并清理不再使用的临时段。在具有并行服务器选项的环境下,SMON对有故障的 CPU或实例进行实例恢复。SMON进程有规律地被唤醒,并检查是否有工作要完成,如有需要,就做相应的处理,否则继续休眠
  • PMON进程在用户进程出现故障时执行进程恢复,负责清理存储区和释放该进程所使用的资。PMON还周期性地检查调度进程(DISPATCHER)和服务器进程的状态,如果发现这些后台进程死掉,就需要重新启动。PMON有规律地被呼醒,检查是否有需要完成的工作。  


  • ARCH 进程将已填满的在线日志文件复制到指定存储设备。当数据库的日志模式为ARCHIVELOG模式并可自动归档时,ARCH进程才存在。 


  • LCKn 进程在具有并行服务器选件的环境下使用。


  • Dnnn 进程允许用户进程共享有限的服务器进程(SERVER PROCESS)。没有调度进程时,每个用户进程需要一个专用服务进程(DEDICATED SERVER PROCESS)



赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论