Skip to main content
Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais atualizadas, acesse a documentação em inglês.

Esta versão do GitHub Enterprise foi descontinuada em 2023-03-15. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, segurança aprimorada e novos recursos, atualize para a última versão do GitHub Enterprise. Para obter ajuda com a atualização, entre em contato com o suporte do GitHub Enterprise.

Configurar backups no appliance

Dentro de um plano de recuperação de desastre, é possível proteger os dados de produção no sua instância do GitHub Enterprise Server configurando backups automatizados.

Sobre o GitHub Enterprise Server Backup Utilities

O GitHub Enterprise Server Backup Utilities é um sistema de backup que você instala em um host separado, que usa instantâneos de backup do sua instância do GitHub Enterprise Server em intervalos regulares em uma conexão de rede SSH segura. É possível usar um instantâneo para voltar uma instância do GitHub Enterprise Server a um estado anterior do host de backup.

Somente os dados adicionados desde o último instantâneo serão transferidos pela rede e ocuparão espaço adicional de armazenamento físico. Para minimizar o impacto no desempenho, os backups são feitos online com a menor prioridade de E/S de CPU. Não é necessário programar um período de manutenção para fazer backups.

As principais versões e números de versão para GitHub Enterprise Server Backup Utilities se alinham às versões de recurso de GitHub Enterprise Server. Damos suporte às quatro versões mais recentes de ambos os produtos. Para obter mais informações, confira "Versões do GitHub Enterprise Server".

Para obter informações detalhadas sobre recursos, requisitos e uso avançado, confira GitHub Enterprise Server Backup Utilities README na documentação do projeto do GitHub Enterprise Server Backup Utilities.

Pré-requisitos

Para usar o GitHub Enterprise Server Backup Utilities, você precisa ter um sistema de host Linux ou UNIX separado do sua instância do GitHub Enterprise Server.

Também é possível integrar o GitHub Enterprise Server Backup Utilities a um ambiente para fins de armazenamento permanente em longo prazo de dados essenciais.

Recomendamos que o host de backup e o sua instância do GitHub Enterprise Server estejam geograficamente distantes um do outro. Essa medida garante que os backups estejam disponíveis para recuperação em casos de grandes desastres ou falhas de rede no site primário.

Os requisitos de armazenamento físico variam com base no uso do disco do repositório Git e nos padrões de crescimento esperados:

HardwareRecomendação
vCPUs2
Memória2 GB
StorageCinco vezes o armazenamento alocado da instância primária

Podem ser necessários mais recursos, dependendo do seu uso, como atividade do usuário e integrações selecionadas.

Para obter mais informações, confira os requisitos do GitHub Enterprise Server Backup Utilities na documentação do projeto do GitHub Enterprise Server Backup Utilities.

Instalar o GitHub Enterprise Server Backup Utilities

Para instalar GitHub Enterprise Server Backup Utilities no seu backup, recomendamos clonar o repositório Git do projeto. Essa abordagem permite buscar novas versões diretamente usando o Git, e o arquivo de configuração de backup existente, backup.config, será preservado ao instalar uma nova versão.

Como alternativa, se o computador host não puder acessar a Internet, você poderá baixar cada versão do GitHub Enterprise Server Backup Utilities como um arquivo compactado e extrair e instalar o conteúdo. Para obter mais informações, confira Introdução na documentação do projeto do GitHub Enterprise Server Backup Utilities.

Os instantâneos de backup são gravados no caminho do disco definido pela variável de diretório de dados GHE_DATA_DIR em seu arquivo backup.config. Os instantâneos precisam ser armazenados em um sistema de arquivos que dê suporte a links simbólicos e rígidos.

Nota: recomendamos garantir que seus instantâneos não sejam mantidos em um subdiretório do diretório de instalação GitHub Enterprise Server Backup Utilities de dados, para evitar substituir inadvertidamente o diretório de dados ao atualizar as versões GitHub Enterprise Server Backup Utilities.

  1. Para clonar o repositório de projeto GitHub Enterprise Server Backup Utilities para um diretório local no host de backup, execute o comando a seguir.

    $ git clone https://github.com/github/backup-utils.git /path/to/target/directory/backup-utils
    
  2. Para alterar para o diretório do repositório local, execute o comando a seguir.

    cd backup-utils
    
  3. Para atualizar para a versão mais recente do projeto, use o branch stable executando o comando git checkout stable.

    git checkout stable

    Como alternativa, para usar uma versão específica do projeto, execute o comando a seguir, substituindo X.Y.Z pela versão desejada.

    $ git checkout vX.Y.Z
  4. Para copiar o arquivo incluído backup.config-example no backup.config, execute o comando a seguir.

    cp backup.config-example backup.config
  5. Para personalizar sua configuração, edite backup.config em um editor de texto.

    1. Defina o valor GHE_HOSTNAME como o nome do host ou o endereço IP da instância primária do GitHub Enterprise Server.

      Observação: se o sua instância do GitHub Enterprise Server for implantado como um cluster ou em uma configuração de alta disponibilidade usando um balanceador de carga, o GHE_HOSTNAME poderá ser o nome do host do balanceador de carga, desde que permita o acesso SSH (na porta 122) ao sua instância do GitHub Enterprise Server.

      Para garantir que um dispositivo recuperado esteja disponível imediatamente, execute backups direcionados à instância primária mesmo em uma configuração de replicação geográfica.

    2. Defina o valor GHE_DATA_DIR como o local do sistema de arquivos em que deseja armazenar instantâneos de backup. É recomendável escolher um local no mesmo sistema de arquivos que o host de backup, mas fora de onde você clonou o repositório Git na etapa 1.

  6. Para conceder acesso ao host de backup à instância, abra a página de configurações da instância principal em http(s)://HOSTNAME/setup/settings e adicione a chave SSH do host de backup à lista de chaves SSH autorizadas. Para obter mais informações, confira "Acesar o shell administrativo (SSH)".

  7. Em seu host de backup, verifique a conectividade do SSH com o sua instância do GitHub Enterprise Server usando o comando ghe-host-check.

    ./bin/ghe-host-check
  8. Para criar um backup completo inicial, execute o comando a seguir.

    ./bin/ghe-backup

Para obter informações sobre o uso avançado, confira GitHub Enterprise Server Backup Utilities README na documentação do projeto do GitHub Enterprise Server Backup Utilities.

Atualizar o GitHub Enterprise Server Backup Utilities

Ao atualizar o GitHub Enterprise Server Backup Utilities, você precisa escolher uma versão que funcionará com sua versão atual do GitHub Enterprise Server. Sua instalação do GitHub Enterprise Server Backup Utilities precisa ter pelo menos a mesma versão que sua instância do GitHub Enterprise Server e não pode ter mais do que duas versões posteriores. Para obter mais informações, confira os requisitos de versão do GitHub Enterprise Server na documentação do projeto do GitHub Enterprise Server Backup Utilities. Você pode atualizar GitHub Enterprise Server Backup Utilities em um repositório Git buscando e fazendo check-out das alterações mais recentes.

Como alternativa, se você não usar um repositório Git para sua instalação, poderá extrair um novo arquivo no local ou mudar sua abordagem para usar um repositório Git.

Verificar o tipo de instalação

Você pode verificar o método de instalação do GitHub Enterprise Server Backup Utilities e determinar a melhor forma de atualizar sua instalação.

  1. No host de backup, navegue até o diretório GitHub Enterprise Server Backup Utilities, geralmente backup-utils.

  2. Para verificar se existe um diretório de trabalho válido dentro de um repositório Git, execute o comando a seguir.

    git rev-parse --is-inside-work-tree
    

    Se a saída é true, GitHub Enterprise Server Backup Utilities foi instalado clonando o repositório Git do projeto. Se a saída inclui fatal: not a git repository (or any of the parent directories), GitHub Enterprise Server Backup Utilities foi provavelmente instalado extraindo um arquivo morto compactado. Se a instalação estiver em um repositório Git, você poderá instalar a versão mais recente usando o Git. Se a instalação for de um arquivo morto compactado, você poderá baixar e extrair a versão mais recente ou reinstalar o GitHub Enterprise Server Backup Utilities usando o Git para simplificar atualizações futuras.

Atualizar uma instalação em um repositório Git

  1. No host de backup, navegue até o diretório GitHub Enterprise Server Backup Utilities, geralmente backup-utils.

    Nota: é recomendável criar uma cópia do arquivo backup.config existente em um local temporário, como $HOME/backup.config, antes de atualizar dados GitHub Enterprise Server Backup Utilities.

  2. Baixe as atualizações de projeto mais recentes executando o comando git fetch.

    git fetch
  3. Para atualizar para a versão mais recente do projeto, use o branch stable executando o comando git checkout stable.

    git checkout stable

    Como alternativa, para usar uma versão específica do projeto, execute o comando a seguir, substituindo X.Y.Z pela versão desejada.

    $ git checkout vX.Y.Z
    1. Para verificar se você atualizou com êxito, execute o comando a seguir.
    ./bin/ghe-backup --version
  4. Para verificar a conectividade SSH entre o GitHub Enterprise Server configurado, execute o comando a seguir.

    ./bin/ghe-host-check

Usar o Git em vez de arquivos compactados para upgrades

Se o host de backup tiver conectividade com a Internet e você tiver usado anteriormente um arquivo compactado (.tar.gz) para instalar ou atualizar o GitHub Enterprise Server Backup Utilities, recomendamos usar um repositório Git para sua instalação. A atualização usando o Git requer menos trabalho e preserva sua configuração de backup.

  1. No host de backup, navegue até o diretório GitHub Enterprise Server Backup Utilities, geralmente backup-utils.

  2. Para fazer backup da configuração existente do GitHub Enterprise Server Backup Utilities, copie o arquivo backup.config atual para um local seguro, como seu diretório inicial.

    $ cp backup.config $HOME/backup.config.saved-$(date +%Y%m%d-%H%M%S)
    
  3. Altere para o diretório local no seu host de backup em que deseja isntalar o repositório Git do GitHub Enterprise Server Backup Utilities.

  4. Para clonar o repositório de projeto para o diretório no seu host de backup, execute o comando a seguir.

    git clone https://github.com/github/backup-utils.git
    
  5. Para alterar para o repositório clonado, execute o comando a seguir.

    cd backup-utils
    
  6. Para atualizar para a versão mais recente do projeto, use o branch stable executando o comando git checkout stable.

    git checkout stable

    Como alternativa, para usar uma versão específica do projeto, execute o comando a seguir, substituindo X.Y.Z pela versão desejada.

    $ git checkout vX.Y.Z
  7. Para restaurar a configuração de backup anterior, copie o arquivo de configuração de backup existente para o diretório do repositório local. Substitua o caminho no comando pelo local do arquivo salvo na etapa 2.

    $ cp PATH/TO/BACKUP/FROM/STEP/2 backup.config
    

    Nota: você pode escolher para onde deseja restaurar seu arquivo de configuração de backup após a clonagem. Para obter mais informações sobre onde os arquivos de configuração podem estar localizados, confira Introdução na documentação do projeto do GitHub Enterprise Server Backup Utilities.

  8. Para confirmar se os caminhos para diretórios ou scripts no arquivo de configuração de backup estão corretos, examine o arquivo em um editor de texto.

  9. Para verificar se você atualizou com êxito, execute o comando a seguir.

    ./bin/ghe-backup --version
  10. Para verificar a conectividade SSH entre o GitHub Enterprise Server configurado, execute o comando a seguir.

    ./bin/ghe-host-check
  11. Exclua seu antigo diretório de Utilitários de Backup do GitHub Enterprise Server da etapa 1 (em que a instalação de arquivos compactados estava localizada).

Programar um backup

Você pode agendar backups regulares no host de backup usando o comando cron(8) ou um serviço de agendamento de comando semelhante. A frequência configurada determinará o objetivo do ponto de recuperação (RPO) nos piores cenários do seu plano de recuperação. Por exemplo, ao programar backups diários à meia-noite, você pode perder até 24 horas de dados em caso de desastre. É recomendável começar com backups a cada hora, garantindo a possibilidade de perdas menores (no máximo de uma hora) caso os dados primários do site sejam destruídos.

Se as tentativas de backup forem sobrepostas, o comando ghe-backup será anulado com uma mensagem de erro, indicando a existência de um backup simultâneo. Nesse caso, é recomendável diminuir a frequência dos backups programados. Para obter informações, confira a seção "Agendar backups" do GitHub Enterprise Server Backup Utilities README na documentação do projeto do GitHub Enterprise Server Backup Utilities.

Como restaurar um backup

No caso de interrupção prolongada ou evento catastrófico no site primário, você pode restaurar o sua instância do GitHub Enterprise Server provisionando outro dispositivo do GitHub Enterprise e executando uma restauração por meio do host de backup. Antes de restaurar um appliance, você deve adicionar a chave SSH do host de backup ao appliance de destino do GitHub Enterprise como chave SSH autorizada.

Observação: durante a execução de restaurações de backup no sua instância do GitHub Enterprise Server, as mesmas regras de capacidade de suporte de versão se aplicam. Você só pode restaurar dados de no máximo duas versões do recursos para trás.

Por exemplo, se você fizer um backup do GitHub Enterprise Server 3.0.x, poderá restaurar o backup para uma instância 3.2.x do GitHub Enterprise Server. Não é possível restaurar dados de um backup do GitHub Enterprise Server 2.22.x para uma instância que executa 3.2.x, porque ela seria três saltos entre as versões (2.22 ara 3.0 para 3.1 para 3.2). Primeiro, você precisa restaurar em uma instância que executa a versão 3.1.x e, em seguida, atualizar para a 3.2.x.

Para restaurar o sua instância do GitHub Enterprise Server do último instantâneo bem-sucedido, use o comando ghe-restore.

Nota: antes de restaurar um backup, verifique se:

Ao executar o comando ghe-restore, você deverá ver uma saída semelhante a esta:

$ ghe-restore -c 169.154.1.1
> Checking for leaked keys in the backup snapshot that is being restored ...
> * No leaked keys found
> Connect 169.154.1.1:122 OK (v2.9.0)

> WARNING: All data on GitHub Enterprise appliance 169.154.1.1 (v2.9.0)
>          will be overwritten with data from snapshot 20170329T150710.
> Please verify that this is the correct restore host before continuing.
> Type 'yes' to continue: yes

> Starting restore of 169.154.1.1:122 from snapshot 20170329T150710
# ...output truncated
> Completed restore of 169.154.1.1:122 from snapshot 20170329T150710
> Visit https://169.154.1.1/setup/settings to review appliance configuration.

Opcionalmente, para validar a restauração, configure uma lista de exceções de IP para permitir o acesso a uma lista especificada de endereços IP. Para obter mais informações, confira "Habilitar e programar o modo de manutenção".

Observação:

  • As configurações de rede são excluídas do instantâneo de backup. Você deve configurar manualmente a rede no appliance de destino do GitHub Enterprise Server conforme o seu ambiente.

  • Ao restaurar para novos discos em uma instância existente ou vazia do GitHub Enterprise Server, UUIDs obsoletos podem estar presentes, resultando em relatórios de replicação Do Git e/ou Alambic como fora de sincronia. IDs de entrada de servidor obsoletas podem ser o resultado de um nó desativado em uma configuração de alta disponibilidade que ainda está presente no banco de dados do aplicativo, mas não na configuração de replicação restaurada. Para corrigir, UUIDs obsoletas poderão ser interrompidas usando ghe-repl-teardown depois que a restauração for concluída e antes de iniciar a replicação. Nesse cenário, entre em contato com Suporte do GitHub Enterprise para obter assistência adicional.

Você pode usar essas opções adicionais com o comando ghe-restore:

  • O sinalizador -c substitui as configurações, o certificado e os dados de licença no host de destino, mesmo que ele já esteja configurado. Omita esse sinalizador se você estiver configurando uma instância de preparo para fins de teste e se quiser manter a configuração no destino. Para obter mais informações, confira a seção "Usar comandos de backup e restauração" do GitHub Enterprise Server Backup Utilities README na documentação do projeto do GitHub Enterprise Server Backup Utilities.
  • O sinalizador -s permite que você selecione outro instantâneo de backup.