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 |