`

更改ORACLE归档路径及归档模式

 
阅读更多

在ORACLE10g和11g版本,ORACLE默认的日志归档路径为闪回恢复区($ORACLE_BASE/flash_recovery_area)。对于这个路径,ORACLE有一个限制,就是默认只有2G的空间,而且不只是归档日志的默认路径,也是备份文件和闪回日志的默认地址,这样的话归档日志锁使用的空间就达不到2G,在没有设置好这个路径大小的情况下,很多系统都遇到过归档日志满而无法归档导致数据库夯住的问题,可以使用下面的SQL语句去查看归档信息。

SQL> archive log list
数据库日志模式             非存档模式
自动存档             禁用
存档终点            USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列     321
当前日志序列           326。

上面的存档终点USE_DB_RECOVERY_FILE_DEST默认就是闪回恢复区($ORACLE_BASE/flash_recovery_area),可以通过下面的SQL查看闪回恢复区的信息。

SQL> show parameter db_recover
NAME                        TYPE         VALUE
--------------------------  ----------- ----------------------------
db_recovery_file_dest       string      D:\oracle\flash_recovery_area
db_recovery_file_dest_size  big integer   2G

通过上面的SQL结果可以看到,闪回恢复区为D:\oracle\flash_recovery_area,大小为2G,也可以通过查询v$recovery_file_dest视图查看闪回恢复的限制信息。

SQL> select name,SPACE_LIMIT,SPACE_USED from v$recovery_file_dest;
NAME                           SPACE_LIMIT SPACE_USED
------------------------------ ----------- ----------
D:\oracle\flash_recovery_area   2147483648   21225472

默认情况下,归档日志会存放到闪回恢复区(D:\oracle\flash_recovery_area)内,如果闪回恢复区已经使用到2G,归档日志就有可能无法继续归档,数据库夯住,通常的解决方法是增大闪回恢复区,可以用以下SQL实现。

SQL> alter system set db_recovery_file_dest_size=3G;
系统已更改。

即使用这种方法解决的当前燃眉之急,虽然闪回恢复区ORACLE会自动管理,如果闪回恢复区空间不足就会清理掉没用的数据,但是如果备份策略不是很完善,数据库非常繁忙的情况下,还有可能遇到这种情况,通常需要修改归档日志的路径,将归档日志放到其他不受限制的路径下来解决这个问题,可通过下面的SQL来修改归档日志的存放路径。

SQL> alter system set log_archive_dest_1='location=D:\arch';
系统已更改。

然后将数据库启动到MOUNT状态,将数据库修改为归档模式后建数据库启动到OPEN状态。

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
数据库装载完毕。
SQL> alter database archivelog;
数据库已更改。
SQL> alter database open;
数据库已更改。

再次查看数据库的归档情况。

SQL> archive log list
数据库日志模式            存档模式
自动存档             启用
存档终点            D:\arch
最早的联机日志序列     321
下一个存档日志序列   326
当前日志序列           326

可以通过切换日志,查看归档路径下是否有归档日志产生来验证归档路径设置是否正确,可以通过下面的命令切换日志。

SQL> alter system switch logfile;
系统已更改。

查看归档路径(D:\arch)下是否有归档路径产生。

D:\arch>dir/b
ARC0000000326_0764368160.0001

可以看到在D:\arch路径下已经产生了归档日志,归档日志的名字受log_archive_format参数限制,可以通过下面的命令查看。

SQL> show parameter log_archive_format
NAME                   TYPE         VALUE
---------------------- ------------ ------------
log_archive_format     string       ARC%S_%R.%T

上面产生的归档文件名字为ARC0000000326_0764368160.0001,%S也就是0000000326是日志切换号,也就是上文archive log list中的当前日志序列,%R是场景号,%T是线程号,可以理解成是节点号,如果不是RAC环境,%T都是1,还可以在log_archive_format参数值中加上%D,%D是16进制标识的DBID,如下演示:

SQL> alter system set log_archive_format='ARC%S_%R.%T_%D.log' scope=spfile;
系统已更改。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
数据库装载完毕。
数据库已经打开。
SQL> alter system switch logfile;
系统已更改。

查看归档日志的名字,5AA14A62就是16进制的DBID。

D:\arch>dir/b
ARC0000000326_0764368160.0001
ARC0000000327_0764368160.0001_5AA14A62.LOG

分享到:
评论

相关推荐

    oracle RAC集群修改归档日志路径.docx

    确保在修改归档路径后,这些策略也能适应新的配置。此外,监控归档日志空间使用情况并定期清理旧的归档日志以防止空间耗尽也是必要的。 总之,Oracle RAC集群中修改归档日志路径是一项关键任务,它涉及到数据库的...

    oracle的归档模式

    Oracle的归档模式是数据库管理中的一个重要概念,尤其在企业级数据库应用中,它关乎数据的安全性和可恢复性。在Oracle数据库系统中,联机重做日志(Online Redo Log)是记录数据库事务操作的关键组件,它保存了对...

    oracle11g开启归档模式及修改归档目录归类.pdf

    本文档主要讲解了如何在Oracle 11g中开启归档模式,并且如何修改归档日志文件的存储位置,这对于数据库的备份和恢复有着重要的意义。 归档模式是Oracle数据库中的一个关键功能,它确保数据库中所有的修改操作都被...

    oracle 归档模式

    ### Oracle归档模式详解 #### 一、Oracle归档模式简介 Oracle数据库的归档模式是一种数据保护机制,主要用于在数据库出现故障时能够快速恢复数据。归档模式下,数据库的所有事务日志(redo log)都会被归档保存,这...

    oracle RAC环境开启归档模式

    归档模式允许将已提交的数据更改记录到归档日志文件中,这些文件可以用于恢复目的。 #### 二、归档模式的重要性 在Oracle RAC环境中开启归档模式对于备份和恢复至关重要。通过启用归档模式,可以在不中断服务的情况...

    oracle数据库中查看、修改归档模式.docx

    在Oracle数据库中,归档模式(Archive Log Mode)是一种重要的日志管理策略,它允许数据库在发生故障时进行更完整的恢复。归档模式下,数据库会将重做日志文件(Redo Log Files)中的事务记录备份到单独的归档日志...

    oracle 归档模式到归档模式的转化

    设置至少需要多少个归档路径成功后才能覆盖在线日志。例如: ```sql log_archive_min_succeed_dest=2 ``` 4. **启动数据库并切换到归档模式** 重启数据库并启用归档模式: ```sql SQL> STARTUP MOUNT SQL> ...

    查看oracle数据库是否归档和修改归档模式

    ### 查看Oracle数据库是否归档和修改归档模式 #### 一、背景介绍 在ORACLE数据库的不同环境中,比如开发环境、测试环境以及生产环境,对于日志模式和自动归档模式的需求各不相同。在开发和测试环境中,通常不会启用...

    打开Oracle数据库的归档模式

    在归档模式下,Oracle数据库提供了更高的数据保护级别,因为所有事务的更改都会被记录在归档日志中,这对于实现数据库的时间点恢复或者在灾难性故障后恢复数据至关重要。不过,归档模式也会增加磁盘空间的需求,因此...

    ORACLE 设置归档名称

    在深入探讨具体操作之前,先来了解一下Oracle归档日志的基本概念: 1. **归档模式**:数据库必须处于归档模式才能启用归档日志。在此模式下,填满的日志组会被归档,而不是被覆盖。 2. **归档日志**:当一个日志组...

    oracle归档日志笔记

    ### Oracle归档日志知识点详解 #### 一、Oracle在线重做日志(Online Redo Log)概述 **在线重做日志(Online Redo Log)**是Oracle数据库的重要组成部分,用于记录所有对数据库所做的更改操作。这些更改包括数据...

    oracle开启归档

    ### Oracle 开启归档模式详解 #### 一、概述 Oracle数据库系统为了保障数据的一致性和安全性,在数据管理方面提供了多种机制,其中一种重要的机制就是归档模式(Archiving Mode)。归档模式允许将已完成的日志文件...

    删除归档日志、更改归档模式

    - 修改数据库参数文件,设置`LOG_ARCHIVE_FORMAT`为归档日志的存储路径和命名规则。 - 挂载数据库:`ALTER DATABASE MOUNT` - 将数据库切换到归档模式:`ALTER DATABASE ARCHIVELOG` - 完全打开数据库:`ALTER ...

    Oracle归档日志空间不足引发的问题及解决方法

    ### Oracle归档日志空间不足引发的问题及解决方法 #### 一、问题概述 在Oracle数据库的日常管理和维护过程中,可能会遇到归档日志空间不足的情况。这种情况一旦发生,不仅会影响到数据库的正常运行,还可能导致...

    删除ORACLE归档日志

    本文将详细解释如何在Windows和Linux系统上使用脚本删除Oracle归档日志,并讨论相关知识点。 首先,删除Oracle归档日志前,我们需要理解以下几个关键概念: 1. **归档模式**:当Oracle数据库运行在归档模式下,...

    oracle归档相关命令及常见问题.pdf

    ### Oracle归档相关命令及常见问题 #### 一、概览 在Oracle数据库管理中,归档模式是一项关键的功能,它允许系统将已使用的重做日志文件存档到一个安全的位置,以便在数据恢复时使用。这不仅有助于提高系统的可靠性...

    ORACLE 10G归档设置

    8. **设置归档路径**:使用`ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=path' SCOPE=SPFILE;`指定归档日志文件的存储位置。默认路径是FLASH_RECOVERY_AREA,根据实际需求可自定义。 9. **打开数据库**:在归档...

    oracle-关闭归档日志.docx

    Oracle 归档日志的关闭和管理 Oracle 归档日志是一种重要的功能,它可以帮助数据库管理员追踪数据库的变更和错误,但是在某些情况下,归档日志可能会占用大量的磁盘空间,影响数据库的性能。因此,了解如何关闭和...

    Centos7.6下Oracle开启归档日志和Rman恢复.docx

    在Oracle数据库中,归档日志模式记录了所有事务的更改,即使在数据库崩溃或硬件故障后,也能确保数据的完整性。要开启归档日志模式,你需要按照以下步骤操作: 1. 使用`sudo`权限赋予普通用户执行特定命令的能力。...

Global site tag (gtag.js) - Google Analytics