Disk Space Usage Reaches the Threshold and the Database Becomes Read-only
Symptom
The following error is reported when a non-read-only SQL statement is executed.
ERROR: cannot execute %s in a read-only transaction.
An error is reported when some non-read-only SQL statements (such as insert, update, create table as, create index, alter table, and copy from) are executed.
canceling statement due to default_transaction_read_only is on.
Cause Analysis
After the disk space usage reaches the threshold, the database enters the read-only mode. In this mode, only read-only statements can be executed.
Procedure
Use either of the following methods to connect to the database in maintenance mode:
Method 1
gsql -d postgres -p 8000 -r -m
Method 2
gsql -d postgres -p 8000 -r
After the connection is successful, run the following command.
set xc_maintenance_mode=on;
Run the DROP or TRUNCATE statement to delete user tables that are no longer used until the disk space usage falls below the threshold.
Deleting user tables can only temporarily relieve the insufficient disk space. To permanently solve the problem, expand the disk space.
Disable the read-only mode of the database as user omm.
gs_guc reload -D /gaussdb/data/dbnode -c "default_transaction_read_only=off"