2013. 11. 26. 11:15

Oracle Export 후 Import

Linux 에 설치되어 있는 Oracle 를 Export 후 FTP 를 이용해 

Windows 서버에 업로드 하고 다시 Import 하는 과정입니다. 


####################################################################################

Export 서버 :(Linux) Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

PL/SQL Release 11.2.0.1.0 - Production

CORE    11.2.0.1.0      Production

TNS for Linux: Version 11.2.0.1.0 - Production

NLSRTL Version 11.2.0.1.0 - Production

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

Import 서버 : (Windows)Oracle Database 11g Release 11.2.0.1.0 - 64bit Production

PL/SQL Release 11.2.0.1.0 - Production                                           

CORE 11.2.0.1.0 Production                                                         

TNS for 64-bit Windows: Version 11.2.0.1.0 - Production                          

NLSRTL Version 11.2.0.1.0 - Productio


####################################################################################


<tnsname.ora 의 작성 예> 

PRODDB = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = 152.25.24.15)(PORT = 1521))
    )
    (CONNECT_DATA = 
      (SERVICE_NAME = ORCL)
    )
  )



서비스명과 인스턴스명과 데이타베이스명과 SID는 서로 비슷한 듯 하면서 약간 다르다. 

1. 오라클 데이타베이스명을 확인하는 방법

SELECT NAME, DB_UNIQUE_NAME FROM v$database;

2. 오라클 SID를 확인하는 방법

SELECT instance FROM v$thread;





1. Sysdba 권한으로 서버에 로그인.

   -> sqlplus "/as sysdba"



2. 테이블 스페이스명을 확인후 Import 할서버에 생성해줍니다.

   select * from dba_data_files;


  2-1. 테이블 스페이스중 아래 4개는 기본 테이블 스페이스입니다. 

        (DB 생성하면 그냥 생성된다는거지요)

    SYSTEM

    SYSAUX
    UNDOTBS1
    USERS


3.Export 작업진행

    루트폴더에서 아래와 같이 타이핑해서 export 진행하였습니다. 

exp system/Password@ORCL file=ORCL.dmp log=ORCL.log buffer=4096000 full=y


-> 이때 옵션은 full=y 를 설정하여 full dump 받도록설정하였습니다.



4. FTP 를 이용하여 dump 파일 이동.

   FTP 를 이용해서 파일 이동시 가장 중요시 여겨야할것은 바이너리 모드로 FTP 를 업로드 해야한다는것입니다. 

   일반모드로 파일이동시 100% 에러납니다. 필히 바이너리모드로 업로드하시길.


   


[oracle@test-for-depacho ~]$ ftp 10.0.0.2

Connected to 10.0.0.2 (10.0.0.2).

220 Microsoft FTP Service

Name (10.0.0.2:ci_user): User1

331 Password required for User1

Password:

230 User logged in.

Remote system type is Windows_NT.

ftp>

ftp>

ftp>

ftp> bin                <- 바이너리상태 변환

200 Type set to I. 

ftp> hash              <- 상태보기

Hash mark printing on (1024 bytes/hash mark).

ftp> put filename.dmp



5. Windows 서버에 DB 셋팅 부분의 중요 체크사항.

   ->  Database Configuration Assistant 를 이용해서 DB 를 생성합니다. 

   


-> 생성시 TNS 를 구성하라는 메세지가 나타날시 설정해줍니다.

     Net Configuration Assistant 를 이용해서 설정.


 -> DB 생성시 이전 데이터 베이스를 가져와서 Import  해야 하기 때문에 이전 설정과 동일하게 맞춰줘야 합니다. 

      그러기 위해서 [사용자 정의 데이터 베이스] 를 선택해서 생성합니다. 





->생성시 문자 집합(케릭터셋)을 필히 맞춰줘야 합니다. 

  select * from v$nls_parameters; 를 이용해서 리눅스 서버(export서버)에 케릭터 셋을 확인후 동일하게 설정합니다. 




-> GUI 방식으로 테이블 스페이스를 생성할수 있지만 전 쿼리문으로 생성하도록하겠습니다. 

    export 한 서버에서와 동일하게 서버에 로그인하여 아래의 쿼리문을 날려줍니다. 

    (export 서버에서 select * from dba_data_files;  진행한 테이블 스페이스명을 확인)


    테이블 스페이스명 : Atbalespace / Btablespace  

create tablespace Atbalespace datafile 'D:\oradata\Atbalespace.dbf' size 10G autoExtend on next 100M;

create tablespace Btablespace  datafile 'D:\oradata\Btablespace.dbf' size 10G autoExtend on next 100M;


위와 같이 초기 값을 10G 로 하였으며, 100M 단위로 자동 용량 증가를 설정하였습니다. 



-> 사용자 생성. 

     

     사용자명 : UserTest

     패스워드 : Pass


       create user UserTest identified by pass default tablespace Atablespace;


위와 같이 Atablespace 를 기본 테이블 스페이스로 하는 사용자를 생성하였습니다. 



-> 생성한 사용자에 권한주기.

    (dba 권한을 주었습니다.)

   grant dba to UserTest;



6. Import 진행.
   export 옵션과 동일하게 설정하여 Import 진행하였습니다. 
  
imp system/Pass@ORCL file=ORCL.dmp log=ORCL.log buffer=4096000 full=y