Управление базами данных в Yandex StoreDoc
Вы можете добавлять и удалять базы данных, а также просматривать информацию о них.
Получить список баз данных в кластере
- В консоли управления
выберите каталог. - Перейдите
в сервис Yandex StoreDoc. - Нажмите на имя нужного кластера, затем выберите вкладку Базы данных.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы получить список баз данных в кластере, выполните команду:
yc managed-mongodb database list
--cluster-name <имя_кластера>
Имя кластера можно запросить со списком кластеров в каталоге.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Database.List и выполните запрос, например с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-mongodb/v1/clusters/<идентификатор_кластера>/databases'Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом DatabaseService.List и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mongodb/v1/database_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.DatabaseService.ListИдентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Получить информацию о базе данных
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы получить информацию о конкретной базе данных:
-
Посмотрите описание команды CLI для получения информации о базе данных:
yc managed-mongodb database get --help -
Получите информацию о базе данных, выполнив команду:
yc managed-mongodb database get <имя_БД> \ --cluster-id=<идентификатор_кластера>Имя базы данных можно получить со списком баз данных в кластере, а идентификатор кластера — со списком кластеров в каталоге.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Database.Get и выполните запрос, например с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-mongodb/v1/clusters/<идентификатор_кластера>/databases/<имя_БД>'Идентификатор кластера можно получить со списком кластеров в каталоге, а имя базы данных — со списком баз данных в кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом DatabaseService.Get и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mongodb/v1/database_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "database_name": "<имя_БД>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.DatabaseService.GetИдентификатор кластера можно получить со списком кластеров в каталоге, а имя базы данных — со списком баз данных в кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Создать базу данных
Примечание
В каждом кластере вы можете создать не более 1000 баз данных.
-
В консоли управления
выберите каталог. -
Перейдите
в сервис Yandex StoreDoc. -
Нажмите на имя нужного кластера.
-
Выберите вкладку Базы данных.
-
Нажмите кнопку Создать базу данных.
-
Введите имя для базы данных и нажмите кнопку Создать.
Имя базы может содержать латинские буквы, цифры, нижнее подчеркивание и дефис. Максимальная длина имени — 63 символа. Имена
config,local,adminиmdb_internalзарезервированы для собственных нужд Yandex StoreDoc. Создавать БД с этими именами нельзя. -
Назначьте роли, разрешающие доступ к созданной базе данных, нужным пользователям кластера.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы создать базу данных в кластере, выполните команду:
yc managed-mongodb database create <имя_БД> \
--cluster-name <имя_кластера> \
--deletion-protection=<защитить_БД_от_удаления>
Где:
-
<имя_БД>— имя базы данных.Имя базы может содержать латинские буквы, цифры, нижнее подчеркивание и дефис. Максимальная длина имени — 63 символа. Имена
config,local,adminиmdb_internalзарезервированы для собственных нужд Yandex StoreDoc. Создавать БД с этими именами нельзя. -
--cluster-name— имя кластера, которое можно запросить со списком кластеров в каталоге. -
--deletion-protection— защита базы данных от непреднамеренного удаления:trueилиfalse. По умолчанию значение не задано, и для базы данных используется значение соответствующей настройки кластера. Если защита включена (true), удалить базу данных нельзя.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Инструкция по созданию такого файла приведена в разделе Создание кластера.
-
Добавьте ресурс
yandex_mdb_mongodb_database:resource "yandex_mdb_mongodb_database" "<имя_БД>" { cluster_id = "<идентификатор_кластера>" name = "<имя_БД>" deletion_protection = <защитить_БД_от_удаления> }Где:
-
cluster_id— идентификатор кластера, который можно запросить со списком кластеров в каталоге. -
name— имя базы данных.Имя базы может содержать латинские буквы, цифры, нижнее подчеркивание и дефис. Максимальная длина имени — 63 символа. Имена
config,local,adminиmdb_internalзарезервированы для собственных нужд Yandex StoreDoc. Создавать БД с этими именами нельзя. -
--deletion-protection— защита базы данных от непреднамеренного удаления:trueилиfalse. По умолчанию значение не задано, и для базы данных используется значение соответствующей настройки кластера. Если защита включена (true), удалить базу данных нельзя.
-
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее читайте в документации провайдера Terraform.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Database.Create и выполните запрос, например с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-mongodb/v1/clusters/<идентификатор_кластера>/databases' \ --data '{ "databaseSpec": { "name": "<имя_БД>", "deletionProtection": <защитить_БД_от_удаления> } }'Где:
-
<идентификатор_кластера>— идентификатор кластера, который можно запросить со списком кластеров в каталоге. -
databaseSpec.name— имя базы данных.Имя базы может содержать латинские буквы, цифры, нижнее подчеркивание и дефис. Максимальная длина имени — 63 символа. Имена
config,local,adminиmdb_internalзарезервированы для собственных нужд Yandex StoreDoc. Создавать БД с этими именами нельзя. -
databaseSpec.deletionProtection— защита базы данных от непреднамеренного удаления:trueилиfalse. По умолчанию значение не задано, и для базы данных используется значение соответствующей настройки кластера. Если защита включена (true), удалить базу данных нельзя.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом DatabaseService.Create и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mongodb/v1/database_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "database_spec": { "name": "<имя_БД>", "deletion_protection": <защитить_БД_от_удаления> } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.DatabaseService.CreateГде:
-
cluster_id— идентификатор кластера, который можно запросить со списком кластеров в каталоге. -
database_spec.name— имя базы данных.Имя базы может содержать латинские буквы, цифры, нижнее подчеркивание и дефис. Максимальная длина имени — 63 символа. Имена
config,local,adminиmdb_internalзарезервированы для собственных нужд Yandex StoreDoc. Создавать БД с этими именами нельзя. -
database_spec.deletion_protection— защита базы данных от непреднамеренного удаления:trueилиfalse. По умолчанию значение не задано, и для базы данных используется значение соответствующей настройки кластера. Если защита включена (true), удалить базу данных нельзя.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
После создания базы данных выдайте разрешение на доступ к ней нужным пользователям кластера.
Изменить настройки базы данных
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы изменить настройки базы данных, выполните команду:
yc managed-mongodb database update <имя_БД> \
--cluster-name <имя_кластера> \
--deletion-protection=<защитить_БД_от_удаления>
Где:
<имя_БД>— имя базы данных, которое можно запросить со списком баз данных в кластере.--cluster-name— имя кластера, которое можно запросить со списком кластеров в каталоге.--deletion-protection— защита базы данных от непреднамеренного удаления:trueилиfalse. По умолчанию значение не задано, и для базы данных используется значение соответствующей настройки кластера. Если защита включена (true), удалить базу данных нельзя.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Инструкция по созданию такого файла приведена в разделе Создание кластера.
-
Найдите ресурс
yandex_mdb_mongodb_database. -
Чтобы включить или отключить защиту пользователя от непреднамеренного удаления, измените значение поля
deletion_protection:resource "yandex_mdb_mongodb_database" "<имя_БД>" { ... deletion_protection = <защитить_БД_от_удаления> ... }Где
deletion_protection— защита базы данных от непреднамеренного удаления:trueилиfalse. По умолчанию значение не задано, и для базы данных используется значение соответствующей настройки кластера. Если защита включена (true), удалить базу данных нельзя. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее читайте в документации провайдера Terraform.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом 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-mongodb/v1/clusters/<идентификатор_кластера>/databases/<имя_БД>' \ --data '{ "updateMask": "deletionProtection", "deletionProtection": <защитить_БД_от_удаления> }'Где:
<идентификатор_кластера>— имя кластера, которое можно запросить со списком кластеров в каталоге.<имя_БД>— имя базы данных, которое можно запросить со списком баз данных в кластере.updateMask— перечень изменяемых параметров в одну строку через запятую.deletionProtection— защита базы данных от непреднамеренного удаления:trueилиfalse. По умолчанию значение не задано, и для базы данных используется значение соответствующей настройки кластера. Если защита включена (true), удалить базу данных нельзя.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом 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/mongodb/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.mongodb.v1.DatabaseService.UpdateГде:
cluster_id— идентификатор кластера, который можно запросить со списком кластеров в каталоге.database_name— имя базы данных, которое можно запросить со списком баз данных в кластере.update_mask— перечень изменяемых параметров в виде массива строкpaths[].deletion_protection— защита базы данных от непреднамеренного удаления:trueилиfalse. По умолчанию значение не задано, и для базы данных используется значение соответствующей настройки кластера. Если защита включена (true), удалить базу данных нельзя.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Удалить базу данных
Примечание
Перед удалением базы данных отключите ее защиту от удаления.
- В консоли управления
выберите каталог. - Перейдите
в сервис Yandex StoreDoc. - Нажмите на имя нужного кластера и выберите вкладку Базы данных.
- Нажмите значок
в строке нужной БД и выберите пункт Удалить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы удалить базу данных, выполните команду:
yc managed-mongodb database delete <имя_БД>
--cluster-name <имя_кластера>
Имя кластера можно запросить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Инструкция по созданию такого файла приведена в разделе Создание кластера.
-
Удалите ресурс
yandex_mdb_mongodb_databaseс именем удаляемой базы данных. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее читайте в документации провайдера Terraform.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Database.Delete и выполните запрос, например с помощью cURL
:curl \ --request DELETE \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-mongodb/v1/clusters/<идентификатор_кластера>/databases/<имя_БД>'Идентификатор кластера можно запросить со списком кластеров в каталоге, а имя БД — со списком БД в кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом DatabaseService.Delete и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mongodb/v1/database_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "database_name": "<имя_БД>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.DatabaseService.DeleteИдентификатор кластера можно запросить со списком кластеров в каталоге, а имя БД — со списком БД в кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Важно
Прежде чем создать новую базу с тем же именем, дождитесь завершения операции удаления, иначе будет восстановлена удаляемая база. Статус операции можно получить вместе со списком операций в кластере.