Oracle体系结构之联机日志文件管理
日志文件分类:重做日志文件
归档日志文件
警告日志文件
跟踪日志文件
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体系结构之联机日志文件管理的更多相关文章
- Oracle基础 05 联机日志 redolog
--两个相关视图v$logv$logfile alter system switch logfile; --强制日志切换alter system checkpoint; --强制检查点 - ...
- Oracle数据库体系结构(6)数据库归档重做日志文件管理
归档重做日志文件的概念和选择 Oracle数据库能够把已经写满了的重做日志文件保存到一个或多个指定的离线位置,这种保存的文件为归档重做日志文件.通常情况下一个归档重做日志时一个被LGWR写满的重做日志 ...
- Oracle调整联机日志大小
近期一个项目反馈月底高峰期时系统整体性能下降,抓取对应的AWR和ASH查看,等待事件排第一位的竟然是redo日志切换.进一步看每秒的日志量是5M多,而日志文件大小仅有200M.建议项目上调整日志大小, ...
- Oracle日志文件管理与查看
Oracle日志文件管理与查看 from:http://hi.baidu.com/shuker/item/25ee611ee960c7426826bb1f 1.查询系统使用的是哪一组日志文件: sel ...
- Oracle联机日志损坏解决办法
关于此问题,在网上找到一篇不错的文章. 大家都清楚,联机日志分为当前联机日志和非当前联机日志. ---------------------------------------------------- ...
- ORACLE联机日志文件丢失或损坏的处理方法(转)
经验总结: 联机日志分为当前联机日志和非当前联机日志,非当前联机日志的损坏是比较简单的,一般通过clear命令就可以解决问题. 损坏非当前联机日志:1.启动数据库,遇到ORA-00312 or ORA ...
- ORACLE体系结构一 (物理结构)- 数据文件、日志文件、控制文件和参数文件
一.物理结构Oracle物理结构包含了数据文件.日志文件.控制文件和参数文件 1.数据文件每一个ORACLE数据库有一个或多个物理的数据文件(data file).一个数据库的数据文件包含全部数据库数 ...
- Oracle实例和Oracle数据库(Oracle体系结构)
--========================================== --Oracle实例和Oracle数据库(Oracle体系结构) --==================== ...
- 【转载】Oracle实例和Oracle数据库(Oracle体系结构)
免责声明: 本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除. 原文作者:Leshami 原文地址:http://blog.csdn.net/ ...
随机推荐
- phonegap入门–1 Android 开发环境搭建
一.JDK 安装JDK,安装包中包含了JDK和JRE两部分,建议将它们安装在同一个盘符下面. 配置环境变量: 1.右键点击我的电脑,选择属性,点击高级选项卡,选择环境变量. 2.找到Path变量名(无 ...
- flexbox父盒子flex-direction属性
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- springboot 集成elasticsearch5.4.3
官网上对elasticsearch 的集成用的是spring-data,而且,暂时不支持5.x的版本, 要是想集成5.x的版本,我们只能在pom.xml文件中进行修改,如图: <project ...
- 音频——H5 audio
分享站又有新功能了:将文件站上的语音文件正确播放出来.效果图: 暂停: 播放: 实现的效果:类似于音乐播放器一般,但是较之更简单一些,可以正常播放语音,有拖动.快进后退效果便可. 思路: 首先想到的便 ...
- C#实现新建文件并写入内容
using System; using System.IO; namespace ConsoleApplication1 { class Program { static void Main(stri ...
- Objective-C官方文档 协议
版权声明:原创作品,谢绝转载!否则将追究法律责任. 在现实生活中,当处理某一情况的时候人们往往遵循严格的程序.执法人员他们在打官司的收集证据和询问的时候一定要遵守协议. 在面向对象的语言中,最重要的是 ...
- ubuntu apt 代理设置
可以通过三种方法为apt-get设置http代理方法一这是一种临时的手段,如果您仅仅是暂时需要通过http代理使用apt-get,您可以使用这种方式.在使用apt-get之前,在终端中输入以下命令(根 ...
- document.visibilityState 监听浏览器最小化
document.hidden:表示页面是否隐藏的布尔值.页面隐藏包括 页面在后台标签页中 或者 浏览器最小化 (注意,页面被其他软件遮盖并不算隐藏,比如打开的 sublime 遮住了浏览器). do ...
- 解决Devexpress ChartControl的CalcHitInfo当中SeriesPoint为Null的问题
Winform程序 ChartControl的RuntimeHitTesting属性一定要设为True. Line Series markers的Visible一定要弄成True.CalcHitInf ...
- vue生成路由实例
一.vue路由https://router.vuejs.org/zh-cn/1.bower下载vue-routervue的里的链接 <router-link to="/home&quo ...