`
Intrepid2012
  • 浏览: 71314 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在线修改 redo log file

 
阅读更多
1.查看当前日志组成员:
SQL> select member from v$logfile;

MEMBER
------------------------------------------------------
C:\ORACLE\PRODUCT\10.2.0\ORADATA\FYDB\REDO01.LOG
C:\ORACLE\PRODUCT\10.2.0\ORADATA\FYDB\REDO02.LOG
C:\ORACLE\PRODUCT\10.2.0\ORADATA\FYDB\REDO03.LOG
2.查看当前日志组状态:
SQL> select group#,members,bytes/1024/1024,status from v$log;

    GROUP#    MEMBERS BYTES/1024/1024 STATUS
---------- ---------- --------------- ----------------
         1          1              50 INACTIVE
         2          1              50 INACTIVE
         3          1              50 CURRENT
      
现有三个日志组,每个组内有一个成员,每个成员的大小为50MB,现在想把此三个日志组的成员大小都改为100MB ,步骤如下:

1、创建2个新的日志组
SQL> alter database add logfile group 4 ('C:\ORACLE\PRODUCT\10.2.0\ORADATA\FYDB\REDO04.LOG') size 100MB;
SQL> alter database add logfile group 5 ('C:\ORACLE\PRODUCT\10.2.0\ORADATA\FYDB\REDO05.LOG') size 100MB;

2、切换当前日志到新的日志组
SQL> alter system switch logfile;
SQL> alter system switch logfile;
SQL> select group#,members,bytes/1024/1024,status from v$log;

    GROUP#    MEMBERS BYTES/1024/1024 STATUS
---------- ---------- --------------- ----------------
         1          1              50 ACTIVE
         2          1              50 ACTIVE
         3          1              50 ACTIVE
         4          1             100 CURRENT
         5          1             100 ACTIVE

3、删除旧的日志组
SQL> alter database drop logfile group 1;
SQL> alter database drop logfile group 2;
SQL> alter database drop logfile group 3;

4、操作系统下删除原日志组1、2、3中的文件REDO01.LOG、REDO02.LOG、REDO03.LOG。

5、重建日志组1、2、3
SQL> alter database add logfile group 1 ('C:\ORACLE\PRODUCT\10.2.0\ORADATA\FYDB\REDO01.LOG') size 100MB;
SQL> alter database add logfile group 2 ('C:\ORACLE\PRODUCT\10.2.0\ORADATA\FYDB\REDO02.LOG') size 100MB;
SQL> alter database add logfile group 3 ('C:\ORACLE\PRODUCT\10.2.0\ORADATA\FYDB\REDO03.LOG') size 100MB;

6、切换日志组
SQL> alter system switch logfile;
SQL> alter system switch logfile;

7、删除中间过渡用的日志组4、5
SQL> alter database drop logfile group 4;
SQL> alter database drop logfile group 5;
SQL> select group#,status from v$log;

    GROUP# STATUS
---------- ----------------
         1 UNUSED
         2 UNUSED
         3 UNUSED
         4 INACTIVE
         5 CURRENT

8、到操作系统下删除原日志组4、5中的文件

9、备份当前的最新的控制文件
SQL> conn / as sysdba
SQL> alter database backup controlfile to trace resetlogs;

(注意:如果为安全考虑每个group可以多加几个文件)
==============================
跟redo logfile有关的其它数据库参数   
1、log_buffer
   log_buffer是ORACLE SGA的一部分, 所有DML命令修改的数据块先放在log_buffer里, 如果满了或者到了check_point时候通过lgwr后台进程写
   到redo logfile里去。它不能设得太大,这样在意外发生时会丢失很多改变过的数据。它最好不要大于512K或者128K*CPU个数。
我们可以用下面的SQL语句检测log_buffer使用情况:      
   SQL> select rbar.name,rbar.value,re.name,re.value,(rbar.value*100)/re.value||'%' "radio"
from v$sysstat rbar,v$sysstat re
where rbar.name='redo buffer allocation retries'
and re.name='redo entries';
       这个比率小于1%才好,否则增加log_buffer的大小
2、log_checkpoint_interval
   Oracle8.1 版本后log_checkpoint_interval指的是两次checkpoint之间操作系统数据块的个数。
   checkpoint时Oracle把内存里修改过的数据块用DBWR写到物理文件,用LGWR写到日志和控制文件。
   一般UNIX操作系统的数据块为 512 bytes。
   从性能优化来说log_checkpoint_interval = redo logfile size bytes / 512 bytes
3、log_checkpoint_timeout
   Oracle8.1 版本后log_checkpoint_timeout指的是两次checkpoint之间时间秒数。
   Oracle建议不用这个参数来控制,因为事务(transaction)大小不是按时间等量分布的。
log_checkpoint_timeout = 0
log_checkpoint_timeout = 900

Redo Log Buffer
redo log buffer 可以循环使用,存放数据库改变牵涉的信息,其内部放的是redo entry。
redo entry存放的是INSERT, UPDATE, DELETE, CREATE, ALTER, DROP 等操作对数据库的改变信息,这些信息在recovery的时候是很重要。这些redo entry
由oracle server进程从用户内存放到redo buffer。

LGWR(Log writer)
LGWR(Log writer)是oracle启动时候必须启动的进程,它负责把redo log buffer中的redo entry写到redo log文件中。
在如下情况下写文件:
- redo log buffer 三分之一满了
- 达到某时间点
- 在 DBWR w把修改的数据块写到数据文件之前写redo log file
- 事务commit的时候
- 在数据库做归档redo log 文件的时候

Redo Log file
redo log就是存放redo log 信息的文件了,至少有两个redo log 组,oracle循环使用之。当然推荐有更多的redo log 组。既然是循环使用redo log,
必然会有一个log switch的过程。

log switch发生在:
- log file 已经写满了
- 使用了ALTER SYSTEM SWITCH LOGFILE 命令

在log switch 的时候自动会做checkpoint。

只要redo log组里面有一个redo log file可以用,就能进行log switch。当然如果redo log file坏了,LGWR肯定会记录到 trace和alert文件.

关于redo log的设置
一般至少两组redo log 文件,
每组中的redo log文件最好在不同的磁盘上,防止一起损坏。
每组中的redo log文件必须大小一致,它们是同时修改的。
不同组的redo log文件大小不一定一致。
每组的redo log文件数目必须一致。


修改redo log的位置
- 看看当前的redo log文件是不是正在使用,如果在使用如下命令
ALTER SYSTEM SWITCH LOGFILE;
- 把该文件copy到你想要放到位置
- ALTER DATABASE RENAME FILE ’filename’ TO filename’

增加redo log 文件
ALTER DATABASE [database]
ADD LOGFILE MEMBER
[ ’filename’ [REUSE]
[, ’filename’ [REUSE]]...
TO {GROUP integer
|(’filename’[, ’filename’]...)
}

删除redo log 文件
如果redo log 文件是invalid状态,可以删除之
ALTER DATABASE [database] DROP LOGFILE MEMBER ’filename’[, ’filename’]...

相关数据字典
察看
v$log
v$logfile
v$log_history
分享到:
评论

相关推荐

    oracle常用命令

    sql> alter system switch logfile; 2.forcing checkpoints sql> alter system checkpoint; 3.adding online redo log groups sql> alter database add logfile [group 4] sql> ('/disk3/log4a.rdo','/disk4/...

    orcle 体系结构 PPT及讲解.zip

    2)database:data file、control file、redolog file 3)instance: an instance access a database 4)oracle memory: sga + pga 5)instance:sga + backgroud process 1.1.2 系统全局区SGA: 1)在一个...

    redo-log-reader:用于学习Innodb重做日志

    Innodb重做日志读取器这是一项肮脏的工作。 现在仅适用于某些地铁类型。目标它可以用于学习Innodb...如何使用 gcc -x c -std=gnu89 -O2 -Wall redo_log_reader.cc -o bin/rlrRLR_DBG=1 bin/rlr test/ib_logfile0 | less

    针对Oracle远程复制和容灾的解决方案

    这类产品的原理基本相同,其工作过程可以分为以下几个流程:使用Oracle以外的独立进程,捕捉redo log file 的信息,将其翻译成sql语句,再通过网络传输到目标端数据库,在目标端数据库执行同样的sql。如果其进程赶不...

    数据库备份还原

    数据库都会存在一定的安全隐患。对于数据库管理员来说不能仅寄希望于计算机操作系统的安全运行,而是...在线日志文件(online redo log file)填入日志项(redo entry),日志项记录的数据用于重构对数据库所作的全部修改。

    数据库性能监控

    log file parallel write(ms) log file sync(ms) db file scattered read(ms) #IO WorkLoad Oracle IOPS Oracle MBPS db file sequential read db file scattered read log file parallel write log file sync ...

    ORACLE数据库的恢复(超强),经典老牌资料

    5、shutdown abort后,丢失全部文件(除了archive log和init.ora)即,丢失了全部数据文件、控制文件和redo log file 6、shutdown abort的情况,恢复一个控制文件(不包括数据文件和redo) 7、shutdown abort的情况,...

    数据库归档模式

    数据库运行有2种模式,归档模式和非归档模式 归档模式下: 用户做的所有操作都会记录在redo online log里面, 一般都是3 redo log, 默认情况下一个redo log file是50m,当满了后,

    DataGuard简明笔记

    传送REDO log的两种方式: 3 应用redo log 的两种时间: 3 应用redo log 的两种方式: 3 (二) 发送什么、发给谁 3 发送什么: 4 发给谁: 4 配置日志归档参数: 4 (三) 发送失败的解决办法 4 (四) 归档中断的处理 5 ...

    OCP认证考试题

    1. The instance abnormally terminates because of a power outage.... All redo log entries recorded in the current log file until the checkpoint position are applied to data files Answer: C

    Oracle Logminer

    Logminer是oracle从8i开始提供的用于分析...它既能分析redo log file,也能分析归档后的archive log file。在分析日志的过程中需要使用数据字典,一般先生成数据字典文件后使用,10g以后的版本还可以使用在线数据字典。

    sql2000 Log Explorer4.2(含注册码)+汉化

    服务器端代理是保存在SQLServer主机中的一个只读存储过程,他的作用是接受客户端请求,读取在线事物日志块并通过网络传给客户端软件,由客户端软件来读取这些原始的数据块来完成Log Explore所提供的所有功能。...

    Log Explorer for SQL Server v4.22

    服务器端代理是保存在SQLServer主机中的一个只读存储过程,他的作用是接受客户端请求,读取在线事物日志块并通过网络传给客户端软件,由客户端软件来读取这些原始的数据块来完成Log Explore所提供的所有功能。...

    Log Explorer for SQL Server v4.22 含注册机

    服务器端代理是保存在SQLServer主机中的一个只读存储过程,他的作用是接受客户端请求,读取在线事物日志块并通过网络传给客户端软件,由客户端软件来读取这些原始的数据块来完成Log Explore所提供的所有功能。...

    oracle知识点整理

    ,服务器进程(server process),以及其他文件(如参数文件(parameter file),密码文件(password file),归档日志文件(archive log file)等)。 Oracle服务器由数据库文件和数据库实例组成。 其中数据库...

    Log Explorer4.2帮助文档

    服务器端代理是保存在SQLServer主机中的一个只读存储过程,他的作用是接受客户端请求,读取在线事物日志块并通过网络传给客户端软件,由客户端软件来读取这些原始的数据块来完成Log Explore所提供的所有功能。...

    ORACLE 11G 搭建DATAGUARD步骤

    ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 ('/oradata/dbtest/redo04.log') SIZE 50M; ALTER DATABASE ADD STANDBY LOGFILE GROUP 5 ('/oradata/dbtest/redo05.log') SIZE 50M; ALTER DATABASE ADD STANDBY LOG...

    oracle日志分析工具LogMiner使用.

    SQL> EXEC DBMS_LOGMNR.ADD_LOGFILE('/oracle/log/redo.log'); ``` 这将将 redo.log 文件添加到 LogMiner 中。 2. 选择日志文件 可以使用以下命令选择要分析的日志文件: ``` SQL> EXEC DBMS_LOGMNR.SELECT_LOG...

    Oracle常用命令大汇总.doc

    sql> alter system switch logfile; 2.forcing checkpoints sql> alter system checkpoint; 3.adding online redo log groups sql> alter database add logfile [group 4] sql> ('/disk3/log4a.rdo','/...

    Oracle常用命令大汇总

    sql> alter system switch logfile; 2.forcing checkpoints sql> alter system checkpoint; 3.adding online redo log groups sql> alter database add logfile [group 4] sql> ('/disk3/log4a.rdo','/...

Global site tag (gtag.js) - Google Analytics