Имеется AWS RDS инстанс PostgreSQL, который в какой-то момент перестал принимать подключения:
$ psql --host=datascience-ops.cjonwt.us-west-2.rds.amazonaws.com --username=dsops --password --dbname=dsops Password for user dsops: psql: could not connect to server: Connection refused Is the server running on host "datascience-ops.cjonwt.us-west-2.rds.amazonaws.com" and accepting TCP/IP connections on port 5432?
Проверяем статус:
[simterm]
$ aws --profile ads-mic rds describe-db-instances --db-instance-identifier datascience-ops --query 'DBInstances[*].[DBInstanceStatus,AllocatedStorage]' --output text storage-full 5
И в логах:
Бекап сейчас выполнить тоже нельзя:
[simterm]
$ aws --profile ads-mic rds create-db-snapshot --db-snapshot-identifier datascience-ops-2018-03-01-sizefix --db-instance-identifier datascience-ops An error occurred (InvalidDBInstanceState) when calling the CreateDBSnapshot operation: Cannot create a snapshot because the database instance datascience-ops is not currently in the available state.
[/simterm]
Увеличим выделенное место, используем modify-db-instance
:
[simterm]
$ aws --profile ads-mic rds modify-db-instance --db-instance-identifier datascience-ops --allocated-storage 20 --apply-immediately
[/simterm]
Проверяем:
[simterm]
$ aws --profile ads-mic rds describe-db-instances --db-instance-identifier datascience-ops --query 'DBInstances[*].[DBInstanceStatus,AllocatedStorage]' --output text modifying 5
[/simterm]
Статус modifying, ОК, ждём.
Пока modifying – проверяем подключение:
[simterm]
$ psql --host=datascience-ops.cjoqeswrmnwt.us-west-2.rds.amazonaws.com --username=dsops --password --dbname=dsops Password for user dsops: psql (8.4.20, server 9.4.7) WARNING: psql version 8.4, server version 9.4. Some psql features might not work. SSL connection (cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256) Type "help" for help. dsops=> \l List of databases Name | Owner | Encoding | Collation | Ctype | Access privileges -----------+-----------+----------+-------------+-------------+------------------------- dsops | dsops | UTF8 | en_US.UTF-8 | en_US.UTF-8 | postgres | dsops | UTF8 | en_US.UTF-8 | en_US.UTF-8 | rdsadmin | rdsadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | rdsadmin=CTc/rdsadmin template0 | rdsadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/rdsadmin : rdsadmin=CTc/rdsadmin template1 | dsops | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/dsops : dsops=CTc/dsops (5 rows) dsops=>
[/simterm]
Проверяем таблицы:
[simterm]
dsops=> \d List of relations Schema | Name | Type | Owner --------+---------------------------------------+----------+----------- public | user_dealerships | table | dsops public | user_employeedir | table | dsops ...
[/simterm]
Всё на месте, хорошо.
После того, как место было добавлено – статус ещё некоторое время был storage-full, потом запустился бекап расписанию, который не мог быть выполнен ранее (с октября прошлого года, ага), видимо из-за проблем с местом:
[simterm]
$ aws --profile ads-mic rds describe-db-snapshots --db-instance-identifier datascience-ops --query 'DBSnapshots[*].DBSnapshotIdentifier' --output table ----------------------------------------------- | DescribeDBSnapshots | +---------------------------------------------+ | rds:datascience-ops-2017-10-24-11-57 | | rds:datascience-ops-2018-03-02-05-15 | +---------------------------------------------+
[/simterm]
И только минут через 20 статус стал available:
[simterm]
$ aws --profile ads-mic rds describe-db-instances --db-instance-identifier datascience-ops --query 'DBInstances[*].[DBInstanceStatus,AllocatedStorage]' --output text available 10
[/simterm]
Готово.