diff options
author | Nathan Bossart <nathan@postgresql.org> | 2025-03-25 16:02:35 -0500 |
---|---|---|
committer | Nathan Bossart <nathan@postgresql.org> | 2025-03-25 16:02:35 -0500 |
commit | cf131fa942855acd42e8283185837566c7e8c15e (patch) | |
tree | 71489db5f05e62c72c9e0ca22e7eb505a44c26fd /doc/src | |
parent | 650ab8aaf1957863ae14c80265e79f5d903b49fd (diff) | |
download | postgresql-cf131fa942855acd42e8283185837566c7e8c15e.tar.gz postgresql-cf131fa942855acd42e8283185837566c7e8c15e.zip |
initdb: Add --no-sync-data-files.
This new option instructs initdb to skip synchronizing any files
in database directories, the database directories themselves, and
the tablespace directories, i.e., everything in the base/
subdirectory and any other tablespace directories. Other files,
such as those in pg_wal/ and pg_xact/, will still be synchronized
unless --no-sync is also specified. --no-sync-data-files is
primarily intended for internal use by tools that separately ensure
the skipped files are synchronized to disk. A follow-up commit
will use this to help optimize pg_upgrade's file transfer step.
The --sync-method=fsync implementation of this option makes use of
a new exclude_dir parameter for walkdir(). When not NULL,
exclude_dir specifies a directory to skip processing. The
--sync-method=syncfs implementation of this option just skips
synchronizing the non-default tablespace directories. This means
that initdb will still synchronize some or all of the database
files, but there's not much we can do about that.
Discussion: https://postgr.es/m/Zyvop-LxLXBLrZil%40nathan
Diffstat (limited to 'doc/src')
-rw-r--r-- | doc/src/sgml/ref/initdb.sgml | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/doc/src/sgml/ref/initdb.sgml b/doc/src/sgml/ref/initdb.sgml index 0026318485a..2f1f9a42f90 100644 --- a/doc/src/sgml/ref/initdb.sgml +++ b/doc/src/sgml/ref/initdb.sgml @@ -527,6 +527,33 @@ PostgreSQL documentation </listitem> </varlistentry> + <varlistentry id="app-initdb-option-no-sync-data-files"> + <term><option>--no-sync-data-files</option></term> + <listitem> + <para> + By default, <command>initdb</command> safely writes all database files + to disk. This option instructs <command>initdb</command> to skip + synchronizing all files in the individual database directories, the + database directories themselves, and the tablespace directories, i.e., + everything in the <filename>base</filename> subdirectory and any other + tablespace directories. Other files, such as those in + <literal>pg_wal</literal> and <literal>pg_xact</literal>, will still be + synchronized unless the <option>--no-sync</option> option is also + specified. + </para> + <para> + Note that if <option>--no-sync-data-files</option> is used in + conjuction with <option>--sync-method=syncfs</option>, some or all of + the aforementioned files and directories will be synchronized because + <literal>syncfs</literal> processes entire file systems. + </para> + <para> + This option is primarily intended for internal use by tools that + separately ensure the skipped files are synchronized to disk. + </para> + </listitem> + </varlistentry> + <varlistentry id="app-initdb-option-no-instructions"> <term><option>--no-instructions</option></term> <listitem> |