Expdp 備份到ASM之 ORA-39070

yhdmy發表於2020-06-08
一、問題描述
        需求要使用expdp備份資料,檢查系統空間很小,不夠放備份檔案。直接給系統加空間不就得了,可是這樣一來就要耽誤時間,還要聯絡一大堆人員。此時ASM空間是很充足的,可不可以使用呢。接著就有以下的操作了。


二、實驗

1.資料庫建立directory
SYS@PROD1 > create directory databk as '+data/backup';
Directory created.
.
[oracle@sam1 ~]$ expdp system/oracle direcotry=databk dumpfile=all.dmp full=y
LRM-00101: unknown parameter name 'direcotry'
[oracle@sam1 ~]$ expdp system/oracle directory=databk dumpfile=all.dmp full=y
Export: Release 11.2.0.3.0 - Production on Sat Feb 15 08:13:57 2020
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 536
ORA-29283: invalid file operation
此時會有以上報錯,原因是日誌無法寫入ASM當中導致。可以以下兩種方式解決:
A.使用NOLOGFILE=YES選項禁用日誌。
B.將日誌指定到系統的目錄。


2.測試NOLOGFILE=YES 成功完成備份

[oracle@sam1 ~]$ expdp system/oracle directory=databk dumpfile=all.dmp full=y NOLOGFILE=YES
Export: Release 11.2.0.3.0 - Production on Mon Feb 24 01:22:35 2020
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
Starting "SYSTEM"."SYS_EXPORT_FULL_01":  system/******** directory=databk dumpfile=all.dmp full=y NOLOGFILE=YES
Estimate in progress using BLOCKS method...
Processing object type DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 4.809 GB
Processing object type DATABASE_EXPORT/TABLESPACE
Processing object type DATABASE_EXPORT/PROFILE
Processing object type DATABASE_EXPORT/SYS_USER/USER
Processing object type DATABASE_EXPORT/SCHEMA/USER
Processing object type DATABASE_EXPORT/ROLE
Processing object type DATABASE_EXPORT/GRANT/SYSTEM_GRANT/PROC_SYSTEM_GRANT
…...
. . exported "SYSTEM"."REPCAT$_USER_PARM_VALUES"             0 KB       0 rows
. . exported "SYSTEM"."SQLPLUS_PRODUCT_PROFILE"              0 KB       0 rows
Master table "SYSTEM"."SYS_EXPORT_FULL_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SYSTEM.SYS_EXPORT_FULL_01 is:
  +DATA/backup/all.dmp
Job "SYSTEM"."SYS_EXPORT_FULL_01" completed with 1 error(s) at 01:25:42


3.測試將log寫到其他位置 成功完成備份

需要建立一個放log的directory

SYS@PROD1 > create directory logdump as '/home/oracle';
Directory created.
[oracle@sam1 ~]$ expdp system/oracle directory=databk dumpfile=scott.dmp  schemas=scott logfile=logdump:expdp_scott.log
Export: Release 11.2.0.3.0 - Production on Mon Feb 24 04:50:37 2020
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
Starting "SYSTEM"."SYS_EXPORT_SCHEMA_01":  system/******** directory=databk dumpfile=scott.dmp schemas=scott logfile=logdump:expdp_scott.log
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 320 KB
Processing object type SCHEMA_EXPORT/USER
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . exported "SCOTT"."DEPT"                              5.929 KB       4 rows
. . exported "SCOTT"."EMP"                               8.562 KB      14 rows
. . exported "SCOTT"."SALGRADE"                          5.859 KB       5 rows
. . exported "SCOTT"."TABLE1"                            5.835 KB       2 rows
. . exported "SCOTT"."TEST"                              5.421 KB       1 rows
. . exported "SCOTT"."BONUS"                                 0 KB       0 rows
Master table "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SYSTEM.SYS_EXPORT_SCHEMA_01 is:
  +DATA/backup/scott.dmp
Job "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully completed at 04:51:03
[oracle@sam1 ~]$ ls -l expdp_scott.log
-rw-r--r-- 1 oracle asmadmin 2080 Feb 24 04:51 expdp_scott.log


三、總結

        通過資料泵將備份檔案備份在ASM磁碟組中,有一點需要注意的是ASM磁碟組中無法儲存log日誌,可這個expdp/impdp命令預設是要寫日誌的,最終的解決辦法是使用引數關閉寫日誌,另一種就是建立作業系統級別的目錄,使得日誌寫在另一個directory中即可。真是不學不知道,一學全知道。最後結束還是那句:where there is a will, there is a way.


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26148431/viewspace-2696919/,如需轉載,請註明出處,否則將追究法律責任。

相關文章