Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: автоматический ежедневный backup всех бд в mysql
 
 автор: nir   (20.12.2007 в 18:34)   письмо автору
 
 

Приветствую всех, нужна помощь

имеется бд mysql 4.1.16
php515 и конечно же apache
все это установлено на локальной машине под капрвлением ОС win2003 server

необходимо наладить автоматический backup всех бд раз в день

на форуме прочитал что можно сделать средствами самаго мускуля утлитой Mysqldump, но ни где не нашел как она работает (примеры команд)

нашел несколько вариантов как это сделать с помощью php. но как автоматически раз в день запускать скрипт php ??? также вычитал про планировщик cron, но он работает под unix.

Предполагаю что данную задачу можно решить с помощью маленького bat файла который будет запускаться по расписанию, но вот с помощью каких команд не знаю.

Может кто знает решение даной проблемы ??

   
 
 автор: cheops   (20.12.2007 в 23:57)   письмо автору
 
   для: nir   (20.12.2007 в 18:34)
 

Вы можете отталкиваться от следующего скрипта (если у вас UNIX) - только пути свои собственные раставьте
<?php
  $dblocation 
"localhost";
  
$dbuser "root";
  
$dbpasswd "password";
  
$dbcnx mysql_connect($dblocation,$dbuser,$dbpasswd);
  if (!
$dbcnx) exit ("Error: can't get access to MySQL-server ".mysql_error());
  
chdir("/backup/db");
  
$gm date("YmdHi");
  
$mkdir 'mkdir /backup/db_sql/'.$gm;
  `
$mkdir`;

  
$query "SHOW DATABASES";
  
$dbs mysql_query($query);
  if(!
$dbs) exit("Error: can't get access to databasess");
  if(
mysql_num_rows($dbs) > 0)
  {
    while(
$database mysql_fetch_array($dbs))
    {
      if(
$database['Database'] != 'information_schema')
      {
        
$copy 'mysqldump --opt '.$database['Database'].' >  /backup/db_sql/'.$gm.'/'.$database['Database'].".sql";
        `
$copy`;
      }
    }
  }

  
$tar 'tar cvfz /backup/db_sql/'.$gm.'.tgz /backup/db_sql/'.$gm;
  echo 
$tar."\n";
  `
$tar`;
  
$rm 'rm -rf /backup/db_sql/'.$gm;
  `
$rm`;
?>


PS Или речь идёт об Windows?

   
 
 автор: Trianon   (21.12.2007 в 00:04)   письмо автору
 
   для: cheops   (20.12.2007 в 23:57)
 

а я бы дамп пайпом тут же бы и сжал... mysqldump .... | gzip .... > ...

   
 
 автор: cheops   (21.12.2007 в 00:14)   письмо автору
 
   для: Trianon   (21.12.2007 в 00:04)
 

Можно, если каждый из дампов базы данных нужно поместить в отдельный архив. Приведённый выше скрипт для каждой базы делает отдельный дамп, а потом эту папку с дампами сжимает...

   
 
 автор: Trianon   (21.12.2007 в 00:28)   письмо автору
 
   для: cheops   (21.12.2007 в 00:14)
 

Конечно, так как у Вас - проще и даже в чем-то удобнее.
Но без пайпа дамп может скушать весьма и весьма изрядно места на диске в процессе бэкапа.
Да и в процессе рестора тоже.

   
 
 автор: cheops   (21.12.2007 в 02:42)   письмо автору
 
   для: Trianon   (21.12.2007 в 00:28)
 

Да, есть такое дело.

   
 
 автор: nir   (21.12.2007 в 09:56)   письмо автору
 
   для: cheops   (20.12.2007 в 23:57)
 

речь идет о Windows.

   
 
 автор: Trianon   (21.12.2007 в 10:04)   письмо автору
 
   для: nir   (21.12.2007 в 09:56)
 

в windows тоже можно поставить и gzip и tar
Пути, правда, нужно будет изменить :)

   
 
 автор: nir   (21.12.2007 в 10:16)   письмо автору
 
   для: Trianon   (21.12.2007 в 10:04)
 

Понтяно, а что такое пайпы я раньше про них не слышал ??

   
 
 автор: Trianon   (21.12.2007 в 10:27)   письмо автору
 
   для: nir   (21.12.2007 в 10:16)
 

попробуйте, стоя в каталоге windows\system32 выполнить команду dir | more

C:\WINDOWS\SYSTEM32> dir | more


Вот эта черточка между командами и есть пайп. Pipe, труба, транспортер... логический канал передачи выходного потока левого приложения во входной поток правого приложения.

Свои предположения, почему Вы о них ни разу не слышали, я умолчу.
Иначе модератор их все равно вытрет.

   
 
 автор: nir   (21.12.2007 в 10:48)   письмо автору
 
   для: Trianon   (21.12.2007 в 10:27)
 

Trianon благодарю за помощь :-), и терпение проявленое по отношению к не совсем просвешенному в данных вопросах человеку.

   
 
 автор: Тёмыч   (23.12.2007 в 20:02)   письмо автору
 
   для: nir   (21.12.2007 в 09:56)
 

В NT есть универсальный планировщик AT формат записи:

at -s-m-t-w-th (дни недели) 14:00 startdmp.bat

попробуй

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования