|
|
@ -1000,14 +1000,14 @@ GetNewMultiXactId(int nmembers, MultiXactOffset *offset) |
|
|
|
errmsg("database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database \"%s\"", |
|
|
|
errmsg("database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database \"%s\"", |
|
|
|
oldest_datname), |
|
|
|
oldest_datname), |
|
|
|
errhint("Execute a database-wide VACUUM in that database.\n" |
|
|
|
errhint("Execute a database-wide VACUUM in that database.\n" |
|
|
|
"You might also need to commit or roll back old prepared transactions."))); |
|
|
|
"You might also need to commit or roll back old prepared transactions, or drop stale replication slots."))); |
|
|
|
else |
|
|
|
else |
|
|
|
ereport(ERROR, |
|
|
|
ereport(ERROR, |
|
|
|
(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), |
|
|
|
(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), |
|
|
|
errmsg("database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database with OID %u", |
|
|
|
errmsg("database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database with OID %u", |
|
|
|
oldest_datoid), |
|
|
|
oldest_datoid), |
|
|
|
errhint("Execute a database-wide VACUUM in that database.\n" |
|
|
|
errhint("Execute a database-wide VACUUM in that database.\n" |
|
|
|
"You might also need to commit or roll back old prepared transactions."))); |
|
|
|
"You might also need to commit or roll back old prepared transactions, or drop stale replication slots."))); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
/*
|
|
|
@ -1031,7 +1031,7 @@ GetNewMultiXactId(int nmembers, MultiXactOffset *offset) |
|
|
|
oldest_datname, |
|
|
|
oldest_datname, |
|
|
|
multiWrapLimit - result), |
|
|
|
multiWrapLimit - result), |
|
|
|
errhint("Execute a database-wide VACUUM in that database.\n" |
|
|
|
errhint("Execute a database-wide VACUUM in that database.\n" |
|
|
|
"You might also need to commit or roll back old prepared transactions."))); |
|
|
|
"You might also need to commit or roll back old prepared transactions, or drop stale replication slots."))); |
|
|
|
else |
|
|
|
else |
|
|
|
ereport(WARNING, |
|
|
|
ereport(WARNING, |
|
|
|
(errmsg_plural("database with OID %u must be vacuumed before %u more MultiXactId is used", |
|
|
|
(errmsg_plural("database with OID %u must be vacuumed before %u more MultiXactId is used", |
|
|
@ -1040,7 +1040,7 @@ GetNewMultiXactId(int nmembers, MultiXactOffset *offset) |
|
|
|
oldest_datoid, |
|
|
|
oldest_datoid, |
|
|
|
multiWrapLimit - result), |
|
|
|
multiWrapLimit - result), |
|
|
|
errhint("Execute a database-wide VACUUM in that database.\n" |
|
|
|
errhint("Execute a database-wide VACUUM in that database.\n" |
|
|
|
"You might also need to commit or roll back old prepared transactions."))); |
|
|
|
"You might also need to commit or roll back old prepared transactions, or drop stale replication slots."))); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* Re-acquire lock and start over */ |
|
|
|
/* Re-acquire lock and start over */ |
|
|
@ -2321,7 +2321,7 @@ SetMultiXactIdLimit(MultiXactId oldest_datminmxid, Oid oldest_datoid, |
|
|
|
oldest_datname, |
|
|
|
oldest_datname, |
|
|
|
multiWrapLimit - curMulti), |
|
|
|
multiWrapLimit - curMulti), |
|
|
|
errhint("To avoid a database shutdown, execute a database-wide VACUUM in that database.\n" |
|
|
|
errhint("To avoid a database shutdown, execute a database-wide VACUUM in that database.\n" |
|
|
|
"You might also need to commit or roll back old prepared transactions."))); |
|
|
|
"You might also need to commit or roll back old prepared transactions, or drop stale replication slots."))); |
|
|
|
else |
|
|
|
else |
|
|
|
ereport(WARNING, |
|
|
|
ereport(WARNING, |
|
|
|
(errmsg_plural("database with OID %u must be vacuumed before %u more MultiXactId is used", |
|
|
|
(errmsg_plural("database with OID %u must be vacuumed before %u more MultiXactId is used", |
|
|
@ -2330,7 +2330,7 @@ SetMultiXactIdLimit(MultiXactId oldest_datminmxid, Oid oldest_datoid, |
|
|
|
oldest_datoid, |
|
|
|
oldest_datoid, |
|
|
|
multiWrapLimit - curMulti), |
|
|
|
multiWrapLimit - curMulti), |
|
|
|
errhint("To avoid a database shutdown, execute a database-wide VACUUM in that database.\n" |
|
|
|
errhint("To avoid a database shutdown, execute a database-wide VACUUM in that database.\n" |
|
|
|
"You might also need to commit or roll back old prepared transactions."))); |
|
|
|
"You might also need to commit or roll back old prepared transactions, or drop stale replication slots."))); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|