日志文件

oracle日志文件分为两种:

  • 重做日志文件(redo),或者称为“在线重做日志”
  • 归档日志文件(arch),或者称为“归档重做日志”

在线重做日志文件

全称:Online Redo Log File。

用来记录数据发生事务transaction的信息以及Oracle内部行为引起的数据库变化信息。

在数据库恢复时,可以从重做日志中读取原来的数据信息并应用以还原。

如果对表空间设置NOLOGGING属性时,那么对表空间中所有的表进行DML操作都不会产生日志信息

查看重做日志文件SQL语句

select * from v$logfile;

例子:

SQL> col member for a48;
SQL> select * from v$logfile; GROUP# STATUS TYPE MEMBER IS_
---------- ------- ------- ------------------------------------------------ ---
3 ONLINE /data/u01/app/oracle/oradata/orcl/redo03.log NO
2 ONLINE /data/u01/app/oracle/oradata/orcl/redo02.log NO
1 ONLINE /data/u01/app/oracle/oradata/orcl/redo01.log NO

查看日志文件的组号、状态、大小

-- GROUP# 日志文件组号
-- MEMBERS 日志文件组内的成员数
select GROUP#,MEMBERS,ARCHIVED,STATUS,BYTES from V$log
SQL> select GROUP#,ARCHIVED,STATUS from V$log;

    GROUP# ARC STATUS
---------- --- ----------------
1 YES INACTIVE
2 YES INACTIVE
3 NO CURRENT

其中GROUP#就是组ID、STATUS就是该日志组的状态,CURRENT表示当前日志进程正在使用日志组。INACTIVE就是非活动状态。

日志文件组和文件组成员

为了安全,每个oracle实例用一个日志线程来记录变化。

日志线程由多个日志组(group)构成,而日志组中可以由一个或者多个日志成员构成。

创建新的日志文件组

建议:一个oracle实例至少需要两组以上的日志文件。

默认情况下实例在创建后会建立3组日志文件。每组里面只有一个日志文件(也就是每组里面只有一个成员)。

- 添加日志组,ID为4,文件大小为50M。
alter database add logfile group 4 '/data/u01/app/oracle/oradata/orcl/redo04.log' size=50m;

向日志组中添加新的日志文件成员

每个日志组中建议有两个日志成员,并且日志成员在不同位置比较好。

- 向日志组ID为4的中添加日志文件成员redo04c。
alter database add logfile member '/data/u01/app/oracle/mylog/redo04c.log' to group 4; alter database add logfile member '/mylognew/redo04b.log' to group 4;

删除日志组

- 删除日志组ID为4的日志组
alter database drop logfile group 4

归档日志文件

oracle运行可以分为两种模式:归档模式 和 非归档模式(默认)。

  • 非归档模式:在系统运行期间产生的日志信息被写满后会覆盖原信息。
  • 归档模式:在系统运行期间产生的日志信息被写满后会先由归档程序arch将信息写出到归档日志文件中去保留,以便后续查找恢复。

查看系统是否开启了归档模式:

select name,log_mode from v$database;

; 或者 

archive log list

启用/关闭归档模式

shutdown immediate;

startup mount;

- 启用归档模式
alter database archivelog; - 关闭归档模式
alter database noarchivelog; - 打开数据库
alter database open; - 查看系统是否启动归档模式
archive log list;

归档日志存放目录

关键字USE_DB_RECOVERY_FILE_DEST表示快速恢复区。

如果配置了FLASH_RECOVERY(通过设置参数DB_RECOVERY_FILE_DESTDB_RECOVERY_FILE_DEST_SIZE参数),且没有指定任何本地归档目的地,数据库会自动选择快速恢复区域作为本地归档目的地,并将LOG_ARCHIVE_DEST_1设置为USE_DB_RECOVERY_FILE_DEST。

因此,归档日志存放路径和存放的目录大小收到以下两个参数影响:

SQL> show parameter DB_RECOVERY

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /data/u01/app/oracle/flash_rec
overy_area
db_recovery_file_dest_size big integer 3882M

如果需要修改flash recovery的大小,需要执行以下命令:

shutdown immediate;
startup mount;
- 将大小改为10G
alter system set db_recovery_file_dest_size = 10G;
alter database open

实际一般我们开启归档后,都会显示设置LOG_ARCHIVE_DEST_n参数去指定规划的归档目录。

n为1 ~ 31之间的整数。1到10可用于本地或远程位置。11至31只适用于远程位置。

具体路径可以是文件系统目录、ASM磁盘组、远端(通过网络服务名)。

比如:

LOG_ARCHIVE_DEST_1 = 'LOCATION=/disk1/arc'

LOG_ARCHIVE_DEST_2 = 'LOCATION=+DGROUP1/orcl/arc_1'

LOG_ARCHIVE_DEST_3 = 'SERVICE=standby1'

LOG_ARCHIVE_DEST_n = 'LOCATION=USE_DB_RECOVERY_FILE_DEST'

归档模式的其他参数设置

设置归档日志的存储路径。

log_archive_dest_n,类型:string

设置改归档日志存储路径是否可用,类型:string,可用值:

log_archive_dest_state_n

  • ENABLE :启用
  • DEFER:推迟使用,也就是禁用。
  • ALTERNATE:表示是备用的。备用目的地的可用性状态是DEFER。如果它的父目标失败,备用服务器的可用性状态变为ENABLE。

log_archive_format

设置归档日志的存储文件格式,默认为:%t_%s_%r.dbf

手动切换日志

- 手动切换,看看日志是否归档成功
alter system switch logfile;

查看和修改归档日志目录

SQL>
show parameter log_archive_dest;

提前创建好新目录和赋权

su - root
mkdir /oracle_archive_log_dir
chown -R oracle:oinstall /oracle_archive_log_dir
su - oracle

修改参数:

sqlplus / as sysdba
alter system set log_archive_dest_1='LOCATION=/oracle_archive_log_dir';

手动切换日志看看是否成功:

- 手动切换,看看日志是否归档成功
alter system switch logfile;

查看当前归档日志:(其实可以直接看文件夹即可)

SQL> select name from v$archived_log;

NAME
--------------------------------------------------------------------------------
/data/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2022_07_27/o1_mf_1_7_kg
1zts41_.arc /data/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2022_07_27/o1_mf_1_8_kg
2lln6n_.arc /data/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2022_07_28/o1_mf_1_9_kg
40csxy_.arc /oracle_archive_log_dir/1_10_1111090312.dbf

删除归档日志

rman target/  (只安装了一个oracle10g数据库) ;否则,指定用户名/密码@服务名: rman target mes/mes@CTLMES

命令>
crosscheck archivelog all; (列出归档日志信息) 命令>delete expired archivelog all; (将上述列出的归档日志删除) 也可删除指定过期文档 delete archivelog until time 'sysdate-3'; 这里删除的是3天以前的所有文档,即保留3天。

RAC集群开启arch归档参考:

Oracle重做、归档日志的更多相关文章

  1. Linux Oracle删除归档日志

    今天遇到Oracle报这样的错:ORA-00257 查看了下,原来是Oracle的归档日志满了,解决方案两个 一:增加归档日志大小 二:删除无用的归档日志(我们选择这个方案) 什么也不说了Linux下 ...

  2. Windows平台使用RMAN命令自动删除Oracle过期归档日志的方法

    自动删除Oracle过期归档日志的思路如下: 1.编写自动执行的bat脚本文件: 2.Windows设置定期执行计划 OracleArchLogClear.bat D:/Oracle/product/ ...

  3. Oracle 10g 归档日志满了的解决办法

    如果Oracle的归档日志满了,应用连接数据库就会出错,这时需要手工删除过期的归档日志,方法如下: 1.指定数据库实例 $ export ORACLE_SID=db1 2.进入rman $ rman ...

  4. 如何检查oracle的归档日志及空间占用率,清除归档日志

    如何解决“归档日志已满问题” 问题描述: 所用数据库为 Oracle 10g ,模式为归档模式,oracle 系统默认的归档空间为2G,由于日志过多,空间写满,数据库的redo文件不能归档,而出现or ...

  5. Oracle的归档日志

    归档模式的特点和要求 在归档模式下,当LGWR后台进程的写操作从一个重做日志组切换到另一个重做日志组后,归档写后台进程(ARCH/ARCRn)就会将原来的重做日志的信息复制到归档日志文件中. 可以把归 ...

  6. oracle 启用归档日志

    Oracle可以运行在2种模式下:归档模式(archivelog)和非归档模式(noarchivelog) 归档模式可以提高Oracle数据库的可恢复性,生产数据库都应该运行在此模式下,归档模式应该和 ...

  7. oracle修改归档日志路径与格式

    一.查询数据库是否开启归档模式: SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled ...

  8. oracle启用归档日志

    一.开启归档 1.查看归档信息 SQL> archive log list Database log mode No Archive Mode Automatic archival Disabl ...

  9. oracle删除归档日志

    查看归档模式: SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive ...

  10. oracle 开启归档日志模式

    摘自:https://www.jianshu.com/p/f8c0e9309ce2 在默认情况下,oracle数据库是在非归日志档模式中创建的,在非归档日志模式中,进行日志切换时会直接重写redo l ...

随机推荐

  1. CodeForces 1343D Constant Palindrome Sum

    题意 多组样例 给一个长度为\(n\)(\(n\)一定为偶数)的数组\(a[]\),给一个正整数\(k\),保证数组内元素为小于等于\(k\)的正整数,你可以每次将数组的一个元素变为小于等于\(k\) ...

  2. Tcp/Ip协议 A类B类C类D类 地址

    TCP(传输控制协议):负责和远程主机连接  Ip(网际协议):负责寻址,使报文发送到其该在的地方 Ip地址:是TCP/IP的网络层用以标识网络中主机的逻辑地址,可以唯一标识Interent中的一台主 ...

  3. POWERBI_1分钟学会_连续上升或下降指标监控

    一:数据源 模拟数据为三款奶茶销量的日销售数据源,日期是23.8.24-23.8.31.A产品为连续7天,日环比下降,B产品为连续3天,日环比下降,C产品为连续2天,日环比下降. 二:建立基础度量值 ...

  4. SQLPLUS使用及Oracle表空间设定自动扩展

    起因:ERP不能登陆,Oracle无法访问,报错如下 后联系鼎捷se提供以下解决方案: 该问题是由于Oracle审计表AUD$数据过大导致数据库异常,现已登录DB服务器使用oracle账号执行语句tr ...

  5. linux的认知与基本命令

    一.linux的了解 1. 什么是Linux?       a,Linux是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布.它主要受到Mi ...

  6. Docker 日志自动轮转和清理配置

    设置 Docker 日志大小和自动删除旧日志:通过配置 Docker 使用 json-file 日志驱动,同时使用 logrotate 工具,可以设置日志的最大大小(例如100MB),并在达到该大小时 ...

  7. CF1676G

    题目简化和分析: 求一颗子树的黑白两数是否相等. 我们设黑 \(1\),白 \(-1\),若某一棵子树的权值为 \(0\),说明此刻的黑白个数相等,贡献加一. 从根搜索,每次将值传递给父亲,判断父亲此 ...

  8. 深入理解 Python 虚拟机:协程初探——不过是生成器而已

    深入理解 Python 虚拟机:协程初探--不过是生成器而已 在 Python 3.4 Python 引入了一个非常有用的特性--协程,在后续的 Python 版本当中不断的进行优化和改进,引入了新的 ...

  9. ubuntu系统安装到U盘便捷启动

    1.前言 实现u盘系统即插即用,便捷带走.这里需要使用到VM虚拟机进行安装,这里选择64位的ubuntu系统. 2.运行VM虚拟机 以管理员运行VM虚拟机,创建一个ubuntu系统,然后选中相关的镜像 ...

  10. Java 7之基础 - 强引用、弱引用、软引用、虚引用(转)

    载自:http://blog.csdn.net/mazhimazh/article/details/19752475 1.强引用(StrongReference) 强引用是使用最普遍的引用.如果一个对 ...