Установка CopyWala OB
Цель выполнения
Установка модуля Copywala OB является обязательной, если целевая СУБД — OceanBase Database.
Резервные копии и архивы логов OceanBase Database размещаются в хранилище Storage Service: модуль Storage Service обязателен для работы с OceanBase Database.
Предусловия
Перед началом установки убедитесь, что выполнены следующие условия:
- Подготовлено окружение.
- Дистрибутив CopyWala распакован в соответствии с инструкцией, приведенной в разделе Установка, шаг Распаковка дистрибутива CopyWala.
Последовательность действий
Установка Copywala OB возможна только ручным способом из RPM-пакета.
-
Установите пакет
copywala-ob-{component_version}-{OS_version}.x86_64.rpmиз директорииpbr/owned/pbra/rpms:- SberLinux, РЕД ОС, CentOS
- Astra Linux
- Альт СП
sudo dnf install {component_name}-{component_version}-{OS_version}.x86_64.rpmsudo apt install {component_name}-{component_version}-{OS_version}.x86_64.debsudo apt-get install {component_name}-{component_version}-{OS_version}.x86_64.rpmПример заполненной команды:
sudo dnf install copywala-ob-1.3.0-sberlinux9.x86_64.rpm -
Для работы с copywala-ob переключитесь на пользователя
pbr. Пользователь создается автоматически при установке пакета Copywala OB:sudo su - pbr -
Откройте файл конфигурации
copywala-ob.yaml:sudo vi /etc/pbr/copywala-ob.yaml -
Заполните конфигурационные параметры.
Пример:title: Параметры файла
copywala-ob.yaml:collapsible:# --------------------------------------# Подключение к целевой базе данных OceanBase Database# --------------------------------------target_db:address: "<host:port>" # адрес и порт OceanBase Databaseusername: "<username>" # имя пользователя, имеющего права доступа к системному тенанту (sys-тенанту) и к тенанту, для которого выполняется РКpassword: "<password>" # пароль пользователя# Использование пароля, сохраненного в защищенном виде (Vault)# vault_path: "<path>" # путь к секрету в HashiCorp/SecMan# vault_key: "<key>" # ключ внутри json-секрета (по умолчанию password)# --------------------------------------# Назначение резервной копии (хранилище РК)# Существующие варианты протоколов:# - s2://<s2-host>/<root_path> — s2 протокол, root_path опционален# - s3://<s3-host>/<bucket_name> — S3-хранилище# --------------------------------------backup_destination_uri: "<s2://srv-10-25.host/oceanbase?s3-host=29577>" # путь до хранилища РК. Параметр обязателен для команд create-backup и restore# --------------------------------------# Назначение архива логов# --------------------------------------logs_destination_uri: "<s2://srv-10-25.host/oceanbase>" # путь до хранилища логов. Параметр обязателен для команды archive-logs. Для команд create-backup и restore, если параметр не задан, используется backup_destination_uri# --------------------------------------# Режим резервного копирования# --------------------------------------# Допустимые значения:# s3-proxy (по умолчанию) — копирование в S3-совместимое хранилище (S2/S3);# fuse-proxy — (запрещено использовать: функциональность в разработке) создание резервной копии через FUSE.backup_mode: "<s3-proxy>"# --------------------------------------# Политика резервного копирования# --------------------------------------backup_policy:strategy: "<pbr.policy.backup.strategy.full>" # тип создаваемой копии: полная — pbr.policy.backup.strategy.full (по умолчанию), дельта — pbr.policy.backup.strategy.deltalog_piece_switch_interval: "<1d>" # интервал переключения лог-юнита (log piece) в OceanBase Database при архивации логовprogress_interval: "<5s>" # интервал опроса статуса задания создания РК по служебным таблицам OceanBase Database и вывода прогресса в лог# --------------------------------------# Политика восстановления# --------------------------------------restore_policy:with_statement: "<pool_list=test_pool>" # выделенный пул ресурсов для восстановления. Помимо pool_list можно передавать переменные как query-параметры через '&'progress_interval: "<5s>" # интервал опроса статуса задания восстановления по служебным таблицам OceanBase Database и вывода прогресса в лог# --------------------------------------# Настройки S2# --------------------------------------s2:# tls: # опционально. Параметры групп взаимозаменяемы — необходимо указать одну из групп: local_path | vault_path + vault_key | pki (опция pki для key недоступна)# rootca:# local_path: "<tls/root.crt>" # путь к локальному файлу# # или# # vault_path: <path> # путь к секрету в HashiCorp/SecMan, используется с vault_key# # vault_key: <key> # ключ внутри json-секрета, используется с vault_path# # или# # pki: <...> # сертификат из PKI — корпоративной системы управления сертификатами# cert:# local_path: "<tls/cert.crt>"# # или# # vault_path: <path> # путь к секрету в HashiCorp/SecMan, используется с vault_key# # vault_key: <key> # ключ внутри json-секрета, используется с vault_path# # или# # pki: <...> # сертификат из PKI — корпоративной системы управления сертификатами# key:# local_path: "<tls/cert.key>" # путь к локальному файлу# # или# # vault_path: <path> # путь к секрету в HashiCorp/SecMan, используется с vault_key# # vault_key: <key> # ключ внутри json-секрета, используется с vault_path# --------------------------------------# Настройки S3-сервера для backup_destination_uri# --------------------------------------s3_backup_server:# при использовании s2-протокола access_id/secret_key не передаются (s2 использует собственную аутентификацию)# access_id: "<key>"# secret_key: "<secret>"region: "<ru-s2>" # регион s3 (для s2-протокола: ru-s2)use_path_style: <true> # если параметр имеет значение true, задействуется формат полного URL с указанием пути (path-style addressing); если false – название бакета включается непосредственно в доменное имя (для s2 поддерживается только path-style)disable_request_checksums: <true> # проверка контрольных сумм запросов (для s2-протокола не поддерживается)# tls: # опционально. Параметры групп взаимозаменяемы — необходимо указать одну из групп: local_path | vault_path + vault_key | pki (опция pki для key недоступна)# rootca:# local_path: "<tls/root.crt>" # путь к локальному файлу# # или# # vault_path: <path> # путь к секрету в HashiCorp/SecMan, используется с vault_key# # vault_key: <key> # ключ внутри json-секрета, используется с vault_path# # или# # pki: <...> # сертификат из PKI — корпоративной системы управления сертификатами# cert:# local_path: "<tls/cert.crt>"# # или# # vault_path: <path> # путь к секрету в HashiCorp/SecMan, используется с vault_key# # vault_key: <key> # ключ внутри json-секрета, используется с vault_path# # или# # pki: <...> # сертификат из PKI — корпоративной системы управления сертификатами# key:# local_path: "<tls/cert.key>" # путь к локальному файлу# # или# # vault_path: <path> # путь к секрету в HashiCorp/SecMan, используется с vault_key# # vault_key: <key> # ключ внутри json-секрета, используется с vault_path# --------------------------------------# Настройки S3-сервера для logs_destination_uri# --------------------------------------s3_logs_server:# при использовании s2-протокола access_id/secret_key не передаются (s2 использует собственную аутентификацию)# access_id: "<key>"# secret_key: "<secret>"region: "<ru-s2>" # регион s3 (для s2-протокола: ru-s2)use_path_style: <true> # если параметр имеет значение true, задействуется формат полного URL с указанием пути (path-style addressing); если false – название бакета включается непосредственно в доменное имя (для s2 поддерживается только path-style)disable_request_checksums: <true> # проверка контрольных сумм запросов (для s2-протокола не поддерживается)# tls: # опционально. Параметры групп взаимозаменяемы — необходимо указать одну из групп: local_path | vault_path + vault_key | pki (опция pki для key недоступна)# rootca:# local_path: "<tls/root.crt>" # путь к локальному файлу# # или# # vault_path: <path> # путь к секрету в HashiCorp/SecMan, используется с vault_key# # vault_key: <key> # ключ внутри json-секрета, используется с vault_path# # или# # pki: <...> # сертификат из PKI — корпоративной системы управления сертификатами# cert:# local_path: "<tls/cert.crt>"# # или# # vault_path: <path> # путь к секрету в HashiCorp/SecMan, используется с vault_key# # vault_key: <key> # ключ внутри json-секрета, используется с vault_path# # или# # pki: <...> # сертификат из PKI — корпоративной системы управления сертификатами# key:# local_path: "<tls/cert.key>" # путь к локальному файлу# # или# # vault_path: <path> # путь к секрету в HashiCorp/SecMan, используется с vault_key# # vault_key: <key> # ключ внутри json-секрета, используется с vault_path# --------------------------------------# Глобальная TLS-конфигурация (опционально)# --------------------------------------# tls: # параметры групп взаимозаменяемы — для каждого из rootca/cert/key/crl необходимо указать одну из групп: local_path | vault_path + vault_key | pki (опция pki для key и crl недоступна)# rootca:# local_path: "<tls/root.crt>" # путь к локальному файлу# # или# # vault_path: <path> # путь к секрету в HashiCorp/SecMan, используется с vault_key# # vault_key: <key> # ключ внутри json-секрета, используется с vault_path# # или# # pki: <...> # сертификат из PKI — корпоративной системы управления сертификатами# cert:# local_path: "<tls/cert.crt>"# # или# # vault_path: <path> # путь к секрету в HashiCorp/SecMan, используется с vault_key# # vault_key: <key> # ключ внутри json-секрета, используется с vault_path# # или# # pki: <...> # сертификат из PKI — корпоративной системы управления сертификатами# key:# local_path: "<tls/cert.key>" # путь к локальному файлу# # или# # vault_path: <path> # путь к секрету в HashiCorp/SecMan, используется с vault_key# # vault_key: <key> # ключ внутри json-секрета, используется с vault_path# crl:# local_path: "<tls/revoked.crl>" # путь к локальному файлу# # или# # vault_path: <path> # путь к секрету в HashiCorp/SecMan, используется с vault_key# # vault_key: <key> # ключ внутри json-секрета, используется с vault_path# crl_dir: "<path>"# --------------------------------------# Запрещено использовать: функциональность в разработке. В описании приведен только корневой параметр# Конфигурация FUSE (опционально)# --------------------------------------# fuse:# --------------------------------------# Конфигурация приложения (опционально)# --------------------------------------# app:# agent_id_file_path: /etc/pbr/pbr.agent.id # путь к файлу, содержащему идентификатор агентского приложения# agent_id_file_mode: 0400 # числовое представление прав доступа на создаваемые файлы# copywala_dir: /var/pbr/copywala # рабочая директория# copywala_dir_mode: 0700 # числовое представление прав доступа на создаваемые каталоги# allow_concurrent_create_backup: false # управляет возможностью запуска нескольких операций создания резервных копий одновременно# copywala_plugins_dir: /usr/lib/pbr/copywala # путь к директории, где находится плагин защитного преобразования# creds_private_key_path: /var/pbr/copywala/priv.key # путь к приватному ключу приложения# # ВАЖНО: в постановке .tmp/odb указан путь /var/pbr/copywala/priv.key,# # в шаблоне configs/copywala-ob.example.yaml — /var/pbr/copywala-ob/priv.key. Уточнить актуальный.# go_mem_limit: 2GB # мягкий лимит heap-памяти для сборщика мусора Go. При достижении лимита сборщик мусора начинает работать с большей частотой, чтобы удерживать потребление памяти в заданных пределах (в документации go – GOMEMLIMIT)# go_gc_percent: 100 # процент роста heap-памяти перед запуском сборки мусора. Значение 100 означает, что сборка мусора запускается после увеличения объёма heap в 2 раза относительно объема после предыдущей сборки (в документации go – GOGC)# --------------------------------------# Конфигурация Vault (опционально)# --------------------------------------# vault: # настройки подключения# server: "<vault-url>"# # namespace: "<namespace>"# # path: "<mount-path>" # путь к точке монтирования хранилища секретов# # kv_version: v2 # версия формата KV-хранилища# # database_engine_mount_path: "<db engine path>" # путь к точке монтирования секретов БД# approle:# role_id: "<role-id>" # уникальный идентификатор роли# secret_id: "<secret-id>" # секретный ключ роли. Либо указывается явно, либо прописывается wrapping_secret_id_file_path# # auth_method: approle # метод аутентификации# # wrapping_secret_id_file_path: /var/pbr/cw.wrapped.secret.vlt # путь к файлу для хранения wrapping token# # wrapping_secret_id_ttl: 8h # время жизни wrapping token (например, 10m - 10 минут, 6h - 6 часов)# --------------------------------------# Логирование# --------------------------------------log:path: /var/log/pbr/copywala-ob.log # путь к лог-файлуdir_mode: 0700 # настройка прав доступа на создаваемые каталоги. Значения необходимо задавать в восьмеричной системе счисления с ведущим нулем.file_mode: 0600 # настройка прав доступа на создаваемые файлы. Значения необходимо задавать в восьмеричной системе счисления с ведущим нулем.max_size: 100 # максимальный размер лог-файла в мегабайтах. По умолчанию `100 МБ`max_age: 90 # максимальный возраст лог-файла в дняхmax_backups: 10 # максимальное количество резервных копий лог-файлов, которые будут храниться. Если выбрано 0, то количество файлов не ограниченоuse_local_time: true # параметр определяет, в каком формате будут записываться метки времени в имена файлов при ротации. Если выбрано true, используется локальное системное время, при false (и по умолчанию) – `UTC`.compress_backups: false # параметр определяет необходимость сжатия резервных копий лог-файлов. Если выбрано true, лог-файлы будут сжаты, если false, лог-файлы будут храниться без сжатия
Настройка TLS-сертификатов для CopyWala OB
Настройка TLS-сертификатов для подключения к OceanBase Database не требуется: TLS-настройки в copywala-ob.yaml применяются только к взаимодействию с хранилищами резервных копий (секции tls (глобальная), s2.tls, s3_backup_server.tls, s3_logs_server.tls). Порядок выпуска и настройки сертификатов — в разделе Настройка интеграции Platform V CopyWala с внешними сервисами.
Проверка результата
Для проверки установки и работоспособности Copywala OB обратитесь к разделу Чек-лист проверки корректности работы.