Blog >> MySQL >> Whitepapers.
InnoDB 마이그레이션
요즘 이노디비 SELECT 가 빨라졌다고 한다.
SELECT 가 빠르다는 이유로 MyISAM 엔진을 고집했는데, 그럴 이유가 없어 졌음.
트랜젝션, 비상 상황에서 대처 등 이유로 InnoDB 로 마이그레이션 결정.
작업의 순서는
- 먼저 마이그레이션 할 DB 를 파일로 덤프.
- 덤프 파일의 테이블 목록을 InnoDB 형태로 치환. – 엔진, 날짜, 시간
- 서버의 설정 파일을 수정 – 설정 검수 – mariadbd –verbose –help > /dev/null
- Redo 로그의 크기가 변경됨으로 설정 변경 후 데몬 재 시작
- 데몬 재 시작 후 데몬 상태 점검.
- 기존 데이터 베이스 드롭 후, 데이터 베이스 생성
- 덤프 파일을 해당 데이터 베이스에 입력 – 입력 시 버퍼 사이즈 임시 증가 옵션 포함.
- 입력 완료 후 InnoDB 형태의 테이블 확인.
~]$ mysqldump -u root -p --single-transaction --routines --triggers wp_test > wp_test_innodb.sql
~]$ sed -i 's/1970-01-01 00:00:00/1970-01-01 00:00:00/g' wp_test_innodb.sql
~]$ sed -i 's/ENGINE=InnoDB/ENGINE=InnoDB/g' wp_test_innodb.sql
혹은
~]$ mysql wp_test
[mysql]>SELECT CONCAT('ALTER TABLE `', table_name, '` ENGINE=InnoDB;') FROM information_schema.tablesWHERE table_schema = 'wp_test' AND ENGINE = 'MyISAM';
~]$ cp mariadb-server.cnf /etc/my.cnf.d/mariadb-server.cnf
# 최근 버전의 mariadb : 워드프레스 Zero Date (0000-00-00) 호환성을 위해 Strict 모드 완화 위한
# [mysqld] 섹션에 다음 한 줄을 추가 - 옵션
sql_mode = "ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
~]# mariadbd --verbose --help > /dev/null
~]# systemctl status mariadb
~]# systemctl stop mariadb
~]# systemctl start mariadb
~]# systemctl status mariadb
~]# mysql mysql
[mysql]>DROP DATABASE wp_test;
[mysql]>CREATE DATABASE wp_tvdhgb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
[mysql]>exit;
~]$ mysql --max_allowed_packet=256M -u root -p wp_test < wp_test_innodb.sql
~]$ mysql wp_test
[wp_test]>SELECT table_name, engine FROM information_schema.tables WHERE table_schema = 'wp_test';
+----------------------------+--------+
| table_name | engine |
+----------------------------+--------+
| wp_users | InnoDB |
| wp_posts | InnoDB |
| wp_term_taxonomy | InnoDB |
| wp_clecture | InnoDB |
| wp_links | InnoDB |
| wp_terms | InnoDB |
| wp_options | InnoDB |
| wp_ctime | InnoDB |
| wp_term_relationships | InnoDB |
| wp_quizmaker_sessions | InnoDB |
| wp_commentmeta | InnoDB |
| wp_comments | InnoDB |
| wp_quizmaker_results | InnoDB |
| wp_postmeta | InnoDB |
| wp_termmeta | InnoDB |
| wp_quizmaker_test_sessions | InnoDB |
| wp_usermeta | InnoDB |
+----------------------------+--------+
17 rows in set (0.000 sec)- 포스트 태그:
- getenforce
- semanage
- sestatus
- 포스트 위치:
- MySQL
- Whitepapers
<< 이전 페이지



