Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Managed Service for PostgreSQL
  • Начало работы
    • Все инструкции
      • Подключение к базе данных
      • SQL-запросы в Yandex WebSQL
      • Копирование и заполнение таблицы
      • Управление базами данных
  • Управление доступом
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Обучающие курсы

В этой статье:

  • Получить список баз данных в кластере
  • Создать базу данных
  • Переименовать базу данных
  • Настроить защиту от удаления
  • Удалить базу данных
  1. Пошаговые инструкции
  2. Базы данных
  3. Управление базами данных

Управление базами данных в Managed Service for PostgreSQL

Статья создана
Yandex Cloud
Улучшена
mmerihsesh
Обновлена 21 апреля 2025 г.
  • Получить список баз данных в кластере
  • Создать базу данных
  • Переименовать базу данных
  • Настроить защиту от удаления
  • Удалить базу данных

Вы можете добавлять, переименовывать и удалять базы данных, а также просматривать информацию о них.

Важно

Вы не можете управлять базами данных с помощью команд SQL.

Получить список баз данных в кластереПолучить список баз данных в кластере

Консоль управления
CLI
REST API
gRPC API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for PostgreSQL.
  2. Нажмите на имя нужного кластера и выберите вкладку Базы данных.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы получить список баз данных в кластере, выполните команду:

yc managed-postgresql database list --cluster-name=<имя_кластера>

Имя кластера можно запросить со списком кластеров в каталоге.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Database.List и выполните запрос, например, с помощью cURL:

    curl \
      --request GET \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<идентификатор_кластера>/databases'
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом DatabaseService.List и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/database_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "cluster_id": "<идентификатор_кластера>"
          }' \
      mdb.api.cloud.yandex.net:443 \
      yandex.cloud.mdb.postgresql.v1.DatabaseService.List
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Создать базу данныхСоздать базу данных

Примечание

В каждом кластере вы можете создать не более 1000 баз данных.

Консоль управления
CLI
Terraform
REST API
gRPC API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for PostgreSQL.

  2. Нажмите на имя нужного кластера.

  3. Если владельцем новой базы данных должен стать еще не существующий пользователь, создайте его.

  4. Выберите вкладку Базы данных.

  5. Нажмите кнопку Создать базу данных.

  6. Укажите параметры базы данных:

    • Имя.

      Имя базы может содержать латинские буквы, цифры, подчеркивание и дефис. Максимальная длина имени 63 символа. Имена postgres, template0, template1 зарезервированы для собственных нужд Managed Service for PostgreSQL. Создавать базы с этими именами нельзя.

    • Владелец.

    • Защита от удаления.

      Возможные значения:

      • Как у кластера.
      • Включена.
      • Выключена.
    • (Опционально) Шаблон — имя одной из существующих баз, с которой нужно будет скопировать схему данных. На время создания новой базы все подключения к базе-шаблону будут закрыты.

      Подробнее см. в документации PostgreSQL.

    • Локали сортировки и набора символов.

      PostgreSQL использует локали для поддержки различных языковых стандартов. Выбор локали влияет на:

      • Порядок сортировки в запросах с использованием оператора ORDER BY или стандартных операторов сравнения текстовых данных.
      • Функции upper, lower, initcap, а также семейство функций to_char.
      • Операторы поиска по шаблону (LIKE, ILIKE, SIMILAR TO, регулярные выражения).
      • Возможность использовать индексы с оператором LIKE.

      По умолчанию используется локаль C. При использовании кодировки C для текстовых данных с нелатинскими (например, кириллическими) символами возможны ошибки в порядке сортировки данных и отображении данных при поиске по шаблону. Если эта локаль не подходит для корректной обработки таблиц в базе данных, выберите другую из списка. Однако учитывайте, что использование нестандартной локали может снизить скорость выполнения запросов к базе данных.

      Подробнее о настройках локали см. в документации PostgreSQL.

      Настройки локали нельзя изменить после создания базы данных. Но вы можете задать локаль сортировки для столбцов при создании и изменении отдельных таблиц. Подробнее читайте в документации PostgreSQL.

  7. Нажмите кнопку Создать.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы создать базу данных в кластере:

  1. Посмотрите описание команды CLI для создания БД:

    yc managed-postgresql database create --help
    
  2. Запросите список пользователей кластера, чтобы выбрать владельца новой базы данных:

    yc managed-postgresql user list --cluster-name=<имя_кластера>
    

    Если нужного пользователя в списке нет, создайте его.

  3. Выполните команду создания БД. При необходимости укажите нужные локали сортировки и набора символов (по умолчанию задаются LC_COLLATE=C и LC_CTYPE=C) и шаблон:

    yc managed-postgresql database create <имя_БД> \
       --cluster-name=<имя_кластера> \
       --owner=<имя_владельца_БД> \
       --lc-collate=<локаль_сортировки> \
       --lc-type=<локаль_набора_символов> \
       --template-db=<имя_БД-шаблона>
    

    Имя базы может содержать латинские буквы, цифры, подчеркивание и дефис. Максимальная длина имени 63 символа. Имена postgres, template0, template1 зарезервированы для собственных нужд Managed Service for PostgreSQL. Создавать базы с этими именами нельзя.

    Имя кластера можно запросить со списком кластеров в каталоге.

    Managed Service for PostgreSQL запустит операцию создания базы данных.

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

    Полный список доступных для изменения полей конфигурации базы данных кластера Managed Service for PostgreSQL см. в документации провайдера Terraform.

  2. Добавьте ресурс yandex_mdb_postgresql_database. При необходимости укажите нужные локали сортировки и набора символов (по умолчанию задаются LC_COLLATE=C и LC_CTYPE=C) и шаблон:

    resource "yandex_mdb_postgresql_database" "<имя_БД>" {
      cluster_id  = "<идентификатор_кластера>"
      name        = "<имя_БД>"
      owner       = "<имя_владельца_БД>"
      lc_collate  = "<локаль_сортировки>"
      lc_type     = "<локаль_набора_символов>"
      template_db = "<имя_БД-шаблона>"
      deletion_protection = <защита_от_удаления>
    }
    

    Где:

    • owner — имя пользователя-владельца, который должен быть задан в ресурсе yandex_mdb_postgresql_user.
    • deletion_protection — защита БД от удаления: true, false или unspecified (наследует значение от кластера). Значение по умолчанию — unspecified.

    Имя базы может содержать латинские буквы, цифры, подчеркивание и дефис. Максимальная длина имени 63 символа. Имена postgres, template0, template1 зарезервированы для собственных нужд Managed Service for PostgreSQL. Создавать базы с этими именами нельзя.

  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Важно

После создания БД не меняйте ее владельца в параметре owner — это приведет к пересозданию БД и потере данных.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Database.Create и выполните запрос, например, с помощью cURL:

    curl \
      --request POST \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --header "Content-Type: application/json" \
      --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<идентификатор_кластера>/databases' \
      --data '{
                "databaseSpec": {
                  "name": "<имя_БД>",
                  "owner": "<имя_владельца_БД>",
                  "lcCollate": "<локаль_сортировки>",
                  "lcCtype": "<локаль_набора_символов>",
                  "extensions": [
                    {
                      "name": "<имя_расширения>",
                      "version": "<версия_расширения>"
                    }
                  ],
                  "deletionProtection": <защита_от_удаления>
                }
              }'
    

    Где databaseSpec — объект, содержащий настройки новой БД. Имеет следующую структуру:

    • name — имя БД.

      Имя базы может содержать латинские буквы, цифры, подчеркивание и дефис. Максимальная длина имени 63 символа. Имена postgres, template0, template1 зарезервированы для собственных нужд Managed Service for PostgreSQL. Создавать базы с этими именами нельзя.

    • owner — имя владельца БД.

    • lcCollate — локаль сортировки. Значение по умолчанию — C.

    • lcCtype — локаль набора символов. Значение по умолчанию — C.

    • extensions — массив расширений БД. Один элемент массива содержит настройки для одного расширения и имеет следующую структуру:

      • extensions.name — имя расширения;
      • extensions.version — версия расширения.

      Указывайте имя и версию в соответствии со списком поддерживаемых расширений и утилит PostgreSQL.

    • deletionProtection — защита БД от удаления: true, false или unspecified (наследует значение от кластера). Значение по умолчанию — unspecified.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом DatabaseService.Create и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/database_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "cluster_id": "<идентификатор_кластера>",
            "database_spec": {
              "name": "<имя_БД>",
              "owner": "<имя_владельца_БД>",
              "lc_collate": "<локаль_сортировки>",
              "lc_ctype": "<локаль_набора_символов>",
              "extensions": [
                {
                  "name": "<имя_расширения>",
                  "version": "<версия_расширения>"
                }
              ],
              "deletion_protection": <защита_от_удаления>
            }
          }' \
      mdb.api.cloud.yandex.net:443 \
      yandex.cloud.mdb.postgresql.v1.DatabaseService.Create
    

    Где databaseSpec — объект, содержащий настройки новой БД. Имеет следующую структуру:

    • name — имя БД.

      Имя базы может содержать латинские буквы, цифры, подчеркивание и дефис. Максимальная длина имени 63 символа. Имена postgres, template0, template1 зарезервированы для собственных нужд Managed Service for PostgreSQL. Создавать базы с этими именами нельзя.

    • owner — имя владельца БД.

    • lc_collate — локаль сортировки. Значение по умолчанию — C.

    • lc_ctype — локаль набора символов. Значение по умолчанию — C.

    • extensions — массив расширений БД. Один элемент массива содержит настройки для одного расширения и имеет следующую структуру:

      • extensions.name — имя расширения;
      • extensions.version — версия расширения.

      Указывайте имя и версию в соответствии со списком поддерживаемых расширений и утилит PostgreSQL.

    • deletion_protection — защита БД от удаления: true, false или unspecified (наследует значение от кластера). Значение по умолчанию — unspecified.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Переименовать базу данныхПереименовать базу данных

Terraform
REST API
gRPC API
  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

    Полный список доступных для изменения полей конфигурации базы данных кластера Managed Service for PostgreSQL см. в документации провайдера Terraform.

  2. Найдите ресурс yandex_mdb_postgresql_database нужной базы данных.

  3. Измените значение поля name:

    resource "yandex_mdb_postgresql_database" "<имя_базы данных>" {
      ...
      name     = "<новое_имя_базы_данных>"
      ...
    }
    

    Имя базы может содержать латинские буквы, цифры, подчеркивание и дефис. Максимальная длина имени 63 символа. Имена postgres, template0, template1 зарезервированы для собственных нужд Managed Service for PostgreSQL. Создавать базы с этими именами нельзя.

  4. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  5. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Database.Update и выполните запрос, например, с помощью cURL:

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

    curl \
      --request PATCH \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --header "Content-Type: application/json" \
      --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<идентификатор_кластера>/databases/<прежнее_имя_БД>' \
      --data '{
                "updateMask": "newDatabaseName",
                "newDatabaseName": "<новое_имя_БД>"
              }'
    

    Где:

    • updateMask — перечень изменяемых параметров в одну строку через запятую.

      В данном случае передается только один параметр.

    • newDatabaseName — новое имя БД.

      Имя базы может содержать латинские буквы, цифры, подчеркивание и дефис. Максимальная длина имени 63 символа. Имена postgres, template0, template1 зарезервированы для собственных нужд Managed Service for PostgreSQL. Создавать базы с этими именами нельзя.

    Идентификатор кластера можно запросить со списком кластеров в каталоге, а имя БД — со списком БД в кластере.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом DatabaseService.Update и выполните запрос, например, с помощью gRPCurl:

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре update_mask (в виде массива строк paths[]).

    Формат перечисления настроек
    "update_mask": {
        "paths": [
            "<настройка_1>",
            "<настройка_2>",
            ...
            "<настройка_N>"
        ]
    }
    
    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/database_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "cluster_id": "<идентификатор_кластера>",
            "database_name": "<прежнее_имя_БД>",
            "update_mask": {
              "paths": [
                "new_database_name"
              ]
            },
            "new_database_name": "<новое_имя_БД>"
          }' \
      mdb.api.cloud.yandex.net:443 \
      yandex.cloud.mdb.postgresql.v1.DatabaseService.Update
    

    Где:

    • update_mask — перечень изменяемых параметров в виде массива строк paths[].

      В данном случае передается только один параметр.

    • new_database_name — новое имя БД.

      Имя базы может содержать латинские буквы, цифры, подчеркивание и дефис. Максимальная длина имени 63 символа. Имена postgres, template0, template1 зарезервированы для собственных нужд Managed Service for PostgreSQL. Создавать базы с этими именами нельзя.

    Идентификатор кластера можно запросить со списком кластеров в каталоге, а имя БД — со списком БД в кластере.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Настроить защиту от удаленияНастроить защиту от удаления

Консоль управления
Terraform
REST API
gRPC API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for PostgreSQL.
  2. Нажмите на имя нужного кластера и выберите вкладку Базы данных.
  3. Нажмите на значок в строке нужной БД и выберите пункт Настроить.
  4. Выберите нужное значение в поле Защита от удаления.
  5. Нажмите кнопку Сохранить.
  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

  2. Найдите ресурс yandex_mdb_postgresql_database нужной БД.

  3. Добавьте параметр deletion_protection. Доступные значения: true, false или unspecified (наследует значение от кластера). Значение по умолчанию — unspecified.

    resource "yandex_mdb_postgresql_database" "<имя_базы_данных>" {
      ...
      deletion_protection = <защита_от_удаления>
      ...
    }
    
  4. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  5. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Database.Update и выполните запрос, например, с помощью cURL:

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

    curl \
      --request PATCH \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --header "Content-Type: application/json" \
      --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<идентификатор_кластера>/databases/<имя_БД>' \
      --data '{
                "updateMask": "deletionProtection",
                "deletionProtection": <защита_от_удаления>
              }'
    

    Где:

    • updateMask — перечень изменяемых параметров в одну строку через запятую.

      В данном случае передается только один параметр.

    • deletionProtection — защита БД от удаления: true, false или unspecified (наследует значение от кластера). Значение по умолчанию — unspecified.

    Идентификатор кластера можно запросить со списком кластеров в каталоге, а имя БД — со списком БД в кластере.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом DatabaseService.Update и выполните запрос, например, с помощью gRPCurl:

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре update_mask (в виде массива строк paths[]).

    Формат перечисления настроек
    "update_mask": {
        "paths": [
            "<настройка_1>",
            "<настройка_2>",
            ...
            "<настройка_N>"
        ]
    }
    
    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/database_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "cluster_id": "<идентификатор_кластера>",
            "database_name": "<имя_БД>",
            "update_mask": {
              "paths": [
                "deletion_protection"
              ]
            },
            "deletion_protection": <защита_от_удаления>
          }' \
      mdb.api.cloud.yandex.net:443 \
      yandex.cloud.mdb.postgresql.v1.DatabaseService.Update
    

    Где:

    • update_mask — перечень изменяемых параметров в виде массива строк paths[].

      В данном случае передается только один параметр.

    • deletion_protection — защита БД от удаления: true, false или unspecified (наследует значение от кластера). Значение по умолчанию — unspecified.

    Идентификатор кластера можно запросить со списком кластеров в каталоге, а имя БД — со списком БД в кластере.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Важно

Защита от удаления действует только на уровне конкретной БД. При удалении кластера будут удалены все БД, в том числе защищенные от удаления.

Удалить базу данныхУдалить базу данных

БД может быть защищена от удаления. Чтобы удалить такую БД, сперва снимите защиту.

Консоль управления
CLI
Terraform
REST API
gRPC API

Чтобы удалить базу данных:

  1. Перейдите на страницу каталога и выберите сервис Managed Service for PostgreSQL.
  2. Нажмите на имя нужного кластера и выберите вкладку Базы данных.
  3. Нажмите на значок в строке нужной БД, выберите пункт Удалить и подтвердите удаление.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы удалить базу данных, выполните команду:

yc managed-postgresql database delete <имя_БД> \
   --cluster-name <имя_кластера>

Имя кластера можно запросить со списком кластеров в каталоге.

Чтобы удалить базу данных:

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

    Полный список доступных для изменения полей конфигурации базы данных кластера Managed Service for PostgreSQL см. в документации провайдера Terraform.

  2. Удалите ресурс yandex_mdb_postgresql_database с именем удаляемой базы данных.

  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Database.Delete и выполните запрос, например, с помощью cURL:

    curl \
      --request DELETE \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<идентификатор_кластера>/databases/<имя_БД>'
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге, а имя БД — со списком БД в кластере.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом DatabaseService.Delete и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/database_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "cluster_id": "<идентификатор_кластера>",
            "database_name": "<имя_БД>"
          }' \
      mdb.api.cloud.yandex.net:443 \
      yandex.cloud.mdb.postgresql.v1.DatabaseService.Delete
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге, а имя БД — со списком БД в кластере.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Важно

Прежде чем создать новую базу с тем же именем, дождитесь завершения операции удаления, иначе будет восстановлена удаляемая база. Статус операции можно получить вместе со списком операций в кластере.

Была ли статья полезна?

Предыдущая
Копирование и заполнение таблицы
Следующая
Управление пользователями БД
Проект Яндекса
© 2025 ООО «Яндекс.Облако»