반응형
[ 서 론 ]

Oracle 10g 에서 SQL Server 2005 Version 으로 마이그레이션 작업 진행을 회사에서 최근에 진행을 했다.

여타 다른 Tool을 사용 할 수 없는 환경에서 선택한 것은 오라클 10g 에 sqlplus로 접속하여 txt or csv 파일로 떨군 다음

mssql에서 사용한 것이다. 사용방법은 다음과 같다.

[ 본 론 ]

(1) Oracle10G 에서 sqlplus로 접속하여 backup_ori.txt 파일로 Export 하는 방법.

-------------------------
-- Export 실행 Script --
-------------------------
 SQL>
SET ECHO OFF
SET SPACE 0
SET PAGESIZE 0
set linesize 400
set colsep ','
SET FEEDBACK OFF
SET HEADING OFF
SET TRIMSPOOL ON
set Null ''
set rowsize 100
spool backup_ori.txt;
SELECT * FROM TEST_TABLE;
spool off;


(2) backup.txt 파일에서 불필요한 데이터를 삭제 하여 backup_backup.txt파일을 생성한다.

 -------------------------
-- Unix 실행 Script --
-------------------------
sed '1,1d' ./backup_ori.txt> backup_temp1.txt
sed '$d' backup_temp1.txt> backup_temp2.txt
awk '{printf("%s", $0)}' backup_temp2.txt> backup_backup.txt
rm -rf ./backup_ori.txt./backup_temp1.txt./backup_temp2.txt

(3) SQL Server 2005 Version 에서 backup_backup.txt파일을 Bulk Insert 문을 이용하여 Insert 한다.

 -------------------------
-- MS-SQL 실행 Script --
-------------------------
BULK INSERT dbo.tb_drm_dosirak_stats
   FROM 'c:\backup_backup.txt'
   WITH
     (
   DATAFILETYPE = 'char',
   FIELDTERMINATOR ='|',
   ROWTERMINATOR ='#',
    KEEPNULLS,
   TABLOCK
      )


(4) 위 처럼 하면 정상적으로 Insert가 이루어진다. 속도도 타 Tool을 이용하는 것 보다 현저히 빠른 스피드로 Insert 할 수 있습니다.

[ 결 론 ]

Migration의 방법은 여러가지가 있다. 실제 Field에 나가면 주어진 제약 환경에서 작업 환경은 아주불리하다 왜냐하면 해당 업체의 DBA는 매우 까칠하기 때문이다.

결국 프로그래머 입장에서는 이렇게 치사하고 좀 별루 대단하진 않지만, 이런 방법으로 진행 할 수 밖에 없는 현실이 고달프다.


흑... 역시 갑이 되어야 일을 잘 할 수 있따.


이상 랑이의 마이그레이션 방법 이었다.

                                                                                                                    -- 2010.05.26 새벽 1시에 공부한 글 --


반응형
반응형

이미 생성된 오라클 Table을 다시 Create 쿼리문으로 뽑는 과정에 대해서 알아보자.

토드나 기타 Tool들이 이런 작업을 잘해 주고 있긴 하지만,, 기본적인 명령어를 익히는 차원에서 해보겠다.

[1] export 한다.
$ exp userID/userPW file=exp.dump compress=n rows=n


[2] exp.dump 파일이 잘 생성되었는지 확인한다. ]

[3] imp Tool를 이용하여 script 파일을 생성한다.
imp userID/userPW file=exp.dump indexfile=create_table.sql full=y

[4] create_table.sql 파일이 생성되는것을 확인한다.

[5] vi 에디터로 열어서 맨 앞에 REM 이라고 되어있는 것을 삭제 하면 끝!!!


머 별로 어려운건 아니지만,,, 공부를 안하면 모르는 그런 지식 ㅋㅋㅋㅋ

반응형

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

Materialized View 공부  (0) 2013.05.16
[ Oracle 10G -> SQL Server 2005 마이그레이션 작업 ]  (4) 2010.05.26
Oracle 용어 - Instance VS Database  (2) 2010.05.19
(용어정리) ODBC / JDBC 란?  (6) 2010.05.09
[ Oracle 용어 - TNS란 ? ]  (0) 2010.02.05
반응형
블로그를 안쓴지 꽤 오래됐다...

개인적인 사정도 있었고, 회사일에 치여서 공부를 소홀히 한듯하다. 추후 멋진 DBA를 꿈꾸고 있으면서

이렇게 공부를 게을리 하다니..허걱

[ 서 론 ]

잡담은 그만하고 오늘은 Oracle 에서 흔히들 많이 사용하는 Instance 라는것과 Database는 실제적으로 어떠한 용어적

차이가 있는지 적어보도록 하겠다.

머 얼마 중요하지 않다 라고 생각하는 사람들도 많이 있을것이다. 하지만, 용어하나하나를 정리해 나가는 자만이 추후 햇갈림

없이 타인에게 강의를 할 수 있다.

[ 본 론 ]

Instance와 Database의 차이점을 좀더 쉽게 설명하기 위해 Powerpoint로 ㅋㅋㅋ 멋도 없게 하나 그려보았다. 아래그림을

보면 좀 더 쉽게 이해 할 수 있다.

[ Instance와 Database 에 대한 그림]

설명하도록 하겠다.

Database는 개념적으로 구분할때 논리적인 영역 과 물리적인 영역으로 구분 가능하다.

논리 적인 영역에서 위 그림처럼 , 1번 2번~~~ 어쩌구 저쩌고 보이는것이 바로 Instance 이며 물리적인 실제 Disk와

같은 역할을 하는것이 Database이다. 하지만 우리는 흔히들 통틀어서 Database 라고 한다.

실제 DB Server 내부 에는 논리적인 Instance 와 물리적인 Disk가 모두 존재한다.

둘다 어떻게 보면 Database 라고 불러도 상관은 없다. 하지만, DB를 조금 안다는 놈들이 저렇게 이야기 하면 그건 아닌

것 같다.

조금 더 구어식이 아닌 문어체 식으로 두용어를 정리 해 보도록 하겠다.

[Database]
오라클 에서는 Database 란, 실제 Data가 저장되는 Physical 한 영역을 일컫는다.

[ Instance ]
Physical Database 내의 물리적인 Data를 입.출력 할 수 있도록 해주는 하나의 소프트웨어로 그 구성은 서버내부의 메모리와 프로세스로 구성되어있다. 실제 Oracle에서는 DB Server에서 Database가 시작되면 SGA(System Global Area)라는 공유 메모리 영역을 할당하고 여러가지 Oracle 데몬을 시작한다. 이와 같이 SGA와 Oracle 프로세스가 결합한 것을 Oracle Instance 라고 한다.

[ Database 와 Instance ]
1. 실제 사용자가 Database에 접근하면 1개의 Instance가 할당된다. 프로그램의 Thread와같은 개념이다.
2. Database는 물리적인 저장장치로 반 영구적이다.하지만 Instance는 소멸성이다.
3. 사용자는 직접적으로 Database에 접근 할 수 없다. 반드시 Instance를 통해서 접근해야하며, Instance는 사용자와
물리적인 Database 간의 다리역할을 해주는 개념이다.

[ 결 론 ]

공부를 하다보면 하나하나 개념정리가 꼭 반드시 무지무지 필요하다.

이럴때 그냥 개념을 넘어가 버린다면... 반쪽만 아는 사람이 아닐까?

오늘 글쓰기 끝!!!



- 2010.05.19 성랑이가 -


반응형
반응형

[ 서 론 ]

JDBC / ODBC 등등 말이많다~~~ 이 말은 어떤의미인지 약어도 잘모르고 다만, 용어에 대해서

대충적인 의미만 알고 있을 뿐이다.

JDBC / ODBC 등등에 대해 용어정리를 한번 집고 넘어가도록 하자.

[ 본 론 ]

(1) ODBC란?

ODBC는 Open DataBase Connectivity 의 약어이다. 말 그대로 해석해 보자
"DB에 접속을 OPEN한다" 라는 의미이다. 흔히들 사람들은 JDBC와 혼돈되어 , 특정 프로그램 및 특정 언어에서만
동작되는 용어라고 생각하는 사람들이 많다. 하지만 그렇지 않다.

ODBC란 , "Micro Soft 사에서 만든 모든 DBMS 에 접속하여 독립적인 Application을 작성하기 위한, API 이다."
즉 언어에 상관없이 모든 DBMS에는 ODBC 가 존재한다.  그럼 사용할때에는 어떻게 하느냐???

ODBC 내부에는 드라이버관리자(ODBC Driver Manager) 가존재한다. 특정 프로그램은 ODBC 드라이버 관리자를 호출하여
사용하려는 드라이버를 호출하기만 하면 접속가능하다. 일단 접속이되면은 SQL를사용하여 프로그램은 DBMS와 통신이 가능하다.

종합하여 보면 ODBC는 사용자와 각 DB 엔진 사이를 연결해 주어, 사용자가 공통된 IF로 각기 다른 DBMS에 접근하게 하여
원하는 데이터를 다룰수 있게 한다.

아래 그림을 보면 좀 더 확실히 이해가 될것이다.

                                                                   [ ODBC 내부 동작 원리 ]

예를 들어 본다.

( 장점 )
C++ 과 같이 WINDOWS NT 계열에서 지원되는 프로그램에서는 , ODBC를 지원하도록 되어있다. 그렇기 때문에 개발자는
사용하기를 원하는 DB를 INSTALL 한 후, Windows 환경의 Visual C++ Compiler가 지원해주는 ODBC클래스나 WIN32함수
를 사용하여, Application을 손쉽게 개발 할 수 있다.

( 단점 )
단점이라 ,하면 MS사에서 C 언어위주로 사용되기위해 만든 API이기 떄문에 다른 언어와의 호환이 문제가 된다.

(2) JDBC 란?

JDBC란 Java DataBase Connectivity 의 약어로 "자바로 작성된 프로그램을 , 각각의 DBMS에 연결하기 위한, API 규격이다."
ODBC와는 조금 다르다, ODBC는 주로 C언어에서 개발시 사용하는 방법이며, JDBC는 JAVA에서 개발시 사용되어지는 방식이다.

하나 문의점이 생긴다? !!! MS계열의 플랫폼에서는 ODBC를 사용하여 주로 DBMS를 연결하는데, MS 계열의 플랫폼에서
JDBC를 통해서 연결 할 수는 없을까?

물론 가능하다. JDBC 가 동작하는 원리는 아래 그림을 보면 확실히 이해 가능할 것이다.

                                                                  [ JDBC 내부 동작 원리 ]
 

JDBC 내부에 "JDBC ODBC Bridge" 가 보일것이다. 내부 Driver가 ODBC Driver 와 연결되어 DBMS를 연결 가능하다.


[ 결 론 ]

이제 헷갈리지말자, ODBC와 JDBC는 분명 틀린것이다. ㅋㅋ 우리가 사용하려는 플랫폼 / 언어 / 등등에 따라
ODBC를 사용할지 JDBC를 사용할지를 선택하면 되는것이다. !!!

그럼 오늘 블로그 글은 이쯤에서 쫑!! ㅋㅋ

반응형

+ Recent posts