ÔÚÉÏÒ»Õ½éÉÜexpdp/impdpÊ±ÔøÊ¹ÓùýDIRECTORYÕâ¸ö¸ÅÄÏÂÃæÔÙ¼òµ¥ËµÃ÷ÏÂDIRECTORYµÄµãµãµÎµÎ¡£
MOSÉ϶ÔDIRECTORYµÄ½âÊÍ(266875.1)£º
(1)¡¢»ùÓÚ·þÎñ¶Ë vs »ùÓÚ¿Í»§¶Ë
DIRECTORY±äÁ¿Ö¸³öÁËexpdpµ¼³öÊý¾Ý±Ã»òimpdpµ¼ÈëÊý¾Ý±Ã½«dumpÎļþ¡¢logÎļþÒÔ¼°SQLÎļþ(½öÊÊÓÃÓÚimpdp)дµ½Ê²Ã´Â·¾¶¡£
ÒòΪµ¼³öÊý¾Ý±ÃºÍµ¼ÈëÊý¾Ý±Ã¶¼ÊÇ»ùÓÚ·þÎñ¶ËµÄ£¬²»ÊÇ»ùÓÚ¿Í»§¶ËµÄ£¬Òò´ËÊä³öÎļþµÄ·¾¶¶¼ÊÇÏà¶ÔÓÚ·þÎñ¶ËĿ¼µÄ·¾¶¡£Êý¾Ý±ÃÒªÇó½«Ä¿Â¼Â·¾¶×÷Ϊһ¸öĿ¼¶ÔÏó¡£Ò»¸öĿ¼¶ÔÏó½«ÎļþϵͳµÄÒ»¸öĿ¼·¾¶Ó³ÉäΪһ¸öÃû³Æ¡£
(2)¡¢ÈçºÎ´´½¨Ò»¸öĿ¼¶ÔÏó£¿
ΪÁË´´½¨Ä¿Â¼£¬±ØÐë¾ßÓÐDBA½ÇÉ«»òÕ߸³ÓèÁËCREATE ANY DIRECTORYȨÏÞ¡£
ʾÀý£º
Windowƽ̨
CONNECT system/manager
CREATE OR REPLACE DIRECTORY my_dir as 'D:\DataPump';
CREATE OR REPLACE DIRECTORY my_logdir as 'E:\logs';
GRANT read, write ON DIRECTORY my_dir TO scott;
GRANT read, write ON DIRECTORY my_logdir TO scott;
Unixƽ̨
CONNECT system/manager
GRANT CREATE ANY DIRECTORY TO scott;
CONNECT scott/tiger
CREATE OR REPLACE DIRECTORY my_dir as '/usr/DataPump';
CREATE OR REPLACE DIRECTORY my_logdir as '/usr/logs';
Èç¹ûÆÕͨÓû§±»¸³ÓèÁËCREATE ANY DIRECTORYȨÏÞ£¬ÄÇôÓû§¾Í×Ô¶¯¾ß±¸Ä¿Â¼µÄREADºÍWRITEȨÏÞ¡£
×¢Ò⣺CREATE DIRECTORYÓï¾ä²»»á´´½¨´ÅÅ̵ÄÕæÊµÄ¿Â¼£¬Èç¹ûĿ¼ÊÇÎÞЧµÄ£¬Êý¾Ý±Ã×÷Òµ»á±¨´í£º
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 475
ORA-29283: invalid file operation
(3)¡¢ÈçºÎ²éѯ¿ÉÓõÄĿ¼£¿
¿ÉÒÔʹÓÃÈçÏÂSQL²éѯ¾ßÓÐREADºÍWRITEȨÏÞµÄĿ¼£º
SET lines 80
COL grantee FORMAT a20
COL privilege FORMAT a10
SELECT directory_name, grantee, privilege
FROM user_tab_privs t, all_directories d
WHERE t.table_name(+)=d.directory_name
ORDER BY 1,2,3;
DIRECTORY_NAME GRANTEE PRIVILEGE
------------------------------ -------------------- ----------
DATA_PUMP_DIR EXP_FULL_DATABASE READ
DATA_PUMP_DIR EXP_FULL_DATABASE WRITE
DATA_PUMP_DIR IMP_FULL_DATABASE READ
DATA_PUMP_DIR IMP_FULL_DATABASE WRITE
MY_DIR SCOTT READ
MY_DIR SCOTT WRITE
MY_DIR SYSTEM READ
MY_DIR SYSTEM WRITE
MY_LOGDIR SCOTT READ
MY_LOGDIR SCOTT WRITE
MY_LOGDIR SYSTEM READ
MY_LOGDIR SYSTEM WRITE
...
(4)¡¢ÐèÒªµÄ²Ù×÷ϵͳȨÏÞ¡£
¶ÔĿ¼¶ÔÏóµÄREAD»òWRITEȨÏÞ½ö½ö±íʾOracle½«»áÌæÄã¶Á»òдÕâ¸öÎļþ¡£Ä㲢ûÓзÃÎÊOracleÒÔÍâÎļþµÄȨÏÞ£¬³ý·ÇÄã¾ß±¸ºÏÊʵIJÙ×÷ϵͳȨÏÞ¡£
(5)¡¢Êý¾Ý±ÃÈçºÎ¾ö¶¨ÎļþµÄ·¾¶
5.1 Èç¹ûĿ¼¶ÔÏóÊÇÎļþ±êʾ·ûµÄÒ»²¿·Ö£¬ÄÇôĿ¼¶ÔÏóÖ¸¶¨µÄ·¾¶¾ÍÐèҪʹÓá£ÔÚĿ¼MY_DIR´´½¨dumpÎļþµÄʾÀý£º
> expdp scott/tiger DUMPFILE=my_dir:expdp_s.dmp NOLOGFILE=Y
5.2 Èç¹ûĿ¼¶ÔÏó²»´ú±íÒ»¸öÎļþ£¬ÄÇô¾ÍÐèҪʹÓÃDIRECTORY±äÁ¿ÃüÃûµÄĿ¼¶ÔÏó¡£Ä¿Â¼MY_DIRÖд´½¨dumpÎļþ£¬Ä¿Â¼MY_DIR_LOGÖд´½¨ÈÕÖ¾ÎļþµÄʾÀý£º
> expdp scott/tiger DIRECTORY=my_dir DUMPFILE=expdp_s.dmp \
LOGFILE=my_logdir:expdp_s.log
5.3 Èç¹ûûÓÐÃ÷ȷĿ¼¶ÔÏó£¬Ò²Ã»ÓÐÒÔDIRECTORY±äÁ¿ÃüÃûµÄĿ¼¶ÔÏó£¬ÄÇô»·¾³±äÁ¿DATA_PUMP_DIR½«»áʹÓ᣻·¾³±äÁ¿ÊÇÔÚÔÚÔËÐе¼³öºÍµ¼ÈëÊý¾Ý±ÃÓ¦ÓõĿͻ§¶ËϵͳÖÐʹÓòÙ×÷ϵͳÃüÁÒåµÄ£¬·ÖÅ䏸»ùÓÚ¿Í»§¶Ë»·¾³±äÁ¿µÄȡֵ±ØÐëºÍ»ùÓÚ·þÎñ¶ËµÄĿ¼¶ÔÏóÒ»Ö£¬ÇÒ±ØÐëÊ×ÏÈÔÚ·þÎñÆ÷¶Ë½¨Á¢¡£
Ŀ¼MY_DIRÖд´½¨dumpÎļþºÍMY_DIR_LOGÖд´½¨ÈÕÖ¾ÎļþµÄʾÀý£º
ÔÚʹÓÃexpdpµÄ¿Í»§¶Ë»úÆ÷ÉÏ£¬É趨»·¾³±äÁ¿£º
-- On windows, place all expdp parameters on one single line:
C:\> set DATA_PUMP_DIR=MY_DIR
C:\> expdp scott/tiger@my_db_alias DUMPFILE=expdp_s.dmp
LOGFILE=my_logdir:expdp_s.log
×¢Òâ»·¾³±äÁ¿DATA_DUMP_DIR¶ÔÓ¦µÄĿ¼Ãû³ÆÊÇ´óСдÃô¸ÐµÄ¡£É趨´íÎóµÄDATA_PUMP_DIR»·¾³±äÁ¿»á±¨´í£¬ÀýÈ磺DATA_PUMP_DIR=My_Dir£º
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-39087: directory name My_Dir is invalid
5.4 Èç¹û֮ǰÈýÖÖÇé¿ö¶¼Ã»Óд´½¨Ä¿Â¼¶ÔÏó£¬×÷Ϊһ¸ö¾ßÓÐȨÏÞµÄÓû§(ÀýÈç¾ßÓÐEXP_FULL_DATABASE»òIMP_FULL_DATABASE½ÇÉ«)£¬ÄÇôÊý¾Ý±ÃÊÔͼʹÓÃĬÈϵĻùÓÚ·þÎñÆ÷¶ËµÄĿ¼¶ÔÏó£¬DATA_PUMP_DIR¡£Àí½âÊý¾Ý±Ã²»»á´´½¨DATA_PUMP_DIRĿ¼¶ÔÏóÊǷdz£ÖØÒªµÄ¡£½öµ±ÊÚȨÓû§Î´Ê¹ÓÃÈκÎ֮ǰÌáµ½µÄ»úÖÆ´´½¨µÄĿ¼¶ÔÏóʱ£¬²Å»á³¢ÊÔʹÓÃDATA_PUMP_DIR¡£Õâ¸öĬÈϵÄĿ¼¶ÔÏó±ØÐëÊ×ÏÈÓÉDBA´´½¨¡£²»Òª½«Õâ¸öºÍͬÃûµÄ»ùÓÚ¿Í»§¶ËµÄ»·¾³±äÁ¿Ïà»ìÏý¡£
Ê×ÏÈ£¬Çå¿ÕDATA_PUMP_DIR»·¾³±äÁ¿£º
C:\> set DATA_PUMP_DIR=
´´½¨DATA_PUMP_DIRµÄĿ¼£º
CONNECT SYSTEM/MANAGER
CREATE OR REPLACE DIRECTORY data_pump_dir AS 'D:\DataPump';
GRANT read, write ON DIRECTORY data_pump_dir TO scott;
-- On windows, place all expdp parameters on one single line:
C:\> e