Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


静态数据迁移

📄字数 3.5K
👁️阅读量 加载中...

静态数据迁移是指将以某种结构组织存储的静态数据(称为数据源),转移到虚谷数据库的过程,通常具有以下特征:

特征说明
数据不变动源数据是静态的,如历史表、归档表、旧版本数据等
具有一定的结构每一行代表一个记录,每一列代表一个字段,字段间和行间各有分隔符
一次性迁移不需要实时同步,只需一次性完整复制
可择时执行通常可以在业务低峰期执行,不需要实时对接
迁移后不回写迁移完成后,目标库的数据不再回写到源数据
数据一致性强因为数据静态,不需要考虑复杂的同步冲突

按数据源类型划分,目前虚谷数据库支持了以下类型数据源的静态数据迁移:

一、TXT文件

文本(TXT)格式通常包含任意文本内容,此处含义不同,特指由固定记录分隔符与字段分隔符组织文本数据的文件。

此格式文件迁移到虚谷数据库,主要通过虚谷控制台(XGConsole)程序实现,其支持的TXT文件格式如下:

  • 文件中每行数据由记录分隔符拆分,通过虚谷控制台参数rt指定,如:rt=X'0d0a'(即\r\n换行符)
  • 行中每列数据由字段分隔符拆分,通过虚谷控制台参数ft指定,如:ft=','

虚谷控制台使用sqlldrtabldr命令导入,且不启用csv_deal参数,示例如下:

sql
SQL> sqlldr table=tab_region datafile=/tmp/region.txt ft='|' rt=X'0a' log=/tmp/load.log errlog=/tmp/loaderr.log mode=replace imp_type=block
sql
SQL> tabldr table=tab_region datafile=/tmp/region.txt ft='|' rt=X'0a' log=/tmp/load.log errlog=/tmp/loaderr.log parse_para=2 ins_para=2 mode=replace

提示

更多虚谷控制台sqlldr命令与tabldr命令细节,请参阅:

二、CSV文件

逗号分隔值(CSV, Comma Separated Values)格式广泛应用于各种电子表格程序之间的数据交换。此格式虽然已由RFC4180定义,但其仅定义了被大多数实现支持的格式,仍允许各种各样的特殊CSV文件格式存在。

此格式文件迁移到虚谷数据库,主要通过虚谷控制台(XGConsole)程序实现,其支持的CSV文件格式如下:

  • 文件中每行数据由记录分隔符拆分,通过虚谷控制台参数rt指定,如:rt=X'0d0a'(即\r\n换行符)
  • 行中每列数据由字段分隔符拆分,通过虚谷控制台参数ft指定,如:ft=','
  • 每列数据能够可选地被"双引号包裹,其中包含的分隔符将作为字段值原样保留
  • "双引号包裹数据中需包含双引号本身,需使用两个""双引号转义为单个双引号

虚谷控制台使用sqlldrtabldr命令导入,需启用csv_deal参数,且文件名后缀为.csv.CSV,示例如下:

sql
SQL> sqlldr table=tab_region datafile=/tmp/region.csv ft='|' rt=X'0a' log=/tmp/load.log errlog=/tmp/loaderr.log mode=replace imp_type=block csv_deal=true
sql
SQL> tabldr table=tab_region datafile=/tmp/region.csv ft='|' rt=X'0a' log=/tmp/load.log errlog=/tmp/loaderr.log parse_para=2 ins_para=2 mode=replace csv_deal=true

提示

更多虚谷控制台sqlldr命令与tabldr命令细节,请参阅:

三、SQL文件

结构化查询语言(SQL, Structured Query Language)格式可包含多条语句,此格式文件迁移到虚谷数据库,主要也是通过虚谷控制台(XGConsole)程序实现,使用execfile <SQL_FILE_PATH>命令执行指定SQL文件中语句。使用此方式时,数据通常以INSERT语句形式存储于SQL文件中,语法应符合SQL89/92/99标准,或虚谷语法标准,示例如下:

sql
SQL> execfile D:/consel.sql

提示

  • 更多虚谷控制台execfile命令细节,请参阅XGConsole-导入sql文件到数据库
  • 除了虚谷控制台,也可以使用任何已适配虚谷数据库且支持执行SQL语句的工具,通过执行SQL文件中的语句实现静态数据迁移。

四、虚谷备份文件

虚谷备份文件是由虚谷数据库执行备份功能后生成的备份文件,其数据组织格式由虚谷定义,仅能由虚谷数据库解析恢复。

虚谷数据库备份功能按备份介质不同,可分为以下备份方式:

  • 物理备份:支持全量备份、增量备份
  • 逻辑备份:支持库级备份、用户级备份、模式级备份、表级备份

有关备份恢复的具体操作方式,请参阅备份恢复

五、虚谷实例目录

虚谷实例目录指虚谷数据库单机部署目录,或集群各节点部署目录。使用此方式时,请参考以下步骤实现静态数据迁移:

  1. 必须先停止此目录运行的虚谷数据库单机实例
  2. 将单机部署目录中所有文件完整拷贝至目标虚谷数据库单机位置(XGLOG日志目录可忽略)
  3. 修改SETUP/xugu.ini系统配置文件,根据业务需求做适当调整
  4. 启动目标虚谷数据库单机实例,完成静态数据迁移

六、数据库

数据库数据源有多种情况,如同构的虚谷数据库,或异构的Oracle数据库、PostgreSQL数据库、MySQL数据库等。要将存储于这些数据库中的数据通过静态数据迁移,转移到虚谷数据库中,需要先使用工具将其中数据导出为静态数据,可参考以下方式:

6.1 通过TXT文件

此方式主要支持数据源为同构数据库(即虚谷数据库)。

  1. 使用虚谷控制台导出TXT格式数据,默认以\n作为记录分隔符,以|中竖线作为字段分隔符,详情请参阅XGConsole-导出结果集

    sql
    SQL> SELECT * FROM tab_region; >$ /tmp/region.txt;

    提示

    1. Linux 控制台导出的结果集文件以 \n 作为行分隔符
    2. Windows 控制台导出的结果集文件在 V2.1.1 版本以前以 \r\n 作为行分隔符,V2.1.1 及之后的版本以 \n 作为行分隔符
  2. 使用虚谷控制台将导出的TXT文件导入目标数据库,请参阅上文TXT文件

6.2 通过CSV文件

此方式可支持数据源为同构数据库(即虚谷数据库),或异构数据源(如Oracle、PostgreSQL、MySQL等)。

  1. 使用虚谷控制台导出CSV格式数据,默认以\n作为记录分隔符,以,逗号作为字段分隔符,详情请参阅XGConsole-导出结果集

    sql
    SQL> SELECT * FROM tab_region; >$ /tmp/region.csv;

    提示

    1. Linux 控制台导出的结果集文件以 \n 作为行分隔符
    2. Windows 控制台导出的结果集文件在 V2.1.1 版本以前以 \r\n 作为行分隔符,V2.1.1 及之后的版本以 \n 作为行分隔符
  2. 使用虚谷控制台将导出的CSV文件导入目标数据库,请参阅上文CSV文件

6.3 通过SQL文件

此方式可支持数据源为同构数据库(即虚谷数据库),或异构数据源(如Oracle、PostgreSQL、MySQL等)。

  1. 使用DBeaver连接数据源,导出SQL格式数据,请参阅DBeaver Data export - SQL
  2. 使用虚谷控制台将导出的SQL文件导入目标数据库,请参阅上文SQL文件

注意

虚谷数据库支持SQL89/92/99标准语法、虚谷特有语法以及部分对其他数据库的兼容语法,因此上述生成文件可能存在不兼容语法,根据实际场景可能需对生成的SQL文件进行修改调整。

6.4 通过虚谷备份文件

此方式仅支持数据源为虚谷数据库,请参阅上文虚谷备份文件

6.5 通过虚谷实例目录

此方式仅支持数据源为虚谷数据库,请参阅上文虚谷实例目录