Guest Eduardo Assis Postado Maio 1, 2007 Denunciar Share Postado Maio 1, 2007 Utilizo essa função para fazer backup, retirada da internet:function backupmysql() { require ('./banco.php'); $file_time = date("d-m-Y,H:i:s"); $file = "../backup/backup_" . $file_time . ".sql"; $back = fopen($file,"w"); $version = "1.0"; $link = mysql_connect($host,$my_user,$password) or die("erro connectando: " . mysql_error()); mysql_select_db($banco,$link) or die("erro selecionando: " . mysql_error()); $tables = mysql_list_tables($banco) or die("erro no list_tables: " . mysql_error()); ######################## # CABECALHO DO ARQUIVO # ######################## $timebkp = date("d/m/Y, H:i:s",time()); $mysql_version = mysql_get_server_info(); $php_version = phpversion(); fwrite($back,"-- bacteria_(PHP/MySQL/Dump)-- version: $version---- Servidor: $host-- Horario de backup: $timebkp-- Versao do MySQL: $mysql_version-- Versao do PHP: $php_version---- Bando de dados: `$banco`---- --------------------------------------------------------"); while ($row = mysql_fetch_row($tables)) { $table = $row[0]; // cada uma das tabelas mysql_query("OPTIMIZE TABLE `boletos`;") or die("erro otimizando tabelas: " . mysql_error()); $res2 = mysql_query("SHOW CREATE TABLE $table"); while ($lin = mysql_fetch_row($res2)) { // para cada tabela fwrite($back,"--\n"); fwrite($back,"-- Estrutura da tabela `$table`\n"); fwrite($back,"--\n\n"); fwrite($back,"DROP TABLE IF EXISTS `$table`;\n"); $new_lin = str_replace("CREATE TABLE `","CREATE TABLE IF NOT EXISTS `",$lin[1]); fwrite($back,"$new_lin ;\n\n"); fwrite($back,"--\n"); fwrite($back,"-- Extraindo dados da tabela `$table`\n"); fwrite($back,"--\n\n"); $res3 = mysql_query("SELECT * FROM $table"); if (mysql_num_rows($res3) == 0) { break; }; $fields = mysql_list_fields($banco,$table); $columns = mysql_num_fields($fields); $nc = $columns; $nc--; $fiel = NULL; fwrite($back,"INSERT DELAYED IGNORE INTO `$table` (`"); for ($i = 0; $i < $columns; $i++) { $fiel .= mysql_field_name($fields, $i); if ($i < $nc) { $fiel .= ";"; }; }; $newfiel = explode(";",$fiel); fwrite($back,implode("`, `",$newfiel)); fwrite($back,"`) VALUES "); $i=1; $rt = mysql_num_rows($res3); $ft = mysql_num_fields($res3); while ($r=mysql_fetch_row($res3)) { fwrite($back,"("); for ($x=0; $x < $ft; $x++) { if (mysql_field_type($res3,$x) == 'int' || mysql_field_type($res3,$x) == 'real') { if (empty($r[$x])) { $valor = 0; } else { $valor = $r[$x]; } fwrite($back,"$valor"); } else { fwrite($back,"\"$r[$x]\""); }; $nft = $ft; $nft--; if ($x < $nft) { fwrite($back,", "); }; }; fwrite($back,")"); if ($i < $rt) { fwrite($back,",\n"); } else { fwrite($back,";\n"); }; $i++; }; fwrite($back,"\n-- --------------------------------------------------------\n\n"); }; };fclose($back); if (gzip($file)) { print "<font size=1> </font><br>\n"; } else { die("erro na compactacao do arquivo!<br>\n"); };};function gzip($src, $level = 9, $dst = false){ if($dst == false){ $dst = $src.".zip"; }; $old_src = $src; if(file_exists($src)){ $filesize = filesize($src); $src_handle = fopen($src, "r"); if(!file_exists($dst)){ $dst_handle = gzopen($dst, "w$level"); while(!feof($src_handle)){ $chunk = fread($src_handle, 2048); gzwrite($dst_handle, $chunk); } fclose($src_handle); gzclose($dst_handle); unlink($old_src); return true; } else { error_log("$dst already exists"); } } else { error_log("$src doesn't exist"); } return false;}Gostaria de saber como proceder para fazer o Restore desse backup gerado, sendo que o servidor onde hospedo sites tem uma segurança para utilizar dump, shell_exec ...Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Eduardo Assis Postado Maio 3, 2007 Denunciar Share Postado Maio 3, 2007 Como vocês fazem para voltar o backup com Script em PHP ?Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Maio 4, 2007 Denunciar Share Postado Maio 4, 2007 Eu uso front-end (phpmyadmin ou o que for oferecido pelo host)... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Eduardo Assis Postado Maio 4, 2007 Denunciar Share Postado Maio 4, 2007 É que estou desenvolvendo para outra pessoa usar e ele não tem conhecimento para usar o phpmyadmin ...Mas obrigado pela resposta ...Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Maio 4, 2007 Denunciar Share Postado Maio 4, 2007 Hunn... mas isso não tem galho... basicamente o restore nada mais é do que um upload do arquivo de backup pro servidor e logo após um insert into com os valores lidos no arquivo, seria bom que o seu backup fosse um cvs, pois no PHP5 a leitura de (e por consequencia inserção dos dados no BD) CVSs é bem simples...» http://www.imasters.com.br/artigo/3746/mys..._csv_para_mysql (mas é pra cvs) Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest Eduardo Assis
Utilizo essa função para fazer backup, retirada da internet:
function backupmysql() {
require ('./banco.php');
$file_time = date("d-m-Y,H:i:s");
$file = "../backup/backup_" . $file_time . ".sql";
$back = fopen($file,"w");
$version = "1.0";
$link = mysql_connect($host,$my_user,$password) or die("erro connectando: " . mysql_error());
mysql_select_db($banco,$link) or die("erro selecionando: " . mysql_error());
$tables = mysql_list_tables($banco) or die("erro no list_tables: " . mysql_error());
########################
# CABECALHO DO ARQUIVO #
########################
$timebkp = date("d/m/Y, H:i:s",time());
$mysql_version = mysql_get_server_info();
$php_version = phpversion();
fwrite($back,"-- bacteria_(PHP/MySQL/Dump)
-- version: $version
--
-- Servidor: $host
-- Horario de backup: $timebkp
-- Versao do MySQL: $mysql_version
-- Versao do PHP: $php_version
--
-- Bando de dados: `$banco`
--
-- --------------------------------------------------------
");
while ($row = mysql_fetch_row($tables)) {
$table = $row[0]; // cada uma das tabelas
mysql_query("OPTIMIZE TABLE `boletos`;") or die("erro otimizando tabelas: " . mysql_error());
$res2 = mysql_query("SHOW CREATE TABLE $table");
while ($lin = mysql_fetch_row($res2)) { // para cada tabela
fwrite($back,"--\n");
fwrite($back,"-- Estrutura da tabela `$table`\n");
fwrite($back,"--\n\n");
fwrite($back,"DROP TABLE IF EXISTS `$table`;\n");
$new_lin = str_replace("CREATE TABLE `","CREATE TABLE IF NOT EXISTS `",$lin[1]);
fwrite($back,"$new_lin ;\n\n");
fwrite($back,"--\n");
fwrite($back,"-- Extraindo dados da tabela `$table`\n");
fwrite($back,"--\n\n");
$res3 = mysql_query("SELECT * FROM $table");
if (mysql_num_rows($res3) == 0) {
break;
};
$fields = mysql_list_fields($banco,$table);
$columns = mysql_num_fields($fields);
$nc = $columns;
$nc--;
$fiel = NULL;
fwrite($back,"INSERT DELAYED IGNORE INTO `$table` (`");
for ($i = 0; $i < $columns; $i++) {
$fiel .= mysql_field_name($fields, $i);
if ($i < $nc) {
$fiel .= ";";
};
};
$newfiel = explode(";",$fiel);
fwrite($back,implode("`, `",$newfiel));
fwrite($back,"`) VALUES ");
$i=1;
$rt = mysql_num_rows($res3);
$ft = mysql_num_fields($res3);
while ($r=mysql_fetch_row($res3)) {
fwrite($back,"(");
for ($x=0; $x < $ft; $x++) {
if (mysql_field_type($res3,$x) == 'int' || mysql_field_type($res3,$x) == 'real') {
if (empty($r[$x])) {
$valor = 0;
} else {
$valor = $r[$x];
}
fwrite($back,"$valor");
} else {
fwrite($back,"\"$r[$x]\"");
};
$nft = $ft;
$nft--;
if ($x < $nft) {
fwrite($back,", ");
};
};
fwrite($back,")");
if ($i < $rt) {
fwrite($back,",\n");
} else {
fwrite($back,";\n");
};
$i++;
};
fwrite($back,"\n-- --------------------------------------------------------\n\n");
};
};
fclose($back);
if (gzip($file)) {
print "<font size=1> </font><br>\n";
} else {
die("erro na compactacao do arquivo!<br>\n");
};
};
function gzip($src, $level = 9, $dst = false){
if($dst == false){
$dst = $src.".zip";
};
$old_src = $src;
if(file_exists($src)){
$filesize = filesize($src);
$src_handle = fopen($src, "r");
if(!file_exists($dst)){
$dst_handle = gzopen($dst, "w$level");
while(!feof($src_handle)){
$chunk = fread($src_handle, 2048);
gzwrite($dst_handle, $chunk);
}
fclose($src_handle);
gzclose($dst_handle);
unlink($old_src);
return true;
} else {
error_log("$dst already exists");
}
} else {
error_log("$src doesn't exist");
}
return false;
}
Gostaria de saber como proceder para fazer o Restore desse backup gerado, sendo que o servidor onde hospedo sites tem uma segurança para utilizar dump, shell_exec ...
Abraços.
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.