Queremos criar backups incrementais remotos após um backup completo. Isso nos permitirá restaurar em caso de falha e abrir outra máquina com backups o mais próximo possível do tempo real, com os servidores de rede do SQL Anywhere.
Estamos fazendo um backup completo da seguinte maneira:
dbbackup -y -c "eng=ServerName.DbName;uid=dba;pwd=sql;links=tcpip(host=ServerName)"
c:\backuppath\full
Isso faz um backup do banco de dados e dos arquivos de log e pode ser restaurado conforme o esperado. Para backups incrementais, tentei os logs de transações ao vivo e incrementais com um esquema de renomeação, se houver vários backups incrementais:
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
No entanto, ao aplicar os logs de transações na restauração, sempre recebo um erro ao aplicar os logs de transações ao banco de dados:
10092: Não foi possível encontrar a definição de tabela para a tabela referenciada no log de transações
O comando de restauração do log de transações é:
dbeng11 "c:\dbpath\dbname.db" -a "c:\backuppath\dbname.log"
O erro não especifica qual tabela não pode ser encontrada, mas este é um teste controlado e nenhuma tabela está sendo criada ou eliminada. Eu insiro algumas linhas e inicio um backup incremental antes de tentar restaurar.
Alguém sabe a maneira correta de fazer backup e restauração incremental no Sql Anywhere 11?
ATUALIZAÇÃO: Pensando que possa estar relacionado à complexidade do banco de dados de destino, criei um novo banco de dados em branco e serviço de rede. Em seguida, adicionou uma tabela com duas colunas e inseriu algumas linhas. Fez um backup completo, depois inseriu e excluiu mais algumas linhas e transações confirmadas, depois fez um backup incremental. Isso também falhou com o mesmo erro ao tentar aplicar os backups incrementais dos logs de transações após restaurar o backup completo ...
Editar:
Você pode seguir este link para ver a mesma pergunta com um pouco mais de feedback sobre o SA: http://sqlanywhere-forum.sybase.com/questions/4760/restoring-incrementallive-backup-failure
fonte
Respostas:
Resumindo as informações vinculadas no post acima ....
O comando que você usou é para um backup ao vivo, mas o que você deseja é um backup incremental. A abordagem que você deseja usar (por este blog ) usa opções um pouco diferentes. Você deseja usar as
-n -t -x
opções e o -o para especificar um arquivo de log. Portanto, o comando termina algo como:fonte