Я наблюдаю действительно странное поведение моей системы резервного копирования innobackupex.
Я все правильно настроил, сделал несколько резервных копий с терминала и все работает. Моя идея состоит в том, чтобы запускать инкрементное резервное копирование один раз в день, поэтому я создал для него небольшой скрипт sh, чтобы поместить его в cron:
#!/bin/bash
LATEST_DUMP=$(ls -t /home/power/dbbackup | head -1)
innobackupex --incremental --user=db_user --password=db_password /home/power/dbbackup/ --incremental-basedir=$LATEST_DUMP
По сути, он ищет последний дамп в папке, где хранятся инкременты, и использует его для другого инкрементного дампа. Когда я пытаюсь запустить его, я получаю следующую ошибку
xtrabackup: Error: cannot open 2016-10-21_00-50-30/xtrabackup_checkpoints
xtrabackup: error: failed to read metadata from 2016-10-21_00-50-30/xtrabackup_checkpoints
Если я запускаю тот же вызов через командную строку терминала, он работает отлично. Если я попытаюсь запустить этот сценарий sh, он выдаст ошибку. Я использовал одного и того же пользователя для обоих сценариев, папки инкремента доступны для чтения, файл xtrabackup_checkpoints также доступен для чтения.
Что мне не хватает?
cron
? Я предполагаю (не знаю), что это другой пользователь, и что ему не хватает некоторых разрешений, которые у вас есть при входе в систему. Также, вероятно, это не проблема, но вы должны добавить некоторые кавычки для защиты от пробелов в именах файлов :--incremental-basedir="$LATEST_DUMP"
- person cxw   schedule 21.10.2016