DataBase/Oracle

오라클 데이터 베이스 백업 및 복구-ArcSDE (공간정보)를 포함한 백업 및 복구

조심이 2010. 4. 22. 19:12
반응형
오라클
ArcSDE 의 SDE 계정을 포함한 덤프파일을 복구하는데 몇번의 삽집과 무한한 인터넷 서핑을 거쳐
실행해 본 결과 다음과 같은 과정이 제일 중요한듯 하다.ㅋ
-참고로 9i 버전

* 백업(덤프뜨기) - Export

system 계정 및 sys 계정 DBA 권한을 가지고 있는 이 두계정을 이용하자.

system 계정으로 덤프를 뜬다고 가정하고

>> exp system/비번 file=d:\dump\dump.dmp 
또는
>> exp system/비번 file=d:\dump\dump.dmp owner=유저1, 유저2, SDE 유저

실행하면 d:\demp\dump.dmp 파일이 생성된다. 토드나 다른 tool 을 이용하면 더 편할 수도 있다.ㅋ

* 복구 -Import

그냥 SDE유저의 공간정보가 없다면 복구를 하기 위해선 system 계정을 이용하여 복구 하여도 된다.
우선 전체 덤프 파일이라면 테이블 스페이스와 유저를 복구 과정에서 만들어 주기 때문에 상관이 없지만
그렇지 않은 경우라면 테이블 스페이스도 덤프뜬 테이블 스페이스와 동일한 이름으로 만들어 놓는다.

>> imp system/비번 file=d:\dump\dump.dmp  full=y ignore=y commit=y
또는
>> imp system/비번 file=d:\dump\dump.dmp fromuser=유저1,유저2,SDE 유저

데이터가 commit=y 같은 옵션을 사용하는것이 권장이란다.
자세한 옵션들은 인터넷을 찾아보면 많이 나온다. ^^

-ArcSDE 의 SDE유저를 포함한경우
여기서 문제는 ArcSDE 가 관리하는 SDE 유저와 공간데이터가 존재할경우이다.
ArcSDE가 설치되어 있고 포스트인스톨레이션 까지 마친 경우라면 내컴퓨터->관리->서비스로가서 ArcSDE 서비스를 중단하고 오라클의 SDE 유저를 싹지운다.더 좋은 방법은 ArcSDE를 삭제하고 다시 설치하는 과정을 거치는것도 방법이다.

ArcSDE의 포스트인스톨레이션을 실행한다.
custom 모드로 들어가 SDE 유저와 테이블스페이스 생성부분만 냅두고 나머지는 체크를 해제한다.


이제 동일한 방법으로 복구한다.
>> imp system/비번 file=d:\dump\dump.dmp  full=y ignore=y commit=y
또는
>> imp system/비번 file=d:\dump\dump.dmp fromuser=유저1,유저2,SDE유저 touser=유저1,유저2,SDE유저
복구 과정이 다 마쳐지면

ArcSDE의 포스트인스톨레이션을 실행하여 custom 모드에서
SDE 유저생성과 테이블스페이스를 만드는 부분을 제외하고 나머지를 설치한다.

ArcCatalog를 이용하여 공간데이터가 올라왔는지 살펴본다.

-막약 그래도 안된다면 -_-;;
내컴퓨터->관리->서비스로가서 ArcSDE 서비스를 중단하고 SDE 유저를 지운다면
아래 스크립트를 이용하여 SDE 유저를 임의로 생성하고

>> imp system/비번 file=d:\dump\dump.dmp fromuser=SDE touser=SDE 실행

CREATE USER SDE
  IDENTIFIED BY VALUES '암호' DEFAULT TABLESPACE SDE TEMPORARY TABLESPACE TEMP
  PROFILE DEFAULT ACCOUNT UNLOCK;

  GRANT CONNECT TO SDE;
  GRANT RESOURCE TO SDE;
  ALTER USER SDE DEFAULT ROLE ALL;

  GRANT CREATE LIBRARY TO SDE;
  GRANT CREATE PROCEDURE TO SDE;
  GRANT CREATE SEQUENCE TO SDE;
  GRANT CREATE SESSION TO SDE;
  GRANT CREATE TABLE TO SDE;
  GRANT CREATE TRIGGER TO SDE;
  GRANT UNLIMITED TABLESPACE TO SDE;


-리눅스에서 백업된 파일을 윈도우계열 서버에서 복구할경우 참고

나같은 경우는 리눅스환경에서 만들어진 dmp 파일을 NT 계열로 복구하였는데 테이블 스페이스를 만들던 도중
리눅스의 디렉토리 경로와 윈도의 계열의 폴더 경로의 차이로 만들어지지 않았다.

이럴때는 LOG 파일을 열면
Create tablespace 어쩌고 저쩌고 .. 에러어쩌고 나온다. 경로부분을 보자면 /usr1/TESTDB/AAAA.DBF 요렇게 되어 있는 부분을 C:\oracle\oradata\TESTDB/AAAA..DBF 라고 고치고 실제 경로에 \TESTDB 라는 빈폴더를 만들고
스크립트를 실행하여 테이블스페이스를 임의로 만들면 된다.






반응형