Tackroachdb-одна из самых популярных облачных баз данных. Tackroachdb — это совместимая с кислотой реляционной базой данных, которая совместима с PostgreSQL. Tackroachdb обеспечивает полные кислотные транзакции в масштабе даже в распределенной среде и гарантирует сериализуемой изоляции в распределенной в облаке базе данных. Мы можем развернуть его, используя Docker и Kubernetes без каких -либо проблем. Tackroachdb обеспечивает ключевые примитивы облачных костюмов горизонтальных масштабов, никаких единых точек отказа, выживаемости, автоматических операций и никаких специфических для платформы обременений.
Как запустить Tarcleachdb?
Мы можем запустить Tackroachdb, используя один исполняемый двоичный файл или с помощью Docker и Kubernetes. Мы увидим, как запустить Tackroachdb в Docker и как сделать резервную копию. Вы можете следить за блогом или документами и следовать инструкциям по резервным копированию.
Запустить tackroachdb с помощью Docker
Мы можем запустить один или мульти -узловой кластер с Docker, но для разработки мы будем использовать только одно узловые кластеры.
Ниже команда будет тянуть Последний
Изображение Tackroachdb из Docker Hub, Bind 26257, 8080 портов, свяжите объем с помощью Tackroach_data/Roach1. Запустите команду и перейдите к http://localhost: 8080 , вы сможете увидеть панель инструментов Tackroachdb.
docker run -d \ --name=roach1 \ --hostname=roach1 \ -p 26257:26257 -p 8080:8080 \ -v "${PWD}/cockroach_data/roach1:/cockroach/cockroach-data" \ cockroachdb/cockroach:latest start \ --insecure
Теперь наш сервер базы данных TackRoachDB работает. Теперь давайте создадим некоторые данные, используя команду init Workload, или вы также можете сбросить существующую базу данных. Запустите ниже команды, чтобы сделать это. Вот Документы Подробнее объясняет, что мы делаем в команде ниже.
docker exec -it roach1 bash ./cockroach workload init movr 'postgresql://root@localhost:26257?sslmode=disable' ./cockroach sql --insecure --host=localhost:26257 USE movr; SHOW tables;
Как вы можете понять, это создаст базу данных Movr
с некоторыми таблицами и записями. Вы должны увидеть вывод ниже на вашем терминале.
table_name +----------------------------+ promo_codes rides user_promo_codes users vehicle_location_histories vehicles (6 rows) Time: 9.579561ms
Это означает, что мы успешно сгенерировали демонстрационные данные, и пришло время сделать это резервное копирование. Запустить Выход
2 раза, чтобы выйти из контейнера. 1 -я команда выхода, чтобы выйти из командной строки таракана SQL и 2 -й, — это выйти из контейнера.
Резервная копия базы данных Tackroachdb
Наша база данных готова, теперь пришло время сделать это резервное копирование. Для этого есть 2 способа, мы можем сделать это резервное копирование.
1. РЕЗЕРВНОЕ КОПИРОВАНИЕ
Оператор резервного копирования Tackroachdb позволяет создавать полное или дополнительное резервное копирование схемы и данных вашего кластера, которые являются согласованными при данной временной метке. Резервные копии могут быть или без истории пересмотра.
Есть много преимуществ этого процесса. Мы можем настроить, хотим ли мы сделать полное резервное копирование или дополнительное резервное копирование, автоматизировать резервную копию с Работа , загрузите его в Amazon, Azure, Google Cloud, NFS или любые S3-совместимые сервисы, резервную копию одной таблицы или вида и многое другое. Вы можете прочитать больше об этом Здесь Анкет
Это происходит в контейнерной среде Tackroachdb, поэтому Tackroachdb имеет полный контроль над ним.
Единственный недостаток — это доступно только для Enterprise пользователи. Это означает, что, если мы работаем с локальным или на небольшом сервере, где мы не хотели бы не хотеть поддержку предприятия, мы не можем использовать эту функцию. Мы можем таракановый гран, если мы запускаем его в небольших масштабах и планируем масштабировать его в будущем. Tackroachcloud предоставляет полностью размещенную и управляемую платформу самообслуживания с предприятиями и основной поддержкой. Вы можете прочитать больше Здесь Анкет
Итак, как мы можем сделать это без функции резервной копии, которая доступна только для Tackroachcloud
и Tackroachdb Enterprise
пользователи.
2. таракана свалки
Tackroachdb предоставляет свалки
Команда, которая похожа на PG_DUMP. Команда дампа таракана выводит операторы SQL, необходимые для воссоздания таблиц, представлений и последовательностей. Эта команда может использоваться для резервного копирования или экспорта каждой базы данных в кластере. Вывод также должен быть подходит для импорта в другие реляционные базы данных с минимальными корректировками. Вы можете прочитать больше Здесь Анкет
Это здорово, так что теперь все, что нам нужно сделать, запустить Cron, который выполняет таракана свалки
Всякий раз, когда мы хотим вот и все.
Но есть много вещей, о которых мы должны подумать. Мол, как и где мы собираемся хранить нашу резервную копию, как сделать резервную копию по требованию и т. Д.
Точно для этого я создал изображение Docker с открытым исходным кодом с вышеупомянутыми функциями. Итак, давайте пройдем через это один за другим.
Функции
- Настройте Cron с помощью cron_schedule env. https://godoc.org/github.com/robfig/cron
- Ручное резервное копирование в любое время
- Необязательно резервное копирование AWS S3/Spaces Загрузите, если вы предоставите Access_key_id, то он будет принять его так, как вы хотите, чтобы резервное копирование было загружено на S3 или пространства или в любом месте, совместимое с S3 API.
- Вся поддержка переменной env, вы можете переопределить Tackroach_user, Tackroach_insecure и т. Д. док
- Он раскрывает/данные как объем, который содержит файл ZIP резервного копирования, поэтому мы можем использовать резервную копию отсюда, если не хотим загружать его в какие -либо службы S3.
Переменные среды
Необходимый:
- Tackroach_database: Имя базы данных
- Cron_schedule: значение Cron в двойных кавычках. https://godoc.org/github.com/robfig/cron
По желанию:
- Access_key_id: Пространства Access Key I d
- Bucket_name: Пространства ковш Имя
- S3_URL: AWS S3 (S3.AP-South-1.amazonaws.com) или Do Spaces (NYC3.digitaloceanspaces.com)
- Secret_access_key: пространства секретного доступа к ключу доступа
Теперь давайте посмотрим, как мы можем запустить наше изображение Docker, чтобы сделать резервную копию. Ниже пример, как мы можем запустить контейнер Docker, который будет выполнять резервную копию нашей базы данных MOVR каждый день и загружать его в S3, например, AWS S3, цифровые океанские пространства и т. Д.
docker run -d \ --name cockroach-backup \ -v $(pwd)/data:/data \ -v $(pwd)/cockroach-certs:/cockroach-certs \ -e ACCESS_KEY_ID=ACCESS_KEY_ID \ -e BUCKET_NAME=BUCKET_NAME \ -e S3_URL=S3_URL \ -e SECRET_ACCESS_KEY=SECRET_ACCESS_KEY \ -e COCKROACH_DATABASE=movr \ -e COCKROACH_HOST=localhost \ -e CRON_SCHEDULE="0 0 * * *" \ -e COCKROACH_INSECURE=true -e COCKROACH_USER=root docker.pkg.github.com/thakkaryash94/docker-cockroachdb-backup/docker-cockroachdb-backup:latest
С помощью вышеуказанной команды мы запустим имя нашего резервного контейнера таракан с
/данные Громкость, которая будет содержать все файлы резервного копирования, и с помощью Access_key_id, мы можем загрузить его туда, где мы хотим. Он поддерживает каждое клиентское соединение параметров.
Теперь, скажем, вы хотите сделать резервную копию базы данных текущего момента, вы также можете запустить команду ниже, чтобы запустить ручное резервное копирование.
curl -X POST http://localhost:9000/backup
Эти функции уже доступны, и еще несколько уже в списке. Не стесняйтесь открывать проблему, чтобы добавить больше функций.
Это просто изображение Docker, так что он работает и с Kubernetes.
Предстоящие функции:
- Поддержка флагов
- Поддержка резервного копирования с несколькими базами данных
Примечание: Это проект с открытым исходным кодом с MIT. Это мой первый проект Golang, я новичок, поэтому я, возможно, допустил ошибки. Проблемы и запросы на вытягивание наиболее приветствуются.
Ссылки:
Оригинал: «https://dev.to/thakkaryash94/cockroachdb-auto-backup-with-docker-1m5c»