oracle查看联机日志,oracle联机日志和归档日志
联机日志文件又叫重做日志文件,记录了对数据库修改的信息,包括用户对数据修改和数据库管理员对数据库结构的修改,一个oracle实例有一组或多组联机日志,每组至少包含1个或者多个日志成员,这里要多个日志成员的原因是防止日志文件组内某个日志文件损坏后及时提供备份,所以同一组的日志成员一般内容信息相同,但是存放位置不同。lgwr进程负责将数据写入日志文件,如果第一个日志文件被填满时,会切换到下一组日志文件,如果所有的日志文件都填满,并且日志操作模式为归档模式,lgwr进程开始等待归档进程将日志写入到归档日志中【归档日志是不同于联机日志的另一堆文件,归档日志文件可以看成是联机日志文件的累积】,然后覆盖当前日志文件再继续写入,如果日志操作模式为非归档模式,则直接覆盖日志文件。
在Oracle数据库中,执行数据修改操作后,并不是马上写入数据文件,而是首先生成重做信息,并写入SGA中的一块叫LOG_BUFFER的固定区域,LOG_BUFFER有一定的触发条件,当满足触发条件后,会有相应进程将LOG_BUFFER中的内容写入数据块中。
oracle联机日志作用:
1、主要用来记录对数据库的改变,防止数据丢失。
2、为了数据库操作快速反应。查看数据库归档模式:
SQL> select name,log_mode from v$database;
NAME LOG_MODE
--------- ------------
ORCL NOARCHIVELOG
查询数据库联机日志文件组:
SQL> select group#,bytes,archived,status from v$log;
GROUP# BYTES ARCHIVED STATUS
---------- ---------- -------- ----------------
1 52428800 NO CURRENT
2 52428800 NO INACTIVE
3 52428800 NO INACTIVE
4 5242880 NO INACTIVE
ARCHIVED 日志操作模式:NO表示为非归档模式,YES表示为归档模式
联机日志文件状态:
UNUSED : 表示该联机日志文件组对应的文件还从未被写入过数据,通常刚刚创建的联机重做日志文件组会显示成这一状态。当日志切换到这一组时,就会改变状态。
CURRENT:表示当前正在使用的日志文件组。该联机日志组是活动的。当前Oracle数据库正在使用的联机日志文件组。
ACTIVE :表示该组是活动的但不是当前组,实例恢复时需要这组日志。如果处于这一状态,表示虽然当前并未使用,不过该文件中内容尚未归档,或者文件中的数据没有全部写入数据文件,一旦需要实例恢复,必须借助该文件中保存的内容。
INACTIVE :表示实例恢复已不再需要这组联机日志组了。表示对应的联机日志文件中的内容已被妥善处理,该组联机重做日志当前处于空闲状态。
CLEARING:表示该组日志文件正被重建(重建后该状态会变成UNUSED)。CLEARING_CURRENT:表示该组日志重建时出现错误。
查看联机日志文件:SQL> select * from v$logfile;
GROUP# STATUS TYPE MEMBER IS_RECOVERY_DEST_FILE
---------- ------- ------- -------------------------------------------------------------------------------- ---------------------
3 ONLINE /u01/oradata/orcl/redo03.log NO
2 ONLINE /u01/oradata/orcl/redo02.log NO
1 ONLINE /u01/oradata/orcl/redo01.log NO
4 ONLINE /u01/flash_recovery_area/ORCL/onlinelog/o1_mf_4_9bch1wfl_.log YES
4 ONLINE /oraclelog/redo04.log NO
创建联机日志文件组:
SQL> alter database add logfile group 4 size 5M;
Database altered
删除联机日志文件组:注意不能删除正在活动的文件组(即CURRENT、ACTIVE状态的日志文件)
SQL> alter database drop logfile group 4;
Database altered
为日志组添加日志文件:
SQL> alter database add logfile member '/u01/oradata/orcl/redo04.log' to group 4;
Database altered
日志文件大小由日志文件组设定的
日志切换:alter system switch logfile;
日志切换就是停止写当前日志组,转而写另外一个新的日志组、系统可以自动切换,也可以手工切换。当发生SWITCH LOGIFLE时,系统会在后台完成CHECKPOINT的操作。CHECKPOINT是一个事件,它用于减少instant recovery的时间.当CHECKPOINT发生时,它会触发DBWR进程,把database buffer中变化了的数据写入数据文件,同时chkp进程更新control file和datafile header,以使它们保持一致。检查点其实是一个后台进程,用来保证所有修改过的数据库缓冲区的东西都写入数据库文件。它由参数LOG_CHECKPOINT_TIMEOUT和LOG_CHECKPOINT_INTERVAL来决定。检查点完成后,系统将更新数据库头和控制文件,也保证数据库的同步。这里主要体现在一个系统改变号上SCN(也叫检查点号)。它分别出现在v$log表的FIRST_CHANGE#列和V$DATAFILE的CHECKPOINT_CHANGE#列还有V$DATABASE的CHECKPOINT_CHANGE#上。 只要说明三个值相同,那么数据库就没有不同步的现象。否则就要进行介质恢复。这里可以通过日志切换改变新的检验点号。当然引起SCN改变的情况还有很多。
控制日志文件切换时间间隔:
SQL> show parameter archive_l;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 0 表示不使用时间间隔,最大7200
log_archive_local_first boolean TRUE
修改联机日志文件存放目录
1.关闭数据库:shutdown immediate
2.移动联机日志文件到指定目录:mv /u01/oradata/orcl/redo04.log /oraclelog
3.启动数据库:startup mount
4.修改联机日志文件:
SQL> alter database rename file '/u01/oradata/orcl/redo04.log' to '/oraclelog/redo04.log';
Database altered.
5.测试:
SQL> select * from v$logfile;
Warning: connection was lost and re-established
GROUP# STATUS TYPE MEMBER IS_RECOVERY_DEST_FILE
---------- ------- ------- -------------------------------------------------------------------------------- ---------------------
3 ONLINE /u01/oradata/orcl/redo03.log NO
2 ONLINE /u01/oradata/orcl/redo02.log NO
1 ONLINE /u01/oradata/orcl/redo01.log NO
4 ONLINE /u01/flash_recovery_area/ORCL/onlinelog/o1_mf_4_9bch1wfl_.log YES
4 ONLINE /oraclelog/redo04.log NO
oracle查看联机日志,oracle联机日志和归档日志相关推荐
- Oracle Database 12c RMAN全量+增量备份+归档日志恢复详解
Oracle可以非常方便的把数据库恢复到具体某个时间的状态,而且还支持全备和多级增备,备份无需停止应用服务.比起DB2需要手动逐级恢复增量备份和归档日志,RMAN是非常简单好用的数据库商业解决方案. ...
- oracle 查看tns状态,oracle for windows 监听问题之TNS-12545
操作系统版本:windows server 2012R2 数据库版本:oracle 11.2.0.1 问题描述:在一vmware虚拟机上搭建的windows server 2012R2,然后在wind ...
- oracle 查看dba账户,Oracle DBA常用查询
1. 查询系统所有对象 select owner, object_name, object_type, created, last_ddl_time, timestamp, status from d ...
- oracle查看列属性,oracle查询列属性
oracle 动态查询列,查看oracle数据库的表名和列名,oracle查询列名,oracle查询列属性 oracle 查询动态列,查看oracle数据库的表名和列名,oracle查询列名,orac ...
- oracle备库归档文件没有应用,主库拷贝归档日志过备库,无法应用
lfree 发表于 2016-6-12 08:45 catalog start with 'E:\oracle\archivelog\orcl'; 结果贴上来. 文件名: E:\ORACLE\ARCH ...
- oracle查看所有报表,Oracle Report Viewer 以及怎么查看Oracle 报表
Oracle Report Viewer 以及如何查看Oracle 报表 Oracle Report Viewer 以及如何查看Oracle 报表 今天领导提出了个问题,如何查看Oracle 报表输出 ...
- oracle 查看统计情报,Oracle 查看收集统计信息
-- Start 统计信息相当于情报,对 Oracle 至关重要,如果统计信息不准确,Oracle 就会做出错误的判断.那如何查看统计信息呢?试一试下面的 SQL 吧. -- 查看表统计信息 sele ...
- oracle 查看 用户密码,oracle 查看用户密码的修改时间
技术使用场景:今天在排查一个系统问题的时候,应用层面判断没有问题,实在没办法认为应该是数据库相应的用户被修改了,因此就查看相应数据库帐号是否被修改:(这种场景是在不知道数据库密码的情况下执行的,如果知 ...
- oracle查看用户路径,oracle 查看用户的表空间,表空间路径,角色,权限
查看当前用户的缺省表空间 select username,default_tablespace from user_users; --XUSER XUSER_DATA 查询表空间 含临时表空间 sel ...
- oracle 查看用户状态,Oracle数据库查看用户状态
一.当前ORACLE用户的状态可查看视图DBA_USERS;一般情况下在使用的正常用户均处于OPEN状态. select username,account_status from dba_users; ...
最新文章
- Ubuntu操作系统安装之开发人员必备
- Windows 环境下载安装Docker
- 《数据结构》知识点Day_04
- 12.Linux:exec函数族
- Redis常见面试题详解
- ubuntu下mysql5.7安装教程_Ubuntu 16.04 上安装 MySQL 5.7 教程
- FileItem 出现部分中文乱码解决办法
- 学习PHP-感谢帅哥分享O(∩_∩)O~
- jboss下载和安装
- ps太卡怎么办?几步帮您解决问题
- 微信查好友单删检测方法,无打扰,快来学
- 计算机电缆国家标准是什么,电线电缆国家标准-计算机电缆(电压等级:0.45/0.75KV,企标)...
- 河海大学计算机信息学院2013年考研录取名单,河海大学地学院2013年考研录取名单...
- 江西理工大学校园网开机自动连接,断网自动重连
- LSV打印并制作城市地图教程 还可以做分布图、标注图
- Java整合Jsonpath解析Json字符串
- 【算法刷题日记之本手篇】左右最值最大差与顺时针打印矩阵
- 如何从一根普通八芯网线如何分出电话线和网络线?
- 隐马尔可夫(HMM)、前/后向算法、Viterbi算法 再次总结
- 浅谈云函数的代理IP利用面
热门文章
- 线性霍尔传感器SS495、A1308、A1302
- 基于“飞桨”的深度学习智能车
- 2021西南位育高考成绩查询,上海近40所高中2020高考录取情况汇总!
- java中mypoiexception_Java中使用POI读取大的Excel文件或者输入流时发生out of memory异常参考解决方案...
- linux 脚本 ,shell中的与
- matlab 工具箱application compiler的作用_matlab机器人工具箱下载与使用
- affectnet数据集_处理表情识别中的坏数据:一篇CVPR 2020及两篇TIP的解读
- python ln2怎么写_Python2和3切换默认
- tp5查询字段相加_tp5 sum某个字段相加得到总数的例子
- flask_restplus的fields中怎么定义字典_Quora | 成功的定义是什么?