Tentei restaurar um antigo backup bruto de bancos de dados (datadir inteiro) no MariaDB 10.11.5, mas ele não inicializou. Depois disso, encontrei as seguintes linhas no log:
[ERROR] InnoDB: File ./ib_logfile0 was not found
[ERROR] InnoDB: Plugin initialization aborted with error Generic error
[Note] InnoDB: Starting shutdown...
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
[Note] Plugin 'FEEDBACK' is disabled.
[ERROR] Unknown/unsupported storage engine: InnoDB
[ERROR] Aborting
Por mais de uma década, tenho excluído arquivos de log em servidores MySQL e MariaDB para ajustar innodb-log-file-size
ou fazer backups brutos e economizar espaço. Na próxima vez que o servidor foi reiniciado, eles foram recriados automaticamente. Mas de repente, não desta vez. E tudo porque a partir da versão MariaDB 10.8.1, a presença de um ib_logfile0
tornou-se obrigatória devido a múltiplas alterações ( MDEV-27199 ) e ( MDEV-14425 ). Não é mais criado automaticamente, mas estritamente necessário.
Tentei criar um arquivo de log vazio, mas aparentemente não funcionou e resultou em um erro:
[ERROR] InnoDB: ib_logfile0 is empty, and LSN is unknown.
[ERROR] InnoDB: Plugin initialization aborted with error Data structure corruption
Depois de estudar as tarefas do jira, tive a forte sensação de que não havia como "regenerar" o arquivo de log como antes. Então, minha pergunta principal é: existe alguma outra saída além de restaurar backups em uma versão mais antiga do MariaDB e fazer backup deles corretamente para versões mais recentes?
E quanto à criação desses backups "brutos" nas versões mais recentes? Eu li que em vez de excluir o log, agora você deve reduzir o tamanho do log para economizar espaço em disco. Provavelmente, agora é a única maneira?
PS É importante notar que a partir da versão 10.8.1 o tamanho do arquivo de log muda automaticamente quando você o altera na configuração. E a partir da versão 10.9.0 - mesmo em tempo de execução ( MDEV-27812 ).