Árvore de páginas

Versões comparadas

Chave

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

...

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:

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 ();"