اوراکل در نسخه 21c این امکان را می دهد تا در هنگام گرفتن دامپ، checksumای در dump file قرار داده شود تا در هر زمان(به خصوص بعد از جابجایی) بتوان اعتبار و صحت فایل دامپ را مورد بررسی قرار داد و با کمک این اطلاعات کنترلی از عدم خرابی dump fileها اطمینان حاصل کرد.
به این منظور، پارامتر CHECKSUM به لیست پارامترهای Data Pump اضافه شده و برای استفاده از این ویژگی باید در کنار دستور expdp پارامتر CHECKSUM را برابر با مقدار YES قرار داد:
[oracle@oLinux7 ~]$ expdp directory=drm dumpfile=Mali.dmp tables=usef.mali checksum=yes
Export: Release 21.0.0.0.0 – Production on Sat Sep 2 13:59:23 2023
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 – Production
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER
Processing object type TABLE_EXPORT/TABLE/TABLE
. . exported “USEF”.”MALI” 37.65 MB 325951 rows
Master table “USEF”.”SYS_EXPORT_TABLE_01″ successfully loaded/unloaded
Generating checksums for dump file set
Dump file set for USEF.SYS_EXPORT_TABLE_01 is:
/home/oracle/Mali.dmp
Job “USEF”.”SYS_EXPORT_TABLE_01″ successfully completed at Sat Sep 2 14:00:02 2023 elapsed 0 00:00:28
اگر به هر دلیلی تصمیم داریم درستی و صحت dump file را بررسی کنیم، باید از پارامتر VERIFY_ONLY در دستور impdp کمک بگیریم.
توجه: کپی ناقض یکی از عوامل خرابی dump file است.
[oracle@oLinux7 ~]$ impdp directory=drm dumpfile=Mali.dmp tables=usef.mali VERIFY_ONLY=YES
Import: Release 21.0.0.0.0 – Production on Sat Sep 2 14:09:02 2023
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 – Production
Verifying dump file checksums
Master table “USEF”.”SYS_IMPORT_TABLE_01″ successfully loaded/unloaded
dump file set is complete
verified checksum for dump file “/home/oracle/Mali.dmp”
dump file set is consistent
Job “USEF”.”SYS_IMPORT_TABLE_01″ successfully completed at Sat Sep 2 14:09:22 2023 elapsed 0 00:00:07
همچنین اگر فایل dump به هر دلیلی خراب شود، دستور فوق با خطای زیر مواجه خواهد شد:
[oracle@oLinux7 ~]$ dd of=/home/oracle/Mali.dmp bs=8192 conv=notrunc count=1 if=/dev/zero
1+0 records in
1+0 records out
8192 bytes (8.2 kB) copied, 0.000384782 s, 21.3 MB/s
[oracle@oLinux7 ~]$ impdp directory=drm dumpfile=Mali.dmp tables=usef.mali VERIFY_ONLY=YES
Connected to: Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 – Production
ORA-39001: invalid argument value
ORA-39000: bad dump file specification
ORA-39411: header checksum error in dump file “/home/oracle/Mali.dmp”
همانطور که مشاهده کردید، پارامتر VERIFY_ONLY مانع از import جدول شد اگر تصمیم داریم همزمان با برگرداندن دیتا، chucksum هم مورد بررسی قرار بگیرد، می توانیم از پارامتر VERIFY_CHECKSUM استفاده کنیم:
[oracle@oLinux7 ~]$ impdp directory=drm dumpfile=Mali2.dmp tables=usef.mali VERIFY_CHECKSUM=yes
Import: Release 21.0.0.0.0 – Production on Sat Sep 2 14:21:28 2023
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 – Production
Verifying dump file checksums
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. . imported “USEF”.”MALI” 37.65 MB 325951 rows
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER
Job “USEF”.”SYS_IMPORT_TABLE_02″ successfully completed at Sat Sep 2 14:25:09 2023 elapsed 0 00:00:39