静态数据迁移
📄字数 3.5K
👁️阅读量 加载中...
静态数据迁移是指将以某种结构组织存储的静态数据(称为数据源),转移到虚谷数据库的过程,通常具有以下特征:
特征 | 说明 |
---|---|
数据不变动 | 源数据是静态的,如历史表、归档表、旧版本数据等 |
具有一定的结构 | 每一行代表一个记录,每一列代表一个字段,字段间和行间各有分隔符 |
一次性迁移 | 不需要实时同步,只需一次性完整复制 |
可择时执行 | 通常可以在业务低峰期执行,不需要实时对接 |
迁移后不回写 | 迁移完成后,目标库的数据不再回写到源数据 |
数据一致性强 | 因为数据静态,不需要考虑复杂的同步冲突 |
按数据源类型划分,目前虚谷数据库支持了以下类型数据源的静态数据迁移:
一、TXT文件
文本(TXT)格式通常包含任意文本内容,此处含义不同,特指由固定记录分隔符与字段分隔符组织文本数据的文件。
此格式文件迁移到虚谷数据库,主要通过虚谷控制台(XGConsole)程序实现,其支持的TXT文件格式如下:
- 文件中每行数据由记录分隔符拆分,通过虚谷控制台参数
rt
指定,如:rt=X'0d0a'
(即\r\n
换行符) - 行中每列数据由字段分隔符拆分,通过虚谷控制台参数
ft
指定,如:ft=','
虚谷控制台使用sqlldr
或tabldr
命令导入,且不启用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
二、CSV文件
逗号分隔值(CSV, Comma Separated Values)格式广泛应用于各种电子表格程序之间的数据交换。此格式虽然已由RFC4180定义,但其仅定义了被大多数实现支持的格式,仍允许各种各样的特殊CSV文件格式存在。
此格式文件迁移到虚谷数据库,主要通过虚谷控制台(XGConsole)程序实现,其支持的CSV文件格式如下:
- 文件中每行数据由记录分隔符拆分,通过虚谷控制台参数
rt
指定,如:rt=X'0d0a'
(即\r\n
换行符) - 行中每列数据由字段分隔符拆分,通过虚谷控制台参数
ft
指定,如:ft=','
- 每列数据能够可选地被
"
双引号包裹,其中包含的分隔符将作为字段值原样保留 - 若
"
双引号包裹数据中需包含双引号本身,需使用两个""
双引号转义为单个双引号
虚谷控制台使用sqlldr
或tabldr
命令导入,需启用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
三、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文件中的语句实现静态数据迁移。
四、虚谷备份文件
虚谷备份文件是由虚谷数据库执行备份功能后生成的备份文件,其数据组织格式由虚谷定义,仅能由虚谷数据库解析恢复。
虚谷数据库备份功能按备份介质不同,可分为以下备份方式:
- 物理备份:支持全量备份、增量备份
- 逻辑备份:支持库级备份、用户级备份、模式级备份、表级备份
有关备份恢复的具体操作方式,请参阅备份恢复。
五、虚谷实例目录
虚谷实例目录指虚谷数据库单机部署目录,或集群各节点部署目录。使用此方式时,请参考以下步骤实现静态数据迁移:
- 必须先停止此目录运行的虚谷数据库单机实例
- 将单机部署目录中所有文件完整拷贝至目标虚谷数据库单机位置(
XGLOG
日志目录可忽略) - 修改
SETUP/xugu.ini
系统配置文件,根据业务需求做适当调整 - 启动目标虚谷数据库单机实例,完成静态数据迁移
六、数据库
数据库数据源有多种情况,如同构的虚谷数据库,或异构的Oracle数据库、PostgreSQL数据库、MySQL数据库等。要将存储于这些数据库中的数据通过静态数据迁移,转移到虚谷数据库中,需要先使用工具将其中数据导出为静态数据,可参考以下方式:
6.1 通过TXT文件
此方式主要支持数据源为同构数据库(即虚谷数据库)。
使用虚谷控制台导出TXT格式数据,默认以
\n
作为记录分隔符,以|
中竖线作为字段分隔符,详情请参阅XGConsole-导出结果集sqlSQL> SELECT * FROM tab_region; >$ /tmp/region.txt;
提示
- Linux 控制台导出的结果集文件以
\n
作为行分隔符 - Windows 控制台导出的结果集文件在 V2.1.1 版本以前以
\r\n
作为行分隔符,V2.1.1 及之后的版本以\n
作为行分隔符
- Linux 控制台导出的结果集文件以
使用虚谷控制台将导出的TXT文件导入目标数据库,请参阅上文TXT文件
6.2 通过CSV文件
此方式可支持数据源为同构数据库(即虚谷数据库),或异构数据源(如Oracle、PostgreSQL、MySQL等)。
使用虚谷控制台导出CSV格式数据,默认以
\n
作为记录分隔符,以,
逗号作为字段分隔符,详情请参阅XGConsole-导出结果集sqlSQL> SELECT * FROM tab_region; >$ /tmp/region.csv;
提示
- Linux 控制台导出的结果集文件以
\n
作为行分隔符 - Windows 控制台导出的结果集文件在 V2.1.1 版本以前以
\r\n
作为行分隔符,V2.1.1 及之后的版本以\n
作为行分隔符
- Linux 控制台导出的结果集文件以
使用虚谷控制台将导出的CSV文件导入目标数据库,请参阅上文CSV文件
6.3 通过SQL文件
此方式可支持数据源为同构数据库(即虚谷数据库),或异构数据源(如Oracle、PostgreSQL、MySQL等)。
- 使用DBeaver连接数据源,导出SQL格式数据,请参阅DBeaver Data export - SQL
- 使用虚谷控制台将导出的SQL文件导入目标数据库,请参阅上文SQL文件
注意
虚谷数据库支持SQL89/92/99标准语法、虚谷特有语法以及部分对其他数据库的兼容语法,因此上述生成文件可能存在不兼容语法,根据实际场景可能需对生成的SQL文件进行修改调整。
6.4 通过虚谷备份文件
此方式仅支持数据源为虚谷数据库,请参阅上文虚谷备份文件。
6.5 通过虚谷实例目录
此方式仅支持数据源为虚谷数据库,请参阅上文虚谷实例目录。