Troubleshooting Inactive Logical Replication Slots
Description
Inactive logical replication slots must be cleared in a timely manner for a production DB instance. If the value of the inactive logical replication slots metric is no less than 1 in three consecutive periods, there are inactive logical replication slots.
Inactive logical replication slots have the following impacts:
- Residual inactive logical replication slots retain resources required for logical replication. WAL logs cannot be cleared, occupying much storage space or even causing full storage.
- Applications may not run as expected, which may cause risks.
Troubleshooting
To troubleshoot inactive logical replication slots, perform the following steps:
- Check whether there is any invalid logical replication slot.
- Determine whether the logical replication slot is still useful.
- Delete the useless logical replication slot.
Solution
- Check whether there is any invalid logical replication slot.
Run the SQL statement shown below on the publishing client to check whether there is any invalid logical replication slot:
If any command output is displayed, there is an invalid logical replication slot in the instance. The slot_name field in the command output indicates the name of the invalid logical replication slot.
select slot_name,database,active from pg_replication_slots where active ='f' and slot_type='logical';
- Determine whether the logical replication slot is still useful.
If no, go to 3.
If yes, do as follows:
- Check whether the replication of the logical replication slot is not enabled during subscription creation on the subscription client.
Run the following SQL statement on the subscription client to check the return value in the subenabled column:
select subname,subenabled from pg_subscription;
- If the return value is f, logical replication is not enabled for subscriptions. Run the following SQL statement to enable logical replication:
ALTER SUBSCRIPTION sub_name ENABLE;
- If the return value is t, go to the next step.
- If the return value is f, logical replication is not enabled for subscriptions. Run the following SQL statement to enable logical replication:
- Check whether the logical replication slot is not cleared after any other tool is used to execute a task due to task interruption or exceptions in operations on the source or destination database, such as backup and index rebuilding.
Run the SQL statement shown below on the publishing client and check whether the return value of slot_name starts with drs. If yes, the logical replication slot is generated during DRS task execution. In this case, you can determine whether to clear the slot based on the task status.
select slot_name,database,active from pg_replication_slots where active ='f' and slot_type='logical';
- Check whether the replication of the logical replication slot is not enabled during subscription creation on the subscription client.
- If the logical replication slot is no longer used, delete the invalid logical replication slot.
select pg_drop_replication_slot('slot_name');
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot