1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-27 12:41:57 +03:00

Add initdb --sync-only option to sync the data directory to durable

storage.

Have pg_upgrade use it, and enable server options fsync=off and
full_page_writes=off.

Document that users turning fsync from off to on should run initdb
--sync-only.

[ Previous commit was incorrectly applied as a git merge. ]
This commit is contained in:
Bruce Momjian
2012-12-03 22:47:59 -05:00
parent 25d1ed04a2
commit 630cd14426
5 changed files with 47 additions and 5 deletions

View File

@ -209,9 +209,10 @@ start_postmaster(ClusterInfo *cluster)
* a gap of 2000000000 from the current xid counter, so autovacuum will
* not touch them.
*
* synchronous_commit=off improves object creation speed, and we only
* modify the new cluster, so only use it there. If there is a crash,
* the new cluster has to be recreated anyway.
* Turn off durability requirements to improve object creation speed, and
* we only modify the new cluster, so only use it there. If there is a
* crash, the new cluster has to be recreated anyway. fsync=off is a big
* win on ext4.
*/
snprintf(cmd, sizeof(cmd),
"\"%s/pg_ctl\" -w -l \"%s\" -D \"%s\" -o \"-p %d%s%s%s%s\" start",
@ -219,7 +220,8 @@ start_postmaster(ClusterInfo *cluster)
(cluster->controldata.cat_ver >=
BINARY_UPGRADE_SERVER_FLAG_CAT_VER) ? " -b" :
" -c autovacuum=off -c autovacuum_freeze_max_age=2000000000",
(cluster == &new_cluster) ? " -c synchronous_commit=off" : "",
(cluster == &new_cluster) ?
" -c synchronous_commit=off -c fsync=off -c full_page_writes=off" : "",
cluster->pgopts ? cluster->pgopts : "", socket_string);
/*