一、

重做日志文件把对数据文件的修改在写入数据文件之前记录下来。日志文件以一种循环的方式被写入信息。当一个日志组被写满时,回自动向另一个日志组写入。管理员可以手工切换当前日志组。alter system switch logfile可以切换当前的日志组。当日志组发生切换时,oracle向新的重做日志组分配一个日志序列号。当存在大量的事务时必须调整重做日志文件的大小,以避免频繁的日志切换发生。重做日志文件被顺序的写在磁盘上,如果磁盘没有其他活动,I/O将会很快。应该把重做日志文件保存在 单独的磁盘上,以获取良好的性能。尤其不要把经常处于活动状态的SYSTEM,UNDOTBS,SYSAUX的表空间或索引表空间文件保存到同一块磁盘上。因为只有在事务的请求被写到重做日志后,请求才能被完成。最大限度的提高重做日志的吞吐量是oracle性能优化首先考虑的因素。当发生重做日志切换而生成 一个新的检查点时,DBWn就会写脏缓冲器块。这样会影响oracle的性能。可以通过fast_start_mttr_target初始化参数来调整检查点。

每个数据库都有自己的联机重做日志组,一个联机重做日志组有多个重做日志成员,每个日志成员有单独的操作系统文件。在一个rac配置(这种配置中单个数据库装有多个实例),每个实例有一个联机重做日志线程,每个实例的lgwr进程都写到相同的联机重做日志文件。因此oracle必须跟踪数据库实例修改来自那个实例。

当多路复用重做日志文件时,应该把一个组的成员保存在不同的磁盘上。以避免单点故障的发生。如果重做日志文件组的所有成员都无法写入数据,oracle将被挂起。Dba可以在创建数据库时创建多个联机重做日志文件的副本。

对日志的操作如下:

a.创建新的重做日志组:

Alter database add logfile

Group 3 (‘/ora02/oradata/mydb01/redo0301.log’,

’/ora03/oradata/mdb01/redo0302.log’) size 10m;

如果省略group子句,oracle分配一个有效的编号,如下:

Alter database add logfile

b.添加新的组成员:

alter database add logfile member

‘/ora04/oradata/mydb01/redo0203.log’to group 2;(向第二组中添加新的成员)

c.重命名日志成员:

在重命名日志组成员之前新的目标必须已经存在。Oracle的sql命令只是把控制文件中的内部指针指向新的日志文件。Dba需要用操作系统命令来重命名此日志文件。步骤如下:

1.关闭数据库

2.使用操作系统命令重命名或移动日志文件

3. 启动数据库实例(start mount),重命名控制文件中的日志文        件成员。Alter database rename file‘old_redo_file_name’to‘new_redo_file_name’;

4.打开数据库alter database open

5.备份控制文件

D.删除重做日志组:

将要被删除的重做日志组不能是活动的日志组。Alter database drop logfile group 3;。当重做日志文件被删除后,相关的操作系统文件也被删除,相关的数据库控制文件也给更新。

E.使用和删除重做日志组相同的方式,dba可以只删除一个非活动的重做日志组的成员。

Alter database drop logfile member‘/ora04/oradata/mydb01/redo0203.log’;

f.创建联机重做日志文件:

当重做日志组成员遭到破坏时,可以删除并重新添加这个重做日志组或组成员。

二、

档案重做日志文件:

它是联机重做日志文件的一个副本。Lgwr和arcn进程的故障都会引起数据库的挂起。只有当arcn进程把联机重做日志写到归档地后,才可以向此重做日志组成员写入数据。

设置归档目的地:

可以在参数初始化文件中的log_archive_dest_n来定义归档目的地。归档目的地可以在本地计算机上,也可在远程的数据库服务器上。定义语法如下:

LOG_ARCHIVE_DEST_n=“null_string”|

(service=tnsnames_name |

LOCATION=‘directory_name’)

[MANDATORY | OPTIONAL]

[REOPEN[=integer]]

例1:

LOG_ARCHIVE_DEST_1=((LOCATION=’/archive/MYDB01’) MANDATORU REOPEN=60)定义归档日志的位置为/archive/MYDB01,mandatory子句的定义向这个位置写日志的操作必须的成功的。Reopen子句定义在日志写入失败时,下次尝试写入操作的时间间隔。缺省是300秒。

例2:

LOG_ARCHIVE_DEST_@=(SERVICE=STDBY01) OPTIONAL REOPEN;语句中的stdby01的连接到远程数据库的oracle net连接串。由于写操作是可选的,所以数据库活动继续,当arcn进程不能写档案日志文件时,进程将立即尝试重新写入(这个动作有reopen子句来定义)。

Log_archive_min_succeed_dest:定义最少归档日志的副本数量。

Log_archive_format:定义归档日志文件采用的名称和使用的格式。可以使用预定义变量来构造每个归档日志文件的名称。变量如下:

%s日志序列号

%t线程号

%r复位日志id

%d数据库id

定义归档日志名称的变量至少包含%s,%t,%r,当多个数据库实例的归档日志采用相同的归档日志位置时,还必须定义%d。例如:%t_%s_%r.dbf

oracle 归档日志 重做日志,Oracle的重做日志和归档日志相关推荐

  1. 浅谈Oracle服务器归档日志,oracle服务器运行时管理归档日志文件不管理联机重做日志文件...

    <Oracle数据库管理与维护实战>--2.4 Oracle后台进程结构 本节书摘来自异步社区出版社<Oracle数据库管理与维护实战>一书中的第2章,第2.4节,作者: 何伟 ...

  2. oracle重做日志详解,oracle数据文件、控制文件、重做日志文件详解

    什么是数据文件.控制文件.重做日志文件? 首先从Oracle的官方文档里摘录下面内容: The following sections explain the physical database str ...

  3. oracle重做日志详解,Oracle的重做日志

    Archive Redo log files--归档重做日志,简称归档日志,指当条件满足时,Oracle将在线重做日志以文件形式保存到硬盘(持久化). 重做日志的简单原理:在数据更新操作commit前 ...

  4. oracle 日志注册,Oracle日常维护中管理用户以及重做日志文件的方法

    一.管理用户和安全性在db中各种对象以 用户(方案) 的方式组织管理 select distinct object_type from dba_objects; 模式对象,schema ----> ...

  5. 重做日志文件(redo log file)和归档日志文件(archive log file)

    日志文件分为重做日志文件(redo log file)和归档日志文件(archive log file). SQL> select group#, status, member from v$l ...

  6. mysql归档日志是什么意思_重做日志与归档日志有什么区别?

    重做日志redo log file是LGWR进程从Oracle实例中的redo log buffer写入的,是循环利用的.就是说一个redo log file(group) 写满后,才写下一个. 归档 ...

  7. oracle归档日志是否启用,oracle归档日志满了,导致无法启动 ORA-03113

    今天在进行Oracle相关测试,因为Windows自动更新,自己重启机器了,结果重启完毕之后,我的oracle就无法正常启动了 报ora-03113错误. [csharp] view plain co ...

  8. oracle 日志写满,Oracle归档日志写满错误解决方法

    最近一年,手头上负责的项目要部署到很多个地方,由于项目组里没有人对Oracle比较熟悉,只能给自己增加一个DBA的角色了.由于短时间内要部署很多单位,备份策略没有设置好,结果过了一个月,用户报告程序开 ...

  9. ORACLE性能优化救生指南_21章 重做和归档的优化

    (读书笔记) 21.5 重做日志与归档化 一般的做法是,把重做日志.闪回日志和归档日志与数据库文件分开. 这些文件的上的IO类型,与数据文件的IO在性质上完全不同,备份与归档期间产生的突发IO可能会干 ...

  10. 查询oracle归档日志是否开启,Oracle 开启归档日志以及关闭归档日志

    racle数据库可以运行在2种模式下:归档模式(archivelog)和非归档模式(noarchivelog) 归档模式可以提高Oracle数据库的可恢复性,生产数据库都应该运行在此模式下,归档模式应 ...

最新文章

  1. 配置MySQL主从复制
  2. mysql的连接leftjion,mysql的表连接(left|right)join
  3. Postgresql在Windows下的解压安装
  4. C/C++连接MySql数据库
  5. linux c va_list 32位和64位的差异
  6. bash命令怎么在linux系统中使用
  7. Git使用学习笔记 (一)
  8. narwal无法连接机器人_懒无止境 能自己洗抹布的云鲸J1扫拖机器人
  9. SimpleMembership
  10. NC7-买卖股票的最好时机
  11. ABAP 后台作业的一个状态查询工具
  12. 腾讯视频下载格式_怎么下载腾讯视频
  13. 互联网晚报 | 3月13日 星期日 |​ ​​上海加强疫情防控:非必要不离沪;MasterGo宣布上线Figma文件导入功能...
  14. window8服务器
  15. jmeter录制 过滤_Jmeter录制pc脚本
  16. 基于WebRTC开源框架的实时视频聊天项目,搭建私人实时通信服务
  17. 实战项目-python库分析科比生涯数据
  18. 2022-2028全球石油管材接头行业调研及趋势分析报告
  19. win10 安装pytorch gpu 及 解决报错“OSError: [WinError 126] 找不到指定的模块
  20. 有谁知道iphone XR的“R”到底是什么意思?答案可能会让你们无奈

热门文章

  1. memcached随笔练习
  2. html命名锚记链接失败,命名锚记(设置命名锚记超级链接)
  3. Windows10系统重装后必不可少的优化步骤
  4. 超级电容模组电压不均衡特性分析
  5. openresty 与 java RSA加解密
  6. 斐波那契数列112358c语言编程,C程序显示斐波那契数列
  7. python 病毒 基因_#Python#提取基因对应的蛋白质名
  8. 二、 FATE实战:实现横向逻辑回归任务的训练及预测
  9. 鹏鹏的Altium Designer快捷方式技巧--SCH
  10. Java中的UTF-8、UTF-16编码字符所占字节数