Создать вручную бекап кластера и восстановить новый кластер из этого бекапа
Незаменимая часть любой отказоустойчивой системы - бекапы. Бекапы в Managed решении создаются автоматически. Но можно создать и вручную.
export POSTGRES=$(yc postgresql cluster get cam-postgres --format=json | jq -r ".id") yc postgresql cluster backup $POSTGRES \ --async
Посмотрим список имеющихся бекапов:
yc postgresql backup list
Восстановить кластер из резервной копии:
export POSTGRES=$(yc postgresql cluster get cam-postgres --format=json | jq -r ".id") export ZONE=ru-central1-a export SG=$(yc vpc sg get cam-db --format json | jq -r '.id') export NETWORK_ID=$(yc vpc network get cameda-test --format json | jq -r '.id') export SUBNET_ID=$(yc vpc subnet get subnet-a --format json | jq -r '.id') yc postgresql cluster restore \ --backup-id $POSTGRES:c9ql0na4r0qkjbkfgpgv \ --time '2022-09-08T18:15:05Z' \ --name cam-postgres2 \ --description 'PostgreSQL restore' \ --postgresql-version 14 \ --environment production \ --labels prod=postgres \ --network-name cameda-test \ --resource-preset s2.small \ --host zone-id=$ZONE,subnet-id=$SUBNET_ID,assign-public-ip \ --disk-type network-ssd \ --disk-size 60 \ --security-group-ids $SG \ --backup-window-start 01:00:00 \ --backup-retain-period-days 7 \ --websql-access \ --serverless-access \ --datalens-access \ --datatransfer-access=false \ --deletion-protection=false \ --async
Тут важно понять, что из бекапа создаётся совсем новый кластер. С другим именем, пресетом, размером диска.
Полезные ссылки.
Создаём сеть тут: https://teletype.in/@cameda/ZbTkF70KWK9
Про зоны доступности говорим здесь: https://teletype.in/@cameda/S34zdiTcbUM
Классы хостов PostgreSQL:
https://cloud.yandex.ru/docs/managed-postgresql/concepts/instance-types
Про создание кластера описано хорошо тут:
https://cloud.yandex.ru/docs/managed-postgresql/operations/cluster-create
Про квоты пишу здесь: https://teletype.in/@cameda/yTu0k42dbw0
SG для БД создаём тут: https://teletype.in/@cameda/RKN8F91c6Q7
Кластер создаю тут: https://teletype.in/@cameda/Lheee0sIIqV