[펌] InnoDB 이슈 – 관리좀 하자

==========================================================

출처 : https://m.blog.naver.com/PostView.nhn?blogId=neat98&logNo=120209381317&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F

==========================================================

 

 

상용 서버의 환경 설정을 보니,

innodb_file_per_table 는 OFF 이고,

innodb_data_file_path 는 ibdata1:10M:autoextend

 

이렇게 설정 되어 있다.

최악이다.

 

즉, 한파일에 유저 데이터를 다 쓰고, 4G 넘어가면 이슈가 터질 것이다.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

흠흠…

  매뉴얼에 4G 한계에 대해 써 있다는데, OS에서 지원 되면 상관 없단다.

  

[출처]

http://www2.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_db&wr_id=158473&sfl=&stx=&sst=wr_hit&sod=asc&sop=and&page=2796

 

흠흠… 믿어도 될까..?  일단, 성능 관련 옵션은 넣었으니..

아래 내용 폭파 하고 갈때 까지 가 보자.. 실험 정신 ㅡ.ㅡ;;

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

 

 

 

 

개발기에서 바꿔 본것 적용해 보자…. 3Gbyte 넘기 전에…

 

1. mysqldump 를 이용해 다시 만들 database 를 백업 한다.

#mysqldump -uxxx -pxxx  DataBaseName > ExportFileName.sql

 

 

2. 데이터 관리 디렉토리를 루트에 따로 만들자.. (내맘)

#mkdir /MYSQL_DATA

#chown mysql:mysql /MYSQL_DATA

 

 

3. 기존에 있던 기본 데이터를 복사해 온다.

#cd /MYSQL_DATA

#cp -a /var/lib/mysql ./

 

4.복사해 온 기존에 데이터와 로그 파일을 지운다.

#rm -rf DataBasesName

#rm ibdata*

#rm ib_logfile*

 

5. my.cnf 를 수정 한다.

#vi /etc/mysql/my.cnf  (실 서버 경로 다를 수 있다)

 

[mysqld]

#—성능 튜닝 빼먹은것들..이 글 주제와 관련없음—

#넣기 전에 상용에 설정 된거 있는지 검색해 볼것…

skip-name-resolve

 

# connection miss 가 클때만 (1%이상) 길게 잡을것

wait_timeout = 120

 

#총 메모리 25%. (상용은 좀 더 크게 가능 하겠다.)

key_buffer_size = 1024M

 

# 메모리의 80% 까지 잡아 놓을 수 있으나 너무 크면 페이징 발생. (상용은 좀 더 크게 가능 하겠다.)

innodb_buffer_pool_size=4096M

#———————————————-

#datadir        = /var/lib/mysql     #기존거 주석, 경로 바꿔준다.

datadir         = /MYSQL_DATA   

….

###innodb data dir ################

innodb_data_home_dir =/MYSQL_DATA

#상용 서버에 맞게 용량 크게 설정 하자…

innodb_data_file_path=ibdata1:1500M;ibdata2:1500M;ibdata3:1500M;ibdata4:1000M:autoextend

 

 

# 이 값이 1 이면, 테이블 당 1개씩 ibd 파일이 생성되나, data_file_path 옵션이 무시 된단다..

innodb_file_per_table=0

 

 

6. 우분투 니까 apparmor 도 바꿔준다.

#vi /etc/apparmor.d/usr.sbin.mysqld

 

/var/lib/mysql/ r,

/var/lib/mysql/** rwk,

 

를 찾아서 변경한 디렉토리로 바꿔 준다.

 

  /MYSQL_DATA/ r,

  /MYSQL_DATA/** rwk,

 

저장 하고 나와서 apparmor 리로드

#/etc/init.d/apparmor restart

 

7. mysql 재시작

#/etc/init.d/mysql restart

 

8. 잘 올라오면 처음에 백업한 데이터 밀어 넣기

8-1. Database 생성

#mysql -u root -p

mysql>create database DataBaseName;

 

8-2. Data import

#mysql -u xxx -p DataBaseName < DataBaseName.sql

 

 

여분… 잘 되는지 확인 한 후,

/var/lib/mysql 여기 가서 쓰래기가 된 파일들 날려 버릴것….

 

==========================================================

출처 : https://m.blog.naver.com/PostView.nhn?blogId=neat98&logNo=120209381317&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F

==========================================================

댓글 남기기