Zoque.Forum
Dirsek Teması:
Geri Dön Zoque.Forum » Webmaster Kaynaklari » Sunucu Tabanlı Programlama (Server Side) » Veritabanları » MySql kontrol & yedekleme aparatı tavsiyeniz?


Yanıt
 
LinkBack Seçenekler
Old 23.06.2004   #1 (permalink)
 
Üyelik Tarihi: 20.06.2002
Yer: Bursa
Yaş: 31
Mesaj: 294
MySql kontrol & yedekleme aparatı tavsiyeniz?


arkadaşlar merhaba

MySQL sunucuma bağlanıp tabloları yapı ve veri ile birlikte makineme yedekleyebileceğim bir programa ihtiyacım var, phpMyAdmin bunu fazlası ile yapıyor biliyorum ama farklı birkaç sorun sebebi ile benim bir local yazılıma ihtiyacım var.

bu tip tavsiye edebileceğiniz bir program varmı?
ilginiz için teşekkürler
Taci TIRSAK şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 23.06.2004   #2 (permalink)
 
Scud's Avatar
 
Üyelik Tarihi: 25.08.2001
Yer: Antalya
Yaş: 27
Mesaj: 970
Re: MySql kontrol & yedekleme aparatı tavsiyeniz?

PHP Code:
<?PHP
$host
="localhost";
$kullanici="kullanici adi db";
$sifre="sifre db";
$dibi="veritabanı";
$kes='';
$kac='\'';
$buf=32768;
$tblstn=30;
$GZ_enabled=(bool)function_exists('gzopen');
$ay="\r\n";
$yol="/tmp/";
$fn=$dibi.'_'.date("d-m-Y").'.SQL'.($GZ_enabled?'.gz':'');
$yolf=$yol.$fn;
if (!
function_exists('getmicrotime')) {
    function 
getmicrotime() {
        list(
$usec$sec) = explode(' 'microtime());
        return ((float) 
$usec + (float) $sec);
    }
}
mysql_connect($host,$kullanici,$sifre) or die ('<BR><B>Could not connect to database - check username and password.</B>');
flush();
    if ((
$GZ_enabled && ($zp gzopen($yolf'wb'))) || (!$GZ_enabled && ($fp fopen($yolf'wb')))) {
        
$fileheaderline '#Type = ';
        if (
$GZ_enabled) {
            
gzwrite($zp$fileheaderlinestrlen($fileheaderline));
        } else {
            
fwrite($fp$fileheaderlinestrlen($fileheaderline));
        }
            if (
$GZ_enabled) {
                
gzwrite($zp'Complete'.$ay.$aystrlen('Complete'.$ay.$ay));
            } else {
                
fwrite($fp'Complete'.$ay.$aystrlen('Complete'.$ay.$ay));
            }
            
$backuptype 'full';
            unset(
$SelectedTables);
                    
$tables mysql_list_tables($dibi);
                    if (
is_resource($tables)) {
                        
$tablecounter 0;
                        while (list(
$tablename) = mysql_fetch_array($tables)) {
                            
$SelectedTables["$dibi"][] = $tablename;
                        }
                    }
        
$TableErrors = array();
        foreach (
$SelectedTables as $dibi => $selectedtablesarray) {
            
mysql_select_db($dibi);
            foreach (
$selectedtablesarray as $selectedtablename) {
                
flush();
                
$result mysql_query('CHECK TABLE '.$selectedtablename);
                while (
$row mysql_fetch_array($result)) {
                    if (
$row['Msg_text'] == 'OK') {
                        
mysql_query('OPTIMIZE TABLE '.$selectedtablename);
                    } else {
                        
$TableErrors[] = $row['Table'].' ['.$row['Msg_type'].'] '.$row['Msg_text'];
                        if (!isset(
$TableErrorTables) || !is_array($TableErrorTables) || !in_array($dibi.'.'.$selectedtablename$TableErrorTables)) {
                            
$TableErrorDB[]     = $dibi;
                            
$TableErrorTables[] = $selectedtablename;
                        }
                    }
                }
            }
        }
        
$overallrows 0;
        foreach (
$SelectedTables as $dibi => $value) {
            
mysql_select_db($dibi);
            
$tablecounter 0;
            for (
$t 0$t count($SelectedTables["$dibi"]); $t++) {
                if (
$tablecounter++ >= $tblstn) {
                    
$tablecounter 1;
                }
                
$SQLquery 'SELECT COUNT(*) AS num FROM '.$SelectedTables["$dibi"]["$t"];
                
$result mysql_query($SQLquery);
                
$row mysql_fetch_array($result);
                
$rows["$t"] = $row['num'];
                
$overallrows += $rows["$t"];
            }

        }

        
$starttime getmicrotime();
        
$alltablesstructure '';
        foreach (
$SelectedTables as $dibi => $value) {
            
mysql_select_db($dibi);
            for (
$t 0$t count($SelectedTables["$dibi"]); $t++) {
                
$fieldnames     = array();
                
$structurelines = array();
                
$result mysql_query('SHOW FIELDS FROM '.$SelectedTables["$dibi"]["$t"]);
                while (
$row mysql_fetch_array($result)) {
                    
$structureline  $row['Field'];
                    
$structureline .= ' '.$row['Type'];
                    
$structureline .= ' '.($row['Null'] ? '' 'NOT ').'NULL';
                    if (isset(
$row['Default'])) {
                        switch (
$row['Type']) {
                            case 
'tinytext':
                            case 
'tinyblob':
                            case 
'text':
                            case 
'blob':
                            case 
'mediumtext':
                            case 
'mediumblob':
                            case 
'longtext':
                            case 
'longblob':
                                break;
                            default:
                                
$structureline .= ' default \''.$row['Default'].'\'';
                                break;
                        }
                    }
                    
$structureline .= ($row['Extra'] ? ' '.$row['Extra'] : '');
                    
$structurelines[] = $structureline;

                    
$fieldnames[] = $row['Field'];
                }
                
mysql_free_result($result);
                
                
$tablekeys    = array();
                
$uniquekeys   = array();
                
$fulltextkeys = array();
                
$result mysql_query('SHOW KEYS FROM '.$SelectedTables["$dibi"]["$t"]);
                while (
$row mysql_fetch_array($result)) {
                    
$uniquekeys[$row['Key_name']] = FALSE;
                    if (
$row['Non_unique'] == 0) {
                        
$uniquekeys[$row['Key_name']] = TRUE;
                    }
                    
$fulltextkeys[$row['Key_name']] = FALSE;
                    if (
$row['Comment'] == 'FULLTEXT') {
                        
$fulltextkeys[$row['Key_name']] = TRUE;
                    }
                    
$tablekeys[$row['Key_name']][$row['Seq_in_index']] = $row['Column_name'];
                    
ksort($tablekeys[$row['Key_name']]);
                }
                
mysql_free_result($result);
                foreach (
$tablekeys as $keyname => $keyfieldnames) {
                    
$structureline  '';
                    if (
$keyname == 'PRIMARY') {
                        
$structureline .= 'PRIMARY ';
                    } else {
                        
$structureline .= ($fulltextkeys[$keyname] ? 'FULLTEXT ' '');
                        
$structureline .= ($uniquekeys[$keyname]   ? 'UNIQUE '   '');
                    }
                    
$structureline .= 'KEY'.(($keyname == 'PRIMARY') ? '' ' '.$keyname);
                    
$structureline .= ' ('.implode(','$keyfieldnames).')';
                    
$structurelines[] = $structureline;
                }

                
$tablestructure  'CREATE TABLE '.$dibi.'.'.$SelectedTables["$dibi"]["$t"].' ('.$ay;
                
$tablestructure .= '  '.implode(','.$ay.'  '$structurelines).$ay;
                
$tablestructure .= ');'.$ay.$ay;

                
$alltablesstructure .= str_replace(' ,'','$tablestructure);

            }
        }
        if (
$GZ_enabled) {
            
gzwrite($zp$alltablesstructure.$aystrlen($alltablesstructure) + strlen($ay));
        } else {
            
fwrite($fp$alltablesstructure.$aystrlen($alltablesstructure) + strlen($ay));
        }

        if (
$_REQUEST['StartBackup'] != 'structure') {
            
$processedrows    0;
            foreach (
$SelectedTables as $dibi => $value) {
                
mysql_select_db($dibi);
                for (
$t 0$t count($SelectedTables["$dibi"]); $t++) {
                    
$result mysql_query('SELECT * FROM '.$SelectedTables["$dibi"]["$t"]);
                    
$rows["$t"] = mysql_num_rows($result);
                    if (
$rows["$t"] > 0) {
                        
$tabledatadumpline '# dumping data for '.$dibi.'.'.$SelectedTables["$dibi"]["$t"].$ay;
                        if (
$GZ_enabled) {
                            
gzwrite($zp$tabledatadumplinestrlen($tabledatadumpline));
                        } else {
                            
fwrite($fp$tabledatadumplinestrlen($tabledatadumpline));
                        }
                    }
                    unset(
$fieldnames);
                    for (
$i 0$i mysql_num_fields($result); $i++) {
                        
$fieldnames[] = mysql_field_name($result$i);
                    }
                    if (
$_REQUEST['StartBackup'] == 'complete') {
                        
$insertstatement 'INSERT INTO '.$kes.$SelectedTables["$dibi"]["$t"].$kes.' ('.implode(', '$fieldnames).') VALUES (';
                    } else {
                        
$insertstatement 'INSERT INTO '.$kes.$SelectedTables["$dibi"]["$t"].$kes.' VALUES (';
                    }
                    
$currentrow       0;
                    
$thistableinserts '';
                    while (
$row mysql_fetch_array($result)) {
                        unset(
$valuevalues);
                        foreach (
$fieldnames as $key => $val) {
                            
$valuevalues[] = mysql_escape_string($row["$key"]);
                        }
                        
$thistableinserts .= $insertstatement.$kac.implode($kac.', '.$kac$valuevalues).$kac.');'.$ay;

                        if (
strlen($thistableinserts) >= $buf) {
                            if (
$GZ_enabled) {
                                
gzwrite($zp$thistableinsertsstrlen($thistableinserts));
                            } else {
                                
fwrite($fp$thistableinsertsstrlen($thistableinserts));
                            }
                            
$thistableinserts '';
                        }
                        if ((++
$currentrow 1000) == 0) {
                            
set_time_limit(60);
                        }
                    }
                    if (
$GZ_enabled) {
                        
gzwrite($zp$thistableinserts.$ay.$aystrlen($thistableinserts) + strlen($ay) + strlen($ay));
                    } else {
                        
fwrite($fp$thistableinserts.$ay.$aystrlen($thistableinserts) + strlen($ay) + strlen($ay));
                    }
                }
            }
        }
        if (
$GZ_enabled) {
            
gzclose($zp);
        } else {
            
fclose($fp);
        }
}
header('Content-Type: application/force-download');
header('Expires: ' gmdate('D, d M Y H:i:s') . ' GMT');
header('Content-Disposition: inline; filename="'.$fn.'"');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
//        readfile($yol.$fn);
$fs fopen($yolf,"rb");
$buffer "";
while(!
feof($fs)) {
    
$buffer fread($fs,$buf);
    echo 
$buffer;
}
fclose($fs);
unlink($yol.$fn);
?>
bunu backup.PHP diye kaydedip direk çağırabilirsin.
__________________
Take me back to my boat on the river
and I won't cry out any more
Scud şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 24.06.2004   #3 (permalink)
 
Üyelik Tarihi: 20.06.2002
Yer: Bursa
Yaş: 31
Mesaj: 294
Re: MySql kontrol & yedekleme aparatı tavsiyeniz?

ûstad ne kadar teşekkür etsem az gelir sanırım
sevgiler saygılar , ellerin dert görmesin
Taci TIRSAK şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 24.06.2004   #4 (permalink)
 
hayalet's Avatar
 
Üyelik Tarihi: 07.10.2002
Yer: İstanbul
Yaş: 26
Mesaj: 986
Re: MySql kontrol & yedekleme aparatı tavsiyeniz?

bi tanede benden..
http://forum.zoque.net/script-bolumu/13659-php-hdump-veritabani-yedegi/#post94053

zaten scud'ın kodu da bu sayfa da var..
hayalet şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 24.06.2004   #5 (permalink)
 
Üyelik Tarihi: 20.06.2002
Yer: Bursa
Yaş: 31
Mesaj: 294
Re: MySql kontrol & yedekleme aparatı tavsiyeniz?

teşekkürler tekrar scud un kodu fazlasıyla gördü işimi
Taci TIRSAK şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 18.03.2007   #6 (permalink)
 
Sharaka's Avatar
 
Üyelik Tarihi: 21.02.2007
Yer: Kocaeli
Yaş: 25
Mesaj: 14
Re: MySql kontrol & yedekleme aparatı tavsiyeniz?

Arkadaşlar ya backup.PHP bende charset hası veriyor 23 satırda nasıl yapacam yardımcı olurmusunuz
Sharaka şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%