Oceanbase开源版 数据库恢复MySQL数据库的过程

发布时间 2023-12-18 18:44:31作者: 济南小老虎

Oceanbase开源版 数据库恢复MySQL数据库的过程


背景

想进行一下Oceanbase数据库的兼容性验证. 
想着用app create 数据库的方式周期比较长. 
所以我想着换一套 备份恢复的方式进行数据库的创建直接进行兼容性验证. 
这里面就需要进行一下数据库的备份恢复了. 

所以想总结一下. 

备份

MySQL的逻辑备份非常非常的慢. 
慢到吐血. 

但是脚本是非常简单的
mysqldump -hxx.xx.xx.xx -P3306 -pPassword  -d yourdatabasename > yourdatabase_backup.sql 

就可以将数据库进行一下备份的操作. 

Oceanbase的恢复处理

使用mysql的客户端进行登录

注意需要先 yum install mysql -y 安装mysql客户端

mysql -uroot -P2881 -pPassword -hxx.xx.xx.xx
登录数据库后直接进行:
source yourdatabase_backup.sql 

就可以进行数据库的恢复操作. 

异常情况

注意 过程中会出现大量的SQL报错,比如为:ENABLE KEYS */’、‘DISABLE KEYS */ 

CSDN和与oceanbase的原厂沟通后, 结论是一样的: 

数据文件中有--注释信息,导入到OceanBase会报错,可以忽略,并不影响数据导入。我对源文件作了编辑,删除了这些内容。
其它类似如‘ENABLE KEYS */’、‘DISABLE KEYS */’等报错,可以忽略,并不影响数据导入。我对源文件作了编辑,删除了这些内容。
变量 SQL_NOTES,DEFINER 语句等 OceanBase MYSQL 会不支持,但是不影响,需要替换掉其中部分。
https://blog.csdn.net/hyu1989/article/details/127627874

视图重建

另外发现, 数据库的试图没有创建成功, 怀疑也是SQL不兼容, 

所有有一个简单办法 可以从 数据库的备份呢脚本里面将 视图的重建

cat yourdatabase_backup.sql  |grep '50001 VIEW ' >view.sql
sed -i 's#/*!50001#create#g' view.sql

然后可以将 /* 和 */ 的注释信息取消掉. 
然后使用navicat 链接数据库进行重建就view就可以了. 


应用链接与测试

使用 app 注册数据库, 可以选择mysql模式, 然后启动服务就可以进行登录验证了.