ORACLE EXPDP, IMPDP ATTACH SYSDBA & KILL_JOB

Soru: Windows üzerinde kurulu oracle database makinesinde schedule edilmiş expdp job ları çalışmakta, otomatik dump alıp sıkıştıryor sonra eski dosyaları siliyor, buradaki eski dump dosyaları silinmemiş el ile silmeye kalktığımızda da dosya kullanılıyor hatası alıyoruz?

Çözüm: İlk olarak kontrol edeceğimiz yer dosyayı hangi işlem tutuyor (Database olduğunu biliyoruz ancak yinede kontrol edelim). Kontrol ettiğimizde Database bu dosyayı kullanıyor diyor, ancak çalışan bir expdp job yok o halde arkada tamamlanmamış askıda kalmış expdp işleri olmalı diyor ve kontrol ediyoruz.

SQL> select owner_name, job_name from dba_datapump_jobs where state='EXECUTING';

OWNER_NAME   JOB_NAME
-----------  ---------
SYS          SYS_EXPORT_FULL_02
SYS          SYS_EXPORT_FULL_03
SYS          SYS_EXPORT_FULL_04
SYS          SYS_EXPORT_FULL_05
SYS          SYS_EXPORT_FULL_06
SYS          SYS_EXPORT_FULL_07

En son prosess ten başlayarak attach olup kill yapabiliriz bu durumda bu dosyalar serbest kalacaktır..

>expdp \"/as sysdba\" attach=SYS_EXPORT_FULL_07

Export: Release 12.2.0.1.0 - Production on Thu Jul 28 10:22:26 2022

Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 12c Standard Edition Release 12.2.0.1.0 - 64bit Production

Job: SYS_EXPORT_FULL_07
  Owner: SYS
  Operation: EXPORT
  Creator Privs: TRUE
  GUID: 8B3CE5545B0046B9BC0036B07F611E71
  Start Time: Thursday, 28 July, 2022 9:43:52
  Mode: FULL
  Instance: jguar
  Max Parallelism: 1
  Timezone: +00:00
  Timezone version: 26
  Endianness: LITTLE
  NLS character set: WE8ISO8859P9
  NLS NCHAR character set: AL16UTF16
  EXPORT Job Parameters:
  Parameter Name      Parameter Value:
     CLIENT_COMMAND        "/******** AS SYSDBA" full=y directory=EXPDIR dumpfile=JGUAR_2022-7.-02_9.43.50,67.dmp logfile=JGUAR_2022-7.-02.log
     TRACE                 0
  State: EXECUTING
  Bytes Processed: 0
  Current Parallelism: 1
  Job Error Count: 0
  Job heartbeat: 5
  Dump File: D:\ORACLE\DATAPUMP\JGUAR_2022-7.-02_9.43.50
    bytes written: 7,569,408
  Dump File: D:\ORACLE\DATAPUMP\67.DMP
    bytes written: 4,096

Worker 1 Status:
  Instance ID: 1
  Instance name: jguar
  Host name: LOGOORACLE
  Object start time: Thursday, 28 July, 2022 10:13:32
  Object status at: Thursday, 28 July, 2022 10:17:46
  Process Name: DW05
  State: EXECUTING

Export> kill_job
Are you sure you wish to stop this job ([yes]/no): yes

Tekrar sorguladığımızda; 7 numaralı JOB görünmeyecek ve artık dosyalardan 7 nin tuttuğu dosyalar silinebilir.

SQL> select owner_name, job_name from dba_datapump_jobs where state='EXECUTING';

OWNER_NAME   JOB_NAME
-----------  ---------
SYS          SYS_EXPORT_FULL_02
SYS          SYS_EXPORT_FULL_03
SYS          SYS_EXPORT_FULL_04
SYS          SYS_EXPORT_FULL_05
SYS          SYS_EXPORT_FULL_06

Listeyi temizlediğimizde sorun ortadan kalkacaktır.