`
LJ你是唯一LT
  • 浏览: 244850 次
社区版块
存档分类
最新评论

oracle数据库归档设置

阅读更多
数据库归档设置

1.归档参数设置:
alter system set db_recovery_file_dest='/u01/oracle/' scope=spfile;   ---归档日志的存放位置
alter system set log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST' scope=spfile;  --指定第一个位置指向
alter system set archive_lag_target=900 scope=spfile;           ----指定15min切换一次归档日志
--RTO(小时)*3600,最大3600,单位:秒
一旦设置了archive_lag_target初始化参数,数据库将会周期性的检查实例的当前重做日志。如果遇到下列情况,实例将会切换日志:
n 当前日志n秒前创建,当前日志的归档时间估计为m秒,n+m的值超过archive_lag_target参数设置。
n 当前日志包含重做记录。
alter system set db_recovery_file_dest_size=20G scope=spfile;   ---指定归档目录大小

2.开启归档:
shutdown immediate;
startup mount;
alter database archivelog;  alter database noarchivelog;//关闭归档
alter database open;

SQL> archive log list;
Database log mode        Archive Mode  --归档模式
Automatic archival        Enabled
Archive destination        USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     94
Next log sequence to archive   96
Current log sequence        96

3.显示归档日志可达到的大小:
show parameter recovery
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      +FRA_DG
db_recovery_file_dest_size           big integer 150G

4.查询目前归档日志的大小:
select trunc(first_time),dest_id,sum(g.blocks*g.block_size)/1024/1024/1024
from gv$archived_log g
where g.first_time > trunc(sysdate - 7) and g.INST_ID='1'
group by trunc(first_time),dest_id
order by 2,1;

5.每小时产生的日志的大小:
select to_char(first_time,'yyyy-mm-dd hh24'),dest_id,sum(g.blocks*g.block_size)/1024/1024/1024
from gv$archived_log g
where g.first_time > trunc(sysdate - 4) and g.INST_ID='1' ---rac某一个节点的
group by to_char(first_time,'yyyy-mm-dd hh24'),dest_id
order by 2,1;

1)发现已经接近150g,调大size。
alter system set db_recovery_file_dest_size=300g,scope=both ;
虽然默认是both,但是还是带上比较放心,以后调整时候一定要仔细查看邮件里面的gi fra monitor
查看v$asm_diskgroup 有时候是不准的。

2)只保留3天的归档日志信息。
delete archivelog all completed before 'sysdate-3';
delete archivelog until time 'sysdate-3';
delete archivelog all completed until time 'sysdate -720/1440';  删除12小时以前的。  1/1440 就是1分钟。
系统会精确到秒级别的,因此,sysdate-2 是当前时间48小时以前的全都删掉。

3)检测归档日志
RMAN> crosscheck archivelog all; --命令的作用是将磁盘或者磁带上不存在的日志标记为expired

4)删除过期的归档日志
select * from v$flash_recovery_area_usage; 可看到已用多少,可重用的有多少
RMAN> delete expired archivelog all;
rman target /
show all;
CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON STANDBY;   执行此策略试试。在查看可重用正常否。
在备库设置这个,表示已经在备库应用的日志就可以删除了。

在主库设置
CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED TO ALL STANDBY
表示已经传送到备库的日志就可以删除了。

备库起来之后要recover managed standby database disconnect;


6.查看每天的日志归档量:节点1
SQL> select trunc(first_time),dest_id,sum(g.blocks*g.block_size)/1024/1024/1024
from gv$archived_log g
where g.first_time > trunc(sysdate - 7) and THREAD#='1' and CREATOR='ARCH'
group by trunc(first_time),dest_id
order by 2,1;

7.按小时
select to_char(first_time,'yyyy-mm-dd hh24'),dest_id,sum(g.blocks*g.block_size)/1024/1024/1024
from gv$archived_log g
where g.first_time > trunc(sysdate - 7) and THREAD#='1'
group by to_char(first_time,'yyyy-mm-dd hh24'),dest_id
order by 2,1;


8.查询在线日志没有归档的
SQL> select GROUP#,MEMBERS,ARCHIVED,STATUS from v$log  where STATUS='INACTIVE';
    GROUP#    MEMBERS ARC STATUS
---------- ---------- --- ----------------
         1          1 YES INACTIVE
         2          1 YES INACTIVE
         3          1 YES INACTIVE
         4          1 YES INACTIVE
         5          1 YES INACTIVE
         6          1 YES INACTIVE
         7          1 YES INACTIVE
         8          1 YES INACTIVE
         9          1 YES INACTIVE
        10          1 YES INACTIVE
        11          1 NO  INACTIVE

    GROUP#    MEMBERS ARC STATUS
---------- ---------- --- ----------------
        12          1 NO  INACTIVE
        13          1 NO  INACTIVE
        14          1 NO  INACTIVE
        15          1 NO  INACTIVE
        16          1 NO  INACTIVE

果然有6个日志没有归档。
做个checkpoint
alter system checkpoint;  如果是rac的,那就要加上local
alter system checkpoint local;

删日志前,可以通过以下命令来查看日志归档到什么时间:
select min(first_time) from v$archived_log x where x.dest_id=1 and  x.BACKUP_COUNT=0;
dest_id是归档到本地,backup_count=0是未归档。

9.rman删除归档日志
rman删除归档日志 删除N天以前的归档日志,有两个命令:
delete archivelog until time 'sysdate-N'
delete archivelog all completed before 'sysdate-N'
list archivelog until time 'sysdate-1'; 此时是按照归档日志开始时间即fisrt_time作为截止时间
list archivelog all completed before 'sysdate-1' 是按照归档日志完成时间即completion_time作为截止时间
试想如果删除归档日志,还是采用delete archivelog all completed before 'sysdate-N'

1)用RMAN连接目标DB:  
RMAN target sys/*****@orcl 

2)在RMAN命令窗口中,输入如下命令:  
crosscheck archivelog all;  
delete expired archivelog all;  
或者删除指定时间之前的archivelog:  
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';(指定删除7天前的归档日志)  

3)其它相关命令:  
查看归档日志列表:  
list archivelog all;  
查看失效的归档日志列表:  
list expired archivelog all;  
查看过期备份  
RMAN> report obsolete;   
删除过期备份  
RMAN> delete obsolete;  

4)定期清除archivelog:  
可以将如下代码写成.bat文件,在控制面版的任务计划下添加新的定时任务:  
RMAN target sys/*****@orcl 
crosscheck archivelog all;  
delete expired archivelog all;  

5) 
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; //删除七天前的归档  
DELETE ARCHIVELOG FROM TIME 'SYSDATE-7'; //删除七天到现在的归档

6)制定cron定期删除
删除归档日志的监控脚本
[oracle@oratest ~]$ cat  /dba/user_oracle/delete_tinadb.sh
#!/bin/bash
export ORACLE_SID=tinadb
export ORACLE_HOME=/u01/oracle/
rman target / <<EOF
run{
delete noprompt archivelog until time 'sysdate - 2';
}
EOF

[oracle@cnsz02pl0002 ~]$ crontab -l
*/6 * * * * /dba/user_oracle/delete_tinadb.sh

分享到:
评论

相关推荐

    ORACLE数据库调整归档日志空间大小[收集].pdf

    一、 ORACLE数据库归档日志的重要性 ORACLE数据库的归档日志是一种灾难恢复机制,它可以帮助数据库管理员在发生灾难时恢复数据库。归档日志记录了数据库的所有变更操作,包括insert、update、delete等操作。这些...

    论ORACLE数据库归档模式与备份恢复的关系.pdf

    《论ORACLE数据库归档模式与备份恢复的关系》一文主要探讨了ORACLE数据库的归档模式(ARCHIVELOG和NOARCHIVELOG)及其与备份恢复之间的密切关系。在当前网络技术飞速发展的背景下,ORACLE数据库作为优秀的大型数据库...

    如何查看、启动或关闭oracle数据库的归档模式

    ### 如何查看、启动或关闭Oracle数据库的归档模式 #### 归档模式概述 在Oracle数据库中,归档模式(Archivelog Mode)是一种重要的数据保护机制,它允许数据库在发生故障时进行完整的恢复。当数据库处于归档模式时...

    Linux Oracle数据库设置自动归档

    在Oracle数据库管理中,"Linux Oracle数据库设置自动归档"是一个关键操作,它涉及到数据库的安全性和高可用性。归档日志(Archived Logs)是Oracle数据库中的一个重要组成部分,它们记录了事务处理的历史,用于在...

    Oracle数据库归档日志挖掘步骤

    Oracle 数据库归档日志挖掘步骤 Oracle 数据库归档日志挖掘是指从 Oracle 数据库中提取有价值的信息,以便追溯和分析数据库的操作记录。这种操作可以帮助数据库管理员和开发者更好地理解数据库的行为,提高数据库的...

    ORACLE归档日志设置

    ORACLE数据库的归档日志设置是一种重要的机制,旨在保障数据库的安全性和灾难恢复能力。通过设置数据库的日志模式和自动归档模式,可以确保数据库的可靠性和可恢复性。 数据库日志模式的设置是ORACLE数据库的核心...

    打开Oracle数据库的归档模式

    在Oracle数据库管理中,归档模式(Archival Logging Mode)是一种重要的日志管理方式,它允许数据库在发生故障时进行更完整的恢复。归档模式下,数据库系统不仅记录在联机重做日志(Online Redo Logs)中的更改,还会将...

    Oracle数据库精讲之数据库管理_ Oracle数据库管理视频

    第六讲:Oracle数据库归档日志文件管理 第七讲:Oracle数据库控制文件管理 第八讲:Oracle数据库参数文件管理 第九讲:oracle数据库启动和关闭管理 第十讲:oracle undo sapce管理 第十一讲:oracle tablespace管理 ...

    Veeam 备份恢复oracle数据库详细配置文档

    在开始备份恢复 Oracle 数据库之前,需要在 Oracle 源机和 Oracle 恢复目标机上设置好 host 解析。为此,需要在 Oracle 源机和 Oracle 恢复目标机上编辑 hosts 文件,添加相应的 host 解析信息。 二、推送 Oracle ...

    Oracle数据库归档模式与归档日志管理实践

    内容概要:本文详细介绍了 ...其他说明:文章强调了正确设置并监控归档日志的重要性,这对于提升Oracle数据库系统的稳定性至关重要。实践中应该注意归档日志的空间管理和定期清理策略,避免因存储空间不足导致的问题。

    Oracle数据库归档日志日常管理及建议.pdf

    Oracle数据库归档日志日常管理及建议 Oracle 数据库归档日志日常管理及建议是指在 Oracle 数据库中,归档日志的生成、管理和维护,以确保数据库的高效运营和灾难恢复。本文将从 Oracle 数据库归档模式、归档模式的...

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

    ### Oracle数据库归档模式详解与配置 #### 一、Oracle归档模式概述 在Oracle数据库管理中,归档模式是一项非常重要的功能,它对于保证数据的安全性和系统的稳定性至关重要。归档模式允许数据库管理员将已完成的...

    Oracle数据库开归档方法

    以下是开启Oracle数据库归档模式的详细步骤和相关知识点: 一、理解归档日志模式 归档日志模式是Oracle数据库的一种运行模式,它在每次事务提交时都会创建归档日志文件,这些文件包含了自上次归档以来的所有更改。...

    关闭Oracle数据库的归档模式

    本文将详细介绍如何将一个处于归档模式的Oracle数据库设置为非归档模式(NoArchivelog Mode),并提供实际的操作步骤。 #### 目标 本教程的目标是指导用户如何安全地将一个正在运行的Oracle数据库从归档模式转换为...

    oracle数据库归档日志满问题解决方案[归类].pdf

    Oracle数据库归档日志满问题解决方案 Oracle数据库中的归档日志是指数据库在事务日志中记录的所有更改记录,以便在数据库崩溃或崩溃时恢复数据库。然而,在生产环境中,归档日志可能会由于各种原因而满溢,导致...

    ORACLE数据库 ORACLE数据库

    Oracle数据库是全球最广泛使用的商业关系型数据库管理系统之一,由美国甲骨文公司(Oracle Corporation)开发和维护。Oracle数据库以其高效、稳定和强大的功能在金融、电信、医疗、政府等多个领域得到广泛应用。本篇...

    Oracle数据库巡检报告

    - **2.1.1 检查oracle环境变量**:确认ORACLE_HOME、ORACLE_SID等环境变量设置正确,这对于确保Oracle数据库正常运行至关重要。 - **2.1.2 检查监听状态**:通过`lsnrctl status`命令检查Oracle监听器的状态,确保...

    Oracle数据库体系结构( 中文详细版)

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,其强大的功能和稳定性使其在企业级应用中占据了重要地位。本文将详细解析Oracle数据库的体系结构,帮助读者深入理解其内部工作原理。 Oracle数据库的...

    备份oracle数据库并保留指定天数(day)的备份文件(rar)

    #### 一、Oracle数据库备份与归档策略 ##### 1.1 需求背景 在IT行业中,数据备份是一项至关重要的任务,它确保了数据的安全性和可恢复性。对于Oracle数据库而言,由于其广泛的应用场景和庞大的数据量,合理的备份...

Global site tag (gtag.js) - Google Analytics