O Serviço de banco de dados dos clientes Brasil (SmartERP, Smart eSocial e Sistemico Brasil) é de responsabilidade do time CLOUD DBA, ou seja, quaisquer manutenções na infra-estrutura dos bancos de produção, deve-se abrir um ticket para o time atuar.
Para os clientes do SmartERP que possuem ambientes de homologação (development), optamos em utilizar banco em conteiner na versão 12.6, ficando a cargo de todas as manutenções de infra-estrutura do time de SRE Protheus.
Caso haja a necessidade de realizar qualquer processo em dados ou tabelas do banco, deve-se primeiramente alinhar com o time de DBA da Engenharia Protheus.
Temos a possibilidade de acessar o database diretamente via psql, acessando os IPs disponibilizados no ambiente (helm file). Recomendo fazer este processo somente em último caso e que utilize o PSQL de dentro do pod do dbaccess.
Processo de backup dos ambiente ocorrerem todos os dias, a partir das 21 horas.
Para clientes do SmartERP, mantemos os dados salvos dentro do volume do cluster e copiamos as 06 horas da manhã para o serviço do rubrick (Job montado no namespace smartbackup). Para Ambientes do Sistemico e Mercado Internacional, disponibilizamos um bucket na GCP para gravar os backups assim que concluídos. Este processo ocorre devido não existir integração entre o RUBRICK e os clusters do TESP02 e AWS. Para ambientes do Smart eSocial, todo a gestão de backup é efetuada pelo time Cloud DBA Oracle. Além destes dois buckets, mantemos também disponivel o bucket da AWS para tirarmos os backups, porém sem utilização no momento.
O backup dos ambientes POSTGRES é realizado com compactação (Z6), sem a vinculação de owner e no encode que o banco foi criado. Após conclusão do backup por parte do PSQL, fazemos uma nova compactação antes de enviar para o bucket configurado no helmfile do ambiente.
# backup custom com compressão media + gzip ao final do backup pg_dump postgres://$user:$pass@$DATABASE_ENDPOINT:$DATABASE_PORT/$user -Fc -Z6 --no-owner --no-acl --verbose --encoding $DATABASE_CODEPAGE | gzip > /backup/$BUCKET_NAME/$NAMESPACE/$remote_last |
O processo de restore de dados dos ambientes do SmartERP e Sistêmico é realizado de forma automática, ou seja, quando o sistema verificar que não existe o banco de dados, ele irá fazer a criação dos usuários, do database, instalar as extensões e restaurar o último backup existente no bucket (database_latest.dump.gz).
Via de regra, o ambiente sempre irá pegar o ultimo backup de produção e restaurar no ambiente que não foi encontrado o banco, não importando se for o ambiente de homologação, os jobs irão pegar o DUMP de produção e restaurar em homologação.
Caso seja necessário o restore da última posição do banco de homologação, deve-se proceder com o processo manual descrito abaixo. |
Para forçar o restore dentro do ambiente, temos duas opções:
Para realizar o restore automático, basta entrar de forma exclusiva no pod do dbaccess e dropar o database produção/homologação. Ao término do drop database, basta reiniciar o pod do dbaccess que o próprio componente irá se certificar de restaurar os dados com o último backup. |
Para realizar o restore manual:
Para ajudar no processo, desenvolvemos um bash para montar as sentenças a serem executadas:
|
Caso seja necessário restaurar o backup de alguma topologia específica é necessário entrar em contato com o pessoal responsável pelo Rubrik e informar o volume que foi gravado o backup (TKS_BKP_01 ou TKS_BKP_HMG_01) e a data que se deseja recuperar os arquivos.
Para recuperar qualquer backup do volume TKS_BKP_HIST_GCP é necessário informar a data que o arquivo foi colocado no Rubrik (05/08/2020 ou 06/08/2020).
TKS_BKP_01
Backups diários das topologias que estão no cluster de produção.
TKS_BKP_HMG_01
Backups diários das topologias que estão no cluster do sistêmico. (Desativado)
TKS_BKP_HIST_GCP
Backups antigos que estavam no GCP e que foram gerados antes de migrarmos para o VCP.
É possível localizar os arquivos de volume e database de cada topologia gerados entre setembro/2019 e maio/2020.
${topologia}-database-2019-09-30-01-01.tar.gz
${topologia}-database-2019-10-31-04-02.tar.gz
${topologia}-database-2019-11-30-04-00.tar.gz
${topologia}-database-2019-12-31-04-02.tar.gz
${topologia}-database-2020-01-31-04-04.tar.gz
${topologia}-database-2020-02-29-04-04.tar.gz
${topologia}-database-2020-03-31-22-01.tar.gz
${topologia}-database-2020-04-30-03-29.tar.gz
${topologia}-database-2020-05-30-21-14.tar.gz
${topologia}-volume-2019-09-30-01-04.tar.gz
${topologia}-volume-2019-10-31-04-08.tar.gz
${topologia}-volume-2019-11-30-05-03.tar.gz
${topologia}-volume-2019-12-31-05-09.tar.gz
${topologia}-volume-2020-01-31-05-09.tar.gz
${topologia}-volume-2020-02-29-04-08.tar.gz
${topologia}-volume-2020-03-31-22-11.tar.gz
${topologia}-volume-2020-04-30-03-33.tar.gz
${topologia}-volume-2020-05-30-21-17.tar.gz
No dia 5 de agosto de 2020 está o snapshot com todas as topologias do cluster de produção, com exceção da cyuwnr/ e cyuwnr-development/ |
Caso seja necessário restaurar o backup de alguma topologia específica é necessário entrar no endereço: https://console.cloud.google.com/storage/browser?project=eng-protheus&prefix= e baixar o backup necessários. Todos os backups estão com links para download.
Este bucket encontra-se Inativo no momento.