Rotina de Backup, CLIENTE FINAL.

Assim como o modulo de Segurança, poderia existir um modulo de Backup do Banco de Dados.

Para o cliente Final poder fazer o backup do Sistema…

Ai a complicação é maior pra manipular as varias formas que cada banco de dados tem de extrair os dados/estrutura, alem da permissão do usuario que esta conectado no banco.

Embora dependendo do tipo do banco de dados seja muito facil de efetuar.

Acredito que essa rotina deveria estar fora do sistema, rodando no cron de tempos em tempos, alem de copiar os dados para fora da maquina e/ou hd diferentes.

Pois ai vai depender da política de backup da empresa. Não adiantar fazer uma copia pra maquina/banco local se a mesma pegar fogo. Não adianta copiar para uma maquina ao lado se o local pegar fogo. Não ache que estou send negativo kkkkk Mas é o que a gente aprende :-p

Se pesquisar no google, tem um monte de rotinas prontas em php para tal tarefa,eu pessoalmente tenho um arquivo.sql (para cada tipo de banco) com toda estrutura junto com o sistema, e uma aplicação que exportar para csv os dados. A aplicação solicita uma senha, se não for passada via url, o que pode ser agendada numa máquina cliente, ou no cron do próprio servidor, além de ter uma opção no menu para o próprio cliente efetuar o backup.

Caro Haroldo ou quem puder me ajudar.
Gostaria se saber onde consigo uma rotina dentro do ScriptCase para implantar um script de Backup.
A ideia é registrar (usuário e data) os backups do DB que serão salvos em TXT ou CSV em uma unidade (HD/CD-DVD/Pendrive) pré-selecionada manualmente (sem uso do CRON, clicando um bt mesmo).
Teriam como me auxiliarem nisso? Qua o melhor caminho?
Agradeço a ajuda.

A rotina você cria:
Por exemplo, pode jogar o código numa ap blank para ser chamado direto do menu ou criar um botão do tipo php em um formulário.

Uso essa função e dá certo… mysql, gera .sql
Basta implementar no SC

 <?php
 backup_database_tables('HOST','USERNAME','PASSWORD','DATABASE', '*');

// backup the db function
 function backup_database_tables($host,$user,$pass,$name,$tables)
 {

$link = mysql_connect($host,$user,$pass);
 mysql_select_db($name,$link);

//get all of the tables
 if($tables == '*')
 {
 $tables = array();
 $result = mysql_query('SHOW TABLES');
 while($row = mysql_fetch_row($result))
 {
 $tables[] = $row[0];
 }
 }
 else
 {
 $tables = is_array($tables) ? $tables : explode(',',$tables);
 }

//cycle through each table and format the data
 foreach($tables as $table)
 {
 $result = mysql_query('SELECT * FROM '.$table);
 $num_fields = mysql_num_fields($result);

$return.= 'DROP TABLE '.$table.';';
 $row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table));
 $return.= "\n\n".$row2[1].";\n\n";

for ($i = 0; $i < $num_fields; $i++)
 {
 while($row = mysql_fetch_row($result))
 {
 $return.= 'INSERT INTO '.$table.' VALUES(';
 for($j=0; $j<$num_fields; $j++)
 {
 $row[$j] = addslashes($row[$j]);
 $row[$j] = ereg_replace("\n","\\n",$row[$j]);
 if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
 if ($j<($num_fields-1)) { $return.= ','; }
 }
 $return.= ");\n";
 }
 }
 $return.="\n\n\n";
 }

//save the file
 $handle = fopen('db-backup-'.time().'-'.(md5(implode(',',$tables))).'.sql','w+');
 fwrite($handle,$return);
 fclose($handle);
 }
 ?>

Seria bom compactar antes do download.

*Nota: Lembrar de triggers, functions e stored procedures