xlog文件是一个记录事务日志的文件,它记录数据库系统中所有的更改操作,当发生主机电源故障或其他导致服务器崩溃的服务器故障时,由于xlog日志包含了关于已经执行的每个事务的足够信息,所以数据库能够通过在事务日志中replay操作来恢复数据库中的数据。为了提高写入性能需要将xlog从数据目录分离出来。
下面介绍几种xlog目录设置方式:
1.手工调整
如果我们安装初始化过程中没有单独指定,或者数据库服务运行之后要进行调整,可以先停止数据库服务,然后手工通过软链接方式来调整。
调整之前原来规划的数据目录如下:
/mogdb_data/data15400
增加下面的分区目录作为单独的xlog路径:
/mogdb_xlog/xlog15400
那我们需要关闭数据库服务之后,使用如下命令调整:
mv /mogdb_data/data15400/pg_xlog /mogdb_xlog/xlog15400
ln -s /mogdb_xlog/xlog15400 /mogdb_data/data15400/pg_xlog
2.初始化调整
初始化gs_initdb时可以通过–xlogdir指定,参考如下:
gs_initdb --nodename=og_69 \
--pgdata=/mogdb_data/data15400 \
--xlogdir=/mogdb_xlog/xlog15400
--encoding=UTF-8 \
--username=omm \
--pwpasswd=Mogdb@1234 \
--security
3.clusterconfig.xml提前配置
当我们使用clusterconfig.xml文件进行配置安装时,可以使用dataNodeXlogPath1参数预先进行设置。
xml参数说明请参考官网:https://docs.mogdb.io/zh/mogdb/v2.0.1/4-installing-mogdb(复制链接至浏览器中浏览)
参考如下片段:
注意:dataNode1数据目录的格式里有各个主机的hostname名称,dataNodeXlogPath1参数里只需要重复配置多个xlog的路径即可,不需要有各主机hostname的设置。这点需要注意一样。
比如我们每台机器规划的路径是/mogdb_xlog/xlog15400,那一主三备的配置值就是:
<PARAM name="dataNodeXlogPath1" value="/mogdb_xlog/xlog15400,/mogdb_xlog/xlog15400,/mogdb_xlog/xlog15400"/>
彭冲,云和恩墨PG技术顾问,网名“多米爸比”,PG社区认证专家,中国首期PostgreSQL ACE Partner,多年从事基于PostgreSQL数据库的软件研发,擅长于PL/PGSQL业务迁移及优化,Oracle到PostgreSQL的迁移升级,异构数据库整合;作为墨天轮PostgreSQL实践专栏作者,热衷于PostgreSQL实践技术分享,在自己的岗位积极推广PostgreSQL,致力为PG社区多做奉献。
墨天轮原文链接:https://www.modb.pro/db/176915?sjhy(复制链接至浏览器或点击文末阅读原文查看)