我们正在使用9.2 postgresql数据库。
我们有大小为425GB的数据库。在这425 GB中,索引占据了大约40%到60%的空间。分配给这台机器的Ram是32GB,配置参数如下。
$PGHOME/bin/pg_basebackup -p 5433 -U postgres -P -v -x --format=tar --gzip --compress=6 --pgdata=- -D /opt/backup_db
为了备份数据库,我们正在使用pg_basebackup实用程序。但这需要几个小时(约18小时)。请指导我需要修改哪些配置参数以减少pg_basebackup实用程序所需的时间。
是否有可能在获取pg_basebackup时排除索引数据?
pg_basebackup实用程序取决于哪些参数?
是否有可能在多线程中运行pg_basebackup?
为了提高使用pg_basebackup实用程序备份数据库的速度,我们关闭了数据库并启动了单独的数据库服务。直到那时其他服务将无法运行。我们观察到了一些改进,但我们需要执行任何其他操作来减少pg_basebackup实用程序所花费的时间。
我们使用下面的命令来备份数据库。任何改进都可以减少备份声明所花费的时间。
Sub copy1()
Sheets("DATABASE").Select
Range("I" & ActiveCell.Row & ":S" & ActiveCell.Row).Copy Sheets("DATABASE").Range("I" & Rows.Count).End(xlUp).Offset(1, 0)
End Sub
答案 0 :(得分:0)
https://www.postgresql.org/docs/9.2/static/app-pgbasebackup.html
pg_basebackup生成数据库集群文件的二进制副本
...
备份将包括数据目录和表空间中的所有文件,包括配置文件和第三方放置在目录中的任何其他文件。
(格式化我的)
因此您无法排除索引
您提到的所有参数都不会明确影响它。如果您从hot_standby备份,则会full_page_writes
和wal_max_senders
- 但这些不会影响速度。)
pg_dump
允许数字作业,而不是pg_basebackup
尝试不使用compressong进行复制 - 可能会节省时间,也可能不会,这取决于什么是瓶颈 - CPU或IO