温馨提示×

centos postgresql磁盘空间管理

小樊
45
2025-06-24 18:21:11
栏目: 云计算

在CentOS上管理PostgreSQL的磁盘空间可以通过多种方法实现,以下是一些关键步骤和技巧:

查看磁盘使用情况

  • 使用 df -h 命令查看磁盘空间使用情况。
  • 使用 du 命令查看特定目录的磁盘使用情况,例如:
    du -sh /var/log/postgresql/*
    du -sh /tmp/*
    du -sh /var/lib/pgsql/data/*
    

清理不必要的数据

  • 清理日志文件:PostgreSQL的日志文件通常位于 /var/log/postgresql//var/lib/pgsql/data/ 目录中。可以使用以下命令删除或归档超过30天的日志文件:
    find /var/log/postgresql/ -type f -mtime +30 -name "*.log" -exec rm -f {} \;
    find /var/lib/pgsql/data/ -type f -mtime +30 -name "*.log" -exec rm -f {} \;
    
  • 清理临时文件:PostgreSQL的临时文件通常位于 /tmp//var/lib/pgsql/data/ 目录中。可以使用以下命令删除或归档超过7天的临时文件:
    find /tmp/ -type f -mtime +7 -exec rm -f {} \;
    find /var/lib/pgsql/data/ -type f -mtime +7 -exec rm -f {} \;
    
  • 清理备份文件:PostgreSQL的备份文件通常位于 /var/lib/pgsql/backups/ 目录中。可以检查备份文件的大小和数量,删除或归档超过7天的备份文件:
    find /var/lib/pgsql/backups/ -type f -mtime -7 -exec rm -f {} \;
    

扩展磁盘空间

  • 在虚拟化平台上扩展虚拟磁盘大小
    • 使用 fdisk 重新扫描磁盘分区表。
    • 使用 partedfdisk 对磁盘进行分区。
    • 使用 resize2fs 调整文件系统大小。

调整数据库参数

  • postgresql.conf 中调整参数,如 shared_bufferswork_memmaintenance_work_mem 等。

使用表空间

  • 创建新的表空间
    CREATE TABLESPACE my_ts LOCATION '/mnt/psql_ts';
    
  • 在创建表时指定表空间
    CREATE TABLE mytable (
        id SERIAL PRIMARY KEY,
        name VARCHAR(100)
    ) TABLESPACE my_ts;
    
  • 删除表空间(确保表空间为空):
    DROP TABLESPACE mytablespace;
    

查看数据库和表的磁盘空间占用

  • 查看数据库总大小
    SELECT pg_size_pretty(pg_database_size('dbname'));
    
  • 查看指定数据库每个表的磁盘空间
    SELECT table_schema, table_name AS table_full_name, pg_size_pretty(pg_total_relation_size(table_schema || '.' || table_name));
    

通过上述方法,可以有效地管理和优化CentOS上PostgreSQL的磁盘空间,确保数据库的高效运行。

0