• 沒有找到結果。

通过 mongoexport 和 mongoimport 工具迁移数据

3.2 数据迁移

3.2.3 通过 mongoexport 和 mongoimport 工具迁移数据

mongoexport和mongoimport是MongoDB客户端自带的备份恢复工具。您可以在本 地设备或ECS中安装MongoDB客户端,通过mongoexport和mongoimport工具将自建 MongoDB数据库或其他云数据库MongoDB迁移至华为云GaussDB(for Mongo) 实 例。

要将已有的MongoDB数据库迁移到GaussDB(for Mongo) 数据库,需要先使用 mongoexport工具对它做转储。再通过弹性云服务器或可访问GaussDB(for Mongo) 数据库的设备,使用mongoimport工具将转储文件导入到GaussDB(for Mongo) 数据 库。

使用须知

● mongoexport和mongoimport工具仅支持全量数据迁移。为保障数据一致性,迁 移操作开始前请停止源数据库的相关业务,并停止数据写入。

● 建议您尽量选择在业务低峰期迁移数据,避免在迁移过程中对业务造成影响。

● 不支持迁移系统库admin和local。

● 确保源库中系统库admin和local没有创建业务集合,如果已经有业务集合,必须 在迁移前将这些业务集合从admin和local库中迁移出来。

1. 准备弹性云服务器或可访问GaussDB(for Mongo) 数据库的设备。

– 通过内网连接GaussDB(for Mongo) 数据库实例,需要创建并登录弹性云服 务器,请参见购买弹性云服务器和登录弹性云服务器。

– 通过公网地址连接GaussDB(for Mongo) 数据库实例,需具备以下条件。

i. 为实例中的节点绑定公网地址,如何绑定公网地址,请参见绑定弹性公 网IP 。

ii. 保证本地设备可以访问GaussDB(for Mongo) 数据库绑定的公网地址。

2. 在已准备的弹性云服务器或可访问GaussDB(for Mongo) 数据库的设备上,安装 数据迁移工具。

步骤2 使用mongoexport,将源数据库转储至JSON文件。

GaussDB(for Mongo) 3 用户指南

此处以SSL连接方式为例进行说明,如果选择普通连接方式,去掉命令中对应的“--ssl --sslAllowInvalidCertificates”即可。

./mongoexport --host <DB_ADDRESS>--port <DB_PORT>--ssl

--sslAllowInvalidCertificates --type json --authenticationDatabase <AUTH_DB> -u <DB_USER> --db <DB_NAME> --collection <DB_COLLECTION> --out

<DB_PATH>

3-3 参数说明

参数名称 说明

DB_ADDRESS 数据库地址。

DB_PORT 数据库端口。

AUTH_DB 存储DB_USER信息的数据库,一般为admin。

DB_USER 数据库用户。

DB_NAME 需要迁移的数据库名称。

DB_COLLECTION 需要迁移的数据库集合。

DB_PATH 存储数据JSON文件所在的路径。

出现如下提示时,输入数据库管理员对应的密码:

Enter password:

示例如下,命令执行完会生成“exportfile.json”文件:

./mongoexport host 192.168.1.21 port 8635 ssl

--sslAllowInvalidCertificates --type json --authenticationDatabase admin -u rwuser --db test02 --collection Test --out /tmp/mongodb/export/

exportfile.json 步骤3 查看导出结果。

输出内容显示如下,说明迁移成功。其中,“x”表示转储数据的记录条数。

exported x records

步骤4 压缩导出的JSON文件。

gzip exportfile.json

压缩是为了方便网络传输,压缩后生成“exportfile.json.gz”文件。

----结束

将数据导入至目标 GaussDB(for Mongo)

步骤1 登录到已准备的弹性云服务器或可访问GaussDB(for Mongo) 数据库的设备。

步骤2 将要导入的数据上传到弹性云服务器或可访问GaussDB(for Mongo) 数据库的设备。

根据不同的平台选择相应的上传方法。

GaussDB(for Mongo) 3 用户指南

● Linux下可参考命令:

scp <IDENTITY_FILE>

<REMOTE_USER>@<REMOTE_ADDRESS>:<REMOTE_DIR>

– IDENTITY_FILE为存储“exportfile.json.gz”的文件目录,该文件目录权限为 600。

– REMOTE_USER为弹性云服务器的操作系统用户。

– REMOTE_ADDRESS为弹性云服务器的主机地址。

– REMOTE_DIR为将“exportfile.json.gz”上传到弹性云服务器的文件目录。

● Windows平台下,请使用传输工具上传“exportfile.json.gz”至弹性云服务器。

步骤3 解压数据包。

gzip -d exportfile.json.gz

步骤4 将转储文件导入到GaussDB(for Mongo) 数据库。

此处以SSL连接方式为例进行说明,如果选择普通连接方式,去掉命令中对应的“--ssl --sslAllowInvalidCertificates”即可。

./mongoimport --host <DB_ADDRESS> --port <DB_PORT> ssl

--sslAllowInvalidCertificates --type json --authenticationDatabase <AUTH_DB> -u <DB_USER> --db <DB_NAME> --collection <DB_COLLECTION> --file

<DB_PATH>

3-4 参数说明

参数名称 说明

DB_ADDRESS GaussDB(for Mongo)数据库实例的IP地址。

DB_PORT GaussDB(for Mongo)数据库端口。

AUTH_DB DB_USER进行权限验证的数据库,一般为admin。

DB_USER 数据库管理员帐号名。

DB_NAME 需要导入的数据库。

DB_COLLECTION 需要导入的数据库中的集合。

DB_PATH 转储数据JSON文件所在的路径。

出现如下提示时,输入数据库管理员对应的密码:

Enter password:

示例如下:

./mongoimport host 192.168.1.21 port 8635 ssl

--sslAllowInvalidCertificates --type json --authenticationDatabase admin -u rwuser --db test02 --collection Test --file /tmp/mongodb/export/

exportfile.json 步骤5 查看迁移结果。

输出内容显示如下,说明迁移成功。其中,“x”表示转储数据的记录条数。

GaussDB(for Mongo) 3 用户指南

imported x records

----结束