乐趣区

关于数据库:mysqldump-在-StoneDB-中的使用注意事项

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.
退出移动版