广告
返回顶部
首页 > 资讯 > 数据库 >Oracle日志 归档模式管理
  • 560
分享到

Oracle日志 归档模式管理

Oracle日志归档模式管理 2021-03-23 01:03:23 560人浏览 猪猪侠
摘要

一、查看当前归档模式 arcHive log list;   二、归档/不归档切换 shutdown immediate; -- 或shutdown nORMal startup mount; alter da

Oracle日志 归档模式管理

一、查看当前归档模式

arcHive log list;  

 

二、归档/不归档切换

shutdown immediate;          -- 或shutdown nORMal
startup mount;
alter database archivelog;   -- 或NOARCHIVELOG
alter database open;

 

三、开启自动归档

alter system archive log start;

 

四、查看默认的存档位置

show parameter db_reco;

 

五、归档进程ARCn

重做日志写进程(LGWR)负责将redo-buffer中的数据顺序的写入redolog中———读内存写外存
归档进程(ARCn)负责把切换后的redolog复制到归档日志文件。————读外存写外存

显然,LGWR的读写效率要比ARCn高得多,而在经常发生DML操作的数据库中,可能发生由于归档慢而重做日志写入速度快所造成的数据库被暂时停止执行的情况,此时数据库就是等待ARCn将当前的重做日志数据写入归档日志。

解决方案:增加归档进程的数量(log_archive_max_processes)

sql> show parameter log_archive_max_processes;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------ log_archive_max_processes integer 4
SQL> alter system set log_archive_max_processes=5;

  

六、自定义存档路径

执行命令show parameter log_archive_dest;

可以查看到多条记录,这些记录都是用于存放用户自定义路径的“预定义变量”。当有一个变量被设定后,就不会再归档至默认路径。当多个变量被设定,会同时归档至各个指定路径下(安全)。

SQL> show parameter log_archive_dest;
NAME                        TYPE        VALUE
------------------------------------ -----------
log_archive_dest            string                    -- 这个参数从10g开始已经被废弃!!
log_archive_dest_1          string
 ......
log_archive_dest_8          string
log_archive_dest_9          string
log_archive_dest_10         string

SQL> alter system set log_archive_dest_1="location=/u01/app/oracle/archive/arch1";      
SQL> alter system set log_archive_dest_8="location=/u01/app/oracle/archive/arch8";
SQL> alter system switch logfile    -- 手动强制归档

执行如上代码,结果会发现在arch1和arch8目录下都会生成归档文件。

那么如果不想再归档至arch8目录了该怎么办?

每一个log_archive_dest_x参数都有一个对应的state参数,如下所示,可以执行命令alter system set log_archive_dest_state_8="defer";使其失效。

SQL> show parameter log_archive_dest;  

NAME                             TYPE    VALUE
----------------------------------------------------------------------
log_archive_dest_state_1       string   enable
log_archive_dest_state_2       string   enable
   ... ...
log_archive_dest_state_7       string   enable
log_archive_dest_state_8       string   enable
log_archive_dest_state_9       string   enable

 

七、查询成功归档日志文件组的最低数(安全性)

在第六步“自定义存档位置”的基础上,进一步提升归档安全性。

log_archive_min_succeed_dest:限定Oracle必须保证成功的归档文件组的数量;

比如之前定义了两个归档路径,如果该值设定为2,则限定Oracle必须保证该两个路径中的归档必须成功完整。

注:自定义的归档路径数量 > log_archive_min_succeed_dest的值

SQL> alter system set log_archive_min_succeed_dest=2;
alter system set log_archive_min_succeed_dest=2

ORA-02097: parameter cannot be modified because specified value is invalid
ORA-16020: fewer destinations available than specified by LOG_ARCHIVE_MIN_SUCCEED_DEST

报错原因:当前仅有一个默认归档路径,最低数要求却设置为了2!
解决方法:再添加一个归档路径,重新设置该值。

 

 

八、一些日志统计脚本

估算系统每秒产生的日志量和每天产生的日质量(待梳理验证) 

declare
  ac          number;
  sec_redo    number;
  day_redo    number;
  sec_redo_90 number;
  day_redo_90 number;
  str         varchar(100);
begin
  select count(*) into ac from v$database where log_mode = "NOARCHIVELOG";
  if ac = 1 then
    dbms_output.put_line("The database is running on NOARCHIVELOG mode,No archivelog !!!");
  else
    str := "";
    for i in (select destination
                from v$archive_dest
               where status = "VALID"
                 and destination is not null) loop
      str := str || "," || i.destination;
    end loop;
    dbms_output.put_line("Archive dest is" || substr(str, 2));
    select trunc(sum((blocks * block_size) / 1024) /
                 ((max(first_time) - min(first_time)) * 24 * 3600)),
           trunc(sum((blocks * block_size) / 1024 / 1024) /
                 ((max(first_time) - min(first_time))))
      into sec_redo, day_redo
      from v$archived_log;
    dbms_output.put_line("每秒产生日志的频率:" || sec_redo || "(KB)");
    dbms_output.put_line("每天产生日志的频率:" || day_redo || "(MB)");
    dbms_output.put_line("最近3个月的统计数据:");
    select trunc(sum((blocks * block_size) / 1024) /
                 ((max(first_time) - min(first_time)) * 24 * 3600)),
           trunc(sum((blocks * block_size) / 1024 / 1024) /
                 ((max(first_time) - min(first_time))))
      into sec_redo_90, day_redo_90
      from v$archived_log
     where first_time > SYSDATE - 91;
    dbms_output.put_line("每秒产生日志的频率:" || sec_redo_90 || "(KB)");
    dbms_output.put_line("每天产生日志的频率:" || sec_redo_90 || "(MB)");
  end if;
end;
View Code

 

统计归档日志的每日生成量

SQL> select lpad(to_char(first_time,"yyyymmdd"),12) "Date",
     trunc(sum(blocks*block_size)/1024/1024) "size(MB)",
     count(*) "count"
     from v$archived_log
     where first_time>SYSDATE-31
     group by lpad(to_char(first_time,"yyyymmdd"),12)
     order by 1 desc;

Date                                            size(MB)      count
------------------------------------------------ ---------- ----------
    20211102                                    113          5
    20211101                                    236          9
    20211031                                    285         11
    20211030                                    309         11
    20211029                                    238         10
    20211028                                    279         16
    20211027                                    257         10

 

您可能感兴趣的文档:

--结束END--

本文标题: Oracle日志 归档模式管理

本文链接: https://www.lsjlt.com/news/8852.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Oracle日志 归档模式管理
    一、查看当前归档模式 archive log list;   二、归档/不归档切换 shutdown immediate; -- 或shutdown normal startup mount; alter da...
    99+
    2021-03-23
    Oracle日志 归档模式管理
  • oracle之 Oracle归档日志管理
           在Oracle中,数据一般是存放在数据文件中,不过数据库与Oracle最大的区别之一就是数据库可以在数据出错的时候进行恢复。这个也就是我们常见的Or...
    99+
    2022-10-18
  • Oracle归档日志管理的方法有哪些
    这篇文章主要讲解了“Oracle归档日志管理的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle归档日志管理的方法有哪些”吧!一般情况下,...
    99+
    2022-10-18
  • ORACLE 非归档模式下REDO日志丢失修复
    第一步:全备datafile,controlfile,spfile/pfile第二步:恢复日志。(原冷备的日志没有用,千万不要用!)SQL> select member&...
    99+
    2022-10-18
  • Oracle归档日志总结
    打开归档日志sqlplus / as  sysdba sql> shutdown immediate;   &...
    99+
    2022-10-18
  • Oracle归档日志删除
    我们都都知道在controlfile中记录着每一个archivelog的相关信息,当然们在OS下把这些物理文件delete掉后,在我们的controlfile中仍然记录着这些archivelog的...
    99+
    2022-10-18
  • 当ORACLE归档日志满后如何正确删除归档日志
    当ORACLE归档日志满后如何正确删除归档日志 kepa520 2018-08-10 12:11:33 59...
    99+
    2019-04-01
    当ORACLE归档日志满后如何正确删除归档日志
  • Oracle 11g由非归档模式改成归档模式
        u 说明 在Oracle 11g,开启archive log模式时,默认归档目录为db_recovery_file_dest指定。此参数在pfile/spfile中可以指定...
    99+
    2022-10-18
  • Oracle归档日志自动清理作业实现
    在Oracle数据库开启了归档日志模式的情况下,归档日志会不断积累,如果不定时关注维护,可能会让归档日志把磁盘空间撑爆,并且若把归档目录设置在快速恢复区里,可在短时间内把该区撑爆,从而让数据库无法归档,数据库会挂起无法响应,影响严重!下面方...
    99+
    2016-07-25
    Oracle归档日志自动清理作业实现
  • oracle 启动归档模式
    用RMAN对数据库进行全库备份时,要求处在归档模式下。1、如果数据库处在启动状态下,必须先关闭:    shutdown immediate;2、启动数据库到mount状态: ...
    99+
    2022-10-18
  • oracle之归档日志是个什么鬼?
    我们的oracle数据库默认采用的是非归档模式,假如说一共有三个重做日志组,当三个日志组全部写满之后将从第一个日志组开始循环记录,并且第一个日志组中的内容将被彻底覆盖,这样,如果数据库崩溃了,想要恢复很早之...
    99+
    2022-10-18
  • Oracle怎么配置归档日志文件
    这篇文章主要介绍“Oracle怎么配置归档日志文件”,在日常操作中,相信很多人在Oracle怎么配置归档日志文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Oracle怎么...
    99+
    2022-10-19
  • oracle 11g生产环境清理归档日志脚本
    最近几个客户生产环境都遇到一些故障,原因就是开归档,没有部署删除归档定时任务,以下大家可以参考,经过本人测试,在生产环境上正常运行。 **roidba删除归档日志脚本** 一、基于RHEL6服务器端的归...
    99+
    2022-10-18
  • 修改oracle归档日志存放位置与日志切换
    归档日志默认是存放在系统的快速恢复区中,但快恢复区不只是存放归档日志,默认数据库的备份也会存放在快速恢复区,因此若不另指定归档日志与数据库备份文件存放目录,在开启归档后,快速恢复区会很快被撑满,对数据库的会造成影响,故数据库在安装时需要另指...
    99+
    2014-09-24
    修改oracle归档日志存放位置与日志切换
  • oracle RAC开启归档模式
        一般在安装数据库时,默认是开启归档的,但是因为新创建的数据库大部分要做大量的数据操作,前期避免不必要的归档大量产生导致的磁盘容量告警问题,所以会建库时关闭归档...
    99+
    2022-10-18
  • oracle归档文件管理
    归档文件管理oracle归档文件,常常出现爆满或者挂载不上,这里简单介绍一例爆满的案例。备份归档文件:Backup archivelog all;备份归档日志1、sql>alter system ar...
    99+
    2022-10-18
  • goldengate 缺少归档日志abend处理
    ogg抽取进程abend,检查发现备库的日志被删除掉了:2018-10-11 11:14:52  ERROR   OGG-00446  Could not find ...
    99+
    2022-10-18
  • 如何更改ORACLE归档路径及归档模式
    本篇文章为大家展示了如何更改ORACLE归档路径及归档模式,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在ORACLE10g和11g版本,ORACLE默认的日志归档路径为闪回恢复区($ORACLE_...
    99+
    2023-06-06
  • oracle 11g rac开启归档日志和闪回
    1.查看数据库是否开启归档(查看两个节点rac1和rac2是否开归档日志)SQL> archiveloglistSP2-0734: unknown command beginning "archive...
    99+
    2022-10-18
  • Oracle 11g正确删除归档日志方法
    1、用oracle用户登陆rman并连接数据库RMAN>connect target / RMAN>rman target /2、列出并确认归档日志路径RMAN>list arc...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作