登录
首页 >  数据库 >  MySQL

mysqldump 在 StoneDB 中的使用注意事项

来源:SegmentFault

时间:2023-02-16 15:13:40 111浏览 收藏

在数据库实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《mysqldump 在 StoneDB 中的使用注意事项》,聊聊MySQL、数据库,希望可以帮助到正在努力赚钱的你。

InnoDB导入StoneDB

此场景是利用mysqldump从InnoDB导出,然后再导入StoneDB,在导入StoneDB前,需要对导出文件做如下修改。
1)修改存储引擎

CREATE TABLE `t_user` (
xxx
) ENGINE=InnoDB;
CREATE TABLE `t_user` (
xxx
) ENGINE=stonedb;

2)去掉锁表语句

导出文件会输出"LOCK TABLES...WRITE",这是因为导出时默认使用了参数"--add-locks",由于StoneDB没有锁表语句,需要将导出文件的锁表语句去掉。

LOCK TABLES `t_user` WRITE;
UNLOCK TABLES;

3)去掉USING BTREE

StoneDB的索引结构是LMSTREE,InnoDB的索引结构是BTREE,如果是从其他客户端导出的文本,建表语句中如果有索引字段,通常会含有"USING BTREE",导入StoneDB需要去掉。

4)去掉索引

在StoneDB中是不需要创建索引的,如果一个表有很多个索引,反而需要额外维护,可以将导出文件中的索引定义去掉。

StoneDB导入StoneDB

此场景是利用mysqldump从StoneDB导出,然后再导入StoneDB,在使用mysqldump时,需要注意如下几个事项。

1)使用mysqldump导出时会有如下报错,这是因为导出参数"--lock-all-tables"是默认的,表示导出期间锁表。但由于StoneDB没有锁表语句,可以使用参数"--single-transaction"规避。

Got error: 1031: Table storage engine for 'STONEDB' doesn't have this option when doing LOCK TABLES

2)导入数据时会有如下报错,这是因为导出参数"--add-locks"是默认的,会在导出文件输出"LOCK TABLES...WRITE",导出时可以使用参数"--skip-add-locks"规避。

ERROR 1031 (HY000): Table storage engine for 'STONEDB' doesn't have this option

注:使用Percona的物理备份工具xtrabackup备份StoneDB时,有如下提示,说明xtrabackup不支持StoneDB备份。

innobackupex --defaults-file=/stonedb/install/stonedb.cnf --user=root --password=MySQL_123 --socket=/stonedb/install/tmp/mysql.sock --databases=ztpch.customer --no-timestamp /backup

Warning: "ztpch.customer" uses engine "STONEDB" and will not be backed up.

终于介绍完啦!小伙伴们,这篇关于《mysqldump 在 StoneDB 中的使用注意事项》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布数据库相关知识,快来关注吧!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>