Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
© 2022 ООО «Яндекс.Облако»
Yandex Managed Service for PostgreSQL
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Информация об имеющихся кластерах
    • Создание кластера
    • Подключение к базе данных
    • Остановка и запуск кластера
    • SQL-запросы в консоли управления
    • Обновление версии PostgreSQL
    • Изменение настроек кластера и базы данных
    • Подключение к DataLens
    • Управление хостами PostgreSQL
    • Управление базами данных
    • Управление PostgreSQL-расширениями
    • Управление пользователями БД
    • Назначение привилегий и ролей
    • Управление резервными копиями
    • Просмотр логов кластера
    • Удаление кластера
    • Диагностика производительности
    • Мониторинг состояния кластера и хостов
  • Практические руководства
    • Все сценарии
    • Создание кластера PostgreSQL для 1С
    • Выгрузка базы данных в Yandex Data Proc
    • Анализ производительности и оптимизация
    • Репликация и миграция
      • Логическая репликация PostgreSQL
      • Миграция базы данных в Managed Service for PostgreSQL
      • Миграция базы данных из Managed Service for PostgreSQL
      • Создание логической реплики Amazon RDS для PostgreSQL в Managed Service for PostgreSQL
    • Поставка данных в Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Поставка данных в Yandex Managed Service for Apache Kafka® с помощью Debezium
  • Концепции
    • Взаимосвязь ресурсов сервиса
    • Классы хостов
      • Действующие классы хостов
      • Архив
        • До 1 июня 2020 года
      • Использование устаревших классов хостов
    • Сеть в Managed Service for PostgreSQL
    • Квоты и лимиты
    • Хранилище в Managed Service for PostgreSQL
    • Резервные копии
    • Назначение ролей
    • Управление соединениями
    • Репликация
    • Техническое обслуживание
    • Поддерживаемые клиенты
    • Настройки PostgreSQL
  • Управление доступом
  • Правила тарификации
    • Действующие правила
    • Архив
      • До 1 января 2019 года
      • С 1 января до 1 марта 2019 года
      • С 1 марта 2019 года до 1 февраля 2020 года
  • Справочник API
    • Аутентификация в API
    • gRPC (англ.)
      • Overview
      • BackupService
      • ClusterService
      • DatabaseService
      • ResourcePresetService
      • UserService
      • OperationService
    • REST (англ.)
      • Overview
      • Backup
        • Overview
        • get
        • list
      • Cluster
        • Overview
        • addHosts
        • backup
        • create
        • delete
        • deleteHosts
        • get
        • list
        • listBackups
        • listHosts
        • listLogs
        • listOperations
        • move
        • rescheduleMaintenance
        • restore
        • start
        • startFailover
        • stop
        • streamLogs
        • update
        • updateHosts
      • Database
        • Overview
        • create
        • delete
        • get
        • list
        • update
      • ResourcePreset
        • Overview
        • get
        • list
      • User
        • Overview
        • create
        • delete
        • get
        • grantPermission
        • list
        • revokePermission
        • update
      • Operation
        • Overview
        • get
  • История изменений
  • Вопросы и ответы
    • Общие вопросы
    • Подключение
    • Изменение кластера
    • Настройки параметров кластера
    • Перемещение и восстановление кластера
    • Мониторинг и логи
    • Все вопросы на одной странице
  1. Пошаговые инструкции
  2. Управление базами данных

Управление базами данных

Статья создана
Yandex Cloud
  • Получить список баз данных в кластере
  • Создать базу данных
  • Удалить базу данных

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

Важно

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

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

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

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

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

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

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

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

Воспользуйтесь методом API list и передайте идентификатор кластера в параметре clusterId запроса.

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

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

В каждом кластере Managed Service for PostgreSQL вы можете создать неограниченное количество баз данных.

Консоль управления
CLI
Terraform
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. Вы можете указать другой каталог с помощью параметра --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=<локаль набора символов>
    

    Примечание

    Имя базы может содержать латинские буквы, цифры, нижнее подчеркивание и дефис. Максимальная длина имени 63 символа.

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

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

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

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

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

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

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

    resource "yandex_mdb_postgresql_cluster" "<имя кластера>" {
      ...
      database {
        name       = "<имя базы данных>"
        owner      = "<имя пользователя-владельца: должен быть задан в блоке user>"
        lc_collate = "<локаль сортировки>"
        lc_type    = "<локаль набора символов>"
        ...
      }
    }
    

    Примечание

    Имя базы может содержать латинские буквы, цифры, нижнее подчеркивание и дефис. Максимальная длина имени 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. Дождитесь завершения операции.

    Ограничения по времени

    Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for PostgreSQL:

    • создание, в том числе путем восстановления из резервной копии, — 30 минут;
    • изменение — 60 минут;
    • удаление — 15 минут.

    Операции, длящиеся дольше указанного времени, прерываются.

    Как изменить эти ограничения?

    Добавьте к описанию кластера блок timeouts, например:

    resource "yandex_mdb_postgresql_cluster" "<имя кластера>" {
      ...
      timeouts {
        create = "1h30m" # Полтора часа
        update = "2h"    # 2 часа
        delete = "30m"   # 30 минут
      }
    }
    

Воспользуйтесь методом API create и передайте в запросе:

  • Идентификатор кластера в параметре clusterId. Чтобы узнать идентификатор, получите список кластеров в каталоге.
  • Настройки новой базы в параметре databaseSpec.

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

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

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

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

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

yc managed-postgresql database delete <имя базы данных> \
   --cluster-name <имя кластера>

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

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

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

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

  2. Удалите из описания кластера Managed Service for PostgreSQL блок database с именем удаляемой базы данных.

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

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

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

      terraform validate
      

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

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

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

      terraform plan
      

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

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

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

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

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

    Ограничения по времени

    Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for PostgreSQL:

    • создание, в том числе путем восстановления из резервной копии, — 30 минут;
    • изменение — 60 минут;
    • удаление — 15 минут.

    Операции, длящиеся дольше указанного времени, прерываются.

    Как изменить эти ограничения?

    Добавьте к описанию кластера блок timeouts, например:

    resource "yandex_mdb_postgresql_cluster" "<имя кластера>" {
      ...
      timeouts {
        create = "1h30m" # Полтора часа
        update = "2h"    # 2 часа
        delete = "30m"   # 30 минут
      }
    }
    

Воспользуйтесь методом API delete и передайте в запросе:

  • Идентификатор кластера в параметре clusterId. Чтобы узнать идентификатор, получите список кластеров в каталоге.
  • Имя удаляемой базы данных в параметре databaseName.

Важно

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

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

Language / Region
© 2022 ООО «Яндекс.Облако»
В этой статье:
  • Получить список баз данных в кластере
  • Создать базу данных
  • Удалить базу данных