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模式, 然后启动服务就可以进行登录验证了.