Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

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.

Backup dos dados

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 Sistêmico 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.

...

Bloco de código
 # 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

Restore de dados

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).

...

Expandir
titleProcesso manual

Para realizar o restore manual:

  1. Temos que baixar o backup dentro do pod do dbaccess e descompactar o arquivo baixado (se for o caso);
  2. Dropar o banco de dados a ser restaurado, lembrando que temos que ter a exclusividade no banco de dados.;
  3. Criar o banco de dados manualmente, obedecendo o encoding do banco original do cliente;
  4. Criar a extensão uuid-ossp (Utilizando a senha de SU do postgres para o banco que acabou de criar);
  5. Executar o pg_restore no banco, solicitando para que ignore o owner e os tablespaces;
  6. Criar a tabela de controle de restore do banco de dados :

    Bloco de código
    CREATE TABLE DUMP_OK ();
  7. Reiniciar o dbaccess.


Para ajudar no processo, desenvolvemos um bash para montar as sentenças a serem executadas:


Informações

É necessário ter:

  • Kubectl instalado com um kubconfig válido
  • Ter o JQ instalado
Bloco de código
#!/bin/bash
set +ef
set +x

ccode=$1
type=$2

if [ "$ccode" = "" ]; then
    echo "Required env variable ccode"
    exit 0
fi

if [ "$type" = "" ]; then
    type="producao"
fi

kubectl -n $ccode scale deploy -l base=true --replicas=1

dbaccess=$(kubectl -n $ccode get pod --no-headers | grep -i dbaccess | awk '{print $1}')
echo "kubectl -n $ccode exec -it $dbaccess -- bash"

endpoint=$(kubectl -n $ccode get configmap protheus-config -o json | jq -r .data.DATABASE_ENDPOINT)
password=$(kubectl -n $ccode get secrets protheus-secrets-db-master -o json | jq -r .data.DATABASE_PASSWORD | base64 -d)
user=$(kubectl -n $ccode get secrets protheus-secrets-db-master -o json | jq -r .data.DATABASE_USER | base64 -d)

echo "PGPASSWORD=$password psql -U $user -h $endpoint -d postgres -c "'"DROP DATABASE '$type';"'
echo "PGPASSWORD=$password psql -U $user -h $endpoint -d postgres -c "'"CREATE DATABASE '$type' WITH LC_COLLATE='"'C'"' LC_CTYPE='"'C'"' ENCODING='"'WIN1252'"' TEMPLATE=template0;"'
echo "PGPASSWORD=$password psql -U $user -h $endpoint -d $type -c 'CREATE EXTENSION IF NOT EXISTS \"uuid-ossp\";'"

echo "PGPASSWORD=$""DATABASE_PASSWORD_$type pg_restore -U $""DATABASE_USER_$type -h $""DATABASE_ENDPOINT -d $type --no-tablespaces --no-owner --no-acl --verbose < /tmp/"
echo "PGPASSWORD=$""DATABASE_PASSWORD_$type psql -U $""DATABASE_USER_$type -h $""DATABASE_ENDPOINT -d $type -c "CREATE TABLE DUMP_OK ();"


Política de Acesso aos dados

Com base na Lei Geral de Proteção de Dados Pessoais (Lei 13.709/2018) e Marco Civil da Internet (Lei 12.965/2014), a Política de Privacidade do Grupo TOTVS procura demonstrar o compromisso da companhia com a transparência com que trata os Dados Pessoais dos Titulares, assim como expressar seu comprometimento com a segurança nos serviços fornecidos. Temos a assistente LGPD que tem como objetivo auxiliar os titulares dos dados, a fim de proteger, preservar e respeitar a privacidade. Clique aqui para acessar o conteúdo completo da Política de Privacidade TOTVS.

Atualmente as aplicações Smart estão divididas em 2 ambientes (DEV e PRODUÇÃO). Cada um desses ambiente possui um Banco de Dados que contém dados de uso do cliente. O acesso a esses dados é limitado, realizado através de ferramental homologado e disponibilizado pela TOTVS S.A. (garantir a integridade das informações).

Somente os clientes (Via ferramentas homologadas) e o time de SRE possuem acesso aos dados dos ambientes. Por exceção, com aval da diretoria e documentado, outras pessoas poderão acessar, desde que exista uma autorização do cliente para que os dados sejam acessíveis e todos os tratamentos referente a LGPD sejam executados. Caso ocorra a liberação, estas pessoas poderão acessar os dados somente pelas ferramentas homologadas TOTVS (ex. MPSDU), não havendo a possibilidade de acesso via programas externos.

Aviso

É proibida a exportação dos dados através de DUMP's e qualquer outra forma.

É proíbido uso de dados de clientes em ambientes de DESENVOLVIMENTO INTERNO, desde que esses dados estejam devidamente anonimizados/mascarados e com autorização do cliente que originou os dados ou da gestão/diretoria da área.


Buckets

Deck of Cards
idbuckets
Card
id1
labelRubrick

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


Aviso

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/
No dia 6 de agosto de 2020 está o snapshot com todas as topologias do cluster do sistêmico e do cluster de produção entrou a cyuwnr/ e cyuwnr-development/

Card
id2
labelGCP

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. 

Card
id3
labelAWS

Este bucket encontra-se Inativo no momento.

Informações

Temos atualmente homologados no ambiente:

  • Postgres 11 e 12
  • Oracle 11 e 19

Estamos terminando de homologar o MSSQL 19 e 22 para conteiner.