暂无图片
GreatDB数据库如何利用mysqldump导入导出集群数据
我来答
分享
画笔不画你
2020-11-18
GreatDB数据库如何利用mysqldump导入导出集群数据

GreatDB数据库如何利用mysqldump导入导出集群数据

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
李嫄

一、数据导出
使用 mysqldump 工具进行GreatDB数据库的数据导出,用法和 MySQL 是一样的。但是需要注意, 如果导出的数据需要包含视图, 则需要添加–single-transaction, 请使用示例中出现的参数.
简单示例如下:

  1. 备份单表, 数据及表结构
    shell> mysqldump [options] db_name [tbl_name …]
    例如:
    备份testdb库中t1表的数据以及表结构,导出的sql文件存放到/tmp目录中

mysqldump -udbscale -pdbscale -h127.0.0.1 -P3307 --skip-add-locks testdb t1 > /tmp/tes tdb_t1.sql

备份testdb库中t1表,t2表的数据以及表结构,导出的sql文件存放到/tmp目录中

mysqldump -udbscale -pdbscale -h127.0.0.1 -P3307 --skip-add-locks testdb t1 t2 > /tmp/ testdb_table.sql

  1. 备份单个库, 因为单个库中, 可能包含视图, 则需要添加 --single-transaction
     shell> mysqldump --databases [options] db_name --single-transaction …数据导出例如:
    备份testdb整个库
    mysqldump -udbscale -pdbscale -h127.0.0.1 -P3307 --skip-add-locks --single-transaction
    –databases testdb > whole_database.sql

如果需要备份存储过程(procedure)和函数(function), 则添加 --routines

mysqldump -udbscale -pdbscale -h127.0.0.1 -P3307 --skip-add-locks --single-transaction
–routines --databases testdb > whole_database.sql

  1. 备份整个MySQL实例的所有数据, 因为包含视图, 所以需要添加–single-transaction

shell> mysqldump [options] --all-databases
例如:
mysqldump -uroot -pmysql -h127.0.0.1 -P3307 --skip-add-locks --single-transaction --al l-databases > all_databases.sql

二、数据导入
 
对于使用 mysqldump 或者 mysqlpump 导出的文件,DBScale支持使用source命令或命令行文件重定向的方式进行数据导入,例如:

导入备份库的sql文件
mysql -udbscale -p -h127.0.0.1 -P3307 < /tmp/testdb.sql
或者
mysql -udbscale -p -h127.0.0.1 -P3307 source /tmp/testdb.sql

导入备份库中的表的sql文件
mysql -udbscale -p -h127.0.0.1 -P3307 testdb < testdb_t1.sql
或者
mysql -udbscale -p -h127.0.0.1 -P3307 testdb source /tmp/testdb_t1.sql
或者
mysql -udbscale -p -h127.0.0.1 -P3307 use testdb
source /tmp/testdb_t1.sql

需要注意的是:
如果使用mysqldump命令从单机mysql库导出数据然后导入dbscale,那么需要在mysqldump命令添加参数"–sk ip-add-locks",否则可能无法导入dbscale.

DBScale不支持同时执行多条SQL命令。使用mysql命令行客户端mysql会自动将多条SQL拆分逐个执行。如果使用图形工具,建议使用SQLYog.

如果dump.sql文件中本身没有创建并 use 到一个schema的话,在执行数据导入前请先登陆集群创建 schema 并在导入的mysql命令中指定 schema.DBScale默认的schema是information_schema,所以如果没有 use s chema 就执行操作的话,可能会报错权限不够,而不是通常mysql 的 No database selected 报错.

如果导入过程中报错"In multiple_mode, dbscale do not support set auto_increment value",
请先执行:
dbscale set global check_auto_increment_value = 0;
然后进行导入;最后再执行:
dbscale set global check_auto_increment_value = 0;

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏