Мы хотим создавать удаленные инкрементные резервные копии после полного резервного копирования. Это позволит нам выполнить восстановление в случае сбоя и запустить другую машину с резервными копиями в режиме реального времени, насколько это возможно, с сетевыми серверами SQL Anywhere.
Мы делаем полную резервную копию следующим образом:
dbbackup -y -c "eng=ServerName.DbName;uid=dba;pwd=sql;links=tcpip(host=ServerName)"
c:\backuppath\full
Это делает резервную копию базы данных и файлов журналов и может быть восстановлена, как и ожидалось. Для инкрементных резервных копий я пробовал как живые, так и инкрементные журналы транзакций со схемой переименования, если существует несколько инкрементных резервных копий:
dbbackup -y -t -c "eng=ServerName.DbName;uid=dba;pwd=sql;links=tcpip(host=ServerName)"
c:\backuppath\inc
dbbackup -y -l -c "eng=ServerName.DbName;uid=dba;pwd=sql;links=tcpip(host=ServerName)"
c:\backuppath\live
Однако при применении журналов транзакций при восстановлении всегда возникает ошибка при применении журналов транзакций к базе данных:
10092: невозможно найти определение таблицы для таблицы, на которую есть ссылка в журнале транзакций
Команда восстановления журнала транзакций:
dbeng11 "c:\dbpath\dbname.db" -a "c:\backuppath\dbname.log"
Ошибка не указывает, какую таблицу она не может найти, но это контролируемый тест, и таблицы не создаются и не удаляются. Я вставляю несколько строк, затем запускаю инкрементное резервное копирование перед попыткой восстановления.
Кто-нибудь знает правильный способ сделать инкрементное резервное копирование и восстановление на Sql Anywhere 11?
ОБНОВЛЕНИЕ: думая, что это может быть связано со сложностью целевой базы данных, я сделал новую пустую базу данных и сетевой сервис. Затем добавили одну таблицу с двумя столбцами и вставили несколько строк. Сделал полную резервную копию, затем вставил и удалил еще несколько строк и зафиксировал транзакции, затем сделал инкрементную резервную копию. Это также не удалось с той же ошибкой при попытке применить добавочное резервное копирование журналов транзакций после восстановления полной резервной копии ...
Редактировать:
Вы можете перейти по этой ссылке, чтобы увидеть тот же вопрос с чуть большим количеством отзывов о SA: http://sqlanywhere-forum.sybase.com/questions/4760/restoring-incrementallive-backup-failure
источник
Ответы:
Обобщая информацию, связанную с постом выше ....
Команда, которую вы использовали, предназначена для оперативного резервного копирования, но вам нужна инкрементная резервная копия. Подход, который вы хотите использовать (согласно этому блогу ), использует несколько иные переключатели. Вы хотите использовать
-n -t -x
ключи и -o, чтобы указать файл журнала. Таким образом, команда заканчивается примерно так:источник