AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 118206
Accepted
Sarith
Sarith
Asked: 2010-03-03 00:44:52 +0800 CST2010-03-03 00:44:52 +0800 CST 2010-03-03 00:44:52 +0800 CST

为什么Oracle数据库在对数据库进行小的更改时每天会生成大量归档日志?

  • 772

我目前在 RHEL5 上使用 Oracle 数据库 11g。即使对数据库进行少量更改(每天大约 500 个事务),我的数据库也会每天生成大量归档日志。我还检查了我的数据文件(用户表空间)的大小;它的大小每天增加约 20MB,但归档日志每天生成 5GB 到 10GB。

谁能告诉我是什么导致了这个问题?是否有任何解决方案来检查它为什么会生成更多存档?我怎样才能减少它?

此致,

萨里特

oracle
  • 5 5 个回答
  • 44980 Views

5 个回答

  • Voted
  1. Best Answer
    Gary
    2010-03-03T14:09:50+08:002010-03-03T14:09:50+08:00

    可能值得查看文件上的时间戳,看看它是否均匀分布,或者是否一次生成一堆(可能与某些批处理活动相对应)。

    像下面这样的查询将向您显示当前生成重做的会话。

    select s.sid, n.name, s.value, sn.username, sn.program, sn.type, sn.module
    from v$sesstat s 
      join v$statname n on n.statistic# = s.statistic#
      join v$session sn on sn.sid = s.sid
    where name like '%redo entries%'
    order by value desc;
    

    如果您获得 AWR 许可,您也可以查看历史记录表。

    数据库的总大小是多少?我怀疑一些大表每天都会被截断并重新加载非常相似的数据

    • 4
  2. kubanczyk
    2010-03-03T01:23:25+08:002010-03-03T01:23:25+08:00

    正如另一个线程中所建议的,您可以使用 LogMiner 来发现记录了哪些事务:

    http://www.oracle.com/technology/oramag/oracle/05-jul/o45dba.html

    • 1
  3. Adam Musch
    2010-03-06T06:56:13+08:002010-03-06T06:56:13+08:00

    UPDATE语句不一定会更改表或行的大小,但必须在重做中捕获,这就是驱动归档日志大小的原因。

    未提交的事务(回滚的事务)不会对数据库进行永久性更改,但仍会生成重做。

    导致更新索引的表 DML 活动(应用程序是否执行大量DELETEing 和INSERTing?)也会导致更新索引UPDATE,更改索引列的语句也是如此。

    简而言之,衡量归档日志大小是衡量变更活动的指标——增长是一个不同且通常不相关的指标。您可能希望做的是查询ALL_TAB_MODIFICATIONS以从写入的角度准确显示自上次分析以来您的表实际上有多忙,就像在 10g+ 中一样,所有表都会自动监视 DML 活动。

    • 1
  4. DCookie
    2010-03-03T07:48:07+08:002010-03-03T07:48:07+08:00

    物化视图刷新会产生大量的重做。只是一个想法。

    • 0
  5. dba.in.ua
    2010-03-04T01:27:31+08:002010-03-04T01:27:31+08:00

    这个问题的一个简单解决方案是

    1) 在 Oracle 中设置块更改跟踪以加速增量备份
    http://download.oracle.com/docs/cd/B28359_01/backup.111/b28270/rcmbckba.htm # BRADV8125

    2) 运行数据库和归档日志的增量备份级别 1(例如每天 2 次),在 RMAN 脚本末尾添加下一行:

    DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE -2';
    如果 RMAN 显着降低了数据库的查询运行速度,您可以在 BACKUP DATABASE 字符串中添加以下关键字:
    DURATION 1:00 PARTIAL MINIMIZE LOAD
    其中,1:00 - 应备份 1 小时的时间。

    • 0

相关问题

  • 更改 Oracle 数据库的语言(代码页)

  • 安装 Oracle 数据库

  • Oracle 10 g - 无法释放表空间中的空间

  • Oracle 10g:备份失败,日志磁盘已满——如何恢复数据库?

  • 通过 SqlPlus 导出 Oracle BLOB

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve