OGG常用命令
整理不易,转载请注明
帮助 help
目录初始化 create subdirs
修改编辑器 set editor vim
执行shell命令 shell ls ./dirdat
查看所有进程信息 info all
开启进程 start mgr
开启所有进程(mgr除外) start er *
停止进程 stop mgr
停止所有进程 stop er *
强制停止 send xxx forcestop
配置复制用户和检查点表 EDIT PARAMS ./GLOBALS
GGSCHEMA ogg
CHECKPOINTTABLE ogg.checkpoint
数据库当前改变号 select dbms_flashback.get_system_change_number from dual;
进程错误报告在dirrpt下 最新的是 进程名.rpt,数字越小越早
杀掉进程 kill ext2
查看指定进程信息 info extya
查看执行进程详细信息 info exyta detail
查看指定进程检查点信息 info extya showch
查看进程执行报告 view report extya
查看异常信息 view ggsevt 或者 tail -100f /ogg/11g/ggserr.log
查看进程延迟详细信息 lag extya
查看进程当前是否有事物处理 send extya showtrans
查看进程正在处理的事务 send EXT2,status
查看进程处理记录数 stats ext ,total
stats edr, daily, table gg.test 列出当天以来处理的有关gg.test表的所有记录数。
查看事务 SEND EXTRACT group, SHOWTRANS
查看长交易
send extract extsz , showtrans thread 1 count 10 例:查看extsz进程中节点1上最长的10个交易
XID: 1.30.622 构成 XIDUSN 回滚段 XIDSLOT 事务槽号 XIDSQN序号
GGSCI>SEND EXTRACT <进程名>, SKIPTRANS <5.17.27634> THREAD <2> //跳过交易
GGSCI>SEND EXTRACT <进程名>, FORCETRANS <5.17.27634> THREAD <1> //强制认为该交易已经提交
编辑进程信息 edit params extya
查看所有参数信息 show all
登录数据库 dblogin userid ogg,password ogg | dblogin USERIDALIAS alias_name
添加检查点表 add checkpointtable ogg.ckpt
删除进程 delete extract extya
EXTRACT
增加抓取进程(单节点) add extract extya,tranlog,begin now
增加抓取进程(多节点) add extract extya,tranlog,threads 4,begin now
增加抓取进程,指定时间 ADD EXTRACT xxx, TRANLOG, BEGIN 2010-12-31 08:00
抓取进程绑定trail文件 add exttrail ./dirdat/ya,extract extya,megabytes 500
指定oracle scn打开 ALTER EXTRACT finance, SCN 778899
修改进程读取trail文件序列 alter extract dpeya,extseqno 85,extrba 0
指定时间打开应用进程 alter extract extya,tranlog,begin 2014-06-29 00:20:15
指定线程打开时间 ALTER EXTRACT accounts, THREAD 4, BEGIN 2011-01-01
修改current read checkpoint alter exef extseqno 26, extrba 7090688 [, thread n]
修改recovery checkpoint alter exef ioextseqno 26, ioextrba 7088144 [, thread n]
DATAPUMP
添加投递进程 add extract dpeya,exttrailsource ./dirdat/ya
投递进程绑定trail文件 add rmttrail ./dirdat/ya,extract dpeya,megabytes 500
REPLICAT
添加应用进程 add replicat repya,exttrail ./dirdat/ya checkpointtable ogg.ckpt
指定rab打开应用进程 alter replicat repya,extrba 1311 ; alter replicat repya extseqno 6, extrba 149258
指定时间打开应用 ALTER REPLICAT finance, BEGIN 2011-01-07:08:00:00
TRANDATA 主键改变,新加表需要重加trandata,有通配符则不需要
添加指定表附加日志 add trandata test_ogg.test01
添加所有表附加日志 add trandata test_ogg.*
删除指定表附加日志 delete trandata test_ogg.test01
删除所有表附加日志 delete trandata test_ogg.*
查看指定表附加日志 info trandata test_ogg.test01
查看所有表附加日志 info trandata test_ogg.*
应用进程跳过异常事物 start repya skiptransaction
修改进程加载时间 alter extract extya,begin now
手动结束当前trail文件 alter extract extya etrollover
trail ( 队列) 命令
本地和远端队列
exttrail队列为本地队列, 抽取到本地目录
rmttrail为远端队列, 位于目标主机
添加队列命令
Add exttrail/rmttail /home/oracle/ggs1/dirdat/rt,
extract/ext extsc, megabytes 50
delete exttrail/rmttail /home/oracle/ggs1/dirdat/rt;删除队列
delete rmttrail ./dirdat/ef,extract pump1
查看队列命令
Info exttrail/rmttail /home/oracle/ggs1/dirdat/rt ; 查看队列状态
可以通过*进行匹配
问题:
注意目标端trigger,job,外键什么的
根据XID找到数据库内的长事务
select t.xidusn||'.'||t.xidslot||'.'||xidsqn XID ,s.sid,s.status ses_state,machine,s.sql_id,start_time, username, r.name, ubafil, ubablk, t.status tx_state, (used_ublk*p.value)/1024 blk, used_urec,decode(bitand(t.flag,power(2,7)),0, 'Normal','TX rolling') tx_state
from v$transaction t, v$rollname r, v$session s, v$parameter p
where xidusn=usn
and s.saddr=t.ses_addr
and p.name='db_block_size'
and xidusn=3325 and xidslot=61 and xidsqn=6323268;
来源: https://www.anbob.com/archives/5880.html
-- file: long_transactions.sql
-- author: weejar zhang(www.anbob.com)
-- purpose: check current long transactions
col xid for a25
col uba for a20
col machine for a15
select t.xidusn||'.'||t.xidslot||'.'||xidsqn XID ,s.sid,s.status ses_state,machine,s.sql_id,start_time, username, r.name, ubafil||'.'||ubablk||'.'||UBAREC UBA, t.status tx_state, (used_ublk*p.value)/1024 blk, used_urec,decode(bitand(t.flag,power(2,7)),0, 'Normal','TX rolling') tx_state
from v$transaction t, v$rollname r, v$session s, v$parameter p
where xidusn=usn
and s.saddr=t.ses_addr
and p.name='db_block_size'
order by start_time desc;
(二)logdump常用命令
以下命令设置了一个Logdump环境,该环境显示分析跟踪记录时最常用的信息。
开启详细信息展示
记录logdump操作记录
LOG TO filename.txt
将文本写入日志
WRITELOG "text"
To stop logging:
LOG STOP
查看当前logdump环境 env
###############
ghdr on
detail on
detail data
usertoken on
usertoken detail
ggstoken on
ggstoken detail
headertoken on
headertoken detail
reclen 0
ghdr on: 查看数据记录的头信息
detail on: 查看列信息,包括数量和长度
detail data: 查看 hex 和 ASCII 数据值
usertoken on: 查看用户定义的信息
sfh prev: 查看上条 record
ggstoken detail data on 查看 SCN 号
切换目录 cd ./dirdat
查看当前目录信息 ls
打开trail文件 open ya000091
打开下一个文件 NEXTTRAIL
下一条记录 n 或NEXT
查看当前位置 pos
第一条记录 pos first & pos 0
转到RBA pos rba
文件结尾 pos last
往前读取 pos rev
往后读取 pos for
当前trail统计信息总数 count
过滤 filter
显示过滤配置 show filter
过滤生效 filter enable
过滤失效 filter disable
清除过滤 filter clear
要过滤掉除包含特定表名的记录以外的所有内容
Logdump 60> FILTER INCLUDE FILENAME $volume.subvolume.file
示例 FILTER INCLUDE FILENAME $TEST.TEST1 ###FILENAME不是trail文件名###
使用多个条件进行过滤
Logdump 60> FILTER INCLUDE FILENAME $volume.subvolume...file..; FILTER RECTYPE record_type; FILTER MATCH ALL
Logdump 60> FILTER INCLUDE ANSINAME catalog.schema.table; FILTER RECTYPE record_type; FILTER MATCH ALL
Logdump 65> FILTER INCLUDE FILENAME schema.table; FILTER RECTYPE record_type; FILTER MATCH ALL
使用MATCH ANY 或 MATCH ALL 可设置多个条件的关联关系。
FILTER INCLUDE TransInd > = 2
FILTER INCLUDE IOTYPE insert,update,delete
FILTER INCLUDE STRING b"String1" "string2" b"String3" 25:50
filter inc string 'CD2019120941095933396'
FILTER INCLUDE FILENAME $QA01.QAESRC.ACCT1, $QA01.QAESRC.ACCT2, $QA01.QAESRC.ACCT3
filter all reset;
filter inc reset;
查找下一个好的记录标题
SCANFORHEADER|SFH
查找事务结束
SCANFORHEADER|SFET
Logdump 11> N
查看记录头中的 TransInd 属性,说明如下:
Transaction Indicator
Description
TransInd : . (x00) 事务开始的第一条记录
TransInd : . (x01) 事务中间记录
TransInd : . (x02) 事务中最后一条记录
TransInd : . (x03) 独立事务
使用命令 N 跳到下一条记录,查看 TransInd 是否有变化。
LOGCSN可以在logdump中进行查看,它只存在于Translnd 0(开始事务)或3(单操作事务),如果一个事务包含多个操作,那么第一个操作必须含有一个TransID0,表示开始事务,同一事物下在之后的操作将包含TransInd1,最后在结束该事务将包含一个TransID2,如果事务只有一个操作,那么此操作就会只包含一个TransID3。
删除过滤条件
FILTER CLEAR
总数
COUNT
统计ls开头的每个队列文件包含的条数
count log ls*
count detail
保存记录的子集
SAVE file n RECORDS
保存记录到新文件
保存整个文件,使用如下命令
Logdump 68> SAVE file
保存部分记录,使用如下命令
Logdump 69> SAVE file n RECORDS
logdump历史命令位置
/home/oracle/logdump.hst