본문 바로가기
데이터베이스/오라클

오라클 sysdba export

by cbwstar 2021. 9. 8.
728x90
반응형

exp, imp 명령어가 가능한 환경(Oracle이 설치되어있다던지)에서

 

- Export

exp ID/PWD@IP:PORT file=FILENAME.dmp

 

Example)

IP : 192.168.0.99

port : 1521

sid : ORA11

 

> exp userid/userpwd@192.168.0.99/ORA11 file=abcd.dmp

 

>exp system/oracle@192.168.100.208:1521/orcl file=gis.dmp log=gis.log full=y direct=y

 

- Import

imp ID/PWD@IP:PORT file=FILENAME.dmp

 

Example)

> imp userid/userpwd@192.168.0.99/ORA11 file=abcd.dmp full=y

 

Imp 기존에 테이블이 있으면 에러 발생 drop table 계정명 cascade (해당 계정 테이블 모두 삭제)

아니면 ignore=y 옵션을 사용하여 테이블에 데이터 인서트 처리 이경우에는 데이타가 add되지 않고 추가 되어진다. Pk 존재하면 추가할려고 하다가 에러 발생

깔끔하게 해당 테이블을 삭제 하고 imp 시키는게 좋다.

 

drop table A170 cascade constraints;

 

imp nagis/nagis#1215 file=NAGIS.A170.dmp log=NAGIS.A170.log tables=A170 ;

 

테이블 삭제 안하고 에러무시하고 인서트 할경우에 ignore=y 옵션 사용

imp nagis/nagis#1215 file=NAGIS.A170.dmp log=NAGIS.A170.log tables=A170 ignore=y;

 

 

-- 테이블덤프 추가(import)

imp shresort_fo/shcenter FILE=shresort-20080621.dmp TABLES=SC_AUTHORITY,SC_BRANCH,SC_BRANCHDESCRIPTION,SC_BRANCHPHOTO,SC_BUSINESSDATEMASTER,SC_COMMONCODE,SC_CONNECTION_HISTORY,SC_FAVORITE,SC_LARGECOMMONCODE,SC_MANAGEMENTSALESYSTEM,SC_MENU,SC_PAYMENTMETHODACCOUNT,SC_PAYMENTMETHODMAPPING,SC_POSTCODE,SC_ROLE,SC_SALEACCOUNT,SC_STORE,SC_USER,SC_USER_ROLE,SC_USER_SESSION,SC_USE_LOG

-- 테이블스페이스 기본 설정값 확인

select username, default_tablespace, temporary_tablespace from dba_users where username = 'SHRESORT_FO'

 

-- 테이블스페이스 변경

alter table SC_AUTHORITY                   move tablespace SHRESORT_FO;

alter table SC_BRANCH                      move tablespace SHRESORT_FO;

alter table SC_BRANCHDESCRIPTION           move tablespace SHRESORT_FO;

 

To import just the dept and emp tables from the scott schema

imp SYSTEM/password FIlE=dba.dmp FROMUSER=scott TABLES=(dept,emp)

To import tables and change the owner

imp SYSTEM/password FROMUSER=blake TOUSER=scott FILE=blake.dmp TABLES=(unit,manager)

 

 

System 패스워드 모르는 경우 sys 백업받고자 할때

스크립트만 받을려면 rows=n 옵션추가

>exp \"/ as sysdba\" file=full.dmp log=full.log full=y direct=y rows=n

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++ 

 

불완전복구에 해당하지만, 그래도 대형DB가 아닌 이상 exp 는 훌륭한 백업도구중의 하나이다.

 

complete recovery 에 해당하는 online-backup에서 제공하지 못하는 부분을 해결해 줄 수 있기 때문이다.

 

 

exp 유틸리티의 사용법은 다음과 같다.  (exp help=y  해서 볼수 있다)

 Export: Release 8.1.7.4.0 - Production on Sep 15 09:00:52 2010

(c) Copyright 2000 Oracle Corporation.  All rights reserved.

 

EXP 명령어 뒤에 사용자명/암호를 입력하면 엑스포트할때 매개변수의

값을 입력하도록 할 수 있습니다:

     : EXP SCOTT/TIGER

또는, EXP 명령어 뒤에 다양한 인수를 입력하여 엑스포트의 실행 방법을

제어할 수 있습니다. 매개변수를 지정하려면 키워드를 사용하십시오:

     형식:  EXP KEYWORD=값 또는 KEYWORD=(1,2,...,N)

       : EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)

               또는 TABLES=(T1:P1,T1:P2), 만일 T1이 분할된 테이블이라면

USERID 명령어 줄에 첫번째 매개변수에 있어야 합니다.

키워드   설명(기본값)                 키워드       설명(기본값)

--------------------------------------------------------------------------

USERID   사용자명/암호                FULL         파일 전체를 엑스포트 (N)

BUFFER   데이터 버퍼의 크기           OWNER        소유 사용자명 목록

FILE     출력 파일 (EXPDAT.DMP)       TABLES       테이블명 목록

COMPRESS 하나의 익스텐트에 임포트 (Y) RECORDLENGTH I/O 레코드의 길이

GRANTS   권한부여 엑스포트 (Y)        INCTYPE      증분 엑스포트 타입

INDEXES  인덱스 엑스포트 (Y)            RECORD       트랙 증분. 엑스포트 (Y)

ROWS     데이터 행 엑스포트 (Y)       PARFILE      매개변수 파일명

CONSTRAINTS 제약조건 엑스포트(Y)      CONSISTENT   교차-테이블 일관성

LOG      화면 출력의 로그 파일        STATISTICS   객체 분석 (ESTIMATE)

DIRECT   직접 경로 (N)                TRIGGERS     트리거 엑스포트 (Y)

FEEDBACK x 행마다 진행을 보여줍니다 (0)

FILESIZE 각 덤프 파일의 최대 크기

QUERY    테이블의 서브집합을 엑스포트하기 위해 사용될 절을 선택합니다

VOLSIZE  각 태이프 볼륨으로 기록하기 위한 바이트의 수

이동가능한 테이블스페이스에 이와 같은 키워드만이 적용됩니다

TRANSPORT_TABLESPACE 이동가능한 테이블스페이스 메타데이터을 엑스포트합니다 (N)

TABLESPACES 이동하기 위한 테이블스페이스의 목록입니다

엑스포트가 경고 없이 정상적으로 종료되었습니다.

 

 

 

 

) 한개의 데이터베이스 인스턴스에 다음과 같은 데이터가 있다고 보자.

인스턴스 : ORCL

유저 : user01, user02, user03, user04

4개의 유저  user01~user04 에 각각의 데이터가 있고 이를 백업하려면........................

 

 

 

두가지 방법이 있다.

1) 각 유저별로 백업한다.

2) 전체유저를 한번에 백업한다.

 

 

 

1) 각 유저별로 백업한다.

파일이 각 유저별로 4개가 생성되며 4개의 파일을 모두 관리해야 하는 단점이 생긴다.

각 유저들의 패스워드를 모두 알아야 한다.

exp user01/passwd file=user01.dmp log=user01.log

exp user02/passwd file=user02.dmp log=user02.log

exp user03/passwd file=user03.dmp log=user03.log

exp user04/passwd file=user04.dmp log=user04.log

 

 

2) 전체유저를 한번에 백업한다.

파일이 1개가 생성되며 1개의 파일안에 모든 유저가 존재한다.

많이 사용되는 유용한 방법이다. user01~04의 패스워드를 모두 모르더라도 관리자는 system의 패스워드만 알면

모든 유저들의 데이터를 백업할 수 있다.

 

그렇다면 옵션을 보자. 1번의 예처럼

exp system/passwd file=full.dmp log=full..log           

라고 쓰면 안될까?   ------------> 안된다.

이 경우 system 유저의 데이터만 백업하며 (보통은 실데이터가 들어있지 않다)  user01~04의 데이터는 백업하지 않는다.

전체 데이터를 백업하기 위해서는 full=y 옵션을 반드시 사용해야 한다.  full 이란 전체데이터를 의미한다.

exp system/passwd file=full.dmp log=full..log  full=y

 

 

* sysdba권한으로 백업해야 할 경우

EXP-00079 등의 에러가 날 경우 system 권한으로 부족할 수도 있고,

system패스워드를 모르고, 함부로 바꿀수도 없는 경우에 사용할 수 있다.

exp \"sys/passwd as sysdba\" file=full.dmp log=full.log full=y

 

 

* 백업 속도를 높이고자 하는 경우

export 의 속도를 높이고자 할 때는 Direct Path Export를 사용하거나 충분한 버퍼의 값을 주는 방법을 쓸수 있다.

exp system/passwd file=full.dmp log=full..log  full=y dircet=y

exp system/passwd file=full.dmp log=full..log  full=y buffer=4096000

 

 

 

 

 

백업을 했으면 복구를~~~

exp 유틸리티로 백업한 것은 imp 유틸리티로 복구를 한다이때 아카이브로그는 사용되지 않고 무용지물이다.

imp 유틸리티로 복구할때의 주의점은

   1. 대상 유저에 이미 존재하고 있을것. (없으면 먼저 만들어야 한다.)

   2. 동일한 테이블이 없을것.

따라서 백업시에 해당 유저를 생성하기 위한 스크립트를 미리 같이 받아두는 것이 좋은 방법이다.

 

imp 유틸리티의 사용법은 다음과 같다. (imp help=y 하면 볼수 있다)

Import: Release 8.1.7.4.0 - Production on Sep 15 09:02:00 2010

(c) Copyright 2000 Oracle Corporation.  All rights reserved.

 

IMP 명령어 뒤에 사용자명/암호를 입력하면 임포트 시에 매개변수의

값을 입력할 수 있도록 프롬프트를 나타나게 할 수 있습니다:

     예 제: IMP SCOTT/TIGER

또는, IMP 명령어 뒤에 여러 가지 인수를 입력하면 임포트의 실행 방법을

제어할 수 있습니다. 매개변수를 지정하려면 키워드를 사용하십시오:

     형식:  IMP KEYWORD=값 또는 KEYWORD=(1,2,...,N)

       :  IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N

               또는 TABLES=(T1:P1,T1:P2), T1이 분할된 테이블일 경우에

USERID 명령어 줄에 첫번째 매개변수에 있어야 합니다.

키워드      설명(기본값)             키워드          설명(기본값)

--------------------------------------------------------------------------

USERID   사용자명/암호               FULL         파일 전체 임포트 (N)

BUFFER   데이터 버퍼의 크기          FROMUSER     소유 사용자명 목록

FILE     입력 파일들 (EXPDAT.DMP)    TOUSER       사용자명의 목록

SHOW     파일 목차만 목록 (N)        TABLES       테이블명 목록

IGNORE   생성 오류 무시 (N)          RECORDLENGTH IO 레코드의 길이

GRANTS   권한부여 임포트 (Y)         INCTYPE      증분 임포트 유형

INDEXES  인덱스 임포트 (Y)             COMMIT       배열 삽입 커밋 (N)

ROWS     데이터 행 임포트 (Y)        PARFILE      매개변수 파일명

LOG      화면 출력의 로그 파일       CONSTRAINTS  제약조건을 임포트 (Y)

DESTROY  테이블스페이스 데이터 파일에 덮어 쓰기 (N)

INDEXFILE 테이블/인덱스 정보를 지정된 파일로 기록

SKIP_UNUSABLE_INDEXES  사용되지 않은 인덱스들의 유지를 건너뜁니다 (N)

ANALYZE  덤프 파일에 ANALYZE 문을 실행합니다 (Y)

FEEDBACK x 행마다 진행을 보여줍니다(0)

TOID_NOVALIDATE  지정된 유형 ID의 검증을 건너 뜁니다 

FILESIZE 각 덤프 파일의 최대 크기

RECALCULATE_STATISTICS 통계를 다시 계산합니다 (N)

VOLSIZE  테이프에 있는 각 파일의 볼륨에 파일의 바이트의 수입니다

이와 같이 키워드만이 이동가능한 테이블스페이스에 적용할 수 있습니다

TRANSPORT_TABLESPACE 이동가능한 테이블스페이스 메타데이터을 임포트합니다 (N)

TABLESPACES 데이터베이스안에 테이블스페이스가 이동되었습니다

DATAFILES 데이터베이스안에 데이터 파일들이 이동되었습니다

TTS_OWNERS 이동가능한 테이블스페이스 설정에 데이터를 소우하고 있는 사용자

임포트가 경고 없이 정상적으로 종료되었습니다.

 

 

 

 

위에서 exp 백업방법을 두가지 알아보았다.

1) 각 유저별로 백업한다.

2) 전체유저를 한번에 백업한다.

이 백업방법에 따른 복구 방법을 알아보자.

 

1) 각 유저별로 백업한다.

백업방법) exp user01/passwd file=user01.dmp log=user01.log

이때의 복구 방법은 다음과 같다.

imp user01/passwd file=user01.dmp log=user01.log

 

만약 A라는 테이블만 복구하려면~

imp user01/passwd file=user01.dmp log=user01.log tables=A

라고 적어주면 된다.

 

 

2) 전체유저를 한번에 백업한다.

백업방법) exp system/passwd file=full.dmp log=full..log  full=y

그런데 이렇게 백업받으면 full.dmp 파일 안에는 user01~user04까지의 데이터가 모두 존재한다.

user01의 데이터를 복구하고자 하는 경우

imp system/passwd file=full.dmp log=full.log fromuser=user01 touser=user01 full=y

라고 적으면 된다.

여기서 fromuser full.dmp 안에 존재하는 유저명.    touser는 대상DB에 존재하는 유저명이다.

 

만약 백업당시의 user01 데이터를  대상DB  testuser 에 넣고 싶은 경우는

imp system/passwd file=full.dmp log=full.log fromuser=user01 touser=testuser

라고 명령어를 주면 되겠다.

 

 

 

system 패스워드 모르는 경우 sys 백업받고자 할때

exp \"/ as sysdba\" file=d:\backup\exp\full.dmp log=d:\backup\exp\full.log full=y

 

\ "의 특수문자 의미를 제거해 주면 된다.

728x90
반응형

'데이터베이스 > 오라클' 카테고리의 다른 글

리눅스 오라클 기동  (0) 2021.09.09
리눅스 오라클 설치  (0) 2021.09.08
오라클 10g설치  (0) 2021.09.08
사용자의 계정의 락(lock)을 해제한다.  (0) 2021.09.08
AIX서버 날짜타입 오류  (0) 2021.09.08

댓글



"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

loading