暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

yloader 命令行参数解释

姜侠客仗剑走天涯 2023-01-28
845

Special Options:

       -dfmt [xdt|xf1] set import (loading) data format

指定yloader加载的数据格式,是xf1格式的还是xdt格式的?如果不指定,默认从:

yloader配置的home目录的cfg.dtyp文件中读,如果cfg.dtyp不存在,yloader会认为过来的数据为realsync复制软件过来的Oraclexf1格式数据。


rmp/cfg.dtyp里面会存放源端过来的数据库类型和数据格式。没有这个文件就是Oracle xf1格式了。为了和RealSync复制软件兼容这么设计的。



       -idbt [db2|...] set import data database type

指定需要加载的数据来源于那个数据库(也就是源端数据库),不指定从cfg.dtyp读。



       -idblang utf8... set import data CHARSET

强制设置源端过来数据的字符集,yloader.ini里面的idb_lang和这个参数一样含义。命令行和配置文件同时设置,优先使用命令行参数。

主要用来源端有中文表名,中文注释的ddl操作时候转换需要。



       -iobjn objn only import this objn data to database

指定只加载某个objn的数据,其他数据忽略不管,用来做debug调试的时候非常有用。

如:我知道某个xf1里面有很多个表的dml操作,但出错的表objn为12345,这样我对其他表操作的数据就可以不关心,只加载这个表的数据就可以了。



       -irowid rowid only import this row data to database

指定只加载某个rowid的数据,对其他rowid的数据不关心(过滤掉,或者忽略不管)



       -sql_mode set loading execute sql mode

使用sql模式加载,该参数和yloader.ini里面的full_sql_mod,real_sql_mode功能一样。

主要是调试的时候方便不用再修改yloader.ini文件就可以用上。



       -sdump send data first dump

yloader发送数据前,将数据给dump出来,主要用来调试使用。



       -sql dbtype view sql statement

查看sql用,yloader不加载数据到数据库,指定的是目标数据库类型。

如:-sql db2就可以查看yloader输出的符合db2格式的sql



       -iload set *xad ignore loading data to DB.

指定忽略入库,也就是数据发送给*xad后不加载实际数据,用来做一些特殊测试的时候使用。



       -tpar dbtype set -par view db type

                                 dbtype: mysql, db2, mssql, dbone, postgresql

                                   txt, xml, sql, udb

查看针对各个数据库的默认配置参数:

如:

-tpar mysql -par 输出的module=YXAC部分的信息有差别。



       -home dir set loading work home

设置yloader工作目录,该参数和yloader.ini里面home重复



       -mproc count set full queue count, work with multi-process mode

设置为多进程工作模式,指定最大队列数据。

如:-mproc 3表示sync0, sync1, sync2为多进程同时加载。realX目前不支持多进程模式。



       -startup [mthr] startup(-u) loading service, set mthr for gdb

启动yloader加载服务,后面的mthr可以指定也可以不指定,尽量别指定,设置了mthr表示yloader采用多线程工作模式。请尽量用默认的-startup就可以了。该参数可以简写为-u

如:

-startup

-u

-u mthr



       -shutdown [nsec] shutdown(-d) loading service, set timeout seconds

停止yloader加载服务,后面nsec为超时后强制退出时间,可以简写为-d

如:

-shutdown

-d 16



       -rmcache queue_name quick remove queue cache info

快速删除yloader的缓存信息:

如:yloader -home dsg/rmp -rmcache y1

yloader会自动把自己关于y1队列名(yloader.ini里面配置的queue_name)的数据给删除掉。用来做调试测试时候使用。



       -rm queue_name1,queue_name2,... # remove xf1/xdt for load completed

       -bak queue_name1,queue_name2,... # backup xf1/xdt for load completed

用在一份数据加载到多个地方时候使用,一份数据加载多处需要启动一个独立yloader服务完成已加载数据的备份或者删除工作。



       -idict file # replace or insert new dict to yloader cache

导入字典文件到yloader的cache中,当字典文件存在问题或者字典丢失的时候可以使用该参数。

如:

#导入的字典来源于oracle数据库(s_dict.xf1为oracle的字典文件)

yloader -f yloader.ini -idict s_dict.xf1


#导入的字典来源于db2数据库(s_dict.xf1为db2的字典文件)

yloader -f yloader.ini -idict s_dict.xf1 -idbt db2



       -disp [min_d#,max_d#,count]file threads

                                        # for test dispatch file.

拆分文件,主要用来做增量数据拆分调试使用



       -simp xdt,xdt_file,dict_file # import sync file to DB

       -rimp xdt,xdt_file,dict_file # import real file to DB

按照全量(-simp)或者增量(-rimp)方式加载指定的文件,遇到问题单独加载测试使用

如:

yloader -f yloader.ini -simp rmp/sync0/3.xf1 -v0123

yloader -f yloader.ini -rimp rmp/real0/3.xdt -v0123



       # start#<0 or end#<0 import this directory all files.

       -sidir xdt,xdt_dir,start#,end# # import sync more file to DB

       -ridir xdt,xdt_dir,start#,end# # import real more file to DB

按照全量(-sidir)或者增量(-ridir)方式加载目录指定的顺序文件或者所有文件,遇到多个xf1一起出问题的时候加载测试使用

如:

yloader -f yloader.ini -sidir rmp/sync0,10,100 -v0123

# 顺序加载rmp/sync0下面文件号从10开始到100结束的文件。yloader加载的时候优先找10.xf1或者10.xdt文件,如果文件不存在自动找10.xf1.bak或者10.xdt.bak文件。

# 具体是找xf1还是xdt由:cfg.dtyp决定,cfg.dtyp没有由yloader.in里面的data_format参数决定


yloader -f yloader.ini -sidir rmp/y1_cache/dict_bak,-1,-1 -v0123

# yloader按照自己的顺序加载rmp/sync0下面的所有文件,这个顺序你控制不了。当你对加载顺序不关心的时候可以这么使用。



       -rename .xf1.bak .xf1 # rename *.xf1.bak to *.xf1

对文件做批量改名,主要用来做一些特殊测试的时候使用

如:

yloader -home dsg/rmp/ -rename .xf1.bak .xf1

# yloader会自动找/dsg/rmp下面的所有符合.xf1.bak的文件给rename成.xf1文件


yloader -home dsg/rmp/ -rename .xdt.bak .xdt



       -rowid [ROWID | DBONEID] # changed to oracle rowid

yloader对指定rowid数据做转换运算,主要用在dbone数据库上dboneid怎么和Oracle rowid相互转换使用,查bug方便



       # for test onl module, EX: -conv gb18030 utf8 CBCEF8E1E6BC

       -conv source_code target_code hex_strings

yloader测试字符集转换使用

如:

yloader -conv gb18030 utf8 CBCEF8E1E6BC

将gb18030字符集的数据转换为utf8格式数据,需要做转换测试的数据为:CBCEF8E1E6BC,是gb18030格式的十六进制数据。





附加信息       -fdat "col=0,objn=100" data

主要用来查看文件或者目录下面的数据的。主要查找的对应为xdt或者xf1文件。

如:

yloader -home rmp/sync0/ -fdat "col=0,objn=12423" "1234"

表示查看rmp/sync0下面的所有文件,找出objn为12423,第一列数据为1234的数据文件是那个,对应rowid是那个。

注意:col从0开始,后面查找的数据必须和xdt或者xf1里面的查看内容对应。col设置为-1表示查找rowid


如:

-fdat "col=0,objn=12423" "0x801242"

如果查找的数据是二进制类型数据,请输入格式用十六进制表示,前面添加0x

objn也是支持:0x输入的,如:objn=0x123和objn=291是一个意思。


查找文件就这样写就可以了:

yloader -home rmp/sync0/100.xf1 -fdat "col=0,objn=12423" "1234" -v0

添加-v0可以查看到查找进度提示信息

-fdat里面的objn可以不设置,不设置和设置为objn=0是一样的,表示查询找有表符合该列数据的rowid打印出来。


查找数据为空可以这样写:

-fdat "col=1" ""

注意data部分内容写成""


当col设置为-1的时候可以用来查找rowid

yloader -home rmp/sync0/ -fdat "col=-1" "AAAwKmAACAACeiRAAC" -v0

yloader -home rmp/sync0/ -fdat "col=-1" 0x000302A60089E8910002 -v0


用来找字典,如:

yloader -home rmp/sync0/ -fdat "dict=T1" "" -v0

字典查找是按照字典表名模糊查找。


-home可以指定文件或者目录,如果指定的是文件就查找问题内容,如果指定目录就查找目录下面所有文件。

文章转载自姜侠客仗剑走天涯,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论