SharkStart详细解读 常用参数表
采集程序解读 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 perl /home/moiase/SharkStart/bin/export_data.pl Picked up JAVA_TOOL_OPTIONS: -Ddb2.jcc.charsetDecoderEncoder=3 License verified! [Error][check_param]参数检查不通过!: [Error][check_param] 参数'-dbid' 未定义 [Error][check_param] 参数'-outfile' 未定义 [Error][check_param] 参数'-charset' 未定义 [Error][check_param] 参数'-table' 未定义 [2024-05-14 15:01:14] [Error][main] 调用check_param失败 [usage] export_data.pl [parameters] ----------参数名如下,以'-' 打头,参数名后面跟上对应的参数值,用空格间隔;参数之间用空格间隔---------- -jobid 作业ID -dbid 数据库访问控制ID -outfile 导出文件(全路径) -table 卸数目标表 -filt 过滤条件(不带WHERE) -fixed 定长标志(Y-定长 N-非定长,不区分大小写) -delim 分隔符[默认为|@|] -enddel 是否含末尾分隔符(Y-是 N-否,不区分大小写) -rcdelim 记录分隔符[默认为\n] -charset 字符集(如:UTF8或者GBK,不区分大小写) -ctltyp 控制文件类型(1-DDL文件和控制文件 2-DDL文件 3-控制文件) -ddlfile DDL文件路径 -ctlfile CTRL文件路径 -isview [选填]是否是视图(Y-是 N-否,不区分大小写) -viewkey [选填]isview为视图时指定viewkey,用于生成DDL文件中主键字段,无可填NULL -setdef [选填]是否设置默认值(Y-是 N-否,不区分大小写) -dtfrmt [选填] DATE类型格式(针对oralce卸数指定DATE格式 YYYY-MM-DD 或者 YYYY-MM-DDTHH:MM:SS) -nonsel [选填]按字段卸数(不区分大小写), 不需要卸数的字段列表,逗号分隔,与参数sel不能同时指定 -sel [选填]按字段卸数(不区分大小写), 需要卸数的字段列表,逗号分隔,与参数nonsel不能同时指定 -chkprcv [选填] 限分布式数据源,ignore|continue |force,断点处理方式 ignore, 忽略断点;continue ,断点继续, 但之前和作业参数以及分区连接配置需要一致;force,强制断点继续,忽略不一致的参数及配置 默认取DIST_EXPORT_CHECKPOINT_RECOVERY_MODE环境变量设置 如未设置,默认取force -parterr [选填] 限分布式数据源,abort|fail-wait|next,某个分区处理程序执行失败后的处理方式 abort, 强行中断;fail-wait,等待已运行的子进程结束,然后报错;next,继续下一个分区,所有分区的处理都结束后,再报错结束 默认next -degree [选填] 限分布式数据源,正整数,分区处理的并发度 默认取DIST_EXPORT_DEFAULT_PARALLEL_DEGREE环境变量设置 如未设置环境变量,默认值为2 -distddl [选填] 限分布式数据源,once|always,DDL获取方式 once, 只获取一次;always,每个分库都会单独获取DDL; 默认取DIST_EXPORT_DEFAULT_DDL_FETCH_MODE环境变量设置 如未设置,默认取once -repflg [选填] 是否替换字段中包含的换行符(Y/N/指定替换字符,默认N,不进行REPLACE替换, 不指定指定替换字符的时候默认替换成空格) -trimflg [选填] 字段是否作TRIM(Y/N/R,默认N,不做TRIM处理,R:右TRIM) -kerbfile [选填] 当卸载源库为HIVE且hive的认证方式为KERBEROS时,需要通过此参数指定kerberos认证文件路径 -principal [选填] 当卸载源库为HIVE且hive的认证方式为KERBEROS时,需要通过此参数指定kerberos认证文件对应的principal -logflg [选填] 是否记录运行结果(Y/N,默认Y,记录运行结果) -repcol [选填] 制定需要替换换行符的字符,逗号分隔(当repflg为Y时生效) -metaflg [选填] 是否从目标库的元数据表中获取DDL信息(Y/N,默认Y,从目标库的元数据表中获取DDL信息) -clobflg [选填] 是否需要卸载CLOB字段(Y/N,默认N,仅对ORACLE和DB2有效) -ddlsync [选填] 是否需要同步更新ddl和ctrl信息到配置库表中(Y/N,默认Y) ------------------------------------------------------------------- 当环境变量SKS_PARSE_FILE_FLAG的值为0时,必须给出以下参数 -source 源系统名 -date 8位业务日期(YYYYMMDD) -org 9位机构号 -batch 4位批次号 -cletype 采集类型(ALL-全量|ADD-增量|INIT-初始化|DEL-减量) ------------------------------------------------------------------- 命令行接口传入数据库连接信息时使用以下参数 -dbtype [必填] 数据库类型 -dbip 数据库IP地址(Mysql数据库必填) -dbport 数据库端口(Mysql数据库必填) -dbsid 数据库SID(ORACLE,DB2数据库必填) -dbname 数据库名(Mysql数据库必填) -dbserv 数据库服务名 -dbuser [必填] 数据库用户名 -dbpwd [必填] 数据库密码 -dbschm [必填] 数据库SCHEMA -dbcset [必填] 数据库字符集
采集数据库
数据库类型
其他特点
连接方式
抽取方式-无大字段
抽取方式-有大字段
按照配置精度采集
超过配置精度截取
大字段
DB2
转换时长度取data_length
DBI(DBD::DB2)
export
DBI
是
是
CLOB-支持 BLOB-不支持(置空)
Oracle
data_length(char/varchar) char_length(nchar/nvarchar/varchar2) data_pricision&data_scale(数值型)
DBI(DBD::Oracle)
export
DBI
是
是
CLOB-支持
MySQL
DBI(DBD::mysql)
DBI
DBI
否 - 以源库为准
否 - 以源库为准
CLOB-支持
GaussDB
JDBC
JDBC
JDBC
否 - 以源库为准
否 - 以源库为准
CLOB-支持
SQLServer
JDBC
JDBC
JDBC
是
是
Informix
老版本数据库无法去除回车换行
DBI
DBI
否 - 以源库为准
否 - 以源库为准
DB2 根据DB_SID字段获取服务器上数据库相关信息
timestamp类型字段如何配置:
fieldtype: timestamp
column_type: timestamp(10,6)
data_length: 10
data_scale: 6
查询配置结构:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 SELECT T1.COLNAME as FIELD_NAME, T1.TYPENAME as FIELD_TYPE, T1.SCALE as DATA_SCALE, T1.LENGTH as DATA_LENGTH, T1.NULLS as NULLABLE, T1.FIELD_REMARKS, T1.TABLE_REMARKS, CASE WHEN T2.COLNAME IS NOT NULL THEN 'Y' ELSE 'N' END AS ISKEYFROM ( SELECT TT1.COLNAME, TT1.TYPENAME, TT1.SCALE, TT1.LENGTH, TT1.NULLS, TT1.REMARKS AS FIELD_REMARKS, TT2.REMARKS AS TABLE_REMARKS, TT1.TABSCHEMA, TT1.TABNAME, TT1.COLNO FROM SYSCAT.COLUMNS TT1, SYSCAT.TABLES TT2 WHERE TT1.TABSCHEMA = TT2.TABSCHEMA AND TT1.TABNAME = TT2.TABNAME ) T1LEFT JOIN ( SELECT TT2.COLNAME, TT1.TABSCHEMA, TT1.TABNAME FROM SYSCAT.INDEXES TT1 , SYSCAT.INDEXCOLUSE TT2 WHERE TT1.INDSCHEMA = TT2.INDSCHEMA AND TT1.INDNAME = TT2.INDNAME AND TT1.UNIQUERULE= 'P' ) T2ON T1.TABSCHEMA = T2.TABSCHEMA AND T1.TABNAME = T2.TABNAME AND T1.COLNAME = T2.COLNAMEWHERE T1.TABSCHEMA = 'DB2INST1' AND T1.TABNAME = 'CLE_DB2_TEST_TABLE001' ORDER BY T1.TABNAME, T1.COLNO
Oracle 根据DB_SID字段获取服务器上数据库相关信息
查询配置结构:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 SELECT T1.COLUMN_NAME AS FIELD_NAME, T1.DATA_TYPE AS FIELD_TYPE, T1.DATA_SCALE, T1.DATA_PRECISION, T1.DATA_LENGTH, T1.CHAR_LENGTH, T1.NULLABLE, CASE WHEN T2.COLUMN_NAME IS NOT NULL THEN 'Y' ELSE 'N' END AS ISKEY, '' AS FIELD_REMARKS, '' AS TABLE_REMARKSFROM ( SELECT COLUMN_NAME, DATA_TYPE, DATA_SCALE, DATA_PRECISION, DATA_LENGTH, CHAR_LENGTH , NULLABLE, OWNER, TABLE_NAME, COLUMN_ID FROM ALL_TAB_COLUMNS ) T1LEFT JOIN ( SELECT A.COLUMN_NAME, A.OWNER, A.TABLE_NAME FROM USER_CONS_COLUMNS A, USER_CONSTRAINTS B WHERE A.CONSTRAINT_NAME = B.CONSTRAINT_NAME AND B.CONSTRAINT_TYPE = 'P' ) T2ON T1.OWNER = T2.OWNER AND T1.TABLE_NAME = T2.TABLE_NAME AND T1.COLUMN_NAME = T2.COLUMN_NAMEWHERE T1.OWNER = 'SHARKSTART' AND T1.TABLE_NAME = 'SKS_SCT_SRC_DDL_INFO' ORDER BY T1.COLUMN_ID
GoldenDB 多次出现过抽取goldendb数据库失败问题,联系DBA确认原因,其初步判断疑似与数据库备份相关,同时,因MDS数据抽取使用6606端口,其为代理端口,与备份使用端口相同。
数据抽取类的,建议使用5501端口,其直连数据库备机进行。
所有的goldendb数据库的mds抽数都使用5501端口,从库优先抽取,6606只给应用使用。
当前SharkStart抽取GoldenDB数据,因暂未增加GoldenDB类型,是按照MySQL数据库类型进行的
openGaussDB 配置DBIP字段[paasogdb.paas.dev.cmbc.cn:端口,gaussdb.dev.cmbc.cn:端口/yourdbname?connectTimeout=1&targetServerType=master&tcpKeepAlive=true&loginTimeout=10]
OceanBase 配置DBIP字段
1 2 [obproxydns1:port1,obproxydns2:port2/username?pool=false &rewriteBatchedStatements=true &useServerPrepStmts=true ]
问题解决方法 SHARKSTART导入excel时一直导入中的原因:采集源、数据库、源系统,有其中一项未关联到
蚂蚁🐜再小也是肉🥩!