11. Cloud Z DB Migration

Print

기존 사용중인 MariaDB(mysql)를 Colud Z DB 서비스로 마이그레이션 하는 방법을 가이드 합니다.

해당 마이그레이션 방법은 데이터를 추출(Export) 및 주입(Import) 과 데이터 확인 방법으로 구성되어 있습니다.

마이그레이션 확인 방법에는 최소한의 마이그레이션 확인사항이며, 업무별 주요 데이터에 대해서는 사용자가 직접 확인을 해야 합니다.


아래 방법으로 마이그레이션이 제한이 될 경우에는 Cloud Z Support Portal 통해서 티켓으로 요청해 주시기 바랍니다.


11.1.기존 사용중인 MariaDB(mysql) 데이터 추출(Export)


11.1.1. 도구를 활용한 방법(MysqlWorkbench 활용)

OS에 맞게 MysqlWorkbench 다운로드 합니다.


설치 이후에 MysqlWorkbench를 실행하여 기존의 사용중인 MariaDB(mysql) Connection 정보를 입력합니다.


기존의 사용중인 MariaDB(mysql) 접속하여 Dump를 수행합니다.


11.1.2. mysql client를 통한 CLI 활용 방법

전체 데이터베이스 추출하기

$ mysqldump -uroot -p****** -A > backup_full.sql

특정 데이터베이스 (db1)만 추출

$ mysqldump -uroot -p****** db1 > backup_db1.sql


InnoDB 일 경우에는 --single-transaction 옵션을 사용하여 lock 을 걸지 않고도 Dump가 가능합니다.

또한, function, procedure 가 있는 경우에는 --routines 옵션을 추가합니다.

더 많은 옵션의 경우에는 https://mariadb.com/kb/en/library/mysqldump/ 참고하시기 바랍니다.


11.2.Colud Z DB 서비스 데이터 주입(Import)


11.2.1. 도구를 활용한 방법

Cloud Z DB에서 생성한 mariadb의 Connection 정보를 확인합니다.

Cloud Z DB에서 생성한 mariadb의 Connection를 MysqlWorkbench 에 등록합니다.

Data Import를 통해서 데이터를 주입(Import) 합니다.



11.2.2. mysql client를 통한 CLI 활용 방법

Cloud Z DB에서 생성한 mariadb의 Connection 정보를 확인한다.

아래 명령어를 활용하여 데이터를 주입(Import) 한다.

$ mysql -uroot -p********** -h************* < employees.sql
...


11.2.3. Local PC와 Cloud Z DB 간 Network 지연이 발생하거나 도구를 이용한 접속이 불가능한 경우

컨테이너에 직접 파일을 업로드 후 접속해서 Import 가능합니다.

  1. Import 데이터 sql을 컨테이너에 복사합니다.

    $ kubectl cp ./backup.sql {NAMESPACE명}/{MASTER_DB_POD명}:bitnami/mariadb/backup/backup.sql
  2. DB 컨테이너에 접속합니다.

    $ kubectl exec {MASTER_DB_POD명} -n {NAMESPACE명} -it bash
  3. DB 컨테이너 안에서 mysql을 이용해 Data Import 합니다.

    $ cd /bitnami/mariadb/backup 
    $ mysql -uroot -p{ROOT_PASSWORD} -p {DATABASE명} < ./backup.sql


11.3. 마이그레이션 데이터 확인 방법


기존 사용중인 MariaDB와 아래 결과를 확인합니다.


테이블 리스트  및 raw 수 확인

MariaDB [(none)]> SELECT TABLE_SCHEMA, TABLE_NAME, ENGINE, TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA not in ('information_schema', 'mysql', 'performance_schema')

+--------------+-------------------+--------+------------+
| TABLE_SCHEMA | TABLE_NAME        | ENGINE | TABLE_ROWS |
+--------------+-------------------+--------+------------+
| zdb          | backup_entity     | InnoDB |        262 |
| zdb          | disk_usage        | InnoDB |         13 |
| zdb          | event_meta_data   | InnoDB |       1737 |
| zdb          | meta_data         | InnoDB |        157 |
| zdb          | mycnf             | InnoDB |         38 |
| zdb          | release_meta_data | InnoDB |         57 |
...


데이터베이스별 용량 확인 (Storage 저장 엔진과 OS 환경에 따라서 상이 할 수 있습니다. )

MariaDB [(none)]> SELECT table_schema "DB Name", ROUND(SUM(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB"
    -> FROM information_schema.tables 
    -> WHERE TABLE_SCHEMA not in ('information_schema', 'mysql', 'performance_schema' )
    -> GROUP BY table_schema;
+---------+---------------+
| DB Name | DB Size in MB |
+---------+---------------+
| zdb     | 12.9          |
...

이 답변이 유용합니까? 아니오

Send feedback
도움이 되어드리지 못해 죄송합니다. 아티클 개선을 위해 의견을 제공해 주시기 바랍니다.