在数据库上线后,可能需要变更数据库的日志模式,这可能是由于业务变更或性能调整等原因引起的。数据库日志模式的变更可能涉及单一实例环境或高可用集群环境。本文将介绍如何调整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数据库的日志模式,并确保集群关系不受影响。请在执行任何数据库修改操作之前备份重要数据,以防万一发生意外情况。