Sql Anywhere 11: восстановление ошибки резервного копирования

16

Мы хотим создавать удаленные инкрементные резервные копии после полного резервного копирования. Это позволит нам выполнить восстановление в случае сбоя и запустить другую машину с резервными копиями в режиме реального времени, насколько это возможно, с сетевыми серверами 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

Кин Шах
источник
Вы можете проверить sqlanywhere-forum.sybase com, сайт вопросов и ответов специально для SQL Anywhere.
Грэм Перроу
Спасибо и ничего себе, этот сайт выглядит невероятно знакомым ... является ли он настолько аффилированным, даже если он находится в домене sybase, или вы думаете, они будут слишком возражать?

Ответы:

2

Обобщая информацию, связанную с постом выше ....

Команда, которую вы использовали, предназначена для оперативного резервного копирования, но вам нужна инкрементная резервная копия. Подход, который вы хотите использовать (согласно этому блогу ), использует несколько иные переключатели. Вы хотите использовать -n -t -xключи и -o, чтобы указать файл журнала. Таким образом, команда заканчивается примерно так:

dbbackup -n -t -x -c "eng=ServerName.DbName;uid=dba;pwd=sql;links=tcpip(host=ServerName)" -o "c:\backup\backup_log.txt"
Крис Траверс
источник