南大通用GBase 8a从V8升级到V9的REDOLOG的刷新处理

本文介绍GBase 8a数据库集群,从V8版本升级到V9版本时,由于REDOLOG的个是完全改变,所以要求其必须是初始状态(大小为334或者338字节),所以需要升级前刷新REDOLOG。

注意:

经确认,在新版本V95已经内置刷新操作。但仍建议前期处理一下。

刷新前提

所有的连接数据库的SQL都要停止,包括但不限于外部应用,客户端,定时任务,数据库内的Event。

另外发现当系统存在2个nodedatamap时,数据库内部会自动调用如下的SQL来不断的尝试查找重分布任务。

select db_name, table_name, distribution_id from gclusterdb.rebalancing_status where status = 'STARTING' and (select count(*) from gclusterdb.rebalancing_status where status = 'RUNNING') < 5 order by priority limit 5

该SQL同样要处理掉,方法就是完成重分布,然后把不再使用的nodedatamap删除掉即可。

刷新方法

1、先将集群任何一个管理节点数据库服务停掉

2、再将这个节点服务启动

3、再次将这个节点服务停掉
此时去看/var/lib/gcware/REDOLOG.XXX 其大小已经变成334、338大小。所有管理节点都一样了。

新版本的V95(9.5.2.20+)会自动执行如上的操作,实现自动刷REDOLOG。

意外处理

如果发现刷新后,文件大小多了,那就是有SQL在运行。可以开启审计日志,记得写入配置文件,确保重启后审计日志还在,排查是什么SQL在运行。

注意,如果存在扩容操作没有完成,存在多个distribution_id,数据库内部会定时调用重分布rebalance任务,查看是否由任务,在造成REDOLOG文件又不是334、338了。