集群mysql导出数据_GreatDB数据库如何利用mysqldump导入导出集群数据?

一、数据导出

使用 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

2)备份单个库, 因为单个库中, 可能包含视图, 则需要添加 --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

3)备份整个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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值