首页 > 数据库 >oracle11g 联机重做日志、归档日志、日志文件组以及日志文件操作

oracle11g 联机重做日志、归档日志、日志文件组以及日志文件操作

时间:2022-11-29 15:37:25浏览次数:61  
标签:文件 联机 log 归档 日志 oracle11g 重做

文章目录

 

一.归档方式

1.1 联机重做日志、归档日志概念

  oracle数据库有联机重做日志,用于记录对数据库所做的修改,包括对表进行的DML(INSERT、UPDATE、DELETE)操作以及DDL操作、对系统所做的改变等。
  数据库通过LGWR进程把日志缓冲区中的重做条目写入联机日志文件(redo01.log等)中。用户修改记录并commit后,数据库宕机,重新启动数据库,需要用到redo01.log等。对于DML操作, 通过前滚、后滚,只要用户提交了数据记录,就不会丢失,只要没有提交,就不会保存。
  由于联机重做日志文件的重要性,因此以组的方式管理日志文件,数据库中至少有2个日志文件组,每个日志组中所有日志成员的内容完全相同,如果一个日志文件损坏,只要组内的其他日志文件仍然可用,该组依然对外提供日志操作,不会宕机。
  oracle中日志文件分为在线日志文件(即联机重做日志)和归档日志两类。归档日志是对在线日志文件的历史备份

在线日志查看:

select * from V$LOGFILE;
  • 1

在这里插入图片描述

1.2 工作模式

  在线日志按照组来工作,每一个组有多个文件。日志组按照循环方式进行工作,在oracle中至少有2个日志组。当一个联机重做日志组1被写满时,就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又发生日志切换,去写联机重做日志组1,循环往复。

  如果数据库处于非归档模式,联机重做日志在切换时就会丢弃。 而在归档模式下,当发生日志切换的时候, arch进程会把被切换的日志进行归档。例如,当前使用联机重做日志1被写满时,发生日志切换,开始写联机重做日志2,归档模式下,联机重做日志1的内容会被拷贝到另一个指定目录下。这个目录被称为归档目录,拷贝的文件被称为归档重做文件。

  数据库在归档模式下运行时才可以进行灾难性恢复。(在生产环境中建议启用归档模式,若实际环境中
运行稳定、没有太多日志产生且对实时性要求不高,可采用逻辑备份方式,保证数据库安全)

注: Oracle提供的逻辑备份与恢复的命令有exp/imp,expdp/impdp,表级复制(create table
目标表 as select * from 源表)。Oracle逻辑备份没有支持增量备份;对数据恢复也是非一致性的。
所以一般都是用于数据迁移的工作。

在这里插入图片描述

查看归档模式:
方式一:

 SELECT log_mode from v$database;
  • 1

在这里插入图片描述
方式二:

在sqlplus中运行

archive log list
  • 1

在这里插入图片描述

1.3 数据库恢复

  非归档日志方式可避免实例故障,但无法避免介质故障,在此方式下,数据库只能实施冷备份;

  归档日志方式产生归档日志,用户可以使用归档日志完全恢复数据库。

1.4 归档模式

(1)启用

关闭数据库:

shutdown immediate;
  • 1

在这里插入图片描述
启动数据库到mount状态(控制文件已经打开,用户信息仍然不能查看):

startup mount;
  • 1

在这里插入图片描述
配置归档模式并打开数据库:

alter database archivelog;
alter database open;
  • 1
  • 2

在这里插入图片描述
查看归档状态

archive log list
  • 1

在这里插入图片描述

注: 存档终点,即联机日志切换时,被拷贝到此目录下

(2)查看归档文件被存放的路径以及存放文件的容量:

在这里插入图片描述

(3)手动进行日志切换:

alter system switch logfile;
  • 1

在这里插入图片描述

(4)log_archive_dest参数,查看归档目录路径和状态:

在这里插入图片描述

(5)修改归档目录路径 log_archive_dest_n

alter system set log_archive_dest_1='location=D:\software\arch1\';
  • 1

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

修改归档目录后,手动归档,原来的归档路径不再存储归档日志:
在这里插入图片描述
在这里插入图片描述

(6)设置多个归档目录,每个归档目录存储的内容是一样的

alter system set log_archive_dest_2='location=D:\software\arch2\';
  • 1
alter system set log_archive_dest_3='location=D:\software\arch3\';
  • 1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(7)修改归档目录状态 defer (表示不可用) enable(表示可用)

alter system set log_archive_dest_state_1='defer';
  • 1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(8)从10g开始 log_archive_dest被废弃,只能使用log_archive_dest_n

在这里插入图片描述
在这里插入图片描述

1.5 关闭归档模式

调整数据库从归档模式到非归档模式,按照上诉步骤再执行一遍:

shutdown immediate;
startup mount;
alter database noarchivelog;
alter database open;
  • 1
  • 2
  • 3
  • 4

二.日志文件组

2.1联机日志文件组四种常见状态:

  current:表示当前使用的联机日志文件组;

  active:表示这个日志文件组中,所记录的重做记录所对应的内存中的脏数据块还没有被完全写入数据文件中,实例恢复时需要这组日志;(database buffer cache做了修改但还没有写到datafile的数据,只要没有写入数据文件,不管是否提交,都可以称为脏数据)

  inactive:表示这个日志文件组中,所记录的重做记录所对应的内存中的脏数据块已经被写入到数据文件中,实例恢复时不需要这组日志;

  unused:表示还没有被使用过
在这里插入图片描述
在这里插入图片描述

2.1联机日志文件组操作

(1)给日志文件组增加文件

alter database add logfile member 'D:\software\oracle\oradata\orcl\redo02a.log' to group 2;
  • 1

在这里插入图片描述
在这里插入图片描述
  对于日志文件组2,D:\SOFTWARE\ORACLE\ORADATA\ORCL\REDO02A.LOG和D:\SOFTWARE\ORACLE\ORADATA\ORCL\REDO02.LOG 文件大小和内容将会完全相同

(2)创建日志文件组

不同日志组的大小可以不同,但同一个日志组内所有日志文件大小必须相同

alter database add logfile group 4 'D:\software\oracle\oradata\orcl\redo04.log' size 10m;
  • 1

在这里插入图片描述
在这里插入图片描述

(3)清除联机日志文件组

alter database clear logfile group 1;
  • 1

在这里插入图片描述
  清除联机日志组内所有成员,适用于日志文件组损坏了部分成员的情况,注意被清除的日志文件组必须视inactive状态,清除后的日志组状态变为unused

标签:文件,联机,log,归档,日志,oracle11g,重做
From: https://www.cnblogs.com/cinemaparadiso/p/16935493.html

相关文章

  • 关闭 ORACLE trace 日志功能
    关闭ORACLEtrace日志功能altersystemsettrace_enabled=falseselect*fromv$parameterwhereNAMElike'%trace%'; 关闭ORACLEtrace日志功能altersystem......
  • java如何高效地读取一个超大文件?(四种方式分析对比)
    读取大文件的四种方式本地压缩了一个文件夹,大概500M左右。虽然不是很大但是,相对还可以。方法1:Guava读取Stringpath="G:\\java书籍及工具.zip";Files.readLines(new......
  • Django-5.1静态文件-笔记
    静态文件项目中的CSS、图片、js都是静态文件。一般会将静态文件放到一个单独的目录中,以方便管理。在html页面中调用时,也需要指定静态文件的路径,Django中提供了一种解析的方......
  • ABAP FTP链接文件服务器
    *&---------------------------------------------------------------------**&ReportYBO_FTP_TEST*&------------------------------------------------------------......
  • 文件图片上传
    [java]​​viewplain​​​​copy​​package  importimportimportimport  importimportimportimportimportimportimportimportimportimport  impor......
  • WebAPI如何提供下载文件功能
    提问WebAPI如何提供下载文件功能回答//开启目录浏览服务builder.Services.AddDirectoryBrowser();//指定文件目录app.UseFileServer(newFileServerOptions{Fi......
  • KubeSphere 多行日志采集方案深度探索
    作者:大飞哥,视源电子运维工程师,KubeSphere用户委员会广州站站长采集落盘日志日志采集,通常使用EFK架构,即​​ElasticSearch​​,​​Filebeat​​,​​Kibana​​,这是在主......
  • KubeSphere 多行日志采集方案深度探索 
    作者:大飞哥,视源电子运维工程师,KubeSphere用户委员会广州站站长采集落盘日志日志采集,通常使用EFK架构,即ElasticSearch,Filebeat,Kibana,这是在主机日志采集上非常成......
  • C#使用Windows Media Player播放音频文件
    利用WindowsMediaPlayer播放音频C#程序中:用WindowsMediaPlayer播放声音文件和视频文件a.工具箱->组件->(右键)选择项->COM组件->WindowsMediaPlayeb.把WindowsM......
  • Java文件下载
    Java文件下载的几种方式publicHttpServletResponsedownload(Stringpath,HttpServletResponseresponse){try{//path是指欲下载的文件的路径。Filefile=newFile(p......