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.
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/502352.html
標籤:其他
