文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Oracle附加日志是怎样的

2024-04-02 19:55

关注

这篇文章将为大家详细讲解有关Oracle附加日志是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

Oracle附加日志

分类分为两个等级:数据库级表级

数据库级附加日志

– 视图v$database

? SUPPLEMENTAL_LOG_DATA_MIN: 最小附加日志,开关

    最小补充日志:是最基本的一种数据库级补充日志,而 LogMiner 正是依赖最小补充日志工作服务的(即识别 行移动 行迁移)

启用最小补充日志命令:

ALTER DATABASE ADD Supplemental LOG DATA;

关闭最小补充日志命令:

ALTER DATABASE DROP Supplemental Log Data;

? SUPPLEMENTAL_LOG_DATA_PK: 记录所有变化记录主键

在update 命令的重做记录中添加被修改行的主键字段的旧值,无论是否被修改,都记录。 如果表没有主键,则由长度最小的唯一索引字段代替,若连唯一索引也没有,则记录该行所有字段。

alterdatabaseaddsupplemental log data (Primarykey) columns;

? SUPPLEMENTAL_LOG_DATA_UI: 记录所有变化记录唯一索引

唯一索引补充日志:唯一索引主要是为 复合索引(唯一)服务的。只有唯一索引的字段被 update 时,才会记录该字段被修改前的值

alter database add supplemental log data (unique) columns;

? supplemental_log_data_fk:

外键补充日志:同唯一索引补充日志一样,只有外键字段被 update 时,才会记录被修改前的旧值,即也是为复合外键服务的。

alter database add supplemental  log data (foreign key ) columns;

? SUPPLEMENTAL_LOG_DATA_ALL: 记录所有变化记录全部列

    全体字段补充日志:顾名思义就所有字段的值不论是否被修改都记录。会导致磁盘快速增长,LGWR进程繁忙。不建议使用。

alter database add supplemental log data (all) columns;

-建议只打开最小附加日志, 并打开所需复制表的表级附加日志

? ALTER DATABASE add | drop SUPPLEMENTAL LOG DATA;

? 目的是产生最小日志增量,避免对生产主机产生较大影响

查询当前设置

SELECT supplemental_log_data_min min,

supplemental_log_data_pk pk,

supplemental_log_data_ui ui,

supplemental_log_data_fk fk,

supplemental_log_data_all allc

FROM v$database;

表级附加日志

– 通过OGG命令行中的add trandata schema.table 命令添加

– 如果有主键则只加入主键;无主键添加唯一索引;两者皆无,则添加所有列

– 相当于数据库里面通过Alter tableadd supplemental log group

(column,..) always; (可查询dba_log_group_columns)

实验环境

1、源和目标都创建表

源表:create table tb10(col1 int primary key, col2 int, col3 int);

目标:create table tb10(col1 int primary key, col2 int, col3 int);

2. 配置本地抽取进程

GGSCI (pc6 as ogg@hyyk) 27> add extract test tranlog begin now

GGSCI (pc6 as ogg@hyyk) 36> add exttrail ./dirdat/oo,extract test

GGSCI (pc6 as ogg@hyyk) 33> edit params test

extract test

setenv (NLS_LANG="AMERICAN_AMERICA.ZHS16GBK")

setenv (ORACLE_SID="hyyk")

userid ogg,password oracle

gettruncates

exttrail ./dirdat/oo

table sender.tb10;

GGSCI (pc6 as ogg@hyyk) 49> add trandata sender.tb10

增加表级附加日志

3.配置投递进程

GGSCI (pc6 as ogg@hyyk) 39> add extract t_dump exttrailsource ./dirdat/oo

GGSCI (pc6 as ogg@hyyk) 41> add rmttrail /u01/app/oggd/dirdat/vv,extract t_dump

GGSCI (pc6 as ogg@hyyk) 42> edit params t_dump

extract t_dump

tranlogoptions excludeuser ogg

setenv (NLS_LANG="AMERICAN_AMERICA.ZHS16GBK")

setenv (ORACLE_SID="hyyk")

passthru

userid ogg,password oracle

rmthost 192.168.1.80,mgrport 7809

rmttrail /u01/app/oggd/dirdat/vv

table sender.tb10;

4.在目标端配置复制进程

GGSCI (ogg-80 as ogg@ogg) 3> add replicat rep_t,exttrail ./dirdat/vv,checkpointtable ogg.checkpoint

GGSCI (ogg-80 as ogg@ogg) 5> edit params rep_t

replicat rep_t

--handlecollisions

assumetargetdefs

setenv (NLS_LANG="AMERICAN_AMERICA.ZHS16GBK")

setenv (ORACLE_SID="ogg")

userid ogg,password oracle

map sender.tb10,target receiver.tb10;

实验之前看一看在源表执行 insert update delete

数据分析:Insert

Oracle附加日志是怎样的

我们在源表插入数据

SENDER@hyyk> insert into tb10 values(1,2,3);

SENDER@hyyk> commit;

Oracle附加日志是怎样的

在目标端查询

Oracle附加日志是怎样的

我们在源端使用dumplog查看

Logdump 72 >open ./dirdat/ww000000000

Current LogTrail is /u01/app/oggs/dirdat/ww000000000

Logdump 73 >ghdr on

Logdump 74 >detail on

Logdump 75 >detail date

Oracle附加日志是怎样的

这里就验证了trail文件中只有后映像

数据分析:update

Oracle附加日志是怎样的

我们在目标端

SENDER@hyyk> update tb10 set col2=4 where col1=1;

SENDER@hyyk> commit;

Oracle附加日志是怎样的

Oracle附加日志是怎样的目标段查询

Oracle附加日志是怎样的Oracle附加日志是怎样的使用dumplog查看

这里执行update tb10 set col2=4 where col1=1;

Logdump会有col1的记录呢

这里就是要说明Oracle日志缺省只记录变化的列和附加日志对应列,附加日志对应的就是主键的列,col1 就是逐渐列。

数据分析:delete

Oracle附加日志是怎样的

在目标执行

SENDER@hyyk> delete tb10 where col1=1;

SENDER@hyyk> commit;

SENDER@hyyk> select * from tb10;

no rows selected

Oracle附加日志是怎样的




在目标段查询使用dumplog查看

这里要说明delete操作只保留前映像的


Oracle附加日志是怎样的












关于Oracle附加日志是怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯