TR-5000: Backup, recuperação e clonagem de banco de dados PostgreSQL no ONTAP com SnapCenter
NetApp
A solução fornece uma visão geral e detalhes sobre backup, recuperação e clonagem de banco de dados PostgreSQL no storage ONTAP na nuvem pública ou no local por meio da ferramenta de IU de gerenciamento de banco de dados NetApp SnapCenter.
Finalidade
O software NetApp SnapCenter é uma plataforma empresarial fácil de usar para coordenar e gerenciar com segurança a proteção de dados em aplicações, bancos de dados e sistemas de arquivos. Ele simplifica o gerenciamento do ciclo de vida de backup, restauração e clone, transferindo essas tarefas para os proprietários de aplicações sem sacrificar a capacidade de supervisionar e regular a atividade nos sistemas de storage. Ao utilizar o gerenciamento de dados baseado em storage, ele aumenta a performance e a disponibilidade, além de reduzir o tempo de teste e desenvolvimento.
Nesta documentação, mostramos proteção e gerenciamento de banco de dados PostgreSQL no storage NetApp ONTAP na nuvem pública ou no local com uma ferramenta de IU SnapCenter muito fácil de usar.
Esta solução aborda os seguintes casos de uso:
-
Backup e recuperação de banco de dados PostgreSQL implantado no storage NetApp ONTAP na nuvem pública ou no local.
-
Gerencie snapshots de banco de dados PostgreSQL e cópias de clones para acelerar o desenvolvimento de aplicações e melhorar o gerenciamento do ciclo de vida dos dados.
Público-alvo
Esta solução destina-se às seguintes pessoas:
-
Um DBA que gostaria de implantar bancos de dados PostgreSQL no storage NetApp ONTAP.
-
Um arquiteto de solução de banco de dados que gostaria de testar cargas de trabalho PostgreSQL no storage NetApp ONTAP.
-
Um administrador de storage que gostaria de implantar e gerenciar bancos de dados PostgreSQL no storage NetApp ONTAP.
-
Proprietário de um aplicativo que gostaria de levantar um banco de dados PostgreSQL no armazenamento NetApp ONTAP.
Ambiente de teste e validação de soluções
O teste e a validação dessa solução foram realizados em uma configuração de laboratório que pode não corresponder ao ambiente de implantação final. Consulte a secção Fatores-chave para consideração da implantação para obter mais informações.
Arquitetura
Componentes de hardware e software
Hardware |
||
NetApp AFF A220 |
Versão 9.12.1P2 |
Compartimento de disco DS224-12, módulo IOM12E, 24 discos / 12 TIB de capacidade |
Cluster do VMware vSphere |
Versão 6,7 |
4 nós ESXi de computação do NetApp HCI H410C |
Software |
||
RedHat Linux |
RHEL Linux 8,6 (LVM) - x64 Gen2 |
Implantou a assinatura RedHat para testes |
Windows Server |
2022 Datacenter; AE HotPatch - x64 Gen2 |
Hosting SnapCenter Server |
Banco de dados PostgreSQL |
Versão 14,13 |
Cluster de banco de dados PostgreSQL preenchido com esquema HammerDB tpcc |
Servidor SnapCenter |
Versão 6,0 |
Implantação de grupo de trabalho |
Abra o JDK |
Versão Java-11-openjdk |
Requisito de plug-in do SnapCenter em VMs de banco de dados |
NFS |
Versão 3,0 |
Separe os dados e faça o log em diferentes pontos de montagem |
Ansible |
núcleo 2.16.2 |
Python 3.6.8 |
Configuração de banco de dados PostgreSQL no ambiente de laboratório
Servidor |
Base de dados |
DB Storage |
psql01 |
Servidor de banco de dados principal |
/Pgdata, /pglogs montagens de volume NFS no armazenamento ONTAP |
psql02 |
Clone servidor de banco de dados |
/Pgdata_clone, /pglogs_clone o volume de thin clone NFS é montado no storage ONTAP |
Fatores-chave para consideração da implantação
-
Implantação do SnapCenter. O SnapCenter pode implantar em um ambiente de domínio ou grupo de trabalho do Windows. Para implantação baseada em domínio, a conta de usuário de domínio deve ser uma conta de administrador de domínio ou o usuário do domínio pertence ao grupo do administrador local no servidor de hospedagem SnapCenter.
-
* Resolução de nomes.* O servidor SnapCenter precisa resolver o nome para o endereço IP de cada host do servidor de banco de dados de destino gerenciado. Cada host do servidor de banco de dados de destino deve resolver o nome do servidor SnapCenter para o endereço IP. Se um servidor DNS não estiver disponível, adicione nomes aos arquivos de host locais para resolução.
-
Configuração do grupo de recursos. O grupo de recursos no SnapCenter é um agrupamento lógico de recursos semelhantes que podem ser copiados juntos. Assim, ele simplifica e reduz o número de tarefas de backup em um ambiente de banco de dados grande.
-
Separe o banco de dados completo e o backup de log de arquivo. O backup completo do banco de dados inclui volumes de dados e volumes de log snapshots de grupo consistentes. Um snapshot frequente de banco de dados completo gera maior consumo de storage, mas melhora o rto. Uma alternativa é os snapshots completos de banco de dados menos frequentes e o backup de logs de arquivamento mais frequente, que consome menos storage e melhora o RPO, mas pode estender o rto. Considere os objetivos de rto e RPO ao configurar o esquema de backup. Há também um limite (1023) do número de backups de snapshot em um volume.
-
Delegação Privileges. Utilize o controle de acesso baseado em função que está integrado na IU do SnapCenter para delegar Privileges às equipes de aplicativos e bancos de dados, se desejado.
Implantação de solução
As seções a seguir fornecem procedimentos passo a passo para implantação, configuração e backup, recuperação e clone de banco de dados do SnapCenter no storage NetApp ONTAP na nuvem pública ou no local.
Pré-requisitos para implantação
Details
-
A implantação requer dois bancos de dados PostgreSQL existentes em execução no storage ONTAP, um como servidor de banco de dados primário e o outro como servidor de banco de dados clone. Para referência na implantação de banco de dados PostgreSQL no ONTAP, referido como TR-4956: "Implantação automatizada de alta disponibilidade e recuperação de desastres do PostgreSQL no AWS FSX/EC2", Procurando o manual de implantação automatizada PostgreSQL na instância primária.
-
Provisione um servidor Windows para executar a ferramenta de IU do NetApp SnapCenter com a versão mais recente. Consulte o seguinte link para obter detalhes: "Instale o servidor SnapCenter".
Instalação e configuração do SnapCenter
Details
Recomendamos que você passe on-line "Documentação do software SnapCenter" antes de prosseguir para a instalação e configuração do SnapCenter: . A seguir fornece um resumo de alto nível das etapas para instalação e configuração do software SnapCenter para PostgreSQL no ONTAP.
-
No servidor SnapCenter Windows, baixe e instale o JDK java mais recente do "Obtenha o Java para aplicativos de desktop". Desative o firewall do Windows.
-
A partir do servidor SnapCenter Windows, baixe e instale ou atualize o pacote de hospedagem SnapCenter 6,0 Windows Pré-requisitos: PowerShell - PowerShell-7,4.3-win-x64.msi e .Net - dotnet-hosting-8,0.6-win.
-
A partir do servidor Windows SnapCenter, baixe e instale a versão mais recente (atualmente 6,0) do executável de instalação do SnapCenter a partir do site de suporte do NetApp: "NetApp | suporte".
-
A partir de VMs de banco de dados DB, habilite a autenticação sem senha ssh para o usuário administrador
admin
e seu sudo Privileges sem senha. -
A partir de VMs de banco de dados DB, pare e desative o demônio de firewall Linux. Instale o Java-11-openjdk.
-
A partir do servidor Windows SnapCenter, inicie o navegador para iniciar sessão no SnapCenter com o utilizador administrador local do Windows ou credencial do utilizador do domínio através da porta 8146.
-
Reveja
Get Started
o menu online. -
No
Settings-Global Settings
, verifiqueHypervisor Settings
e clique em Atualizar. -
Se necessário, ajuste
Session Timeout
a IU do SnapCenter para o intervalo desejado. -
Adicione usuários adicionais ao SnapCenter, se necessário.
-
A
Roles
guia lista as funções integradas que podem ser atribuídas a diferentes usuários do SnapCenter. Funções personalizadas também podem ser criadas pelo usuário admin com o Privileges desejado. -
Em
Settings-Credential
, crie credenciais para destinos de gerenciamento do SnapCenter. Neste caso de uso de demonstração, eles são administrador de usuários do linux para login na VM do servidor de banco de dados e credencial postgres para acesso ao PostgreSQL.Redefina a senha do usuário PostgreSQL antes de criar a credencial. -
A partir
Storage Systems
do separador, adicioneONTAP cluster
com a credencial de administrador do cluster do ONTAP. Para o Azure NetApp Files, você precisará criar uma credencial específica para acesso ao pool de capacidade. -
Na
Hosts
aba, adicione VMs PostgreSQL DB, que instala o plugin SnapCenter para PostgreSQL no Linux. -
Uma vez que o plugin do host é instalado na VM do servidor de banco de dados, os bancos de dados no host são auto-descobertos e visíveis na
Resources
guia.
Backup de banco de dados
Details
O cluster PostgreSQL descoberto automaticamente inicial exibe um cadeado vermelho ao lado do nome do cluster. Ele deve ser desbloqueado usando a credencial de banco de dados PostgreSQL criada durante a configuração do SnapCenter na seção anterior. Em seguida, você precisa criar e aplicar uma política de backup para proteger o banco de dados. Finalmente, execute o backup manualmente ou por um agendador para criar um backup instantâneo. A seção a seguir demonstra os procedimentos passo a passo.
-
Desbloquear o cluster PostgreSQL.
-
Navegando para
Resources
a guia, que lista o cluster PostgreSQL descoberto após o plugin SnapCenter instalado na VM do banco de dados. Inicialmente, ele é bloqueado e oOverall Status
cluster de banco de dados do é exibido comoNot protected
. -
Clique em nome do cluster e, em seguida,
Configure Credentials
para abrir a página de configuração de credenciais. -
Escolha
postgres
credencial criada durante a configuração anterior do SnapCenter. -
Quando a credencial for aplicada, o cluster será desbloqueado.
-
-
Crie uma política de backup do PostgreSQL.
-
Navegue até
Setting
-Polices
e clique emNew
para criar uma política de backup. -
Nomeie a política de backup.
-
Escolha o tipo de armazenamento. A configuração padrão de backup deve ser boa para a maioria dos cenários.
-
Definir a frequência de backup e a retenção de instantâneos.
-
Opção para selecionar replicação secundária se os volumes de banco de dados forem replicados para um local secundário.
-
Reveja o resumo e
Finish
para criar a política de cópia de segurança.
-
-
Aplique a política de backup para proteger o banco de dados PostgreSQL.
-
Navegue de volta para
Resource
a guia, clique no nome do cluster para iniciar o fluxo de trabalho de proteção de cluster PostgreSQL. -
Aceitar predefinição
Application Settings
. Muitas das opções nesta página não se aplicam ao destino descoberto automaticamente. -
Aplique a política de backup criada. Adicione um agendamento de backup, se necessário.
-
Forneça a configuração de e-mail se a notificação de backup for necessária.
-
Reveja o resumo e
Finish
para implementar a política de cópia de segurança. Agora o cluster PostgreSQL está protegido. -
O backup é executado de acordo com o cronograma de backup ou a partir da topologia de backup do cluster, clique
Backup Now
para acionar um backup manual sob demanda. -
Monitorize o trabalho de cópia de segurança a partir
Monitor
do separador . Geralmente leva alguns minutos para fazer backup de um banco de dados grande e, em nosso caso de teste, levou cerca de 4 minutos para fazer backup de volumes de banco de dados próximos a 1TB.
-
Recuperação de banco de dados
Details
Nesta demonstração de recuperação de banco de dados, mostramos uma recuperação pontual do cluster de banco de dados PostgreSQL. Primeiro, crie um backup instantâneo do volume de banco de dados no storage ONTAP usando o SnapCenter. Em seguida, faça login no banco de dados, crie uma tabela de teste, anote o carimbo de data/hora e solte a tabela de teste. Agora inicie uma recuperação do backup até o timestamp quando a tabela de teste é criada para recuperar a tabela descartada. O seguinte captura os detalhes do fluxo de trabalho e validação da recuperação pontual do banco de dados PostgreSQL com a IU do SnapCenter.
-
Faça login no PostgreSQL como
postgres
usuário. Crie e, em seguida, solte uma tabela de teste.postgres=# \dt Did not find any relations. postgres=# create table test (id integer, dt timestamp, event varchar(100)); CREATE TABLE postgres=# \dt List of relations Schema | Name | Type | Owner --------+------+-------+---------- public | test | table | postgres (1 row) postgres=# insert into test values (1, now(), 'test PostgreSQL point in time recovery with SnapCenter'); INSERT 0 1 postgres=# select * from test; id | dt | event ----+----------------------------+-------------------------------------------------------- 1 | 2024-10-08 17:55:41.657728 | test PostgreSQL point in time recovery with SnapCenter (1 row) postgres=# drop table test; DROP TABLE postgres=# \dt Did not find any relations. postgres=# select current_time; current_time -------------------- 17:59:20.984144+00
-
No
Resources
separador , abra a página de cópia de segurança da base de dados. Selecione o backup instantâneo a ser restaurado. Em seguida, cliqueRestore
no botão para iniciar o fluxo de trabalho de recuperação de banco de dados. Observe o carimbo de data/hora do backup ao executar uma recuperação pontual. -
`Restore scope`Selecione . Neste momento, um recurso completo é apenas uma opção.
-
Para
Recovery Scope
, escolha e insira o carimbo de data/hora para oRecover to point in time
qual a recuperação é revertida. -
O
PreOps
permite a execução de scripts contra o banco de dados antes da operação de restauração/recuperação ou simplesmente deixá-lo preto. -
O
PostOps
permite a execução de scripts contra o banco de dados após a operação de restauração/recuperação ou apenas deixá-lo preto. -
Notificação por e-mail, se desejado.
-
Reveja o resumo do trabalho e
Finish
para iniciar o trabalho de restauro. -
Clique em executar trabalho para abrir
Job Details
a janela. O estado do trabalho também pode ser aberto e visualizado a partir doMonitor
separador . -
Faça login no PostgreSQL como
postgres
usuário e valide que a tabela de teste foi recuperada.[postgres@psql01 ~]$ psql psql (14.13) Type "help" for help. postgres=# \dt List of relations Schema | Name | Type | Owner --------+------+-------+---------- public | test | table | postgres (1 row) postgres=# select * from test; id | dt | event ----+----------------------------+-------------------------------------------------------- 1 | 2024-10-08 17:55:41.657728 | test PostgreSQL point in time recovery with SnapCenter (1 row) postgres=# select now(); now ------------------------------- 2024-10-08 18:22:33.767208+00 (1 row)
Clone de banco de dados
Details
O clone de cluster de banco de dados PostgreSQL via SnapCenter cria um novo volume clonado a partir de um backup instantâneo de um volume de dados de banco de dados de origem. Mais importante, é rápido (alguns minutos) e eficiente em comparação com outros métodos para fazer uma cópia clonada do banco de dados de produção para suportar o desenvolvimento ou teste. Assim, ele reduz drasticamente os custos de storage e melhora o gerenciamento do ciclo de vida das aplicações de banco de dados. A seção a seguir demonstra o fluxo de trabalho do clone do banco de dados PostgreSQL com a IU do SnapCenter.
-
Para validar o processo de clone. Novamente, insira uma linha na tabela de teste. Em seguida, execute um backup para capturar os dados de teste.
postgres=# insert into test values (2, now(), 'test PostgreSQL clone to a different DB server host'); INSERT 0 1 postgres=# select * from test; id | dt | event ----+----------------------------+----------------------------------------------------- 2 | 2024-10-11 20:15:04.252868 | test PostgreSQL clone to a different DB server host (1 row)
-
No
Resources
separador , abra a página de cópia de segurança do cluster de base de dados. Escolha o instantâneo do backup do banco de dados que contém os dados de teste. Em seguida, cliqueclone
no botão para iniciar o fluxo de trabalho clone do banco de dados. -
Selecione um host de servidor de banco de dados diferente do servidor de banco de dados de origem. Escolha uma porta TCP 543x não utilizada no host de destino.
-
Insira quaisquer scripts para executar antes ou depois da operação clone.
-
Notificação por e-mail, se desejado.
-
Reveja o resumo e
Finish
para iniciar o processo de clone. -
Clique em executar trabalho para abrir
Job Details
a janela. O estado do trabalho também pode ser aberto e visualizado a partir doMonitor
separador . -
Banco de dados clonado Registra com SnapCenter imediatamente.
-
Valide o cluster de banco de dados clonado no host de servidor de banco de dados de destino.
[postgres@psql01 ~]$ psql -d postgres -h 10.61.186.7 -U postgres -p 5433 Password for user postgres: psql (14.13) Type "help" for help. postgres=# select * from test; id | dt | event ----+----------------------------+----------------------------------------------------- 2 | 2024-10-11 20:15:04.252868 | test PostgreSQL clone to a different DB server host (1 row) postgres=# select pg_read_file('/etc/hostname') as hostname; hostname ---------- psql02 + (1 row)
Onde encontrar informações adicionais
Para saber mais sobre as informações descritas neste documento, consulte os seguintes documentos e/ou sites:
-
Documentação do software SnapCenter
-
TR-4956: Implantação automatizada de alta disponibilidade do PostgreSQL e recuperação de desastres no AWS FSX/EC2