Oracle 数据库启用归档日志模式和归档日志删除和生成频率

1.Oracle 数据库启用存档模式以及启用时会发生的情况:

如果第一次安装Oracle 数据库,如果没有修改,默认是 NoArchivelog模式。如果数据库处于 NoArchivelog 模式,则 Oracle 不会归档联机重做日志文件。因此,在线重做日志文件已满时会被覆盖。

如果 Oracle 数据库突然重启或崩溃,那么如果没有旧的重做日志记录,它就无法持续启动。

另一方面,oracle 数据库必须处于 Archivelog 模式,以便我们可以在在线模式下进行完整备份。如果 Oracle 数据库处于 NoArchivelog 模式,则 RMAN 无法接收在线备份。

在这里插入图片描述

生产环境中的数据库必须是Archivelog模式,一般都是Archivelog模式。您可以根据一下查询确认是否是Archivelog模式。

[oracle@MehmetSalih ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Tue Mar 19 17:19:13 2019

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> select log_mode from v$database;

LOG_MODE
------------
NOARCHIVELOG

SQL>

不处于 Archivelog 模式的数据库通过以下步骤进入 Archivelog 模式。

1.数据库始终处于关闭状态。

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>

2.数据库持续关闭后,数据库以挂载模式打开。

SQL> startup mount
ORACLE instance started.

Total System Global Area  534462464 bytes
Fixed Size                  2230072 bytes
Variable Size             339740872 bytes
Database Buffers          184549376 bytes
Redo Buffers                7942144 bytes
Database mounted.
SQL>

3.Mount模式下的数据库如下进入归档模式。

SQL> alter database archivelog;
Database altered.

4.数据库处于归档模式后,打开数据库如下。

SQL> alter database open;
Database altered.

5.如果我们不指定档案的位置,它首先存储db_recovery_file_dest 的默认位置。数据库归档存储的第一个位置是 log_archive_dest_1 参数的位置。我们可以如下调整这个值。

SQL> alter system set log_archive_dest_1='location=/oracle/oradata/ARCH';

System altered.

您可以按照每小时和每天查询并列出日志开关(Archivelog)频率图,如下所示。

select to_char(first_time,'YYYY-MON-DD') day,
to_char(sum(decode(to_char(first_time,'HH24'),'00',1,0)),'9999') "00",
to_char(sum(decode(to_char(first_time,'HH24'),'01',1,0)),'9999') "01",
to_char(sum(decode(to_char(first_time,'HH24'),'02',1,0)),'9999') "02",
to_char(sum(decode(to_char(first_time,'HH24'),'03',1,0)),'9999') "03",
to_char(sum(decode(to_char(first_time,'HH24'),'04',1,0)),'9999') "04",
to_char(sum(decode(to_char(first_time,'HH24'),'05',1,0)),'9999') "05",
to_char(sum(decode(to_char(first_time,'HH24'),'06',1,0)),'9999') "06",
to_char(sum(decode(to_char(first_time,'HH24'),'07',1,0)),'9999') "07",
to_char(sum(decode(to_char(first_time,'HH24'),'08',1,0)),'9999') "08",
to_char(sum(decode(to_char(first_time,'HH24'),'09',1,0)),'9999') "09",
to_char(sum(decode(to_char(first_time,'HH24'),'10',1,0)),'9999') "10",
to_char(sum(decode(to_char(first_time,'HH24'),'11',1,0)),'9999') "11",
to_char(sum(decode(to_char(first_time,'HH24'),'12',1,0)),'9999') "12",
to_char(sum(decode(to_char(first_time,'HH24'),'13',1,0)),'9999') "13",
to_char(sum(decode(to_char(first_time,'HH24'),'14',1,0)),'9999') "14",
to_char(sum(decode(to_char(first_time,'HH24'),'15',1,0)),'9999') "15",
to_char(sum(decode(to_char(first_time,'HH24'),'16',1,0)),'9999') "16",
to_char(sum(decode(to_char(first_time,'HH24'),'17',1,0)),'9999') "17",
to_char(sum(decode(to_char(first_time,'HH24'),'18',1,0)),'9999') "18",
to_char(sum(decode(to_char(first_time,'HH24'),'19',1,0)),'9999') "19",
to_char(sum(decode(to_char(first_time,'HH24'),'20',1,0)),'9999') "20",
to_char(sum(decode(to_char(first_time,'HH24'),'21',1,0)),'9999') "21",
to_char(sum(decode(to_char(first_time,'HH24'),'22',1,0)),'9999') "22",
to_char(sum(decode(to_char(first_time,'HH24'),'23',1,0)),'9999') "23"
from v$log_history group by to_char(first_time,'YYYY-MON-DD');

查询结果:

在这里插入图片描述
可以使用以下命令查询所有存档日志。

[MSD1]/home/oracle $ rman target /

Recovery Manager: Release 18.0.0.0.0 - Production on Mon Mar 9 14:41:02 2020
Version 18.7.0.0.0

Copyright (c) 1982, 2018, Oracle and/or its affiliates.  All rights reserved.

connected to target database: MSD (DBID=2054866743)

RMAN> list archivelog all;

using target database control file instead of recovery catalog
List of Archived Log Copies for database with db_unique_name MSD
=====================================================================

Key     Thrd Seq     S Low Time           
------- ---- ------- - -------------------
3643932 1    456786  A 09-03-2020 10:52:05
        Name: /zfssa/MSDDB/ARCH2/arch_D-MSD_id-2054866743_S-456786_T-1_A-2054879031_dguqleac

3643134 1    456786  A 09-03-2020 10:52:05
        Name: +RECO/MSD/ARCHIVELOG/2020_03_09/thread_1_seq_456786.10371.1034592773
3645414 8    262083  A 09-03-2020 14:37:15
        Name: +RECO/MSD/ARCHIVELOG/2020_03_09/thread_8_seq_262083.28235.1034606329

3645424 8    262084  A 09-03-2020 14:38:48
        Name: +RECO/MSD/ARCHIVELOG/2020_03_09/thread_8_seq_262084.56375.1034606419
RMAN>

2. Oracle 数据库中的归档日志删除到时间

在Oracle数据库中删除归档日志到指定时间
在这里插入图片描述
Delete Archivelog until time

如果数据库处于归档日志模式,则 Oracle 数据库正在归档重做日志组文件。

当重做日志文件被归档时,重做日志文件会被新的重做数据覆盖。但是,如果您不安排任何删除作业,则不会删除或自动删除存档日志

您需要定期删除归档日志,否则您将收到归档程序错误。

Delete Archivelog via RMAN

您可以使用以下查询删除所有存档日志。

RMAN>  delete archivelog all;

Delete Archivelog Until Time Oracle
您可以像以下查询一样删除存档日志直到特定时间(直到时间 1 天前)。

RMAN>  delete archivelog until time 'sysdate -1';

您可以在没有提示(是或否问题)和强制选项的情况下删除所有存档日志。

RMAN> delete noprompt force archivelog all;

您可以删除已备份 1 次到磁带的归档日志。您可以使用 2 或 3 更改 1 次。

RMAN>  delete archivelog all backed up 1 times to SBT_TAPE;

您可以删除已备份 1 次到磁盘的归档日志。

RMAN>   delete archivelog all backed up 1 times to DISK;

您可以删除归档日志直到特定序列选项。

RMAN>   delete archivelog until sequence 9310 thread 1;
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值