mirror of
https://github.com/postgres/postgres.git
synced 2025-06-16 06:01:02 +03:00
Revert "Allow on-line enabling and disabling of data checksums"
This reverts the backend sides of commit 1fde38beaa
.
I have, at least for now, left the pg_verify_checksums tool in place, as
this tool can be very valuable without the rest of the patch as well,
and since it's a read-only tool that only runs when the cluster is down
it should be a lot safer.
This commit is contained in:
@ -24,7 +24,6 @@
|
||||
#include "catalog/pg_type.h"
|
||||
#include "funcapi.h"
|
||||
#include "miscadmin.h"
|
||||
#include "postmaster/checksumhelper.h"
|
||||
#include "replication/walreceiver.h"
|
||||
#include "storage/smgr.h"
|
||||
#include "utils/builtins.h"
|
||||
@ -699,61 +698,3 @@ pg_backup_start_time(PG_FUNCTION_ARGS)
|
||||
|
||||
PG_RETURN_DATUM(xtime);
|
||||
}
|
||||
|
||||
/*
|
||||
* Disables checksums for the cluster, unless already disabled.
|
||||
*
|
||||
* Has immediate effect - the checksums are set to off right away.
|
||||
*/
|
||||
Datum
|
||||
disable_data_checksums(PG_FUNCTION_ARGS)
|
||||
{
|
||||
/*
|
||||
* If we don't need to write new checksums, then clearly they are already
|
||||
* disabled.
|
||||
*/
|
||||
if (!DataChecksumsNeedWrite())
|
||||
ereport(ERROR,
|
||||
(errmsg("data checksums already disabled")));
|
||||
|
||||
ShutdownChecksumHelperIfRunning();
|
||||
|
||||
SetDataChecksumsOff();
|
||||
|
||||
PG_RETURN_VOID();
|
||||
}
|
||||
|
||||
/*
|
||||
* Enables checksums for the cluster, unless already enabled.
|
||||
*
|
||||
* Supports vacuum-like cost-based throttling, to limit system load.
|
||||
* Starts a background worker that updates checksums on existing data.
|
||||
*/
|
||||
Datum
|
||||
enable_data_checksums(PG_FUNCTION_ARGS)
|
||||
{
|
||||
int cost_delay = PG_GETARG_INT32(0);
|
||||
int cost_limit = PG_GETARG_INT32(1);
|
||||
|
||||
if (cost_delay < 0)
|
||||
ereport(ERROR,
|
||||
(errmsg("cost delay cannot be less than zero")));
|
||||
if (cost_limit <= 0)
|
||||
ereport(ERROR,
|
||||
(errmsg("cost limit must be a positive value")));
|
||||
|
||||
/*
|
||||
* Allow state change from "off" or from "inprogress", since this is how
|
||||
* we restart the worker if necessary.
|
||||
*/
|
||||
if (DataChecksumsNeedVerify())
|
||||
ereport(ERROR,
|
||||
(errmsg("data checksums already enabled")));
|
||||
|
||||
SetDataChecksumsInProgress();
|
||||
if (!StartChecksumHelperLauncher(cost_delay, cost_limit))
|
||||
ereport(ERROR,
|
||||
(errmsg("failed to start checksum helper process")));
|
||||
|
||||
PG_RETURN_VOID();
|
||||
}
|
||||
|
Reference in New Issue
Block a user