Commit d5b18bf8222f510db7a6d8f45185394a0da06ba5

Authored by Nei Jobson da Costa Carneiro
Committed by Guilherme Andrade Del Cantoni
1 parent 771c08ba
Exists in master

Incluídos os scripts de limpeza para Oracle do banco do SEI e SIP totalmente revisados.

utilitarios/sei_script_limpeza_oracle.sql
1 1 /*
2 2 SCRIPT DE LIMPEZA DE PROCESSOS E DOCUMENTOS DA BASE DE DADOS DO SEI 2.6.0 (ORACLE)
  3 + Antes de executar o script:
  4 + 1) Retirar o sistema do "AR" (derrubar todas sessõµes).
  5 + 2) Fazer uma cópia da base imediatamente antes de executar o script.
  6 + 3) Executar o script de limpeza. Se der erro, restaurar a base com a cópia feita no passo 2.
  7 +
  8 + Depois de executar o script com sucesso, sendo aconselhável conferir algumas tabelas abaixo e sequenciais de protocolo de processo na tabela "infra_sequencia":
  9 + 1) Apagar todos os arquivos e estrutura de pastas no Filesystem do sei_esquema.
  10 + 2) Excluir os Índices do Solr, conforme orientado no final do capítulo do Solr no Manual de Instalação do SEI:
  11 + 18 - Caso, no futuro, seja preciso reindexar todos os dados é aconselhável limpar antes os Índices usando os comandos abaixo:
  12 + http://[servidor_solr]:8080/solr/sei-protocolos/update?stream.body=<delete><query>*:*</query></delete>&commit=true
  13 + http://[servidor_solr]:8080/solr/sei-bases-conhecimento/update?stream.body=<delete><query>*:*</query></delete>&commit=true
  14 + http://[servidor_solr]:8080/solr/sei-publicacoes/update?stream.body=<delete><query>*:*</query></delete>&commit=true
  15 + 4) Colocar o sistema de volta ao "AR".
3 16 */
4 17  
  18 +connect sei_esquema/sei_esquema@teste
  19 +
5 20 /* Limpeza de tabelas afetas a Protocolo de Processos, de Documentos Gerados e Externos */
6 21  
  22 +--Procedure para reiniciar sequence de acordo com o valor máximo da tabela correspondente
7 23 create or replace procedure reset_seq( p_seq_name in varchar2 )
8 24 is
9 25 l_val number;
... ... @@ -16,141 +32,210 @@ execute immediate &#39;select &#39; || p_seq_name || &#39;.nextval from dual&#39; INTO l_val;
16 32  
17 33 execute immediate 'alter sequence ' || p_seq_name || ' increment by 1 minvalue 0';
18 34 end;
  35 +/
  36 +
  37 +--Início - Desabilitando as FKs
  38 +set echo off
  39 +set feedback off
  40 +set verify off
  41 +set heading off
  42 +set termout off
  43 +set pagesize 1000
  44 +set colwidth 500
  45 +set linesize 500
  46 +spool disable_fk.sql
  47 +select 'ALTER TABLE '||cons.table_name||' DISABLE CONSTRAINT '||constraint_name||' CASCADE;'
  48 +from user_tables tabs
  49 + INNER JOIN user_constraints cons on (cons.table_name = tabs.table_name)
  50 +where cons.CONSTRAINT_TYPE = 'R';
  51 +spool off
  52 +@disable_fk.sql;
  53 +/
  54 +--Fim - Desabilitando as FKs
19 55  
20 56 truncate table anexo;
21   -exec reset_seq('sei.seq_anexo');
  57 +exec reset_seq('sei_esquema.seq_anexo');
22 58  
23 59 truncate table numeracao;
24   -exec reset_seq('sei.seq_numeracao');
  60 +exec reset_seq('sei_esquema.seq_numeracao');
25 61  
26 62 truncate table acesso;
27   -exec reset_seq('sei.seq_acesso');
  63 +exec reset_seq('sei_esquema.seq_acesso');
28 64  
29 65 truncate table acesso_externo;
30   -exec reset_seq('sei.seq_acesso_externo');
  66 +exec reset_seq('sei_esquema.seq_acesso_externo');
31 67  
32 68 truncate table acompanhamento;
33   -exec reset_seq('sei.seq_acompanhamento');
  69 +exec reset_seq('sei_esquema.seq_acompanhamento');
  70 +
  71 +truncate table grupo_acompanhamento;
  72 +exec reset_seq('sei_esquema.seq_grupo_acompanhamento');
34 73  
35 74 truncate table andamento_situacao;
36   -exec reset_seq('sei.seq_andamento_situacao');
  75 +exec reset_seq('sei_esquema.seq_andamento_situacao');
  76 +
  77 +truncate table rel_proced_situacao_unidade;
37 78  
38 79 truncate table anotacao;
39   -exec reset_seq('sei.seq_anotacao');
  80 +exec reset_seq('sei_esquema.seq_anotacao');
40 81  
41 82 truncate table assinatura;
42   -exec reset_seq('sei.seq_assinatura');
  83 +exec reset_seq('sei_esquema.seq_assinatura');
43 84  
44 85 truncate table estatisticas;
45   -exec reset_seq('sei.seq_estatisticas');
  86 +exec reset_seq('sei_esquema.seq_estatisticas');
46 87  
47 88 truncate table indexacao_base_conhecimento;
48 89  
  90 +truncate table base_conhecimento;
  91 +exec reset_seq('seq_base_conhecimento');
  92 +
  93 +truncate table rel_base_conhec_tipo_proced;
  94 +
49 95 truncate table indexacao_protocolo;
50 96  
51 97 truncate table indexacao_publicacao;
52 98  
53 99 truncate table versao_secao_documento;
54   -exec reset_seq('sei.seq_versao_secao_documento');
  100 +exec reset_seq('sei_esquema.seq_versao_secao_documento');
55 101  
56 102 truncate table secao_documento;
57   -exec reset_seq('sei.seq_secao_documento');
  103 +exec reset_seq('sei_esquema.seq_secao_documento');
58 104  
59 105 truncate table atributo_andamento;
60   -exec reset_seq('sei.seq_atributo_andamento');
  106 +exec reset_seq('sei_esquema.seq_atributo_andamento');
61 107  
62 108 truncate table retorno_programado;
63   -exec reset_seq('sei.seq_retorno_programado');
64   -
65   -truncate table acesso_externo;
66   -exec reset_seq('sei.seq_acesso_externo');
  109 +exec reset_seq('sei_esquema.seq_retorno_programado');
67 110  
68 111 truncate table participante;
69   -exec reset_seq('sei.seq_participante');
  112 +exec reset_seq('sei_esquema.seq_participante');
70 113  
71 114 truncate table observacao;
72   -exec reset_seq('sei.seq_observacao');
  115 +exec reset_seq('sei_esquema.seq_observacao');
73 116  
74 117 truncate table rel_protocolo_assunto;
75 118  
76 119 truncate table rel_protocolo_protocolo;
77   -exec reset_seq('sei.seq_rel_protocolo_protocolo');
  120 +exec reset_seq('sei_esquema.seq_rel_protocolo_protocolo');
78 121  
79 122 truncate table publicacao;
80   -exec reset_seq('sei.seq_publicacao');
  123 +exec reset_seq('sei_esquema.seq_publicacao');
81 124  
82 125 truncate table rel_bloco_protocolo;
83 126  
84 127 truncate table rel_bloco_unidade;
85 128  
86 129 truncate table protocolo_modelo;
87   -exec reset_seq('sei.seq_protocolo_modelo');
  130 +exec reset_seq('sei_esquema.seq_protocolo_modelo');
  131 +
  132 +truncate table grupo_protocolo_modelo;
  133 +exec reset_seq('seq_grupo_protocolo_modelo');
88 134  
89 135 truncate table unidade_publicacao;
90   -exec reset_seq('sei.seq_unidade_publicacao');
  136 +exec reset_seq('sei_esquema.seq_unidade_publicacao');
  137 +
  138 +truncate table serie_escolha;
91 139  
92 140 truncate table serie_publicacao;
93   -exec reset_seq('sei.seq_serie_publicacao');
  141 +exec reset_seq('sei_esquema.seq_serie_publicacao');
94 142  
95   ---truncate table texto_padrao;
  143 +truncate table texto_padrao_interno;
  144 +exec reset_seq('sei_esquema.seq_texto_padrao_interno');
96 145  
97 146 truncate table rel_protocolo_atributo;
98 147  
99 148 truncate table feed;
100   -exec reset_seq('sei.seq_feed');
  149 +exec reset_seq('sei_esquema.seq_feed');
101 150  
102   -truncate table velocidade_transferencia;
  151 +truncate table velocidade_tr
  152 +ansferencia;
103 153  
104 154 truncate table atributo_andamento_situacao;
  155 +exec reset_seq('sei_esquema.seq_atributo_andamento_situaca');
105 156  
106 157 truncate table auditoria_protocolo;
107   -exec reset_seq('sei.seq_auditoria_protocolo');
  158 +exec reset_seq('sei_esquema.seq_auditoria_protocolo');
108 159  
109 160 truncate table rel_notificacao_documento;
110 161  
111 162 truncate table estatisticas;
112   -exec reset_seq('sei.seq_estatisticas');
  163 +exec reset_seq('sei_esquema.seq_estatisticas');
113 164  
114 165 truncate table atributo_andamento;
115   -exec reset_seq('sei.seq_atributo_andamento');
  166 +exec reset_seq('sei_esquema.seq_atributo_andamento');
116 167  
117 168 truncate table notificacao;
118   -exec reset_seq('sei.seq_notificacao');
  169 +exec reset_seq('sei_esquema.seq_notificacao');
119 170  
120 171 truncate table bloco;
121   -exec reset_seq('sei.seq_bloco');
  172 +exec reset_seq('sei_esquema.seq_bloco');
122 173  
123 174 truncate table atividade;
124   -exec reset_seq('sei.seq_atividade');
  175 +exec reset_seq('sei_esquema.seq_atividade');
125 176  
126 177 truncate table documento;
127   -exec reset_seq('sei.seq_documento');
  178 +exec reset_seq('sei_esquema.seq_documento');
128 179  
129 180 truncate table procedimento;
130 181  
  182 +truncate table tipo_procedimento_escolha;
  183 +
131 184 truncate table protocolo;
132   -exec reset_seq('sei.seq_protocolo');
  185 +exec reset_seq('sei_esquema.seq_protocolo');
  186 +
  187 +truncate table grupo_email;
  188 +exec reset_seq('sei_esquema.seq_grupo_email');
  189 +
  190 +/* Se no banco a ser limpo tenha Grupos de E-mail Institucionais configurados na Administraçã£o do SEI, verifique a possibilidade de reconfigurá-los manualmente pela aplicação. Caso tenha necessidade de mantê-los no banco, em vez de executar os dois comandos acima, deve executar o comando abaixo para deletar apenas os Grupos de E-mail dos Usuários, não sendo possível o realinhamento dos IDs:
  191 + delete from grupo_email where sta_tipo='U';
  192 +*/
  193 +
  194 +truncate table grupo_unidade;
  195 +exec reset_seq('sei_esquema.seq_grupo_unidade');
  196 +
  197 +/* Se no banco a ser limpo tenha Grupos de Envio Institucionais configurados na Administração do SEI, verifique a possibilidade de reconfigurá-los manualmente pela aplicação. Caso tenha necessidade de mantê-los no banco, em vez de executar os dois comandos acima, deve executar o comando abaixo para deletar apenas os Grupos de Envio dos Usuários, não sendo possível o realinhamento dos IDs:
  198 + delete from grupo_unidade where sta_tipo='U';
  199 +*/
  200 +
133 201  
134 202 /* Reconstrui as tabelas de log e auditoria e tabelas sequenciais correspondentes */
135 203 truncate table infra_auditoria;
136   -exec reset_seq('sei.seq_infra_auditoria');
  204 +exec reset_seq('sei_esquema.seq_infra_auditoria');
137 205  
138 206 truncate table infra_log;
139   -exec reset_seq('sei.seq_infra_log');
  207 +exec reset_seq('sei_esquema.seq_infra_log');
140 208  
141 209 truncate table infra_navegador;
142   -exec reset_seq('sei.seq_infra_navegador');
  210 +exec reset_seq('sei_esquema.seq_infra_navegador');
143 211  
144 212 truncate table infra_dado_usuario;
145 213  
146   -/*
147   -Sobre a última linha abaixo, a tabela de sequência anual de protocolo de processos pode ser qualquer um dos formatos abaixo (de acordo com a configuração da numeração de protocolo):
  214 +--Início - Habilitando as FKs
  215 +set echo off
  216 +set feedback off
  217 +set verify off
  218 +set heading off
  219 +set termout off
  220 +set pagesize 1000
  221 +set colwidth 500
  222 +set linesize 500
  223 +spool enable_fk.sql
  224 +select 'ALTER TABLE '||cons.table_name||' ENABLE CONSTRAINT '||constraint_name||';'
  225 +from user_tables tabs
  226 + INNER JOIN user_constraints cons on (cons.table_name = tabs.table_name)
  227 +where cons.CONSTRAINT_TYPE = 'R';
  228 +spool off
  229 +@enable_fk.sql;
  230 +/
  231 +--Fim - Habilitando as FKs
148 232  
  233 +/*
  234 +Sobre a última linha abaixo, a tabela de sequência anual de protocolo de processos pode ser qualquer um dos formatos abaixo (de acordo com a configuração da numeração de protocolo):
149 235 seq_[ano]_org_sip_[id sip]
150 236 seq_[ano]_org_sei_[cod sei]
151 237 seq_[ano]_uni_sip_[id sip]
152 238 seq_[ano]_uni_sei_[cod sei]
153   -
154 239 */
155 240  
156 241 delete from infra_sequencia where nome_tabela like 'seq_%_uni_sei_%';
... ... @@ -161,4 +246,4 @@ delete from infra_sequencia where nome_tabela like &#39;seq_%_org_sip_%&#39;;
161 246 update infra_sequencia set num_atual=0 where nome_tabela='infra_log';
162 247 update infra_sequencia set num_atual=0 where nome_tabela='infra_navegador';
163 248  
164   -/********************************************************************************************************************************************************/
165 249 \ No newline at end of file
  250 +/********************************************************************************************************************************************************/
... ...
utilitarios/sip_script_limpeza_oracle.sql
... ... @@ -2,14 +2,29 @@
2 2 SCRIPT DE LIMPEZA DE DADOS DA BASE DE DADOS DO SIP - SEI 2.6.0 (ORACLE)
3 3 */
4 4  
5   -/* Reconstrui as tabelas de log e auditoria e tabelas sequenciais correspondentes */
6   -truncate table infra_auditoria;
7   -exec reset_seq('sei.seq_infra_auditoria');
  5 +connect sip@sip
  6 +
  7 +/* Reconstrui as tabelas de log e auditoria e as sequences correspondentes */
8 8  
  9 +truncate table infra_auditoria;
9 10 truncate table infra_log;
10   -exec reset_seq('sei.seq_infra_log');
  11 +
  12 +declare
  13 + l_val number;
  14 +Begin
  15 + execute immediate 'select seq_infra_auditoria.nextval from dual' INTO l_val;
  16 + execute immediate 'alter sequence seq_infra_auditoria increment by -' || l_val || ' minvalue 0';
  17 + execute immediate 'select seq_infra_auditoria.nextval from dual' INTO l_val;
  18 + execute immediate 'alter sequence seq_infra_auditoria increment by 1 minvalue 0';
11 19  
  20 + execute immediate 'select seq_infra_log.nextval from dual' INTO l_val;
  21 + execute immediate 'alter sequence seq_infra_log increment by -' || l_val || ' minvalue 0';
  22 + execute immediate 'select seq_infra_log.nextval from dual' INTO l_val;
  23 + execute immediate 'alter sequence seq_infra_log increment by 1 minvalue 0';
  24 +end;
12 25  
  26 +truncate login;
13 27 /********************************************************************************************************************************************************/
14 28  
15 29  
  30 +
... ...