您的位置:首页 > 数据库 > Oracle

Oracle redo log

2016-03-31 09:57 489 查看
-- 查看
select group#,sequence#,status,archived,bytes/1024/1024 as sizes_mb from v$log;

-- Creating Redo Log Groups and Members
ALTER DATABASE ADD LOGFILE ('/oracle/dbs/log1a.rdo', '/oracle/dbs/log1b.rdo') SIZE 500K;
ALTER DATABASE  ADD LOGFILE GROUP 10 ('/oracle/dbs/log1a.rdo', '/oracle/dbs/log1b.rdo')  SIZE 500K;

ALTER DATABASE ADD LOGFILE MEMBER '/oracle/dbs/log2b.rdo' TO GROUP 2;
ALTER DATABASE ADD LOGFILE group 3 '/u01/app/oracle/oradata/orcl/redo03.log' SIZE 100M reuse;

-- Renaming Redo Log Members,

SHUTDOWN

mv /oracle/dbs/log1a.rdo /oracle/dbs/log1c.rdo
mv /oracle/dbs/log1b.rdo /oracle/dbs/log1d.rdo

CONNECT / as SYSDBA
STARTUP MOUNT

ALTER DATABASE  RENAME FILE '/oracle/dbs/log1a.rdo', '/oracle/dbs/log1b.rdo'
TO '/oracle/dbs/log1c.rdo', '/oracle/dbs/log2d.rdo';

ALTER DATABASE OPEN;

-- Dropping Redo Log Groups and Members

ALTER DATABASE DROP LOGFILE GROUP 3;

ALTER DATABASE DROP LOGFILE MEMBER '/oracle/dbs/log1c.rdo';

-- Forcing Log Switches,
/*
You can force a log switch to make the currently active group inactive and available for redo log maintenance operations.
For example, you want to drop the currently active group, but are not able to do so until the group is inactive.
You may also wish to force a log switch if the currently active group needs to be archived at a specific time
before the members of the group are completely filled. This option is useful in configurations with large redo log
files that take a long time to fill.
*/
ALTER SYSTEM SWITCH LOGFILE;
-- 对单实例数据库或RAC中的当前实例执行强制日志切换,归档当前重做日志,并且只是用switch前的current日志的first_change#,
-- 更新了v$datafile 的小于它的检查点checkpoint_change#,不更新v$datafile_header的checkpoint_change#

-- 区别于
ALTER SYSTEM ARCHIVE LOG ALL;
-- 对数据库中的非当前未归档日志进行归档,不负责归档current日志

ALTER SYSTEM ARCHIVE LOG CURRENT;
-- 对数据库中的所有实例执行日志切换(只归档当前日志)。

ALTER SYSTEM CHECKPOINT;
<pre name="code" class="sql">-- 将data buffer中的脏块(已经写在redo里记录但是没有写到datafile里的)的内容写入到data file里并释放占用的空间,
-- 由dbw后台进程完成,并修改controlfile和datafile的scn,它做了完全检查点,v$datafile_header,控制文件,数据文件

-- Clearing a Redo Log FileALTER DATABASE CLEAR LOGFILE GROUP 3;ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 3;-- Viewing Redo Log Information V$LOG,V$LOGFILE,V$LOG_HISTORY;

-- 查看切换时间

-- 查看日志切换时间

select b.SEQUENCE#,

       b.FIRST_TIME,

       a.SEQUENCE#,,

       round(((a.FIRST_TIME - b.FIRST_TIME) * 24) * 60, 2)

  from v$log_history a, v$log_history b

 where a.SEQUENCE# = b.SEQUENCE# + 1

   and b.THREAD# = 1

 order by a.SEQUENCE# desc, b.FIRST_TIME desc;

select sequence#,

       first_time,

       nexttime,

       round(((first_time - nexttime) * 24) * 60, 2) diff

  from (select sequence#,

               first_time,

               lag(first_time) over(order by sequence#) nexttime

          from v$log_history

         where thread# = 1)

 order by sequence# desc, first_time desc;

-- 归档时间,大小

select

       t.SEQUENCE#,

       t.BLOCKS * t.BLOCK_SIZE / 1024 / 1024 as s,

       t.FIRST_TIME,

       round((t.NEXT_TIME - t.FIRST_TIME) * 24 * 60, 2) diff

  from v$archived_log t

 where t.DELETED = 'NO'

 order by t.FIRST_TIME desc;

-- 查看闪回使用情况

select * From v$flash_recovery_area_usage;

select t.name, round(t.SPACE_USED / t.SPACE_LIMIT, 2) as space_used

  from v$recovery_file_dest t;


参考:http://docs.oracle.com/cd/B19306_01/server.102/b14231/onlineredo.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: