未验证 提交 a3c85674 编写于 作者: S SPZhang 提交者: GitHub

feat(doc):doc add innodb backup to stonedb demonstrate(#353) (#355)

* feat(doc):doc add innodb backup to stonedb demonstrate

* fix(doc):fix mydumper and mysqldump doc
Co-authored-by: Nmergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
上级 65cbffa2
......@@ -228,6 +228,27 @@ database.table-schema.sql 表结构文件
database.table.00000.sql 表数据文件
database.table-metadata 表元数据文件
***扩展***
如果要导入数据到StoneDB,需要把Mydumper的database.table-schema.sql 表结构文件中建表语句engine=innodb 改成 engine=stonedb,并检查表结构是否有StoneDB不兼容的语法:类似unsigned 之类的限制。修改后结构示例:
```
[root@dev-myos dumper]# cat zz.t_user-schema.sql
/*!40101 SET NAMES binary*/;
/*!40014 SET FOREIGN_KEY_CHECKS=0*/;
/*!40103 SET TIME_ZONE='+00:00' */;
CREATE TABLE `t_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`c_user_id` varchar(36) NOT NULL DEFAULT '',
`c_name` varchar(22) NOT NULL DEFAULT '',
`c_province_id` int(11) NOT NULL,
`c_city_id` int(11) NOT NULL,
`create_time` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=STONEDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8;
```
### 备份原理
- 主线程 FLUSH TABLES WITH READ LOCK, 施加全局只读锁,保证数据的一致性
......
......@@ -411,10 +411,30 @@ mysql> select * from dumpdb.dumptb;
/stonedb56/install/bin/mysqldump -uroot -p***** -P3306 --skip-opt --master-data=2 --single-transaction --set-gtid-purged=off --databases dumpdb > /tmp/dumpdb.sql
```
#### 备份指定库的表结构
```
/stonedb56/install/bin/mysqldump -uroot -p***** -P3306 -d --databases dumpdb > /tmp/dumpdb_table.sql
```
#### 备份指定库的表数据(不包含表结构)
```
/stonedb56/install/bin/mysqldump -uroot -p***** -P3306 --skip-opt --master-data=2 --single-transaction --set-gtid-purged=off -t dumpdb > /tmp/dumpdb_table.sql
```
#### 使用mysqldump 备份除系统库(mysql、performation_schema、information_schema)外其他库
```bash
/stonedb56/install/bin/mysql -uroot -p****** -P3306 -e "show databases;" | grep -Ev "sys|performance_schema|information_schema|Database|test" | xargs /stonedb56/install/bin/mysqldump -uroot -p****** -P3306 --master-data=1 --skip-opt --databases > /tmp/ig_sysdb.sql
```
***扩展***
使用Mysqldump 备份innodb 导入StoneDB 表小的可以基于上面的mysqldump 备份,大表建议单独备份表结构和数据备份文件,然后使用`sed -i 's/原字符串/新字符串/g' 文件` 命令修改备份文件中的引擎,例如:
```
sed -i 's/ENGINE=InnoDB/ENGINE=STONEDB/g' 文件
```
修改引擎后按照下面恢复方式导入到StoneDB。
### 恢复
#### 数据导入到StoneDB
```bash
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册