Você está na página 1de 5

Autodelete troubleshooting

Verificar as configurações de marca dagua.

No caso da imagem temos a marca dagua com mesmos valores. Mas quando temos a marca menor em 80% e a marca
maior em 90%, o autodelete começa a ser executado quando o espaço ocupado alcança a marca dagua maior e deleta
os arquivos até a marca dagua menor.

Regra para a escolha das imagens para serem deletadas:


Tabela DIDB_STUDIES
STUDY_NEED_BACKUP = NULL
STUDY_ONLINE = ‘Y’
STUDY_AVAILABILITY = 'ONLINE'

Caso haja problemas que é verificado que fica acima da marca dagua, necessário verificar se na tabela
DIDB_DELETED_FILES existe objetos eleitos para serem deletados.

A execução é realizada através de uma tarefa agendada.


Fir_autodelete_...

Autodelete de images e files são operações diferentes. O Images contem dentro de sua operação a execução dos files,
porem dos files não executa a operação de images.

Em algumas versões do PACS se tivermos mais de 2 milhões de registros nessa tabela, pode haver problemas para
deletar, pois existe uma demora na leitura do banco para a realização da tarefa. Então precisamos fracionar essa
execução, deixando mais leve para a aplicação e monitorar para inserirmos os outros objetos para serem deletados.
Realizamos essa tarefa alterando alguns campos na tabela.

Existe também um processo que pode melhorar em tempo de delete mas que toma muito processamento do servidor
que é o Parallel Autodele Files.

Log:
%imaginet_root%\log\fir_autodelte_...

Articles uteis:
4160
RESOLUÇÃO DE PROBLEMAS

1. Analise dos exames dentro do sistema

SELECT COUNT(*), STUDY_NEED_BACKUP, STUDY_AVAILABILITY, STUDY_ONLINE


FROM MEDISTORE.DIDB_STUDIES
GROUP BY STUDY_NEED_BACKUP, STUDY_AVAILABILITY, STUDY_ONLINE;

2. Se necessário, verificação do SOURCE_AE

SELECT SOURCE_AE, SOURCE_DB_UID FROM MEDISTORE.DIDB_SOURCES

3. Quantidade de exames deletados por data

SELECT COUNT(*)
FROM AUDITING.AUDIT_LOG
WHERE 1 = 1
AND EVENT_DATE BETWEEN TO_DATE('&DATA_INICIO', 'DD/MM/YYYY HH24:MI:SS') AND TO_DATE
('&DATA_FIM', 'DD/MM/YYYY HH24:MI:SS')
AND SOURCE = 'Workflow Manager Auto-Delete'

4. Algumas vezes o PACS não executa todas as alterações necessárias causando problemas no autodelete. Ele
deleta apenas exames marcados na DIDB_STUDIES como STUDY_NEED_BACKUP = NULL, STUDY_ONLINE = ‘Y’,
STUDY_AVAILABILITY = 'ONLINE'. Então precisamos colocar os exames na regra para tentar deletar novamente.

a. Análise dos dados utilizando a querie do item 1. verificando que temos exames marcados como NEARLINE
mas com a STUDY_NEED_BACKUP = ‘Y’. Não vai deletar pois o exame ainda precisa ser feito o backup,
porém já foi feito já que ele está em nearline, mas a tarefa no Info Router de ajustar essa flag deu falha e
não alterou

b. Executar a alteração na base de dados para ficarem eleitos para deletar.

UPDATE MEDISTORE.DIDB_STUDIES
SET STUDY_NEED_BACKUP = NULL, STUDY_AVAILABILITY = ‘ONLINE’, STUDY_ONLINE = ‘Y’
WHERE STUDY_NEED_BACKUP = 'Y'
AND STUDY_AVAILABILITY = 'NEARLINE'

c. Executar o comando como adm no cmd


Caminho: %imaginet_root%\mst\exe
Comando: fir_autodelete.exe images <nameFIR>
5. Quantidade de files para serem deletados

SELECT COUNT(*) FROM MEDISTORE.DIDB_DELETED_FILES

6. Problemas no delete de files. Muitas vezes o sistema não consegue dar conta de deletar os files e é necessário
executar de 2 em 2 milhões.
a. Executar a querie para verificar a quantidade de files

SELECT IMAGE_LOCATION_DELETED, COUNT(*)


FROM MEDISTORE.DIDB_DELETED_FILES
GROUP BY IMAGE_LOCATION_DELETED

b. Alterar na tabela para mudar a marca para o autodelete não buscar.

UPDATE MEDISTORE.DIDB_DELETED_FILES
SET IMAGE_LOCATION_DELETED = 'X'
WHERE IMAGE_LOCATION_DELETED = 'N'
AND ROWNUM <= 2000000

c. Alterar na tabela para mudar a marca de 2 milhoes de linhas para o autodelete buscar.

UPDATE MEDISTORE.DIDB_DELETED_FILES
SET IMAGE_LOCATION_DELETED = 'N'
WHERE IMAGE_LOCATION_DELETED = 'X'
AND ROWNUM <= 2000000

d. Executar o comando como adm no cmd


Caminho: %imaginet_root%\mst\exe
Comando: fir_autodelete.exe files <nameFIR>

e. Aguarde executar todo o processo, podendo verificar com a querie do item 4 e assim que reduzir a
quantidade a quase 0 executar novamente a do item 5.c., executar item 5.d. até não ter mais files para
deletar. Lembrando que deve sempre estar próximo de 2 milhões.
Para acompanhar roda a seguinte querie:

SELECT COUNT(*) FROM MEDISTORE.DIDB_DELETED_FILES WHERE IMAGE_LOCATION_DELETED = 'N'

7. Mesmo problema do item 6. pode ocorrer com a tabela de images.


a. Verificar os dados dos exames dentro da tabela de images.

SELECT IMAGE_LOCATION_DELETED, COUNT(*)


FROM MEDISTORE.DIDB_DELETED_IMAGES
GROUP BY IMAGE_LOCATION_DELETED

b. Alterar na tabela para mudar a marca para o autodelete não buscar. Neste caso estou assumindo que tem
apenas marcados com N, mas se houver outros como NULL devem ser ajustados também para entrarem
como X.
UPDATE MEDISTORE.DIDB_DELETED_IMAGES SET IMAGE_LOCATION_DELETED = 'X' WHERE
IMAGE_LOCATION_DELETED = 'N'

c. Alterar na tabela para mudar a marca de 2 milhoes de linhas para o autodelete buscar.

UPDATE MEDISTORE.DIDB_DELETED_IMAGES SET IMAGE_LOCATION_DELETED = 'N' WHERE


IMAGE_LOCATION_DELETED = 'X' AND ROWNUM <= 2000000;

d. Executar o comando como adm no cmd


Caminho: %imaginet_root%\mst\exe
Comando: fir_autodelete.exe images <nameFIR>

e. Aguarde executar todo o processo, podendo verificar com a querie do item 6.a. e assim que reduzir a
quantidade a quase 0 executar novamente a do item 6.c., executar item 6.d. até não ter mais images para
deletar. Lembrando que deve sempre estar próximo de 2 milhões.

8. Casos com discos de LCM temos apenas files para deletar. Limite para deleção 2 milhões.

a. Verificar as quantidade de files dentro dos SOURCE_DB_UID. Utilizar também a querie do item 2 se
necessário.

SELECT SOURCE_DB_UID, IMAGE_LOCATION_DELETED, COUNT(*) AS FILES


FROM MEDISTORE.DIDB_DELETED_FILES
GROUP BY SOURCE_DB_UID, IMAGE_LOCATION_DELETED

b. Alterar para X para não haver busca do autodelete, lembrando de usar o SOURCE_DB_UID correto do LCM.

UPDATE MEDISTORE.DIDB_DELETED_FILES SET IMAGE_LOCATION_DELETED = 'N'


WHERE IMAGE_LOCATION_DELETED = 'X'
AND SOURCE_DB_UID = 5
AND ROWNUM <= 2000000

c. Executar o comando como adm no cmd


Caminho: %imaginet_root%\mst\exe
Comando: fir_autodelete.exe files <nameFIR>

d. Aguarde executar todo o processo, podendo verificar com a querie do item 8.a. e assim que reduzir a
quantidade a quase 0 executar novamente a do item 8.b., executar item 8.c. até não ter mais files para
deletar. Lembrando que deve sempre estar próximo de 2 milhões.

9. Casos excepcionais que queremos fazer o delete por disco

a. Busca de quantidade de files por disco

SELECT SUBSTR(FILE_SYSTEM,1,1), COUNT(*)


FROM MEDISTORE.DIDB_DELETED_FILES
WHERE SOURCE_DB_UID = 5
AND IMAGE_LOCATION_DELETED = 'X'
GROUP BY SUBSTR(FILE_SYSTEM,1,1)
b. UPDATE na tabela definindo de qual disco queremos que delete primeiro

UPDATE MEDISTORE.DIDB_DELETED_FILES SET IMAGE_LOCATION_DELETED = 'N'


WHERE IMAGE_LOCATION_DELETED = 'X'
AND SOURCE_DB_UID = 5
AND SUBSTR(FILE_SYSTEM,1,1) NOT IN ('R','S','T')
AND ROWNUM <= 2000000

10. Caso todas essas operações não tenha ajudado no delete, pode realizar a correção dos index e repetir todos os
processos novamente. Mas não é algo comum de precisar executar.

alter index medistore.DIDB_DELETED_FIL_MAIN_INX rebuild online;


alter index medistore.DIDB_DELETED_FIL_ORIG_LOC_INX rebuild online;
alter index medistore.DIDB_DELETED_FIL_SER_DB_UID rebuild online;
alter index medistore.DIDB_DELETED_FIL_SOU_INX rebuild online;
alter index medistore.DIDB_DELETED_FIL_SOU_LOC_INX rebuild online;
alter index medistore.DIDB_DELETED_FIL_SRC_INX rebuild online;
alter index medistore.DIDB_DELETED_FIL_STU_DB_UID rebuild online;

alter index medistore .DIDB_RAW_IMA_PAT_SOP_CLASS rebuild online;


alter index medistore .DIDB_RAW_IMA_STD_NBF rebuild online;
alter index medistore .DIDB_RAW_IMA_STUDY_DB_UID rebuild online;
alter index medistore .DUMP_DISPLAY_INX rebuild online;
alter index medistore . DUMP_PROPERTIES_INX rebuild online;
alter index medistore .ICON_BLOB_INX rebuild online;
alter index medistore .DUMP_SR_INX rebuild online;
alter index medistore .DIDB_RAW_IMA_PK rebuild online;
alter index medistore .DIDB_RAW_IMA_DB_UID rebuild online;
alter index medistore .DIDB_RAW_IMA_PAT_UID rebuild online;
alter index medistore .DIDB_RAW_IMA_SERIES_DB_UID rebuild online;
alter index medistore .DIDB_RAW_IMA_STU_INST_UID rebuild online;
alter index medistore .DIDB_RAW_IMA_KEY_IMAGE rebuild online;
alter index medistore .DIDB_RAW_IMA_SER_IMG_UID rebuild online;
alter index medistore .DIDB_RAW_IMA_SER_INST_UID rebuild online;
alter index medistore .DIDB_RAW_IMA_STU_SERDB_SOPCUID rebuild online;
alter index medistore .DIDB_IMAGE_LOC_IMA_DB_UID rebuild online;
alter index medistore .DIDB_IMAGE_LOC_SOU_DB_UID rebuild online;
alter index medistore .DIDB_IMAGE_LOC_ORIG_LOC_INX rebuild online;

FALTA SOBRE PARALLEL AUTODELE

Você também pode gostar