更新时间:2022-06-13 GMT+08:00

gds

背景信息

gds可以为GaussDB(DWS)提供导入导出数据的功能。

语法

gds [ OPTION ] -d DIRECTORY

其中,-d、-H是必选参数,option项是可选参数。gds将DIRECTORY中的文件数据提供给GaussDB(DWS)访问。

在启动GDS服务前, 请确定使用的GDS版本和数据库的版本保持一致,否则数据库会提示错误并终止导入导出操作,因此请注意GDS工具和数据库的版本务必严格匹配。具体版本可通过-V参数进行查看。

参数说明

  • -d dir

    设置待导入数据文件的目录。在gds进程权限允许的条件下,-d指定的目录会自动被创建。

  • -p ip:port

    设置gds监听IP和监听端口。

    IP的取值范围:IP需为合法IP地址。

    IP的默认值:127.0.0.1。

    监听端口的取值范围:1024~65535,正整数。

    监听端口的默认值:8098。

  • -l log_file

    设置日志文件。本次特性添加了日志自动切分的功能。当设置-R参数后gds会根据设置的值重新生成新的文件,以此来避免单个日志文件过大的问题。

    生成规则:gds默认只识别后缀是log的文件重新生成日志文件。

    例如,当-l参数指定为 gds.log,-R指定为 20MB的时候,当gds.log大小达到20MB后就会新创建一个 "gds-2020-01-17_115425.log"文件。

    当-l指定的日志文件没有以log为后缀,例如:" gds.log.txt", 则新创建的日志文件名为" gds.log-2020-01-19_122739.txt"。

    gds启动时会检测-l参数设置的日志文件是否存在,如果存在则根据当前日期时间新生成一个日志文件,不会覆盖之前的日志文件。

  • -H address_string

    设置允许哪些主机连接到gds,参数需为CIDR格式,仅支持linux系统。需要配置多个不同网段时,使用“,”分隔。例如:-H 10.10.0.0/24,10.10.5.0/24。

  • -e dir

    设置导入时产生的错误日志存放路径。

    默认值:数据文件目录。

  • -E size

    设置导入产生的错误日志的上限值。

    取值范围:0<size<1TB,请使用正整数+单位的形式进行取值设置,单位支持KB、MB和GB。

  • -S size

    设置导出单个文件大小上限。

    取值范围:1MB<size<100TB,请使用正整数+单位的形式进行取值设置,单位支持KB、MB和GB。如果使用KB,取值需要大于1024KB。

  • -R size

    设置-l指定的gds单个日志文件大小上限。

    取值范围:1MB<size<1TB,请使用正整数+单位的形式进行取值设置,单位支持KB、MB和GB。如果使用KB,取值需要大于1024KB。

    默认值:16MB

  • -t worker_num

    设置导入导出工作并发线程数目。

    取值范围:0<worker_num<=200,正整数

    默认值:8

    推荐值:普通文件导入导出场景取值:CPU核数*2;管道文件导入导出场景取值:64。

    当管道文件导入导出场景并发较大时,该值应不低于业务并发数。

  • -s status_file

    设置状态文件,仅支持linux系统。

  • -D

    后台运行gds,仅支持linux系统。

  • -r

    递归遍历目录(外表目录下的子目录)下文件,仅支持linux系统。

  • -h

    显示帮助信息。

  • --enable-ssl

    使用SSL认证的方式与集群通信。

  • --ssl-dir Cert_file

    在使用SSL认证方式时,指定认证证书的所在路径。

  • --debug-level

    设置GDS端的debug日志级别,以控制GDS debug相关的日志输出。

    取值范围:0、1、2

    • 0:仅打印导入导出相关的文件列表,日志量小,推荐在系统处于正常状态时使用设置。
    • 1:打印日志的完整信息,增加各节点的连接信息、session转换信息和一些数据统计。
    • 2:打印详细的交互日志以及所属状态,输出较大量的debug日志信息,以帮助故障定位分析。推荐仅在故障定位时开启。

    默认值:1

  • --pipe-timeout

    设置GDS操作管道文件的等待超时时间。

    • 该参数的设置是为了避免人为或程序自身问题造成管道文件的一端长时间不读取或者不写入,导致管道另一端的读取或写入操作hang住。
    • 该参数表示的超时时间不是指GDS一个导入导出任务的最长时间,而是GDS对管道文件的每一次read/open/write的最大超时时间,当超过--pipe-timeout参数设置时间会向前端报错。

    取值范围:大于1s。请使用正整数+单位的形式进行取值设置,单位支持s、m和h。如:1小时可以设置为3600s、60m或者1h。

    默认值:1h/60m/3600s

示例

数据文件存放在“/data” 目录,IP为192.168.0.90,监听端口为5000。

gds -d /data/ -p 192.168.0.90:5000 -H 10.10.0.1/24 

数据文件存放在“/data/” 目录下的任意子目录,IP为192.168.0.90,监听端口为5000。

gds -d /data/ -p 192.168.0.90:5000 -H 10.10.0.1/24 -r

数据文件存放在“/data/ ”目录,IP为192.168.0.90,监听端口为5000,以后台方式运行,将日志保存在“/log/gds_log.txt”文件中,指定并发导入工作线程数目为32。

gds -d /data/ -p 192.168.0.90:5000 -H 10.10.0.1/24 -l /log/gds_log.txt -D  -t 32

数据文件存放在“/data/ ”目录,IP为192.168.0.90,监听端口为5000,只允许IP为10.10.0.*的节点进行连接。

gds -d /data/ -p 192.168.0.90:5000 -H 10.10.0.1/24

数据文件存放在“/data/ ”目录,IP为192.168.0.90,监听端口为5000,只允许IP为10.10.0.*的节点进行连接,设定为使用SSL认证的方式与集群通信,证书文件存放在/certfiles/目录。

gds -d /data/ -p 192.168.0.90:5000 -H 10.10.0.1/24 --enable-ssl --ssl-dir /certfiles/
  • 1个GDS在同一时刻,只能为1个集群提供导入导出服务;
  • 为满足安全要求,请通过-p显式指定监听ip和监听端口。
  • 证书文件包括根证书文件cacert.pem,以及二级证书文件client.crt和秘钥文件client.key。
  • 在加载证书时,需要使用密码保护文件client.key.rand和client.key.cipher。