2010년 11월 18일 목요일

MySQL 테이블 체크 및 자동 복구

자체적으로 만든 스크립트를 이용해서 테이블별로 백업을 하면서 테이블 체크를 하는데

mysqlcheck 란 실행 화일을  cron에다 등록 시켜서 해도 상관 없겠다.

 

 

$backup_db = array("db1","db2")
$optimize =1;

foreach($backup_db AS $dbName)
{
 echo "\n==========  $dbName ==========\n";

 // DB
 $cmd="mysql -uroot -p".DB_PW." $dbName -e\"show tables\" ";
 exec($cmd,$tableArr);
 // 테이블
 foreach($tableArr As $val)
 {
   if(strstr($val,"+")) continue;
   if(strstr($val,"Tables_in_".$dbName)) continue;
   if(ereg("([a-zA-Z0-9_])+",$val,$regs))
   {
     $tableName=trim($regs[0]);
   }
   else
    continue;
// 필요 없는 건 걸러내고 테이블 이름만 취한다.
 
  if($optimize)
  {
   $opt_exe = "mysql -uroot -p".DB_PW."  $dbName  -e\"optimize table device.$tableName\" ";
   exec($opt_exe,$output);
  }
  $dateYMD= date("Y-m-d");
  $last_line=system("mysqldump -uroot -p".DB_PW."  --extended-insert=FALSE --add-drop-table  --create-options --disable-keys --add-locks --skip-opt  --no-create-db  --default-character-set=euckr  --set-charset -n -t \"$dbName\" $tableName > $backupDir/$dateYMD/{$tableName}.sql");
} //전체루프

 

mysql -uroot -p암호 -e"optimize table tablename" 이런식으로 테이블 최적화 하고 php 스크립트를 cron에다 등록 시켜 놓는다.

 

다음과 같이 유틸리티를 써서 하는게 편하겠다.

00 2 * * * root /usr/local/mysql/bin/mysqlcheck -uroot -p암호 -rao --all-database --auto-repair > /dev/null 2 > &1

 

으로 하면 2시에 인덱스 복구, 최적화,분석 까지 --auto-repair 면 잘못 된 테이블 복구 까지 자동으로 해준다.

MySQL DB 백업 및 일자별 압축 한방에..

 

mysqldump -u사용자이름 -p암호 --all-databases | bzip > /data/backup/dbbackup_`date +%Y-%m-%d`.dump.bz2

 

 

/data/backup/dbbackup_YYYY-MM-DD.dump.bz2  형식으로 파일이 만들어져서 쌓이게 됩니다.

mysqldump 로 나온 텍스트 데이타를 파이프를 이용해서 흘러나온 데이타를 bzip에서  바로 압축 하는 것입니다.

파이프 뒤에 tar 나 기타 압축 도구를 사용해도 되며 mail 을 사용해서 전송 할수도 있습니다.

2010년 11월 17일 수요일

그림주위의 채워진 글

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
 </HEAD>
 <style>

 </style>
 <script>

 $(document).ready(function() {
    $('.feature1').css({'width':'50%', 'border':'1px dashed', 'float':'left'});
});
 </script>
<body>
<img src='dddd'  alt='그림'> <class="feature1">123456778891234567788912345677889123456778891234567788912345677889123456778891234567788912345677889123456778891234567788912345677889123456778891234567788912345677889123456778891234567788912345677889 </p>
</body>
</HTML>

에버노트에서 원노트로 데이터 옮겨오기

에버노트를 무료로 이용하려면 한달에 업로드 할 수 있는 용량이 60M 밖에 되지 않습니다. 원노트도 에버노트만큼 기능이 개선되었고 무엇보다도 무료로 사용 할 수 있고 용량의 제약이 없어서 최근에는 업무 및 정보 수집 용도로 에버노트를 이용중입니다...