Имеется 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]
Готово.





