CI 묻고 답하기

제목 [초보]메모리문제
글쓴이 헛발이 작성시각 2012/10/22 11:10:08
댓글 : 11 추천 : 0 스크랩 : 0 조회수 : 15429   RSS
아직 DB백업 하는것을 하고 있답니다.. ㅋㅋ
거의 다 만들었는데...

Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 46 bytes) in /home/......../system2.1.2/database/drivers/mysql/mysql_result.php on line 152

라고 에라가 자꾸 떨어집니다...
데이터가 작은것은 안나오는데 좀 큰건 자꾸 저렇게 나오네요...

그래서 얼마나 되는가 하고 PhpMyAdmin으로 가서 용량을 보니 19메가 되더라구요~
서버의 설정을 바꾸는건 좀 그래서....htaccess에다가..

php_value memory_limit 128M

를 해 봤습니다..
뭐 그래도 자꾸 에라가 나는데요...
소스의 어디서 저 메시지나 나오나 확인 해 봤더니..
백업을 해서 변수에 넣는...

$backup =& $this->ci->dbutil->backup();

여기서 저 메시지나 떨어지더라구요~
PHP에 관한 문제인건지... 아니면 MySQL에 대한 문제인건지...
htaccess만으로는 해결 하기 힘든건지.. 알고 싶은데요...

음...
 다음글 codeigniter user_agnet사용시 문제관련... (2)
 이전글 초보의 프레임웍 사용 질문 (3)

댓글

criuce / 2012/10/22 11:15:25 / 추천 0
 db 사이즈가 128M보다 커서 생기는 문제 아닐까요?
가능한 훨씬 더 크게 키워주셔야 할듯 합니다.
헛발이 / 2012/10/22 11:16:47 / 추천 0
DB는 19메가 밖엔 안되던데...
음..

512로 해 보니... 역시 엄청나게 큰가 보네요...
한참을 버벅되더니... 이번엔 Insert하는데서 에라가 나네요..

음... 감사합니다..
좀더 찾아보도록 하겠습니다..
milosz / 2012/10/22 11:33:21 / 추천 0
 음; 너무 큰 작업이라면 실서비스에 큰 영향을 줄 법한데요?? 흠..
헛발이 / 2012/10/22 11:37:02 / 추천 0
그러게요...생각해볼 문제네요...
단순히 DB하나에  작은거라서 한 1,2초 정도 걸린다면 약 200여개를 그냥 클론으로 매일 백업하려구 했는데..
이렇게 커서 버벅된다면... 다시 생각해 봐야 겠네요..
한대승(불의회상) / 2012/10/22 11:37:34 / 추천 0
mysql 이면 DB환경만 물고 와서 mysqldump 를 써서 하시는게 더 나을듯 싶습니다. ^^
헛발이 / 2012/10/22 11:45:49 / 추천 0
불의회상님 그냥 쉘로 하는게 좋다는 말씀이신거죠?
음...더 공부가 필요할듯 싶네요.. ㅋ
한대승(불의회상) / 2012/10/22 12:00:21 / 추천 0
ㅎㅎㅎㅎ 공부씩이나.. ^^

`/.../mysql/bin/mysqldump -h 호스트명 -u 유저명 -p 디비암호 디비명 > /.../더프파일명.sql`;

이 한 줄이면 끝..

덤프 끝나면 다운로드 로직으로 보내거나 압축을 하여 나머지 처리 하시면 될 것 같습니다.
헛발이 / 2012/10/22 12:03:53 / 추천 0
매일 매일 자동으로 처리 해 주고 싶었거든요...
꽤 많은 약 200여개의 DB를 매일 또는 3일에 한번 정도 해주고 싶었는데..
매번 DB가 늘어가거나 하면 매번 들어가서 설정파일을 수정하는 번거러음을 없애려구
그냥 웹에서 설정하고 처리 해 주려구 했거든요... ㅋㅋ

음...뭐 좋은 아이디어가 필요할듯 싶어요.. ^^;;
변종원(웅파) / 2012/10/22 12:31:22 / 추천 0
 웹에서 리눅스 서버에 직접 명령을 실행시키게 하는 것은 위험합니다만 

웹설정 -> 백업 스크립트 작성 -> 실행 형태로 하시는 것이 좋을 것 같네요.

웹에서 다이렉트로 백업은 부하문제가 있구요. phpmyadmin만 해도 웹에서 직접 백업, 복원이 되지만
부하 엄청 납니다.

웹에서 설정한 것을 백업 스크립트로 만들어서 파일로 쓰고 그걸 크론으로 실행하는 형태가
제일 낫습니다.
한대승(불의회상) / 2012/10/22 12:33:02 / 추천 0
mysqldump 호출하는게 더 쉽지 않을까요? ^^

cron으로 돌린다면 그냥 php 파일에 배열로 정보 집어 넣어 넣기만 하면 될거 같은데요.

헛발이 / 2012/10/22 12:33:49 / 추천 0
그렇군요~ 결국 직접 백업은 힘들겠군요.. ㅋㅋ
결국 저도 한삽질.. ㅋㅋ

웅파님 불의회상님 답변 감사합니다..