调整SinoDB数据库日志模式

  在数据库上线后,可能需要变更数据库的日志模式,这可能是由于业务变更或性能调整等原因引起的。数据库日志模式的变更可能涉及单一实例环境或高可用集群环境。本文将介绍如何调整SinoDB数据库的日志模式。

1、 停止应用程序
在修改数据库日志模式之前,必须停止正在运行的应用程序。您可以使用以下命令来检查是否有连接正在使用要修改的数据库:

onstat -g sql|grep dbname

2、检查主节点和集群节点的日志
一般来说, 建议检查数据库日志的最后1000行,以确保没有错误或异常情况:

3、检查集群关系
如果您的数据库处于高可用集群环境中,请确保数据库日志在主节点和备节点之间同步,以避免数据丢失或日志套圈等;

4、检查数据库的日志模式
使用以下命令检查要修改的数据库的当前日志模式:

dbaccess sysmaster -
select name,is_logging,is_buff_log,is_ansi from sysdatabases where name=‘dbname’;

5、关闭高可用集群的备节点
在执行日志模式修改之前,关闭高可用集群的所有备节点。

6、断开集群关系
修改日志模式不能带有集群,在主节点删除集群节点;若无集群,可忽略此步骤。
以下是断开集群关系的示例命令:
onmode -d standard
onmode -d delete RSS xxx_rss

7、修改日志模式
根据需要,执行以下命令来修改数据库的日志模式,确保执行结果无报错。

  • 调整为unbuffered模式:
    ontape -s -L 0 -U database_name -t /dev/null

  • 调整其他模式如下:
    调整至no logging模式,调整该模式可能会导致集群关系崩溃,请谨慎使用。
    ontape -s -L 0 -N database_name -t /dev/null

  • 调整至buffered模式
    ontape -s -L 0 -B database_name -t /dev/null

  • 调整至ANSI模式
    ontape -s -L 0 -A database_name -t /dev/null

8、检查修改后的数据库日志模式
使用以下命令再次检查已修改数据库的日志模式,确保修改成功:

dbaccess sysmaster -
select name,is_logging,is_buff_log,is_ansi from sysdatabases where name=‘dbname’;

9、恢复集群关系
主节点添加集群
onmode -d primary xxx_hdr ### HDR
onmode -d add RSS xxx_rss ### RSS

10、检查HDR日志
查看HDR日志,看是否正常建立关系。

11、启动RSS

12、检查集群关系
确保主数据库与HDR和RSS同步。使用以下命令来检查集群关系状态:
onstat -l|grep U–;
onstat -g dri;
onstat -g rss

13、 检查HDR和RSS的日志模式
最后,再次检查HDR和RSS的数据库日志模式,确保它们与主数据库保持一致:

dbaccess sysmaster -
select name,is_logging,is_buff_log,is_ansi from sysdatabases where name=‘dbname’;

  通过按照上述步骤操作,您可以成功调整SinoDB数据库的日志模式,并确保集群关系不受影响。请在执行任何数据库修改操作之前备份重要数据,以防万一发生意外情况。