我当前正在尝试备份Postgres 10.x数据库。如果我使用此处的代码段https://wiki.postgresql.org/wiki/Disk_Usage#Finding_the_largest_databases_in_your_cluster检查数据库的大小,则数据库为180MB。但是,如果我使用
pg_dump my_database > my_database_backup
要备份数据,它将创建一个大小超过2GB的文件。关于为什么pg_dump
创建的备份文件大小是原始数据大小的10倍有什么想法?我认为内联sql命令可能会导致文件大小增加,但是10倍对我来说似乎有点极端。
编辑:检查数据库大小的特定查询(此服务器上只有2个数据库,因此限制在20个以内)
SELECT d.datname AS Name, pg_catalog.pg_get_userbyid(d.datdba) AS Owner,
CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(d.datname))
ELSE 'No Access'
END AS SIZE
FROM pg_catalog.pg_database d
ORDER BY
CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
THEN pg_catalog.pg_database_size(d.datname)
ELSE NULL
END DESC -- nulls first
LIMIT 20