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