1. Excluindo /var/run
Como você já percebeu, excluir /var/run
durante uma restauração completa de um sistema do CentOS 6 causa problemas, porque também exclui diretórios criados por pacotes instalados. A exclusão de /var/lock
também pode causar problemas semelhantes, porque alguns pacotes também criam subdiretórios.
(Pode não haver tais problemas em distribuições Linux mais recentes que usam systemd
- em tais distribuições /var/lock
e /var/run
(realmente /run
) podem ser colocadas em tmpfs
, e quaisquer subdiretórios necessários são criado durante cada inicialização, no entanto, o CentOS 6 é muito mais antigo e não tem nenhum suporte para a criação automática de subdiretórios em /var/lock
ou /var/run
.)
No entanto, excluir realmente /var/run
e /var/lock
não é necessário para uma restauração adequada, porque o script /etc/rc.d/rc.sysinit
no CentOS 6 inclui o seguinte comando:
find /var/lock /var/run ! -type d -exec rm -f {} \;
Este comando removerá todos os arquivos obsoletos de bloqueio ou pid (ou quaisquer outros arquivos que não sejam de diretório, como sockets e links simbólicos) durante a inicialização do sistema. Portanto, você deve remover /var/lock
e /var/run
da lista de exclusões de restauração.
2. Localização dos arquivos de configuração de rede
Você já excluiu /etc/sysconfig/network*
ao restaurar o backup; isso deve corresponder ao arquivo /etc/sysconfig/network
(configuração de rede global) e ao diretório /etc/sysconfig/network-scripts
(arquivos de configuração por interface ifcfg-*
). No entanto, esses arquivos são usados somente pelo estilo antigo scripts de configuração de rede incluídos no pacote initscripts
, e o CentOS 6 tem outro sistema de configuração de rede - NetworkManager , cuja configuração está armazenada em /etc/NetworkManager
. Tente também excluir esse diretório ao restaurar o backup.
3. O problema com links simbólicos substituídos por arquivos
Se você ver que os links simbólicos foram substituídos por arquivos simples após a restauração, isso significa que seu programa de backup / restauração não foi configurado corretamente ou (se não houver opção para salvar e restaurar links simbólicos reais) o programa usado não é adequado para backup / restauração do sistema Linux. Você pode usar um programa que não suporta links simbólicos apenas se o programa for usado para fazer backup e restaurar apenas alguns dados específicos que definitivamente não conterão links simbólicos. Note que você pode encontrar links simbólicos em lugares onde você não os esperava - por exemplo, em alguns casos, links simbólicos podem ser usados em diretórios de banco de dados MySQL (para armazenar algumas partes de dados em um dispositivo diferente), portanto confiando na suposição “sem links simbólicos” pode ser perigoso.
4. Backup MySQL
Se o seu programa de backup simplesmente copia arquivos de um servidor em execução, o seu backup não é realmente “consistente”, porque arquivos diferentes (e até mesmo blocos diferentes de um mesmo arquivo) são copiados em momentos diferentes, portanto você não obterá realmente um instantâneo consistente do banco de dados no seu backup. (Isso se aplica a qualquer tipo de banco de dados, não apenas ao MySQL.)
Existem várias maneiras de fazer backup de bancos de dados MySQL usando apenas um backup em nível de arquivo:
-
Use
mysqldump
para criar um despejo SQL antes de iniciar o backup em nível de arquivo; faça backup do arquivo de despejo em vez do diretório do banco de dados. Esse é o formato de backup mais portátil, mas tanto o despejo quanto a restauração podem ser lentos. -
Pare o servidor MySQL antes de iniciar o backup, faça um backup em nível de arquivo e inicie o servidor MySQL novamente. Para restaurar, restaure todos os arquivos no novo servidor e inicie o servidor normalmente. Esse tipo de backup é rápido, mas requer um tempo de inatividade significativo durante o backup.
-
Para reduzir o tempo de inatividade do servidor MySQL exigido pelo método anterior, você pode criar um instantâneo do sistema de arquivos depois de parar o servidor, iniciar o servidor MySQL novamente, montá-lo, executar um backup em nível de arquivo e excluir o instantâneo. Você precisa ter o sistema de arquivos em um volume LVM com algum espaço livre no grupo de volumes para o instantâneo.
-
Para reduzir ainda mais o tempo de inatividade, você pode usar
FLUSH TABLES WITH READ LOCK
antes de tirar o instantâneo em vez de parar o servidor, conforme descrito aqui ; neste caso, o instantâneo conterá tabelas MyISAM em um estado consistente e tabelas InnoDB em um estado consistente com falhas (a recuperação do InnoDB será necessária após uma restauração no nível do arquivo).
Leia esta documentação para mais informações sobre o backup do MySQL .