ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • oracle - 특정 스키마 dmp하기
    DataBase/Oracle 2025. 2. 12. 18:02
    반응형

    1. 스키마 삭제

    삭제하고자하는 스키마의 사용자와 연결된 세션을 종료하고, 아래 명령어를 실행하여 해당 사용자를 삭제합니다

     

    2. 현재 연결된 세션 확인

    DBeaver에서 SQL 콘솔을 열고 다음 SQL을 실행하여 {Schemas Name} 사용자와 연결된 세션을 확인합니다.

    SELECT sid, serial#, username FROM v$session WHERE username = '{Schemas Name}';

     

     

    3. 연결된 세션 종료

    DBeaver의 SQL 콘솔에서, 위에서 확인한 SID와 SERIAL#을 사용해 세션을 종료합니다.

    ALTER SYSTEM KILL SESSION 'SID,SERIAL#';

    예시:

    ALTER SYSTEM KILL SESSION '123,456';

     

    4. 자동으로 모든 세션 종료 (스크립트 사용)

    만약 여러 세션이 존재한다면, 아래 SQL 스크립트를 실행하여 삭제하고자 하는 스키마 사용자와 연결된 모든 세션을 한 번에 종료할 수 있습니다.

    BEGIN
       FOR r IN (SELECT sid, serial# FROM v$session WHERE username = '{Schemas Name}') LOOP
          EXECUTE IMMEDIATE 'ALTER SYSTEM KILL SESSION ''' || r.sid || ',' || r.serial# || ''' IMMEDIATE';
       END LOOP;
    END;
    /​

     

    5. 사용자 삭제

    모든 세션을 종료한 후, 삭제하고자하는 스미카를 지정 후 사용자를 삭제합니다. SQL 콘솔에서 아래 명령어를 실행합니다.

    DROP USER {Schemas Name} CASCADE;

    CMD 창 접속

    1. 디렉토리 객체 생성 및 권한 부여

    아래 두 명령어를 SQL*Plus에서 실행하여 디렉토리 객체를 생성하고 권한을 부여합니다.

    CREATE OR REPLACE DIRECTORY data_pump_dir AS 'C:\{directory Path}';
    GRANT READ, WRITE ON DIRECTORY data_pump_dir TO system;

     

    • CREATE OR REPLACE DIRECTORY:
      • Oracle 내부에서 사용할 디렉토리 객체를 생성합니다.
      • C:\{Directory Path} 경로를 데이터 펌프 파일(예: test.dmp)이 저장된 실제 경로로 설정합니다.
    • GRANT READ, WRITE:
      • system 계정이 해당 디렉토리 객체에서 파일을 읽고 쓸 수 있는 권한을 부여합니다.

     

    2. 명령 실행 순서

    명령 실행 순서는 다음과 같습니다.

    1. SQL*Plus에서 디렉토리 객체 생성 및 권한 부여:
    sqlplus sys as sysdba

    SQL*Plus에서 아래 명령어 실행:

    CREATE OR REPLACE DIRECTORY data_pump_dir AS 'C:\{Directory Path}';
    GRANT READ, WRITE ON DIRECTORY data_pump_dir TO system;

     

    3. CMD 창에서 impdp 명령어 실행

    DBeaver에서 스키마를 준비한 후, CMD 창을 열어 Data Pump Import (impdp) 명령어를 실행합니다. test.dmp 파일을 사용하여 데이터를 복구합니다.

    impdp {UserName}/{UserPWD} DIRECTORY=data_pump_dir DUMPFILE=test.dmp LOGFILE=test_import.log SCHEMAS={Schemas Name}

    명령어 설명:

    • {UserName}/{UserPWD}: 데이터베이스 관리자 계정과 비밀번호.
    • DIRECTORY=data_pump_dir: Oracle에서 생성한 디렉토리 객체 이름입니다.
    • DUMPFILE=test.dmp: 가져올 덤프 파일 이름입니다.
    • LOGFILE=test_import.log: 작업 로그를 저장할 파일 이름입니다.
    • SCHEMAS={Schemas Name}: 데이터를 복구할 대상 스키마 이름입니다.
    반응형

    'DataBase > Oracle' 카테고리의 다른 글

    DB - 데이터베이스 내용 dmp파일로 백업하기  (0) 2025.02.19
    Oracle - 오라클 버전 확인  (0) 2025.02.11
    Oracle - View(뷰)  (0) 2024.09.26
    Oracle - 인덱스(index)  (0) 2024.09.25
    Oracle - 테이블 구조 변경하기  (0) 2024.09.19

    댓글

Designed by Tistory.