programing

dmp 파일 및 로그 파일에서 Oracle 데이터베이스를 가져오는 방법은 무엇입니까?

bestprogram 2023. 5. 22. 21:50

dmp 파일 및 로그 파일에서 Oracle 데이터베이스를 가져오는 방법은 무엇입니까?

덤프 파일에서 데이터베이스를 만들려면 어떻게 해야 합니까?시스템에 동일한 구조의 기존 데이터베이스가 없으므로 작업, 이벤트, 테이블 등으로 완료해야 합니다.

덤프 및 로그 파일을 E: 드라이브에 배치했습니다.

가져오기 유틸리티를 사용해 보았습니다.

E:/>impdp system/tiger@oratest FILE=WB_PROD_FULL_20MAY11.dmp

하지만 오류가 발생하고 있습니다.

invalid argument value
bad dump file specification
unable to open dump file "E:\app\admin\oratest\dpdump\WB_PROD_F
ULL_20MAY11.dmp" for read
unable to open file
unable to open file
(OS 2) The system cannot find the file specified.

Windows 탐색기에서 (Linux 서버에서 가져온) DMP 파일이 충돌 덤프 파일로 표시되는 경우

저는 이 문제를 어떻게 해결할 수 있는지 이해할 수 없습니다.이 문제를 해결할 수 있도록 도와주세요.

난 오라클에 완전히 새로 온 사람...

데이터베이스를 내보낸 방법은 무엇입니까?

  • 다음을 사용하여 내보낸 경우exp전체 스키마를 내보낸 다음

    1. 사용자 만들기:

      create user <username> identified by <password> default tablespace <tablespacename> quota unlimited on <tablespacename>;
      
    2. 권한 부여:

      grant connect, create session, imp_full_database to <username>;
      
    3. 다음으로 가져오기 시작imp:

      imp <username>/<password>@<hostname> file=<filename>.dmp log=<filename>.log full=y;
      
  • 다음을 사용하여 내보낸 경우expdp그런 다음 가져오기를 시작합니다.impdp:

    impdp <username>/<password> directory=<directoryname> dumpfile=<filename>.dmp logfile=<filename>.log full=y;
    

오류 로그를 보면, 당신이 디렉토리를 지정하지 않은 것처럼 보여서, 오라클은 그것을 찾으려고 합니다.dmp기본 디렉토리에 있는 파일(즉,E:\app\Vensi\admin\oratest\dpdump\).

내보내기 파일을 위의 경로로 이동하거나 디렉터리 개체를 만들어 다음 경로를 가리킵니다.dmp파일이 존재하며 개체 이름을 에 전달합니다.impdp위의 명령

이 모든 코드 평화는 *.bat 파일에 저장되어 한 번에 실행됩니다.

oracle.crate_drop_user.sql 파일에서 사용자를 생성하기 위한 내 코드입니다.

drop user "USER" cascade;
DROP TABLESPACE "USER";

CREATE TABLESPACE USER DATAFILE 'D:\ORA_DATA\ORA10\USER.ORA' SIZE 10M REUSE 
    AUTOEXTEND 
    ON NEXT  5M  EXTENT MANAGEMENT LOCAL 
    SEGMENT SPACE MANAGEMENT  AUTO
/ 

CREATE  TEMPORARY TABLESPACE "USER_TEMP" TEMPFILE 
    'D:\ORA_DATA\ORA10\USER_TEMP.ORA' SIZE 10M REUSE AUTOEXTEND
    ON NEXT  5M  EXTENT MANAGEMENT LOCAL 
    UNIFORM SIZE 1M    
/

CREATE USER "USER"  PROFILE "DEFAULT" 
    IDENTIFIED BY "user_password" DEFAULT TABLESPACE "USER" 
    TEMPORARY TABLESPACE "USER_TEMP" 
/    

alter user USER quota unlimited on "USER";

GRANT CREATE PROCEDURE TO "USER";
GRANT CREATE PUBLIC SYNONYM TO "USER";
GRANT CREATE SEQUENCE TO "USER";
GRANT CREATE SNAPSHOT TO "USER";
GRANT CREATE SYNONYM TO "USER";
GRANT CREATE TABLE TO "USER";
GRANT CREATE TRIGGER TO "USER";
GRANT CREATE VIEW TO "USER";
GRANT "CONNECT" TO "USER";
GRANT SELECT ANY DICTIONARY to "USER";
GRANT CREATE TYPE TO "USER";

import.bat 파일을 만들고 다음 행을 넣습니다.

SQLPLUS SYSTEM/systempassword@ORA_alias @"crate_drop_user.SQL"
IMP SYSTEM/systempassword@ORA_alias FILE=user.DMP FROMUSER=user TOUSER=user GRANTS=Y log =user.log

한 사용자에서 다른 사용자로 가져올 경우 주의하십시오.예를 들어 사용자 이름이 user1이고 user2로 가져오려는 경우 모든 권한이 손실될 수 있으므로 다시 만들어야 합니다.

행운을 빈다, 이반

@sathyajith-bhat 응답의 impdp 명령 예제를 사용하는 경우:

impdp <username>/<password> directory=<directoryname> dumpfile=<filename>.dmp logfile=<filename>.log full=y;

필수 매개 변수 디렉터리를 사용하고 다음과 같이 생성하고 부여해야 합니다.

CREATE OR REPLACE DIRECTORY DMP_DIR AS 'c:\Users\USER\Downloads';
GRANT READ, WRITE ON DIRECTORY DMP_DIR TO {USER};

또는 다음 중 하나를 사용합니다.

select * from DBA_DIRECTORIES;

ORACLE Express 11g R2의 기본 이름은 DATA_PUMP_DIR({inst_dir}\app\oracle/admin/xe/dpdump/에 있음)입니다. 사용자에게 부여해야 합니다.

언급URL : https://stackoverflow.com/questions/6463614/how-to-import-an-oracle-database-from-dmp-file-and-log-file