风哥教程

培训 . 交流 . 分享
Make progress together!

Oracle归档模式与非归档模式

[复制链接]
内容发布:dxzmj3| 发布时间:2019-9-13 17:06:50
oracle数据库中,主要有两种日志操作模式:归档模式(archivelog mode)及非归档模式(noarchivelog mode)。在默认情况下oracle数据库采用的是非归档模式。作为一个合格的DBA,应当深入了解这两种日志操作模式的特点,并且保证数据库运行在合适的日志操作模式下。在讲重做日志归档模式(archivelog mode)及非归档模式(noarchivelog mode)之前我们先简单的了解一下oracle的日志切换步骤。oracle数据库的重做日志是重复写的,一般来说oracle数据库拥有多个重做日志组(redo log group),每个重做日志组又包含多个成员(详细介绍请查考oracle官方文档),我们大部分的数据更改操作都会写入在线日志中,也就是当前正在使用的重做日志。当一个重做日志写满或DBA发出switch log命令的时候就会发生日志切换,如果oracle运行在非归档模式下,oracle直接覆盖写下一个重做日志组。如果oracle运行在归档模式下则oracle会查询即将写入的重做日志是否归档,没有归档则等待其归档,等归档完成以后再覆盖写入重做日志记录。当然如果发生了归档等待的话可以通过添加重做日志组或开启更多的归档进程来避免这个等待事件。总的来说重做日志归档模式(archivelog mode)及非归档模式(noarchive mode)的最重要的区别就是当前的重做日志切换以后会不会被归档进程(archive process)copy到归档目的地(log_archive_dest)。

      一. 非归档模式(noarchivelog mode)的利与弊

           当oracle数据库运行在非归档模式下,控制文件确定了发生日志切换以后重做日志文件不需要归档,同时对于(日志写进程)LGWR来说此重做日志组是可以直接使用的。非归档模式(noarchivelog mode)只能提供实例级别的故障恢复,需要介质恢复的时候oracle就爱莫能助了。如果很不幸的发生了,那么我们只能把数据库恢复到过去的某个时间点上,前提是你完全冷备份了数据库。从备份时间点到故障发生期间的所有数据都只有丢失了。而且当oracle运行在非归档模式(noarchivelog mode)下的时候数据库不提供在线的表空间备份,换句话说热备是不可用的。

      二. 归档模式(archivelog mode)的利与弊

           当oracle数据库运行在归档模式下,控制文件确定了发生日志切换后的重做日志文件在归档前是不能被日志写进程)LGWR重用的。归档模式(archivelog mode)下oracle数据库能从实例,介质的失败中得到恢复,当然最近一次的数据库全备及备份以来的所有归档日志的备份时必须的。同时我们还能利用归档日志的重放来完成oracle standby的搭建(oracle standby以后会介绍,请大家留意)。归档模式(archivelog mode)又可以分为手动归档和自动归档,顾名思义手动归档需要DBA的干预;而自动归档,oracle会自己完成归档任务。

      通过上面的简单描述我们应该对两种模式的利与弊有所了解了,但是具体选择哪种模式则需要我们从实际情况出发综合考虑。不过作为生产环境一般都是选用归档模式(archivelog mode)。接下来将要介绍一下当前模式的查询以及模式的切换。
———————————————





上一篇:【风哥干货】快速解决Oracle数据库故障必备的20个脚本与命令
下一篇:Oracle RAC原理
回复

使用道具 举报

内容发布:baowei1003| 发布时间:2019-10-11 21:37:17
好东西,谢谢分享,支持一下
回复 支持 反对

使用道具 举报

内容发布:lixiaoshuai| 发布时间:2019-10-17 14:33:46
讲的很详细,很透彻,感谢
回复 支持 反对

使用道具 举报

内容发布:abc90000| 发布时间:2019-11-25 11:04:41
感谢分享,非常详细。
回复 支持 反对

使用道具 举报

内容发布:Kiwi2021| 发布时间:2021-9-16 12:41:53
Oracle 数据库和 Linux 内存管理
系统中使用的内存越多,管理该内存天津快乐十分所需的资源也就越多。对于 Linux 操作系统,通过 Linux kswapd 进程和页表内存结构(针对系统中存在的每个进程包含一条记录)实现内存管理。每条记录包含进程使用的每页虚拟内存及其物理地址(RAM 或磁盘)。通过使用处理器的转换旁路缓冲区(TLB,一小块缓存)为该进程提供帮助。
当大量内存用于 Oracle 数据库时,操作系统将消耗大量资源来管理虚拟地址到物理地址转换,其结果往往是一个非常大的页表结构。由于每条页表条目包含进程正在使用的所有内存页面的虚拟地址到物理地址的转换,因此对于非常大的系统全局区 (SGA),每个进程的页表条目都可能很大。例如,使用 8 GB 内存的 Oracle 数据库进程的页表条目将达 8 GB/4 KB(即 2097152 条记录或页面)。如果有 100 个 Oracle 数据库会话/进程,则将页面数乘以 100。您可以看到,要管理的页面数量巨大。
同样,操作系统使用页表条目管理系统中进程所用的内存。在 Linux 中,执行此管理的操作系统进程被称作 kswapd,可在操作系统工具中找到。
TLB 缓存将缓存页表条目来提高性能。典型的 TLB 缓存可保存 4 到 4096 个条目。对于数百万甚至数十亿个页表条目,168开奖网这种缓存就不够用了。
如上所述极速赛车,对于使用大型 SGA 的系统,页表结构可能会变得非常大。清单 1 中的 Linux 系统输出示例显示页表条目占用了 766 MB 的 RAM。这可能导致显著的系统开销。我亲眼见过数 GB 的页表条目。
HugePages 是 Linux 操作系统的一个内核特性,让操作系统可以支持现代硬件架构的大页面容量功能。对于 Oracle 数据库,通过启用 HugePages 并使用大页面,可以用一个页表条目代表一个大页面,而不是使用许多条目代表较小的页面,从而可以管理更多内存,减少操作系统SG飞艇对页面状态的维护并提高 TLB 缓存命中率。在 Linux 中,大页面大小为 2 MB。
        

回复 支持 反对

使用道具 举报

1框架
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门文章教程

  • Oracle19c数据库发布与下载地址
  • 风哥Oracle数据库巡检工具V1.0(附2.6网页
  • Oracle Database 12c 数据库100个新特性与
  • Oracle 12cR2 九大新功能全面曝光_详解云数
  • 实战PHP与MySQL权威指南PDF电子书下载
  • 大数据技术与应用入门培训教程(电子版下载
快速回复 返回顶部 返回列表