Chcemy tworzyć zdalne przyrostowe kopie zapasowe po pełnej kopii zapasowej. Pozwoli nam to przywrócić w razie awarii i uruchomić inną maszynę z kopiami zapasowymi możliwie zbliżonymi do czasu rzeczywistego z serwerami sieciowymi SQL Anywhere.
Wykonujemy pełną kopię zapasową w następujący sposób:
dbbackup -y -c "eng=ServerName.DbName;uid=dba;pwd=sql;links=tcpip(host=ServerName)"
c:\backuppath\full
To tworzy kopię zapasową bazy danych i plików dziennika i można je przywrócić zgodnie z oczekiwaniami. W przypadku przyrostowych kopii zapasowych wypróbowałem zarówno dzienniki transakcji na żywo, jak i przyrostowe, korzystając ze schematu zmiany nazwy, jeśli istnieje wiele przyrostowych kopii zapasowych:
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
Jednak po zastosowaniu dzienników transakcji podczas przywracania zawsze pojawia się błąd podczas stosowania dzienników transakcji do bazy danych:
10092: Nie można znaleźć definicji tabeli dla tabeli, do której odwołuje się dziennik transakcji
Polecenie przywracania dziennika transakcji to:
dbeng11 "c:\dbpath\dbname.db" -a "c:\backuppath\dbname.log"
Błąd nie określa, której tabeli nie można znaleźć, ale jest to kontrolowany test i żadne tabele nie są tworzone ani usuwane. Wstawiam kilka wierszy, a następnie próbuję przywrócić przyrostową kopię zapasową.
Czy ktoś zna prawidłowy sposób wykonywania przyrostowej kopii zapasowej i przywracania w Sql Anywhere 11?
AKTUALIZACJA: Myśląc, że może to być związane ze złożonością docelowej bazy danych, stworzyłem nową pustą bazę danych i usługę sieciową. Następnie dodano jedną tabelę z dwiema kolumnami i wstawiono kilka wierszy. Wykonałem pełną kopię zapasową, następnie wstawiłem i usunąłem kilka kolejnych wierszy i zatwierdzonych transakcji, a następnie wykonałem przyrostową kopię zapasową. Ten sam błąd również nie powiódł się przy próbie zastosowania przyrostowych kopii zapasowych dzienników transakcji po przywróceniu pełnej kopii zapasowej ...
Edytować:
Możesz użyć tego linku, aby zobaczyć to samo pytanie z nieco większą ilością opinii na temat SA: http://sqlanywhere-forum.sybase.com/questions/4760/restoring-incrementallive-backup-failure
źródło
Odpowiedzi:
Podsumowanie informacji podanych w powyższym poście ....
Polecenie, którego użyłeś, służy do tworzenia kopii zapasowej na żywo, ale potrzebujesz przyrostowej kopii zapasowej. Podejście, które chcesz zastosować (w tym blogu ) używa nieco innych przełączników. Chcesz użyć
-n -t -x
przełączników i -o, aby określić plik dziennika. Tak więc polecenie kończy się następująco:źródło