1. 最近想簡單的進行數據庫的備份工作, 因為現在數據庫主要是用的pg數據庫 , 所以想到用文本的方式進行, 有清理了一下日志表的數據 這里一起記錄一下.
先記錄一下查看比較大的表的信息.
從網上找了下資料, 使用子查詢的方式來查詢表信息.
來源網頁:https://www.cnblogs.com/ilifeilong/p/9244370.html
SELECT table_name, pg_size_pretty(table_size) AS table_size, pg_size_pretty(indexes_size) AS indexes_size, pg_size_pretty(total_size) AS total_size FROM ( SELECT table_name, pg_table_size(table_name) AS table_size, pg_indexes_size(table_name) AS indexes_size, pg_total_relation_size(table_name) AS total_size FROM ( SELECT ('"' || table_schema || '"."' || table_name || '"') AS table_name FROM information_schema.tables ) AS all_tables ORDER BY total_size DESC ) AS pretty_sizes;
找出來最大的表信息之后, 需要使用
truncate table 的方式能夠直接清理空間不然空間還是占用着的.
truncate table **** 或者是在數據庫的 /data/base 目錄下面也能夠看到響應的表信息
2. 整理pg_wal 文件內的信息
wal 是 write ahead log 的意思 里面跟oracle的redo內容類似, 有時候文件會比較多需要清理一下.
方法
su - postgres cd /usr/lib/yourpgbinpath ./pg_resetwal {PGDATA} 執行清理
3. 執行備份恢復的方式
備份 tar -czvf /pgdata.tar.gz /pgdatapath 恢復 tar -zxvf /pgdata.tar.gz / 恢復即可,