SlideShare une entreprise Scribd logo
1  sur  20
데이터 마이그레이션 - (CUBRID를 타겟DB로) 작성자: 이동현 소속팀 / 상위부서: CUBRID 개발랩 작성년월일: 2009.11.26 문서범위(사외 공개)  ⓒ 2009 NHN CORPORATION
0. 마이그레이션 개요  - 데이터 옮길 때 무엇을 고려해야 하나?
0.  마이그레이션 개요 * 마이그레이션을 왜 하나?  - 테이블 스키마 구조의 변경  - DB 제품의 변경  - 둘 다 1. 데이터 매핑  - 서비스 중인 소스와 새로 구성할 타겟 간의 데이터 매핑 관계 2. 실행 계획 수립  - 실행 순서, 실행 명령어, 실행시간 예측  3. 실행 스크립트 작성  - 순서별 실행 4. 제한 시간 이내에 마이그레이션 - 스냅샷  테이블 + 로그 테이블 5. 데이터 검증   - 카운트
1. 데이터 매핑  - 어디에서 어디로?
1. 데이터 매핑 고려 사항 1. 소스와 타겟의 테이블 구조가 같은가? ? 2. 테이블 구조가 다를 경우타겟에 추가/제거되는 컬럼과 그 값은 소스 데이터의 값을 가지고 결정할 수 있는가?
1. 데이터 매핑 고려 사항 3. 소스 테이블과 타겟 테이블의 DB가 다를 경우 매핑 컬럼 간 타입을 정의하고 확인한다.   - 호환 타입   - 타입 간 제약 조건   - 타입의 길이   - 특수 문자의 확인
2. 실행 계획 수립  - 순서, 명령어, 시간
2. 실행 계획 수립 1. 실행 순서를 정한다 소스 DB 1 file copy 중간  데이터 중간  데이터 2 3 타겟DB
2. 실행 계획 수립 2. 실행  명령어를 정한다 unload : 소스 테이블과 타겟 테이블의 구조가 다르다면 “데이터 매핑” 규칙에 의해 loaddb용 파일을 생성하는 프로그램 작성 후 수행 scp : 원격으로 파일 카피를 하기 위해서 사용하는데, 암호를 물어보지 않고 전송하려면 다음의 3가지 단계를 거친다. 	1) public key 생성 : ssh-keygen –t rsa  	2) 1)에서 생성된 id_rsa.pub를 타겟 장비의 ~unixID/.ssh/authorized_keys의 이름으로 복사한다. 	3) authorized_keys가 이미 존재한다면 id_rsa.pub의 내용을 뒤에 붙임 load: cubridloaddb --no-oid -u dba --load-only --no-logging --periodic-commit=10000 -d data_file DB_NAME
2. 실행 계획 수립 3. 실행 시간을 살핀다 - 실행하려는 데이터량과 실행 시간을 미리 측정하고, 이를 토대로 실행 예측 시간을 수립   . unload 시간   . scp시간   . load 시간
3. 실행 스크립트 작성  - 실행 순간에는 실행 자체에만 집중하자
3. 실행 스크립트 작성 모든 실행 순서를 스크립트로 자동화하자 * 실제 수행할 장비에서 미리 확인할 사항 - 실행 환경 (환경변수) - 파일 카피 발생시 디렉토리의    파일 생성 권한 - 프로그램 라이브러리의 버전 - 언어 인코딩 환경 - 응용 프로그램에서 url접속시인코딩 설정예) jdbc:cubrid:123.123.123.123 :11111:DBNAME:user:pwd:charset=utf8
4. 제한 시간 이내 마이그레이션  - 처리할 양은 많고, 주어진 시간은 부족하다.
4. 제한 시간 이내 마이그레이션 고려 사항  마이그레이션 작업을 모두 하기엔 서비스 정지 시간이 너무 짧다
4. 제한 시간 이내 마이그레이션 마이그레이션 실행 계획 순서 1)서비스 정지 전, 2)서비스 정지 중, 3)서비스 시작 이후의 3단계로 나누어 작업 1) 작업 스크립트 준비 2) 스냅샷 DB 백업 3) 스냅샷 로딩, 로그 테이블 반영
4. 제한 시간 이내 마이그레이션 스냅샷 로딩 - 스냅샷 DB에서 덧글 DB에 로딩 스냅샷 DB2 스냅샷 DB1 스냅샷 DBn …… 타겟DB1 타겟DB 2 …… …… 타겟DB n 로딩할 데이터 –  CUBRID loaddb포맷
4. 제한 시간 이내 마이그레이션 로그 테이블 반영 - 로그 테이블을 덧글DB에 반영 타겟DB1 로그반영 프로세스 타겟DB 2 * 어느 DB? …… …… 타겟DB 8 *DML Type INSERT? UPDATE? DELETE? 반영할 로그 테이블들
5. 데이터 검증  - 소스와 타겟의 데이터 비교
5. 데이터 검증 테이블 별 데이터 비교 - 소스와 타겟에서 생성한 데이터 파일을 sort 한 후 diff로 비교  예) sort srcA.txt > srcB.txt; sort tgtA.txt >tgtB.txt        diff srcB.txt tgtB.txt 테이블 별 전체 카운트 비교 - 소스 테이블과 타겟 테이블의 각 카운트를  텍스트로 내린 후 diff로 비교
Thank you.

Contenu connexe

Tendances

[Pgday.Seoul 2017] 5. 테드폴허브(올챙이) PostgreSQL 확장하기 - 조현종
[Pgday.Seoul 2017] 5. 테드폴허브(올챙이) PostgreSQL 확장하기 - 조현종[Pgday.Seoul 2017] 5. 테드폴허브(올챙이) PostgreSQL 확장하기 - 조현종
[Pgday.Seoul 2017] 5. 테드폴허브(올챙이) PostgreSQL 확장하기 - 조현종PgDay.Seoul
 
Mongodb2.2와 2.4의 신 기능 소개
Mongodb2.2와 2.4의 신 기능 소개Mongodb2.2와 2.4의 신 기능 소개
Mongodb2.2와 2.4의 신 기능 소개흥배 최
 
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략KTH
 
Mongo db로 배우는 nosql
Mongo db로 배우는 nosqlMongo db로 배우는 nosql
Mongo db로 배우는 nosqlSuwon Chae
 
대용량 분산 아키텍쳐 설계 #5. rest
대용량 분산 아키텍쳐 설계 #5. rest대용량 분산 아키텍쳐 설계 #5. rest
대용량 분산 아키텍쳐 설계 #5. restTerry Cho
 
SQL Server to Azure SQL Database Migration
SQL Server to Azure SQL Database MigrationSQL Server to Azure SQL Database Migration
SQL Server to Azure SQL Database Migrationrockplace
 
[오픈소스컨설팅] About Storage Cloud
[오픈소스컨설팅] About Storage Cloud [오픈소스컨설팅] About Storage Cloud
[오픈소스컨설팅] About Storage Cloud Ji-Woong Choi
 
대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴
대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴
대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴Terry Cho
 
mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교Woo Yeong Choi
 
MySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docxMySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docxNeoClova
 
MS 빅데이터 서비스 및 게임사 PoC 사례 소개
MS 빅데이터 서비스 및 게임사 PoC 사례 소개MS 빅데이터 서비스 및 게임사 PoC 사례 소개
MS 빅데이터 서비스 및 게임사 PoC 사례 소개I Goo Lee
 
Pg day seoul 2016 session_02_v1.0_ff
Pg day seoul 2016 session_02_v1.0_ffPg day seoul 2016 session_02_v1.0_ff
Pg day seoul 2016 session_02_v1.0_ffPgDay.Seoul
 
MariaDB Other Features
MariaDB Other FeaturesMariaDB Other Features
MariaDB Other FeaturesJongJin Lee
 
[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석
[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석
[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석smartstudy_official
 
[오픈소스컨설팅]Glster FS간단소개
[오픈소스컨설팅]Glster FS간단소개[오픈소스컨설팅]Glster FS간단소개
[오픈소스컨설팅]Glster FS간단소개Ji-Woong Choi
 
Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Gruter
 
MySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestMySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestI Goo Lee
 
개발자가 도전하는 MariaDB 서버구축
개발자가 도전하는 MariaDB 서버구축개발자가 도전하는 MariaDB 서버구축
개발자가 도전하는 MariaDB 서버구축정해 이
 

Tendances (20)

[Pgday.Seoul 2017] 5. 테드폴허브(올챙이) PostgreSQL 확장하기 - 조현종
[Pgday.Seoul 2017] 5. 테드폴허브(올챙이) PostgreSQL 확장하기 - 조현종[Pgday.Seoul 2017] 5. 테드폴허브(올챙이) PostgreSQL 확장하기 - 조현종
[Pgday.Seoul 2017] 5. 테드폴허브(올챙이) PostgreSQL 확장하기 - 조현종
 
Mongodb2.2와 2.4의 신 기능 소개
Mongodb2.2와 2.4의 신 기능 소개Mongodb2.2와 2.4의 신 기능 소개
Mongodb2.2와 2.4의 신 기능 소개
 
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략
 
Mongo db로 배우는 nosql
Mongo db로 배우는 nosqlMongo db로 배우는 nosql
Mongo db로 배우는 nosql
 
Redis
RedisRedis
Redis
 
대용량 분산 아키텍쳐 설계 #5. rest
대용량 분산 아키텍쳐 설계 #5. rest대용량 분산 아키텍쳐 설계 #5. rest
대용량 분산 아키텍쳐 설계 #5. rest
 
About memcached
About memcachedAbout memcached
About memcached
 
SQL Server to Azure SQL Database Migration
SQL Server to Azure SQL Database MigrationSQL Server to Azure SQL Database Migration
SQL Server to Azure SQL Database Migration
 
[오픈소스컨설팅] About Storage Cloud
[오픈소스컨설팅] About Storage Cloud [오픈소스컨설팅] About Storage Cloud
[오픈소스컨설팅] About Storage Cloud
 
대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴
대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴
대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴
 
mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교
 
MySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docxMySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docx
 
MS 빅데이터 서비스 및 게임사 PoC 사례 소개
MS 빅데이터 서비스 및 게임사 PoC 사례 소개MS 빅데이터 서비스 및 게임사 PoC 사례 소개
MS 빅데이터 서비스 및 게임사 PoC 사례 소개
 
Pg day seoul 2016 session_02_v1.0_ff
Pg day seoul 2016 session_02_v1.0_ffPg day seoul 2016 session_02_v1.0_ff
Pg day seoul 2016 session_02_v1.0_ff
 
MariaDB Other Features
MariaDB Other FeaturesMariaDB Other Features
MariaDB Other Features
 
[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석
[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석
[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석
 
[오픈소스컨설팅]Glster FS간단소개
[오픈소스컨설팅]Glster FS간단소개[오픈소스컨설팅]Glster FS간단소개
[오픈소스컨설팅]Glster FS간단소개
 
Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013
 
MySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestMySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software Test
 
개발자가 도전하는 MariaDB 서버구축
개발자가 도전하는 MariaDB 서버구축개발자가 도전하는 MariaDB 서버구축
개발자가 도전하는 MariaDB 서버구축
 

Similaire à Cubrid Inside 5th Session 3 Migration

[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4Seok-joon Yun
 
MariaDB 마이그레이션 - 네오클로바
MariaDB 마이그레이션 - 네오클로바MariaDB 마이그레이션 - 네오클로바
MariaDB 마이그레이션 - 네오클로바NeoClova
 
빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)Channy Yun
 
MySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptxMySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptxNeoClova
 
Spark+Cassandra Data pipeline optimazation at recommend system for recommend ...
Spark+Cassandra Data pipeline optimazation at recommend system for recommend ...Spark+Cassandra Data pipeline optimazation at recommend system for recommend ...
Spark+Cassandra Data pipeline optimazation at recommend system for recommend ...SuseongPark
 
Mongodb 특징 분석
Mongodb 특징 분석Mongodb 특징 분석
Mongodb 특징 분석Daeyong Shin
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기AWSKRUG - AWS한국사용자모임
 
elasticsearch_적용 및 활용_정리
elasticsearch_적용 및 활용_정리elasticsearch_적용 및 활용_정리
elasticsearch_적용 및 활용_정리Junyi Song
 
(11th korea data_tech_seminar)using_mongo_db_4.0_and_nosql_inbum_kim(skc&c)
(11th korea data_tech_seminar)using_mongo_db_4.0_and_nosql_inbum_kim(skc&c)(11th korea data_tech_seminar)using_mongo_db_4.0_and_nosql_inbum_kim(skc&c)
(11th korea data_tech_seminar)using_mongo_db_4.0_and_nosql_inbum_kim(skc&c)InBum Kim
 
SQL-on-Hadoop with Apache Tajo, and application case of SK Telecom
SQL-on-Hadoop with Apache Tajo,  and application case of SK TelecomSQL-on-Hadoop with Apache Tajo,  and application case of SK Telecom
SQL-on-Hadoop with Apache Tajo, and application case of SK TelecomGruter
 
Apache spark 소개 및 실습
Apache spark 소개 및 실습Apache spark 소개 및 실습
Apache spark 소개 및 실습동현 강
 
몽고디비교육1일차
몽고디비교육1일차몽고디비교육1일차
몽고디비교육1일차seung-hyun Park
 
Migration to Azure Database for MySQL
Migration to Azure Database for MySQLMigration to Azure Database for MySQL
Migration to Azure Database for MySQLrockplace
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제NAVER D2
 
Mongodb and spatial
Mongodb and spatialMongodb and spatial
Mongodb and spatialJiyoon Kim
 
Spark streaming tutorial
Spark streaming tutorialSpark streaming tutorial
Spark streaming tutorialMinho Kim
 
[Open-infradays 2019 Korea] jabayo on Kubeflow
[Open-infradays 2019 Korea] jabayo on Kubeflow[Open-infradays 2019 Korea] jabayo on Kubeflow
[Open-infradays 2019 Korea] jabayo on Kubeflow석환 홍
 

Similaire à Cubrid Inside 5th Session 3 Migration (20)

[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
 
MariaDB 마이그레이션 - 네오클로바
MariaDB 마이그레이션 - 네오클로바MariaDB 마이그레이션 - 네오클로바
MariaDB 마이그레이션 - 네오클로바
 
빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)
 
MySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptxMySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptx
 
Spark+Cassandra Data pipeline optimazation at recommend system for recommend ...
Spark+Cassandra Data pipeline optimazation at recommend system for recommend ...Spark+Cassandra Data pipeline optimazation at recommend system for recommend ...
Spark+Cassandra Data pipeline optimazation at recommend system for recommend ...
 
Druid+superset
Druid+supersetDruid+superset
Druid+superset
 
Mongodb 특징 분석
Mongodb 특징 분석Mongodb 특징 분석
Mongodb 특징 분석
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
 
elasticsearch_적용 및 활용_정리
elasticsearch_적용 및 활용_정리elasticsearch_적용 및 활용_정리
elasticsearch_적용 및 활용_정리
 
(11th korea data_tech_seminar)using_mongo_db_4.0_and_nosql_inbum_kim(skc&c)
(11th korea data_tech_seminar)using_mongo_db_4.0_and_nosql_inbum_kim(skc&c)(11th korea data_tech_seminar)using_mongo_db_4.0_and_nosql_inbum_kim(skc&c)
(11th korea data_tech_seminar)using_mongo_db_4.0_and_nosql_inbum_kim(skc&c)
 
SQL-on-Hadoop with Apache Tajo, and application case of SK Telecom
SQL-on-Hadoop with Apache Tajo,  and application case of SK TelecomSQL-on-Hadoop with Apache Tajo,  and application case of SK Telecom
SQL-on-Hadoop with Apache Tajo, and application case of SK Telecom
 
Hadoop administration
Hadoop administrationHadoop administration
Hadoop administration
 
Apache spark 소개 및 실습
Apache spark 소개 및 실습Apache spark 소개 및 실습
Apache spark 소개 및 실습
 
몽고디비교육1일차
몽고디비교육1일차몽고디비교육1일차
몽고디비교육1일차
 
Infiniflux introduction
Infiniflux introductionInfiniflux introduction
Infiniflux introduction
 
Migration to Azure Database for MySQL
Migration to Azure Database for MySQLMigration to Azure Database for MySQL
Migration to Azure Database for MySQL
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
 
Mongodb and spatial
Mongodb and spatialMongodb and spatial
Mongodb and spatial
 
Spark streaming tutorial
Spark streaming tutorialSpark streaming tutorial
Spark streaming tutorial
 
[Open-infradays 2019 Korea] jabayo on Kubeflow
[Open-infradays 2019 Korea] jabayo on Kubeflow[Open-infradays 2019 Korea] jabayo on Kubeflow
[Open-infradays 2019 Korea] jabayo on Kubeflow
 

Plus de CUBRID

Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...
Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...
Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...CUBRID
 
Database Sharding the Right Way: Easy, Reliable, and Open source - HighLoad++...
Database Sharding the Right Way: Easy, Reliable, and Open source - HighLoad++...Database Sharding the Right Way: Easy, Reliable, and Open source - HighLoad++...
Database Sharding the Right Way: Easy, Reliable, and Open source - HighLoad++...CUBRID
 
Installing CUBRID Database and CUBRID Manager on Windows
Installing CUBRID Database and CUBRID Manager on WindowsInstalling CUBRID Database and CUBRID Manager on Windows
Installing CUBRID Database and CUBRID Manager on WindowsCUBRID
 
Growing in the Wild. The story by CUBRID Database Developers.
Growing in the Wild. The story by CUBRID Database Developers.Growing in the Wild. The story by CUBRID Database Developers.
Growing in the Wild. The story by CUBRID Database Developers.CUBRID
 
CUBRID Cluster Introduction
CUBRID Cluster IntroductionCUBRID Cluster Introduction
CUBRID Cluster IntroductionCUBRID
 
CUBRID Inside - Architecture, Source & Management Components
CUBRID Inside - Architecture, Source & Management ComponentsCUBRID Inside - Architecture, Source & Management Components
CUBRID Inside - Architecture, Source & Management ComponentsCUBRID
 
CUBRID HA - Guaranteed Way to Never-Die Web Services - OSCON 2011
CUBRID HA - Guaranteed Way to Never-Die Web Services - OSCON 2011CUBRID HA - Guaranteed Way to Never-Die Web Services - OSCON 2011
CUBRID HA - Guaranteed Way to Never-Die Web Services - OSCON 2011CUBRID
 
CUBRID Developer's Course
CUBRID Developer's CourseCUBRID Developer's Course
CUBRID Developer's CourseCUBRID
 
The Architecture of CUBRID
The Architecture of CUBRIDThe Architecture of CUBRID
The Architecture of CUBRIDCUBRID
 
Installing CUBRID on Windows
Installing CUBRID on WindowsInstalling CUBRID on Windows
Installing CUBRID on WindowsCUBRID
 
Installing CUBRID on Linux
Installing CUBRID on LinuxInstalling CUBRID on Linux
Installing CUBRID on LinuxCUBRID
 
Cubrid Inside 5th Session 2 Ha Implementation
Cubrid Inside 5th Session 2 Ha ImplementationCubrid Inside 5th Session 2 Ha Implementation
Cubrid Inside 5th Session 2 Ha ImplementationCUBRID
 

Plus de CUBRID (12)

Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...
Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...
Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...
 
Database Sharding the Right Way: Easy, Reliable, and Open source - HighLoad++...
Database Sharding the Right Way: Easy, Reliable, and Open source - HighLoad++...Database Sharding the Right Way: Easy, Reliable, and Open source - HighLoad++...
Database Sharding the Right Way: Easy, Reliable, and Open source - HighLoad++...
 
Installing CUBRID Database and CUBRID Manager on Windows
Installing CUBRID Database and CUBRID Manager on WindowsInstalling CUBRID Database and CUBRID Manager on Windows
Installing CUBRID Database and CUBRID Manager on Windows
 
Growing in the Wild. The story by CUBRID Database Developers.
Growing in the Wild. The story by CUBRID Database Developers.Growing in the Wild. The story by CUBRID Database Developers.
Growing in the Wild. The story by CUBRID Database Developers.
 
CUBRID Cluster Introduction
CUBRID Cluster IntroductionCUBRID Cluster Introduction
CUBRID Cluster Introduction
 
CUBRID Inside - Architecture, Source & Management Components
CUBRID Inside - Architecture, Source & Management ComponentsCUBRID Inside - Architecture, Source & Management Components
CUBRID Inside - Architecture, Source & Management Components
 
CUBRID HA - Guaranteed Way to Never-Die Web Services - OSCON 2011
CUBRID HA - Guaranteed Way to Never-Die Web Services - OSCON 2011CUBRID HA - Guaranteed Way to Never-Die Web Services - OSCON 2011
CUBRID HA - Guaranteed Way to Never-Die Web Services - OSCON 2011
 
CUBRID Developer's Course
CUBRID Developer's CourseCUBRID Developer's Course
CUBRID Developer's Course
 
The Architecture of CUBRID
The Architecture of CUBRIDThe Architecture of CUBRID
The Architecture of CUBRID
 
Installing CUBRID on Windows
Installing CUBRID on WindowsInstalling CUBRID on Windows
Installing CUBRID on Windows
 
Installing CUBRID on Linux
Installing CUBRID on LinuxInstalling CUBRID on Linux
Installing CUBRID on Linux
 
Cubrid Inside 5th Session 2 Ha Implementation
Cubrid Inside 5th Session 2 Ha ImplementationCubrid Inside 5th Session 2 Ha Implementation
Cubrid Inside 5th Session 2 Ha Implementation
 

Cubrid Inside 5th Session 3 Migration

  • 1. 데이터 마이그레이션 - (CUBRID를 타겟DB로) 작성자: 이동현 소속팀 / 상위부서: CUBRID 개발랩 작성년월일: 2009.11.26 문서범위(사외 공개) ⓒ 2009 NHN CORPORATION
  • 2. 0. 마이그레이션 개요 - 데이터 옮길 때 무엇을 고려해야 하나?
  • 3. 0. 마이그레이션 개요 * 마이그레이션을 왜 하나? - 테이블 스키마 구조의 변경 - DB 제품의 변경 - 둘 다 1. 데이터 매핑 - 서비스 중인 소스와 새로 구성할 타겟 간의 데이터 매핑 관계 2. 실행 계획 수립 - 실행 순서, 실행 명령어, 실행시간 예측 3. 실행 스크립트 작성 - 순서별 실행 4. 제한 시간 이내에 마이그레이션 - 스냅샷 테이블 + 로그 테이블 5. 데이터 검증 - 카운트
  • 4. 1. 데이터 매핑 - 어디에서 어디로?
  • 5. 1. 데이터 매핑 고려 사항 1. 소스와 타겟의 테이블 구조가 같은가? ? 2. 테이블 구조가 다를 경우타겟에 추가/제거되는 컬럼과 그 값은 소스 데이터의 값을 가지고 결정할 수 있는가?
  • 6. 1. 데이터 매핑 고려 사항 3. 소스 테이블과 타겟 테이블의 DB가 다를 경우 매핑 컬럼 간 타입을 정의하고 확인한다. - 호환 타입 - 타입 간 제약 조건 - 타입의 길이 - 특수 문자의 확인
  • 7. 2. 실행 계획 수립 - 순서, 명령어, 시간
  • 8. 2. 실행 계획 수립 1. 실행 순서를 정한다 소스 DB 1 file copy 중간 데이터 중간 데이터 2 3 타겟DB
  • 9. 2. 실행 계획 수립 2. 실행 명령어를 정한다 unload : 소스 테이블과 타겟 테이블의 구조가 다르다면 “데이터 매핑” 규칙에 의해 loaddb용 파일을 생성하는 프로그램 작성 후 수행 scp : 원격으로 파일 카피를 하기 위해서 사용하는데, 암호를 물어보지 않고 전송하려면 다음의 3가지 단계를 거친다. 1) public key 생성 : ssh-keygen –t rsa 2) 1)에서 생성된 id_rsa.pub를 타겟 장비의 ~unixID/.ssh/authorized_keys의 이름으로 복사한다. 3) authorized_keys가 이미 존재한다면 id_rsa.pub의 내용을 뒤에 붙임 load: cubridloaddb --no-oid -u dba --load-only --no-logging --periodic-commit=10000 -d data_file DB_NAME
  • 10. 2. 실행 계획 수립 3. 실행 시간을 살핀다 - 실행하려는 데이터량과 실행 시간을 미리 측정하고, 이를 토대로 실행 예측 시간을 수립 . unload 시간 . scp시간 . load 시간
  • 11. 3. 실행 스크립트 작성 - 실행 순간에는 실행 자체에만 집중하자
  • 12. 3. 실행 스크립트 작성 모든 실행 순서를 스크립트로 자동화하자 * 실제 수행할 장비에서 미리 확인할 사항 - 실행 환경 (환경변수) - 파일 카피 발생시 디렉토리의 파일 생성 권한 - 프로그램 라이브러리의 버전 - 언어 인코딩 환경 - 응용 프로그램에서 url접속시인코딩 설정예) jdbc:cubrid:123.123.123.123 :11111:DBNAME:user:pwd:charset=utf8
  • 13. 4. 제한 시간 이내 마이그레이션 - 처리할 양은 많고, 주어진 시간은 부족하다.
  • 14. 4. 제한 시간 이내 마이그레이션 고려 사항 마이그레이션 작업을 모두 하기엔 서비스 정지 시간이 너무 짧다
  • 15. 4. 제한 시간 이내 마이그레이션 마이그레이션 실행 계획 순서 1)서비스 정지 전, 2)서비스 정지 중, 3)서비스 시작 이후의 3단계로 나누어 작업 1) 작업 스크립트 준비 2) 스냅샷 DB 백업 3) 스냅샷 로딩, 로그 테이블 반영
  • 16. 4. 제한 시간 이내 마이그레이션 스냅샷 로딩 - 스냅샷 DB에서 덧글 DB에 로딩 스냅샷 DB2 스냅샷 DB1 스냅샷 DBn …… 타겟DB1 타겟DB 2 …… …… 타겟DB n 로딩할 데이터 – CUBRID loaddb포맷
  • 17. 4. 제한 시간 이내 마이그레이션 로그 테이블 반영 - 로그 테이블을 덧글DB에 반영 타겟DB1 로그반영 프로세스 타겟DB 2 * 어느 DB? …… …… 타겟DB 8 *DML Type INSERT? UPDATE? DELETE? 반영할 로그 테이블들
  • 18. 5. 데이터 검증 - 소스와 타겟의 데이터 비교
  • 19. 5. 데이터 검증 테이블 별 데이터 비교 - 소스와 타겟에서 생성한 데이터 파일을 sort 한 후 diff로 비교 예) sort srcA.txt > srcB.txt; sort tgtA.txt >tgtB.txt diff srcB.txt tgtB.txt 테이블 별 전체 카운트 비교 - 소스 테이블과 타겟 테이블의 각 카운트를 텍스트로 내린 후 diff로 비교