Oracle Table 데이터를 MySQL로 전환하기 위해 아래와 같은 절차로 진행합니다.

1. 환경 설정
다음 환경에서 이관 작업을 수행
1) Oracle Database 11g ( 11.2.0.3, RAC ) : 기존에 설치되어 있는 DB
2) MySQL Mariadb 10.1.8 : Mig를 위해 신규 설치
3) Hadoop 2.7.1 : MapReduce를 사용, 중간 데이터 저장
4) Sqoop 1.4.6 : Source와 Target간 데이터 전송
5) MySQL, Oracle jar lib 파일 : Sqoop에서 src와 target DB 접속
2. 환경 구성
1) MySQL 설치
- Mariadb 커뮤니티 사이트에서 Mariadb 10.1.8 다운
- tar -xvf mariadb-10.1.8-linux-x86_64.tar.gz -C /usr/local
- ln -s /usr/local/mariadb-10.1.8-linux-x86_64 /usr/local/mysql
- groupadd mysql
- useradd -g mysql -s /bin/bash -M -d /usr/local/mysql mysql
- chown -R mysql:mysql /usr/local/mysql
- su - mysql
- /etc/my.cnf -- mysql에 대한 config 내용 정의
- ./scripts/mysql_install_db --user=mysql
- ./bin/mysqladmin -u root password 'initial-password' -- 초기 패스워드 설정
./bin/mysqladmin -u root -h test1 password 'initial-password'
2) Hadoop 설치
3) Sqoop 1.4.6
- tar -xvf sqoop-1.4.6.tar.gz
- tar가 풀린 디렉토리에 위에 mysql과 oracle lib 파일 복사
| The MySQL CREATE TABLE Statement | The ALTIBASE HDB/XDB CREATE TABLE Statement |
|---|---|
CREATE TABLE testtbl_4_defval
(
c1 TIMESTAMP NOT NULL,
c2 INT DEFAULT 123,
c3 VARCHAR(50) DEFAULT 'test',
c4 INT DEFAULT NULL,
c5 CHAR(10) DEFAULT '',
c6 DATE DEFAULT '1989-04-28',
c7 DATETIME DEFAULT '1989-04-28 12:31:29',
c8 TIMESTAMP DEFAULT '1989-04-28 12:31:29' NOT NULL,
c9 TIMESTAMP NOT NULL
);
| CREATE TABLE TESTTBL_4_DEFVAL
(
C1 DATE DEFAULT SYSDATE NOT NULL,
C2 INTEGER DEFAULT 123,
C3 CLOB DEFAULT 'test',
C4 INTEGER,
C5 CHAR (10),
C6 DATE DEFAULT TO_DATE('1989-04-28', 'YYYY-MM-DD'),
C7 DATE DEFAULT TO_DATE('1989-04-28 12:31:29', 'YYYY-MM-DD HH:MI:SS'),
C8 DATE DEFAULT TO_DATE('1989-04-28 12:31:29', 'YYYY-MM-DD HH:MI:SS') NOT NULL,
C9 DATE /* DEFAULT '0000-00-00 00:00:00' */ NOT NULL |
