GreatDB数据库如何利用mysqldump导入导出集群数据?
使用 mysqldump 工具进行GreatDB数据库的数据导出,用法和 MySQL 是一样的。但是需要注意mssql数据库导出, 如果导出的数据需要包含视图, 则需要添加--single-transaction, 请使
一、数据导出 使用 mysqldump 工具进行GreatDB数据库的数据导出,用法和 MySQL 是一样的。但是需要注意mssql数据库导出, 如果导出的数据需要包含视图, 则需要添加--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; (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |