사이트 내 전체검색
MySQL Check & Repair 유틸리티
로빈아빠
https://cmd.kr/server/1057 URL이 복사되었습니다.

본문

MySQL Check & Repair 유틸리티

1. 사용

[root@ihelpers bin]# php -q mysqlchecker.php -c analysis
총 테이블 개수 : 80 개

AD_T : OK
AFF_T : OK
CLOSE_T : OK
CODE_T : OK
CONFIG_T : OK
COUNTRY_T : OK
ENV_BROWSER_T : OK
ENV_COUNTRY_T : OK

2. Cron

30 04 * * * /usr/local/bin/php -q /data1/wwwroot/analysis/bin/mysqlchecker.php -c analysis | mail -s "Analysis MySQL Check" smson@ihelpers.co.kr

3. 소스

<?
/*///////////////////////////////////////////////////////////////


 프로그램명 : mysqlchecker
 버전   : 0.9
 작성자  : 손상모
 최초작성일 : 2006.05.20


 *** 설명 ***
 
 MySQL 점검 및 수정 유틸리티


 *** 변경 내역 ***


 없슴


/////////////////////////////////////////////////////////////////*/



set_time_limit
(0);


if ($argc < 3 || in_array($argv[1], array('--help', '-help', '-h', '-?'))) {
 echo
"Usage : mysqlchecker.php -a <database>
 mysqlchecker.php [options] -c <database>
 mysqlchecker.php [options] -r <database>


 -c <database> 데이타베이스 점검
 -r <database> 데이타베이스 점검 및 수정
 -f  빠르게 점검하기    
"
;
 
exit;
} else {
 $ARGVCMDS  
= array("a","r");
 $ARGVOPTIONS  
= array();


 $options  = array();
 $args  
= array();


 for($i=1;$i<$argc;$i++){
 
if(substr($argv[$i],0,1) == "-"){
   $o
= substr($argv[$i],1,1);
   
if(in_array($o,$ARGVCMDS)){
    $cmd
= $o;
   
} else {
    array_push
($options,$o);
   
}
 
} else {
   array_push
($args,$argv[$i]);
 
}
 
}
}


$C_HOSTNAME  = "210.116.***.***";
$C_UID    
= "wsos";
$C_PWD  
= "*****";
$C_DATABASE
= $args[0];


$fast = false;
$repair
= false;


if($cmd == "r") $repair = true;
if(in_array("f",$options)) $fast = true;


// Database 연결
$conn
= mysql_connect($C_HOSTNAME, $C_UID, $C_PWD) or die ("Connection Error :" . mysql_error() );
mysql_select_db
($C_DATABASE,$conn) or die ("Database Use Error : " . mysql_error() );


$sql = "
 SHOW TABLES
"
;
$rsTable
= mysql_query($sql,$conn) or die(mysql_errno()." : ". mysql_error());


printf("총 테이블 개수 : %d 개\n\n",mysql_num_rows($rsTable));


if($fast) $checktype = "FAST";


while (list($table) = mysql_fetch_row($rsTable)){


 printf("%s : ",$table);


 $isOK = false;
 $msg  
= "";
 
 $sql
= "CHECK TABLE `$table` $checktype";
 $result
= mysql_query($sql,$conn) or die(mysql_errno()." : ". mysql_error());
 
if($row = mysql_fetch_assoc($result)){


  mysql_data_seek($result, mysql_num_rows($result)-1);


  if($row["Msg_type"] != 'status'){
   $isOK
= false;
   $msg  
= $row["Msg_text"];
 
} else {
   $isOK
= true;


   if($row["Msg_text"] != "OK"){
    $msg  
= sprintf("OK (%s)",$row["Msg_text"]);
   
} else {
    $msg  
= $row["Msg_text"];
   
}
 
}
 
} else {
  $isOK
= false;  
  $msg  
= "FAIL";
 
}


 printf("%s\n",$msg);


 if($repair && !$isOK){


  $sql = "REPAIR TABLE `$table`";


  printf("%s : ",$sql);


  $repair = "";
  $reRepair
= mysql_query($sql,$conn) or die(mysql_errno()." : ". mysql_error());
 
if($row = mysql_fetch_assoc($reRepair)){


   mysql_data_seek($reRepair, mysql_num_rows($reRepair)-1);
   $repair
= $row["Msg_text"];
     
 
} else {
   $repair
= "FAIL";
 
}


  printf("%s\n",$repair);


 }
}


?>


댓글목록

등록된 댓글이 없습니다.

1,139 (16/23P)

Search

Copyright © Cmd 명령어 3.144.252.196