提供一个数据库备份的SP类

#1 anythink

使用效果

未命名.jpg

本代码取自云边开源轻博 dbbackup.rar

之前一直说做一个,正好在云边上需要这么个功能,这次就提供出来供大家一起使用。

放到可以被 import 的地方

使用方法:

 
  $db = spClass('dbbackup', array(0=>$GLOBALS['G_SP']['db'])); //初始化数据库处理

$this->data =  $db->showAllTable($this->spArgs('chk'));  //显示表详情,如果chk问1 则检查表

$db->optimizeTable($this->spArgs('tabl'))   //优化表tabl 为表明

$db->repairTable($this->spArgs('tabl'));  //修复表tabl为指定表名

$db->outTable($this->spArgs('outab'));  //导出单表outab 为表明
$db->outAllData();  //导出所有表



html


   
   
      
        
         
         
        
      
        
        
        
        
         
        
        
        
        
      
  {foreach from=$table.rs item=d}
   
      
      
        
        
         
         
        
        
        
        
        
        
        
      
  
   {/foreach}
   
      
      
        
        
         
         
        
        
        
      
        
        
        
      
   
数据表引擎字符集占用空间记录数表状态创建时间更新时间检查时间多余操作
{$d.TABLE_NAME}{if $d.TABLE_COMMENT != ''}({$d.TABLE_COMMENT}){/if}{$d.ENGINE}{$d.TABLE_COLLATION}{formatBytes size=$d.DATA_LENGTH}{$d.TABLE_ROWS}{if $d.ROW_FORMAT == 'Dynamic'}动态{else}静态{/if}{ybtime time=strtotime($d.CREATE_TIME)}{ybtime time=strtotime($d.UPDATE_TIME)}{ybtime time=strtotime($d.CHECK_TIME)}{if $d.DATA_FREE !=0}{formatBytes size=$d.DATA_FREE} {else}正常 {/if}
      
        {if $d.DATA_FREE !=0} {/if}
        {if $d.CHECK_TABLE  !='OK' && $d.CHECK_TABLE !='NCHECK'}
         
         {/if}
         
         {if $d.DATA_FREE =0  || $d.CHECK_TABLE !='NCHECK' || $d.CHECK_TABLE !='OK'}
         
           {/if}
        
表总数:{$table.all_table}占用空间:{formatBytes size=$table.all_byte} 多余:{formatBytes size=$table.all_free}

   

 



该贴已经同步到 anythink的微博

2011-09-21 15:02:08

#2 anythink

请 jack 移到审核区谢谢!

2011-09-21 15:03:15

#3 anythink

顺便说下 云边的域名更换为 http://qing.thinksaas.cn 了~~ 烦请改下案例页面

2011-09-21 15:04:48

#4 jake

顺便说下 云边的域名更换为  了~~ 烦请改下案例页面
anythink 发表于 2011-9-21 15:04
已改。

这个类不错。

2011-09-21 18:41:24

#5 anythink

回复 4 jake


    哈哈,研究了一会, 一会切到 information_schema 一会切到主表

2011-09-22 16:20:28

#6 kilom

formatBytes 出错了,怎么解决?

2011-09-24 16:22:44

#7 lkmtdgt

好东西,值得分享

2011-10-14 19:50:01

#8 lkmtdgt

好东西,值得分享

2011-10-14 19:50:03

#9 anythink

formatBytes  哈 忘了贴了

2011-10-17 10:32:08

#10 anythink

function formatBytes($params) {
$bytes = $params['size'];
if($bytes >= 1073741824) {
$bytes = round($bytes / 1073741824 * 100) / 100 . 'GB';
} elseif($bytes >= 1048576) {
$bytes = round($bytes / 1048576 * 100) / 100 . 'MB';
} elseif($bytes >= 1024) {
$bytes = round($bytes / 1024 * 100) / 100 . 'KB';
} else {
$bytes = $bytes . 'Bytes';
}
return $bytes;
}
spAddViewFunction('formatBytes','formatBytes');


ok!

2011-10-17 10:32:26

#11 anythink

原来楼上...那天是我生日。。。。:)

2011-11-17 14:51:38

#12 lijian

问一下楼主,貌似类里面没有备份和恢复功能哦

2012-05-05 11:22:56

#13 小双

ybtime 这个方法也没有,望楼主贴出来哦

2014-03-24 00:55:32

#14 skyzong

如果能分卷备份就好了

2014-04-16 13:45:12