<!ENTITY pgarchivecleanup SYSTEM "pgarchivecleanup.sgml">
<!ENTITY pgBasebackup SYSTEM "pg_basebackup.sgml">
<!ENTITY pgbench SYSTEM "pgbench.sgml">
+<!ENTITY pgChecksums SYSTEM "pg_checksums.sgml">
<!ENTITY pgConfig SYSTEM "pg_config-ref.sgml">
<!ENTITY pgControldata SYSTEM "pg_controldata.sgml">
<!ENTITY pgCtl SYSTEM "pg_ctl-ref.sgml">
<!ENTITY pgResetwal SYSTEM "pg_resetwal.sgml">
<!ENTITY pgRestore SYSTEM "pg_restore.sgml">
<!ENTITY pgRewind SYSTEM "pg_rewind.sgml">
-<!ENTITY pgVerifyChecksums SYSTEM "pg_verify_checksums.sgml">
<!ENTITY pgtestfsync SYSTEM "pgtestfsync.sgml">
<!ENTITY pgtesttiming SYSTEM "pgtesttiming.sgml">
<!ENTITY pgupgrade SYSTEM "pgupgrade.sgml">
<!--
-doc/src/sgml/ref/pg_verify_checksums.sgml
+doc/src/sgml/ref/pg_checksums.sgml
PostgreSQL documentation
-->
-<refentry id="pgverifychecksums">
- <indexterm zone="pgverifychecksums">
- <primary>pg_verify_checksums</primary>
+<refentry id="app-pgchecksums">
+ <indexterm zone="app-pgchecksums">
+ <primary>pg_checksums</primary>
</indexterm>
<refmeta>
- <refentrytitle><application>pg_verify_checksums</application></refentrytitle>
+ <refentrytitle><application>pg_checksums</application></refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo>Application</refmiscinfo>
</refmeta>
<refnamediv>
- <refname>pg_verify_checksums</refname>
+ <refname>pg_checksums</refname>
<refpurpose>verify data checksums in a <productname>PostgreSQL</productname> database cluster</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
- <command>pg_verify_checksums</command>
+ <command>pg_checksums</command>
<arg rep="repeat" choice="opt"><replaceable class="parameter">option</replaceable></arg>
<group choice="opt">
<group choice="opt">
</cmdsynopsis>
</refsynopsisdiv>
- <refsect1 id="r1-app-pg_verify_checksums-1">
+ <refsect1 id="r1-app-pg_checksums-1">
<title>Description</title>
<para>
- <command>pg_verify_checksums</command> verifies data checksums in a
+ <application>pg_checksums</application> verifies data checksums in a
<productname>PostgreSQL</productname> cluster. The server must be shut
- down cleanly before running <application>pg_verify_checksums</application>.
+ down cleanly before running <application>pg_checksums</application>.
The exit status is zero if there are no checksum errors, otherwise nonzero.
</para>
</refsect1>
<term><option>--version</option></term>
<listitem>
<para>
- Print the <application>pg_verify_checksums</application> version and exit.
+ Print the <application>pg_checksums</application> version and exit.
</para>
</listitem>
</varlistentry>
<term><option>--help</option></term>
<listitem>
<para>
- Show help about <application>pg_verify_checksums</application> command line
+ Show help about <application>pg_checksums</application> command line
arguments, and exit.
</para>
</listitem>
&initdb;
&pgarchivecleanup;
+ &pgChecksums;
&pgControldata;
&pgCtl;
&pgResetwal;
&pgtestfsync;
&pgtesttiming;
&pgupgrade;
- &pgVerifyChecksums;
&pgwaldump;
&postgres;
&postmaster;
/*
* List of files excluded from checksum validation.
*
- * Note: this list should be kept in sync with what pg_verify_checksums.c
+ * Note: this list should be kept in sync with what pg_checksums.c
* includes.
*/
static const char *const noChecksumFiles[] = {
initdb \
pg_archivecleanup \
pg_basebackup \
+ pg_checksums \
pg_config \
pg_controldata \
pg_ctl \
pg_test_fsync \
pg_test_timing \
pg_upgrade \
- pg_verify_checksums \
pg_waldump \
pgbench \
psql \
command_like(['pg_controldata', $datadir],
qr/Data page checksum version:.*0/,
'checksums are disabled in control file');
-# pg_verify_checksums fails with checksums disabled by default. This is
-# not part of the tests included in pg_verify_checksums to save from
+# pg_checksums fails with checksums disabled by default. This is
+# not part of the tests included in pg_checksums to save from
# the creation of an extra instance.
command_fails(
- [ 'pg_verify_checksums', '-D', $datadir],
- "pg_verify_checksums fails with data checksum disabled");
+ [ 'pg_checksums', '-D', $datadir],
+ "pg_checksums fails with data checksum disabled");
command_ok([ 'initdb', '-S', $datadir ], 'sync only');
command_fails([ 'initdb', $datadir ], 'existing data directory');
--- /dev/null
+/pg_checksums
+
+/tmp_check/
#-------------------------------------------------------------------------
#
-# Makefile for src/bin/pg_verify_checksums
+# Makefile for src/bin/pg_checksums
#
# Copyright (c) 1998-2019, PostgreSQL Global Development Group
#
-# src/bin/pg_verify_checksums/Makefile
+# src/bin/pg_checksums/Makefile
#
#-------------------------------------------------------------------------
-PGFILEDESC = "pg_verify_checksums - verify data checksums in an offline cluster"
+PGFILEDESC = "pg_checksums - verify data checksums in an offline cluster"
PGAPPICON=win32
-subdir = src/bin/pg_verify_checksums
+subdir = src/bin/pg_checksums
top_builddir = ../../..
include $(top_builddir)/src/Makefile.global
-OBJS= pg_verify_checksums.o $(WIN32RES)
+OBJS= pg_checksums.o $(WIN32RES)
-all: pg_verify_checksums
+all: pg_checksums
-pg_verify_checksums: $(OBJS) | submake-libpgport
+pg_checksums: $(OBJS) | submake-libpgport
$(CC) $(CFLAGS) $^ $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
install: all installdirs
- $(INSTALL_PROGRAM) pg_verify_checksums$(X) '$(DESTDIR)$(bindir)/pg_verify_checksums$(X)'
+ $(INSTALL_PROGRAM) pg_checksums$(X) '$(DESTDIR)$(bindir)/pg_checksums$(X)'
installdirs:
$(MKDIR_P) '$(DESTDIR)$(bindir)'
uninstall:
- rm -f '$(DESTDIR)$(bindir)/pg_verify_checksums$(X)'
+ rm -f '$(DESTDIR)$(bindir)/pg_checksums$(X)'
clean distclean maintainer-clean:
- rm -f pg_verify_checksums$(X) $(OBJS)
+ rm -f pg_checksums$(X) $(OBJS)
rm -rf tmp_check
check:
--- /dev/null
+# src/bin/pg_checksums/nls.mk
+CATALOG_NAME = pg_checksums
+AVAIL_LANGUAGES =
+GETTEXT_FILES = pg_checksums.c
-/*
- * pg_verify_checksums
+/*-------------------------------------------------------------------------
+ *
+ * pg_checksums.c
+ * Verifies page level checksums in an offline cluster.
*
- * Verifies page level checksums in an offline cluster
+ * Copyright (c) 2010-2019, PostgreSQL Global Development Group
*
- * Copyright (c) 2010-2019, PostgreSQL Global Development Group
+ * IDENTIFICATION
+ * src/bin/pg_checksums/pg_checksums.c
*
- * src/bin/pg_verify_checksums/pg_verify_checksums.c
+ *-------------------------------------------------------------------------
*/
+
#include "postgres_fe.h"
#include <dirent.h>
int option_index;
bool crc_ok;
- set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_verify_checksums"));
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_checksums"));
progname = get_progname(argv[0]);
}
if (strcmp(argv[1], "--version") == 0 || strcmp(argv[1], "-V") == 0)
{
- puts("pg_verify_checksums (PostgreSQL) " PG_VERSION);
+ puts("pg_checksums (PostgreSQL) " PG_VERSION);
exit(0);
}
}
if (ControlFile->pg_control_version != PG_CONTROL_VERSION)
{
- fprintf(stderr, _("%s: cluster is not compatible with this version of pg_verify_checksums\n"),
+ fprintf(stderr, _("%s: cluster is not compatible with this version of pg_checksums\n"),
progname);
exit(1);
}
--- /dev/null
+use strict;
+use warnings;
+use TestLib;
+use Test::More tests => 8;
+
+program_help_ok('pg_checksums');
+program_version_ok('pg_checksums');
+program_options_handling_ok('pg_checksums');
-# Do basic sanity checks supported by pg_verify_checksums using
+# Do basic sanity checks supported by pg_checksums using
# an initialized cluster.
use strict;
# Checksums are correct for single relfilenode as the table is not
# corrupted yet.
- command_ok(['pg_verify_checksums', '-D', $pgdata,
+ command_ok(['pg_checksums', '-D', $pgdata,
'-r', $relfilenode_corrupted],
"succeeds for single relfilenode on tablespace $tablespace with offline cluster");
close $file;
# Checksum checks on single relfilenode fail
- $node->command_checks_all([ 'pg_verify_checksums', '-D', $pgdata, '-r',
+ $node->command_checks_all([ 'pg_checksums', '-D', $pgdata, '-r',
$relfilenode_corrupted],
1,
[qr/Bad checksums:.*1/],
"fails with corrupted data for single relfilenode on tablespace $tablespace");
# Global checksum checks fail as well
- $node->command_checks_all([ 'pg_verify_checksums', '-D', $pgdata],
+ $node->command_checks_all([ 'pg_checksums', '-D', $pgdata],
1,
[qr/Bad checksums:.*1/],
[qr/checksum verification failed/],
$node->start;
$node->safe_psql('postgres', "DROP TABLE $table;");
$node->stop;
- $node->command_ok(['pg_verify_checksums', '-D', $pgdata],
+ $node->command_ok(['pg_checksums', '-D', $pgdata],
"succeeds again after table drop on tablespace $tablespace");
$node->start;
append_to_file "$pgdata/global/pgsql_tmp/1.1", "foo";
# Checksums pass on a newly-created cluster
-command_ok(['pg_verify_checksums', '-D', $pgdata],
+command_ok(['pg_checksums', '-D', $pgdata],
"succeeds with offline cluster");
# Checks cannot happen with an online cluster
$node->start;
-command_fails(['pg_verify_checksums', '-D', $pgdata],
+command_fails(['pg_checksums', '-D', $pgdata],
"fails with online cluster");
# Check corruption of table on default tablespace.
"CREATE TABLESPACE ts_corrupt LOCATION '$tablespace_dir';");
check_relation_corruption($node, 'corrupt2', 'ts_corrupt');
-# Utility routine to check that pg_verify_checksums is able to detect
+# Utility routine to check that pg_checksums is able to detect
# correctly-named relation files filled with some corrupted data.
sub fail_corrupt
{
my $file_name = "$pgdata/global/$file";
append_to_file $file_name, "foo";
- $node->command_checks_all([ 'pg_verify_checksums', '-D', $pgdata],
+ $node->command_checks_all([ 'pg_checksums', '-D', $pgdata],
1,
[qr/^$/],
[qr/could not read block 0 in file.*$file\":/],
+++ /dev/null
-/pg_verify_checksums
-
-/tmp_check/
+++ /dev/null
-# src/bin/pg_verify_checksums/nls.mk
-CATALOG_NAME = pg_verify_checksums
-AVAIL_LANGUAGES =
-GETTEXT_FILES = pg_verify_checksums.c
+++ /dev/null
-use strict;
-use warnings;
-use TestLib;
-use Test::More tests => 8;
-
-program_help_ok('pg_verify_checksums');
-program_version_ok('pg_verify_checksums');
-program_options_handling_ok('pg_verify_checksums');