CI 묻고 답하기

제목 [초보]다중DB백업
글쓴이 헛발이 작성시각 2012/10/19 09:35:25
댓글 : 8 추천 : 0 스크랩 : 0 조회수 : 16167   RSS
고수님들 잘 부탁드립니다...

하나의 서버에 여러 DB를 가지고 있습니다...
즉 MySQL로 들어가 보면 db1,  db2, db3.....등등 약 200여개의 데이터베이스를 가지고 있습니다.
다 작은것들이죠... 잡동산이들....

근데 이것을 백업을 하려고 합니다...

구현하려는것은 클론으로 5분에 하나의 DB씩 백업을 하려고 합니다.
DB에 각기 DB의 정보들(유져,비밀번호..)을 기억해 두고 순서대로 하나씩 백업하는것을 CI로 하려고 합니다.

그런데 메뉴얼을 보니 간단히
$this->load->dbutil();
$backup =& $this->dbutil->backup(); 
이걸로 하면 될듯 싶어서 해 봤더니 현재 연결되어 있는 DB를 백업해주더군요...

올커니! 역시 간단하고 명료하구만!! 하고는 다른 DB를 연결해서 백업해 보려구 했습니다..
그런데 거기서 막혔어요 ㅋㅋ

다른 DB를 연결 하려고
$this->db->close();

$group_name = 'test1';
$username = 'username1';
$password = 'password1';
$database = 'database1';

$db[$group_name]['hostname'] = 'localhost';
$db[$group_name]['username'] = $username;
$db[$group_name]['password'] = $password;
$db[$group_name]['database'] = $database;
$db[$group_name]['dbdriver'] = 'mysql';
$db[$group_name]['dbprefix'] = '';
$db[$group_name]['pconnect'] = TRUE;
$db[$group_name]['db_debug'] = TRUE;
$db[$group_name]['cache_on'] = FALSE;
$db[$group_name]['cachedir'] = '';
$db[$group_name]['char_set'] = 'utf8';
$db[$group_name]['dbcollat'] = 'utf8_general_ci';
$db[$group_name]['swap_pre'] = '';
$db[$group_name]['autoinit'] = TRUE;
$db[$group_name]['stricton'] = FALSE;
$this->load->database($group_name);

$this->load->dbutil();
$backup =& $this->dbutil->backup(); 
이렇게 해 봤습니다..
즉 config에 설정되어 있는 DB를 일단 끊어 버리고 새로 연결해서 원하는 DB를 백업 받으려구 생각했었죠..
틀린 생각이였나봐요~

이렇게 해도 config에 설정되어 있는 DB를 백업받더군요...
뭐 잘못했나요??

 다음글 페이징처리 질문입니다~ (4)
 이전글 system에 core에 codeingniter.php... (5)

댓글

변종원(웅파) / 2012/10/19 09:56:20 / 추천 0
잘못하신거 없구요. 매뉴얼 그대로입니다. 처음 선언된거 말고 안됩니다. 굳이 쓰셔야한다면 db의 내용으로 database.php 파일 자체를 건건이 갱신해서 쓰시거나 core를 수정하셔야 합니다
헛발이 / 2012/10/19 09:58:53 / 추천 0
아 그렇군요~ 초고속 답변 감사합니다...
헛발이 / 2012/10/19 10:08:24 / 추천 0
앗!!! 웅파님 해결되었어요!!!!!!

$username = 'username1';
$password = 'password1';
$database = 'database1';

$myDB['hostname'] = 'localhost';
$myDB['username'] = $username;
$myDB['password'] = $password;
$myDB['database'] = $database;
$myDB['dbdriver'] = 'mysql';
$myDB['dbprefix'] = '';
$myDB['pconnect'] = TRUE;
$myDB['db_debug'] = TRUE;
$myDB['cache_on'] = FALSE;
$myDB['cachedir'] = '';
$myDB['char_set'] = 'utf8';
$myDB['dbcollat'] = 'utf8_general_ci';
$myDB['swap_pre'] = '';
$myDB['autoinit'] = TRUE;
$myDB['stricton'] = FALSE;

$this->db = $this->load->database($myDB, TRUE);
$this->load->dbutil();
이렇게 TRUE로 객체로 받아 $this->db에 넣었더니 되네요... ㅠㅠ
감사합니다..
한대승(불의회상) / 2012/10/19 10:45:49 / 추천 0
헛발이// 덕분에 좋은 팁 하나 얻었네요... ^^
요약하면 '득팁(?)' ㅎㅎㅎㅎㅎ
헛발이 / 2012/10/19 10:48:45 / 추천 0
다 모두들의 덕분이죠 ㅋㅋ
덕팁 ㅋㅋㅋ

변종원(웅파) / 2012/10/19 11:01:40 / 추천 0
헛발이/ 대박인데요? 한마디로 ci를 속인거네요. ㅋ

헛발이 / 2012/10/19 11:06:26 / 추천 0
그러게요~
이후 작업은 기본설정된 DB로 적용되더라구요~

 $this->db->close();

이건 필요없더라구요~
변종원(웅파) / 2012/10/19 11:17:46 / 추천 0
 네. 그건 ci에서 자동으로 해주니까요.