日志文件分类:重做日志文件

归档日志文件

警告日志文件

跟踪日志文件

redo_log_file文件作用:

1)维护数据一致性

2)记录了数据库里的更改操作

redo_log_friles以组为单位,一个组下可以有多个成员,顺序循环写,一个数据库要启动至少要有2个日志组,每个组下至少有一个成员,redolog以多工方式工作。

日志切换:从一个组切换到下一个组的过程。

1)自动切换

2)手工切换

规划redo_log_file日志:

分散到不同磁盘,磁盘io要够用,io读写都要快。

日志大小问题:要满足数据库自动切换日志的时间间隔在15--20min左右。

1)查询日志文件位置:

SQL>select * from v$logfile;

GROUP# STATUS  TYPE    MEMBER                                  IS_

---------- ------- ------- ---------------------------------------- ---

1 STALE   ONLINE  /u01/oracle/oradata/rezin/redo01.log     NO

2 STALE   ONLINE  /u01/oracle/oradata/rezin/redo02.log     NO

3        ONLINE  /u01/oracle/oradata/rezin/redo03.log     NO

SQL> select * from v$log;

GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS

---------- ---------- ---------- ---------- ---------- --- ----------------

FIRST_CHANGE# FIRST_TIME

------------- -------

1          1         37   52428800          1 YES INACTIVE

642652 16-3? -15

2          1         38   52428800          1 YES INACTIVE

668961 16-3? -15

3          1         39   52428800          1 NO  CURRENT

695725 17-3? -15

日志状态:status常见值

unused:表示从未对联机重做日志文件组进行写入,这是刚添加联机重做日志组状态。

current:表示当前正在使用的联机重做日志文件组。

active:表示联机重做日志文件组是活动的,但不是当前正在使用的。崩溃恢复需要该状态,可能归档,也可能没有归档。

clearing:表示执行alter database clear logfile后正在将该日志重建一个空日志,日志清除后,状态为unused。

手工切换日志:

SQL>alter system switch logfile;

添加日志组文件:

         语法:alter database add logfile [group n1] ('<dir>','<dir>',....) size N,[group n2] ('<dir>','<dir>') size N,.........;

SQL> alter database add logfile group 4 '/u01/oracle/oradata/orcl/redo04.log' size 50m;

Database altered.

SQL> alter database add logfile '/u01/oracle/oradata/orcl/redo05.log' size 50m;

Database altered.

添加组指定多个成员:

SQL> alter database add logfile

('/u01/oracle/oradata/orcl/redo07.log','/u01/oracle/oradata/orcl/redo08.log') size 50m;

Database altered.

SQL> alter database add logfile group 7

('/u01/oracle/oradata/orcl/redo09.log','/u01/oracle/oradata/orcl/redo10.log') size 50m;

Database altered.

一条语句添加多个日志组:

SQL> alter database add logfile group 7 '/u01/oracle/oradata/orcl/redo11.log' size 50m,group 8 '/u01/oracle/oradata/orcl/redo12.log' size 50m;

Database altered.

添加日志组成员:

SQL>alter database add member '<dir1>' to group N, '<dir1>' to group N;

SQL> alter database add logfile member '/u01/oracle/oradata/orcl/redo13.log' to group 8;

Database altered.

给多个组添加成员:

SQL> alter database add logfile member '/u01/oracle/oradata/rezin/redo014.log' to group 1,'/u01/oracle/oradata/rezin/redo015.log' to group 2;

invalid:要么日志文件不存在,要么是新添加的成员而另一个为用过的成员。

删除日志组:alter database drop logfile group n1,group n2;

日志状态为active、current状态的不能删除,需要手工切换日志直到可以删除为止。

SQL>alter database drop logfile group 9;

SQL>alter database drop logfile group 5,group 6;

删除成员指令: alter database drop logfile member '<dir1>','<dir2>';

SQL>alter database drop logfile member '/u01/oracle/oradata/orcl/redo07.log';

SQL>alter database drop logfile member

'/u01/oracle/oradata/orcl/redo01.log', '/u01/oracle/oradata/orcl/redo02.log';

附加:删不掉切换日志。

日志重命名:相当于更改路径,只有current不可以重命名。

语法:#cp <oldfile> <newfile>

SQL>alter database rename file '<oldfilename>' to '<newfilename>';

SQL> ho cp /u01/oracle/oradata/orcl/redo11.log /u01/oracle/oradata/rezin/redo11.log

SQL> ho ls /u01/oracle/oradata/rezin/redo11.log

/u01/oracle/oradata/rezin/redo11.log

SQL> alter database rename file '/u01/oracle/oradata/orcl/redo11.log' to

'/u01/oracle/oradata/rezin/redo11.log';

联机重做日志文件重命名:不能是current,只能oracle在mount和open状态使用。

语法:alter database rename file '<oldfilename>' to '<newoldfile>';

数据库的状态监控:

状态:inactive(循环之外),active,current(循环之内)

监控:select 'ho ls '||member from v$logfile;

'HOLS'||MEMBER

--------------------------------------------------------------------------------

ho ls /u01/oracle/oradata/rezin/redo01.log

ho ls /u01/oracle/oradata/rezin/redo02.log

ho ls /u01/oracle/oradata/rezin/redo03.log

查询在不在:

SQL> ho ls /u01/oracle/oradata/rezin/redo01.log

/u01/oracle/oradata/rezin/redo01.log

查看磁盘空间够不够用:

[oracle]#dh -f

日志切换间隔时间:查看时间间隔是否在15到20分钟之间。

SQL> select group#,to_char(first_time,'yyyy-mm-dd hh24:mi:ss') as first_time from v$log;

GROUP# FIRST_TIME

---------- --------------------------------------------------------------

1 2015-03-17 08:54:07

2 2015-03-17 08:53:10

3 2015-03-17 08:53:22

4 2015-03-17 10:41:49

5 2015-03-17 15:07:24

6 2015-03-17 16:12:48

日志组下必须有多个成员,不是多个成员组,修改成多个成员组。

修改日志文件大小:先删掉已有日志组及其物理文件,然后再重新建立组并修改成相应大小即可。

联机重做日志异常(日志不一致、丢失、损坏)处理:

1)日志文件不一致:清空不一致日志组,oracle数据库一致性关闭的可以在启动时清空日志文件。

SQL> alter database clear logfile group n;  --->inactive可清空

SQL> alter database clear unarchived logfile group n;   ---->active可清空

2)日志文件丢失:

方法一:数据库一致性关闭的,如果日志文件丢失可以通过清空日志文件的办法恢复,步骤同上。

方法二:数据库非一致性关闭

1)加隐藏参数:同control_file里的_allow_resetlog_corruption隐藏参数解决问题。

2)如果归档模式可以通过recover指令恢复:欺骗的手段

sql>recover database using backup controlfile;

sql>alter database open resetlogs;

3)非归档模式下,加隐藏参数忽略数据库一致性,可以起到很大的作用,但不支持使用。

Oracle体系结构之联机日志文件管理的更多相关文章

  1. Oracle基础 05 联机日志 redolog

    --两个相关视图v$logv$logfile alter system switch logfile;  --强制日志切换alter system checkpoint;      --强制检查点 - ...

  2. Oracle数据库体系结构(6)数据库归档重做日志文件管理

    归档重做日志文件的概念和选择 Oracle数据库能够把已经写满了的重做日志文件保存到一个或多个指定的离线位置,这种保存的文件为归档重做日志文件.通常情况下一个归档重做日志时一个被LGWR写满的重做日志 ...

  3. Oracle调整联机日志大小

    近期一个项目反馈月底高峰期时系统整体性能下降,抓取对应的AWR和ASH查看,等待事件排第一位的竟然是redo日志切换.进一步看每秒的日志量是5M多,而日志文件大小仅有200M.建议项目上调整日志大小, ...

  4. Oracle日志文件管理与查看

    Oracle日志文件管理与查看 from:http://hi.baidu.com/shuker/item/25ee611ee960c7426826bb1f 1.查询系统使用的是哪一组日志文件: sel ...

  5. Oracle联机日志损坏解决办法

    关于此问题,在网上找到一篇不错的文章. 大家都清楚,联机日志分为当前联机日志和非当前联机日志. ---------------------------------------------------- ...

  6. ORACLE联机日志文件丢失或损坏的处理方法(转)

    经验总结: 联机日志分为当前联机日志和非当前联机日志,非当前联机日志的损坏是比较简单的,一般通过clear命令就可以解决问题. 损坏非当前联机日志:1.启动数据库,遇到ORA-00312 or ORA ...

  7. ORACLE体系结构一 (物理结构)- 数据文件、日志文件、控制文件和参数文件

    一.物理结构Oracle物理结构包含了数据文件.日志文件.控制文件和参数文件 1.数据文件每一个ORACLE数据库有一个或多个物理的数据文件(data file).一个数据库的数据文件包含全部数据库数 ...

  8. Oracle实例和Oracle数据库(Oracle体系结构)

    --========================================== --Oracle实例和Oracle数据库(Oracle体系结构) --==================== ...

  9. 【转载】Oracle实例和Oracle数据库(Oracle体系结构)

    免责声明:     本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除.     原文作者:Leshami      原文地址:http://blog.csdn.net/ ...

随机推荐

  1. Linux+Redis实战教程_day02_3、redis数据类型_4、String命令_5、hash命令_6、java操作redis数据库技术

    3. redis数据类型[重点] redis 使用的是键值对保存数据.(map) key:全部都是字符串 value:有五种数据类型 Key名:自定义,key名不要过长,否则影响使用效率 Key名不要 ...

  2. DOS 配置IP地址

    @echo off :startIP set /p source=STATIC Y or N or E: echo source:%source% if "%source%" == ...

  3. ios开发之--新手引导页图片适配方案

    1,图片适配,最早以前是自己命名规范,例如@1x,@2x,@3x等,3套图基本上就够用了 2,在iPhone X之后,需要适配的图就多了,因为分辨率增多了,屏幕尺寸也增多了 3,尺寸 :640*960 ...

  4. Linux oracle数据库创建表空间、用户并赋予权限

    管理员用户登录oracle数据库 1.创建临时表空间 select name from v$tempfile;查出当前数据库临时表空间,主要是使用里面的存放路径: 得到其中一条记录/opt/oracl ...

  5. Apache安全配置基线指导

    搜索关键词:Apache安全配置基线指导 参考链接: windows服务器下Apache 的降权 https://www.landui.com/help/show-1749.html

  6. 《Mysql 入门很简单》(读后感①)

    下载完整版<Mysql 入门很简单>,点击这里~: http://files.cnblogs.com/files/zhengyeye/MySQL%E5%85%A5%E9%97%A8%E5% ...

  7. C++ template —— 模板中的名称(三)

    第9章 模板中的名称------------------------------------------------------------------------------------------ ...

  8. 深入浅出MFC——消息映射与命令传递(六)

    1. 消息分类: 2. 万流归宗——Command Target(CCmdTarget): 3. "消息映射"是MFC内建的一个信息分派机制.通过三个宏(DECLARE_MESSA ...

  9. html/php/mysql乱码

    1. html通过jquery的ajax传递数据给php. encodeURI("my.php?name=博客园") 2. php接受 urldecode($_GET[" ...

  10. django初体验 学习笔记

    django环境搭建     1.安装Python     2.ipython         sudo apt-get install ipython         sudo pip instal ...