停⽌数据库服务。如:pg_ctl stop -D /var/postgresql/data
启⽤校验和。如:pg_checksums -e -D /var/postgresql/data -P
重新启动数据库服务。如:pg_ctl start -D /var/postgresql/data
4. 在线启⽤校验和:从PostgreSQL 12开始,可使⽤pg_checksum在线启⽤校验和。
注意:使⽤流复制的主备集群,在备⽤节点上禁⽤校验和,然后在主节点上启⽤校验和,这样在主节点发⽣故
障时,备⽤节点可以接管⽽不影响服务。
1.3.4 确保WAL和临时⽂件与PGDATA不在同⼀分区上
a.确保WAL与PGDATA不在同⼀分区上
pg_wal ⼦⽬录没有与 PGDATA ⽬录在不同的分区上。pg_wal ⽬录包含写前⽇志(WAL)⽂件,这些⽂件对数据
恢复和复制⾮常重要。将pg_wal⽬录放在单独的分区上可以提⾼性能,允许写⼊和读取操作并⾏处理⽽不会相互⼲
扰。
参考以下步骤:(注意:需要在关闭数据库服务的情况下进⾏,以避免数据损坏。)
1. 确定当前 pg_wal 的位置: 通过查询 data_directory 来确定当前 pg_wal ⽬录的位置。
2. 创建新的分区: 在的系统中创建⼀个新的分区,并确保它有⾜够的空间来存储 pg_wal ⽂件。
3. 移动 pg_wal ⽬录: 在停⽌ PostgreSQL 服务之后,将 pg_wal ⽬录移动到新的分区上。
4. 创建符号链接: 在原来的 PGDATA ⽬录下创建⼀个指向新分区上 pg_wal ⽬录的符号链接。
5. 更新 PostgreSQL 配置:更新postgresql.conf配置⽂件中的 wal_file_base 参数,指向新的 pg_wal ⽬录。
6. 重启 PostgreSQL 服务,以使应⽤⽣效。
7. 验证: 确保 PostgreSQL 服务正常启动,并且 WAL ⽂件正常写⼊新的 pg_wal ⽬录。
!
b.确保临时⽂件⽬录不在PGDATA之外的单独分区上
临时⽂件通常存放在 pgsql_tmp ⼦⽬录中,这些⽂件在数据库操作过程中⽤于存储临时数据,如排序和哈希操作的
结果。将临时⽂件放在单独的分区上可以提⾼性能,可以减少磁盘I/O竞争。
步骤如下:
1. 停⽌数据库服务:闭数据库服务,避免数据损坏。
文档被以下合辑收录
评论