4.6 KiB
Movimentação de Arquivos para o Banco de Dados
Esse procedimento será executado até que todos os clientes possuam seus arquivos armazenados na nova estrutura de armazenamento de arquivos no banco de dados.
Todas as etapas devem ser executadas analisando minunciosamente o seu retorno, pois qualquer anomalia pode representar um problema e deve ser verificada.
Procedimentos
Deve-se seguir a planilha de checklist "Movimentação Arquivos - Banco de Dados".
1) Executar atualização da release
2) Etapas executadas através do InicializaBD
2.1) Renomear Tablespace
-- arquivo -> intermediario
-- expurgo -> corrente
2.2) Alterar configuração de uso da Storage (DESATIVAR).
2.2) Iniciar o particionamento das tabelas no schema arquivo (25GB)
2.4) Alterar Estrutura de Armazenamento (Sim)
- Esta opção também pode ser ativada via Atende.Net
-- Configuração: Gerenciamento do Sistema » Sistema » Configurações » Geral » Administração
--- Ativar: Utiliza Nova Estrutura de Armazenamento
2.5) Alterar o Armazenamento de Arquivos Grandes (Conforme Cálculo)
- Configuração: Gerenciamento do Sistema » Sistema » Configurações » Geral » Administração
-- Tamanho para Particionamento dos Arquivos Grandes:
-- Tamanho das Partições dos Arquivos Grandes:
3) Realizar backup via rclone da pasta Temp e Temp-Preview
Acessar o servidor TASK-09, comentar o cliente atual e adicionar o novo cliente ao qual fará o backup, utilizando as informações do servidor TASK-01.
-- Editar o arquivo "/root/.config/rclone/rclone.conf"
vim /root/.config/rclone/rclone.conf
Ou Executar a configuração conforme abaixo.
rclone config
N (New Remote)
name: <database>
Storage: 45
Host: <IP da INT-RT>
user: root
port: <NAT do Apache/origens>
SSH Password.....: Digitar "y"
Enter Password: <senha do root apache>
Confirm Password: <senha do root apache>
key_pem: Enter
key_file: Enter
Option key_file_pass: Enter
pubkey_file: Enter
key_use_agent: Enter
use_insecure_cipher: Enter
disable_hashcheck: true
Enter até o final
q para sair
Executar o script de backup
/root/bkp_files/bkp_files_dc.sh &
Acompanhar o backup
tail -f /root/bkp_files/log/00593_presidentegetulio-20250224-162245822269890.log
Ao concluir o backup, deve-se executar o script novamente, onde não pode retornar novos arquivos no backup da pasta "TEMP", exceto arquivos em pastas com nome em maiúsculo e minúsculo.
7) Ativar agendamentos no Atende.Net
- Agendamentos de Banco de Dados: 459, 460, 461 » Ativar os horários do agendamento
8) Acompanhar a movimentação dos arquivos
-
Gerenciamento do Sistema » Estrutura » Arquivos » Monitoramento » Movimentação de Arquivos para o Banco
-
Enquanto estiver processando a movimentação dos arquivos, execute o SQL abaixo a cada 1hr, ao qual irá retornar as tabelas que necessitam executar o vacuum full. Este procedimento deve ser executado nos clientes ao qual possuem os arquivos armazenados no banco de dados no formato antigo (ByteA).
set lock_timeout = 5000;
select 'vacuum full '||tabela||';'
from (
select translate(tabela,'" ','') as tabela
from (
select unnest(string_to_array(tabelas, '-t')) as tabela
from webbased.fn_lista_tabela_vacuum_full() as tabelas
) orig
) orig
where tabela <> ''
and tabela like 'arquivo.%'
order by pg_total_relation_size(tabela)
9) Reprocessar Arquivos "Não Encontrados"
-
Quanto a movimentação dos arquivos chegar a 100%, analise os casos ao qual ficaram com a "Situação" - "Não encontrado" e/ou "Com Erros".
-
Existem situações ao qual a busca do arquivo pode ter falhado devido a uma instabilidade momentãnea da storage, onde devemos "Reprocessar" todos os arquivos que ficaram com a Situação "Não Encontrado". Hoje essa atividade deve ser executada a partir da ação "Parecer", em breve teremos uma ação para "Reprocessar todos, sem a necessidade de selecionar os arquivos não encontrados".
10) Vacuum Full
-
Após a movimentação chegar a 100% devemos executar o vacuum full em todas as tabelas do schema arquivo.
-
Para isto, execute o SQl abaixo ao qual retornará as tabelas ao qual devem ser executado o vacuum full.
set lock_timeout = 5000;
select 'vacuum full '||schemaname||'.'||tablename||';'
from pg_tables
where schemaname = 'arquivo'
and tablename not like '%shadow'
and tablename not like '%content'
and tablename not like '%contentpart'
order by pg_total_relation_size(schemaname||'.'||tablename)