1

Тема: восстановление резервной копии через EMS 1сБитрикс...

Добрый день!

Уже пятый день безуспешно бьюсь в попытках восстановить резервную копию... тех. поддержка 1С Битрикс так мне и не помогла, сославшись на неадресность вопроса... мол, это вопрос из категории обращений к самой БД...
Расскажу подробно свои действия:

1. устанавливаю ПП 1С Битрикс на ОС Windows XP из дистрибутива: bsm_6_setup.exe
3. удалаю все из папки C:\Program Files\1C-Bitrix\www\
4. копирую в папку C:\Program Files\1C-Bitrix\www\ файлы "200804041445_02615943.tar.gz" (резервная копия публичной части с ядром и базой данных, 150 Mb) и restore.php
5. запускаю программный продукт 1С Битрикс
6. сайт, понятное дело НЕ запускается, в адресной строке браузера следующий адрес: http://localhost:6448/
7. приписываю к этому адресу restore.php, в итоге получаю в адресной строке http://localhost:6448/restore.php. Нажимаю "enter"
8. выходит   "Шаг 1: Распаковка архива", оставляю значения по умолчанию:
-  Выберите язык: RU
-  Имя архива: 200804041445_02615943.tar.gz (иных вариантов и нет, понятное дело)
-  Шаг выполнения (сек.): 30
9. нажимаю кнопку РАСПАКОВАТЬ...
10. процесс ШАГА 1 начинается с белого экрана и наличия в нижней части браузера сообщения об ОЖИДАНИИ. А затем опеределяется, помимо щелкания, - сменой картинки: отличие в присутствии или отсутствии полосы выполненной части (в нижней служебной части браузера) то есть, как только полоса заканчивается, то вместо прекращения работы раздается щелкание и появляется на какое-то время просто белый экран, затем начинается все сначала...
11. ну вот, время 10:13 и мы, наконец, добрались до ШАГА 2 ( Шаг 2: Восстановление базы данных)
12. Прежде чем что-то далее делать, по совету тех. поддержки в файл "bitrix/php_interface/after_connect.php" я добавляю строчку  $DB->Query("SET wait_timeout=28800");   это позволяет устранить ошибку "MySQL server has gone away" после ШАГА 2 (Распаковка БД)... таким образом, теперь файл имеет вид:
<?
$DB->Query("SET NAMES 'cp1251'");
$DB->Query("SET wait_timeout=28800");
?>

13. НА ВКЯКИЙ СЛУЧАЙ (ранее я обходился без этого, но как мне сказали в тех. поддержке, мои действия НЕ приведут к негативу... а значит ВОЗМОЖНО и помогут... во всяком случае, хуже не станет) я меняю в файле "dbconn.php" строки:
-  $DBHost = "localhost"; на $DBHost = "localhost:31006"; (по совету форумчан)
-  $DBLogin = "bitrix2"; на $DBLogin = "root"; (первоначальное значение в файле "dbconn.php" после установки ПП на локальный ПК и ДО распаковки архива)
-  $DBPassword = "vjcbdrf"; на $DBPassword = ""; (аналогично с предыдущим пунктом)
-  $DBName = "bitrix2"; на $DBName = "bsm_demo"; (и снова все как и в предыдущих двух пунктах)
-  сохраняю изменения и файл теперь имеет вид:
<?
define("DBPersistent", false);
$DBType = "mysql";
$DBHost = "localhost:31006";
$DBLogin = "root";
$DBPassword = "";
$DBName = "bitrix2";
$DBDebug = false;
$DBDebugToFile = false;

@set_time_limit(60);
@umask(0);

define("MYSQL_TABLE_TYPE", "InnoDB");

define("DELAY_DB_CONNECT", true);
define("CACHED_b_file", 3600);
define("CACHED_b_file_bucket_size", 10); // Максимальное число файлов таблицы b_file, сохраняемое в одном файле кеша

define("BX_FILE_PERMISSIONS", 0644);
define("BX_DIR_PERMISSIONS", 0755);
@ini_set("memory_limit", "64M");
?>

PS: ранее я пробовал просто записать старый файл "dbconn.php" на место нового, который имеет вид:
<?
define("DBPersistent", true);
$DBType = "mysql";
$DBHost = "localhost:31006";
$DBLogin = "root";
$DBPassword = "";
$DBName = "bsm_demo";
$DBDebug = false;
$DBDebugToFile = false;

set_time_limit(60);

define("BX_FILE_PERMISSIONS", 0777);
define("BX_DIR_PERMISSIONS", 0777);
@ini_set("memory_limit", "64M");
?>

но и это не приносило плодов
14. заполняю предложенные поля в соответствии с данными файла "dbconn.php"
15. нажимаю кнопку восстановить
16. начало в 10:27, конец в 10:28 завершилось все ошибкой восстановления БД (MySQL server has gone away)
Как мне посоветовали все в той же тех. поддержке - почитал инфо тут: http://www.mysql.ru/docs/man/Gone_away.html
Но, то ли я совсем тупой (написано, что стандартное время ожидания - 8 часов, а у меня ошибка уже через несколько минут выплывала), то ли что-то здесь другое....


Буду рад ЛЮБОЙ критике в ЛЮБОЙ форме.... главное, чтобы спать я начал не в обнимку с ноутбуком... wink
Спасите, ПОЖААЛУЙСТА!!!!!!!!!!!!!!

С добром, Алексей К.

2

Re: восстановление резервной копии через EMS 1сБитрикс...

Reflector сказал:

написано, что стандартное время ожидания - 8 часов, а у меня ошибка уже через несколько минут выплывала

После получения ошибки mysqld-nt в списке процессов есть? Может некорректный запрос убивает MySQL? После получения ошибки MySQL работает? Какие изменения в таблицах MySQL вы видите, может импорт прошел хоть частично.

3

Re: восстановление резервной копии через EMS 1сБитрикс...

В том-то и дело, что я не знаю как все это посмостреть... с БД я работаю через ядро 1С Битрикс... то есть, я НЕ запускаю каких-то систем мониторинга или панелей самой БД.... я просто и не знаю где их взять то... (((((
ПРЕДПОЛАГАЮ, что частично БД восстанавливается, потому, как после этого СТАРАЯ БД уже не фурычит, - то есть на сайт меня уже 1С Битрикс не пускает несмотря на то, что сами папки (публичная часть сайта) распаковались нормально (из того же архива).

Подскажите, пожалуйста, КАК работать напрямую с БД без 1С Битрикс...?

Сообщение добавлено Wed Apr  9 15:54:22 2008
Наверное, стоит еще добавить вот что: в первоначально-устанавливаемой версии БД таблицы обычные, а в распаковывающейся версии "резервной копии" таблица БД имеет тип InnoBD...

А вот, что мне ответили дословно в тех. поддержке:
Дело в том, что вероятнее всего дамп БД содержит много данных, которые сервер базы данных не успевает обработать.
Проблема связана с настройкой MySQL и часто возникает когда на сервере установлен небольшой лимит времени на соединение.
Также проблема может быть и в другом, для этого ознакомьтесь с описанием ошибки:
http://dev.mysql.com/doc/refman/5.0/en/gone-away.html

http://www.mysql.ru/docs/man/Gone_away.html

Вероятно, проблема связана с настройкой сервера БД.
Вопрос настройки и оптимизации конкретного сервера для работы с нашим продуктом выходит за рамки технической поддержки.

4

Re: восстановление резервной копии через EMS 1сБитрикс...

Reflector
С MySQL можно работать из командной строки.

mysql --user=user_name --password=your_password db_name

Затем смотрите в документации запросы на SHOW, например:
http://dev.mysql.com/doc/refman/5.0/en/show.html

-- Показать все базы данных
SHOW DATABASES;

-- Показать переменные
SHOW VARIABLES;

Но проще будет скачать отсюда
http://dev.mysql.com/downloads/gui-tools/5.0.html
программы для работы с MySQL и восползоваться MySQL Administrator.

Тип который имеют таблицы: InnoDB или MyISAM - это несущественно, работать все-равно должно.

5

Re: восстановление резервной копии через EMS 1сБитрикс...

Спасибо, а можете какую-нить программу порекомендовать (желательно, с наличием русского интерфейса, для таких "гениев", как я... wink а то по ссылке очень много программ, не совсем понимаю, какую лучше скачать....

С добром, я.

6

Re: восстановление резервной копии через EMS 1сБитрикс...

Reflector
Здесь все программы для работы с MySQL, интерфейс на английском.
http://dev.mysql.com/downloads/gui-tools/5.0.html
Windows (x86) 5.0-r12

А с русским интерфейсом я ничего не знаю, кроме phpMyAdmin, но не могу сказать как данный скрипт на 1C устанавливать.

7

Re: восстановление резервной копии через EMS 1сБитрикс...

Всем привет!

Я думаю, тема о проблеме создании/распаковки архива tar.gz затронула многих людей.
Предлагаю объединить все усилия, сложить все идеи в одно целое, что позволило бы намного быстрее и эффективнее проделать этот процесс.

Расскажу свою историю!!!

Захожу в "Панель управления\Настройки\Инструменты\Резервное копирование"

Параметры резервного копирования;
  Архивирование по шагам: [ ] *{нет}
  Архивировать публичную часть:[х] *{да}
  Архивировать ядро:[х]
  Исключить из архива файлы размером более: [2000000] *{2 Мб}
  Архивировать базу данных:[х]( 1.93 МБ ) 
  Исключить из архива:[х]  статистику ( 0.32 МБ ) 
                      [х]  поисковый индекс ( 0.55 МБ )

Жмём кнопку "Архивировать"
После прокрутки в правом верхнем углу через 10 минут в нашем нижнем списке появляется наш архив объёмом около 58 Мб.
  200906031441_b2c12992.tar.gz  (где 2009- год, 06- месяц, 03- число + непонятное идентификационное число)

smile Мы уже на пол пути!

Внимание: данная ситуация проходит с участием стандартных (старых) файлов "dump.php" и "restore.php", которые у вас находятся в каталоге "www\bitrix\modules\main\admin".
Но я пытался проделывать данную ситуацию и с новыми файлами, ранее полученные из тех-поддержки. В этом же случае архив становится, повреждён, вследствие не исправного файла "dump.php". Старое всегда лучше!

Мы подходим к самой интересной части.
Теперь для полной достоверности и отведения всех мыслей о потере всей проделанной вами работы попробуем восстановить данный архив.
Перед этим необходимо удалить и затем установить заново Веб-Окружение, либо сделать это на другом компьютере. Это необходимо что бы на текущем компьютере не осталось информации о старой нашей Базе.
Теперь надо поместить файл "restore.php", который находился в каталоге "www\bitrix\modules\main\admin" (его можно взять из архива ранее созданного нами) в каталог "www". Да, и не забудьте поместить туда же наш архив.
После размещения файлов необходимо запустить ярлык Веб-Окружения и в открывшейся Internet Explorer странице в поле "Адрес:" написать "http://localhost:6448/restore.php" и перейти по ссылке для запуска нашего файла.
Затем после длительной загрузки откроется окно Первого шага. Где вам предстоит указать:

Choose the language: [RU]
  Archive name: [200906031441_b2c12992.tar.gz] *{в списке будет присутствовать только один пункт}
  Step (sec.): [30]

Нажимаем кнопку "Restore"

Опять ждём до посинения. Затем появляется окно Второго шага Где вам предстоит указать:
  Database dump file: [200906031441_b2c12992.sql] 
  User Name: [‘’]  *{пусто}
  Password: [‘’] 
  Database Name: [db1] *{не знаю что вписывать}
  Database Host: [localhost:31006] *{если же вместо 31006 ввести 6448 то думать будет дольше}
  Create database [ ] *{нет}

Нажимаем кнопку "Restore"

Так вот в случае если мы введём 31006 или 6448 выдаёт ошибку подключения к Базе MySql. Вся работа насмарку. Проблема подключения к базе данных.

Если кто то уже проделывал данную ситуацию и процесс заканчивался удачным концом, то обязательно пишите.
Если у кого то есть идей по данной теме тоже пишите обсудим. Как говорится «сколько людей столько идей».

У меня есть ещё такая мысль. Но она не является оптимальной.
А что если при переносе на другой компьютер просто взять и создать резервную копию операционной системы. Это можно сделать такими программами как: Acronis True Image, Norton Gosht  и т.д. Затем просто данный образ установить на другой компьютер.

Всё перенесётся на новый компьютер без какой-либо потери.   
 
Для более простых изменений как изменения в шаблоне, текста страниц, пунктов меню, т.е изменений не в самой базе данных (не явл. контентом) можно обойтись простым способом:
  Создать резервную копию таким же методом, как было описано выше.
  Затем для безопасности переименуем каталог "www" на "www_backup" и создадим  каталог "www", который будет выполнять роль нашего сайта, который мы сейчас будем восстанавливать из архива.
  Откроем наш архив в программе WinRAR выделим всё (Ctrl+A), нажмём кнопку «извлечь в» после чего откроется диалоговое окно, в котором необходима, указать путь к нашей папке «www» (C:\Program Files\Bitrix Environment\www).

Напоминаю, данный метод только способен изменить только структуру сайта а не самой базы данных. Те изменения что вы вносили в саму базу данных контента, а это: новости, стать, опросы, фотогалереи, т.е изменения вносимые в сами инфоблоки этим методом не переносятся на другой локальный компьютер и база остаётся старой.

Удачи!!!

8

Re: восстановление резервной копии через EMS 1сБитрикс...

DenProg сказал:

Опять ждём до посинения. Затем появляется окно Второго шага Где вам предстоит указать:
  Database dump file: [200906031441_b2c12992.sql]
  User Name: [‘’]  *{пусто}
  Password: [‘’]
  Database Name: [db1] *{не знаю что вписывать}
  Database Host: [localhost:31006] *{если же вместо 31006 ввести 6448 то думать будет дольше}
  Create database [ ] *{нет}

1) 200906031441_b2c12992.sql - Как я понял этот файл находится в архиве 200906031441_b2c12992.tar.gz и должен распаковаться перед импортом. Он существует?
2) User Name: [‘’]  *{пусто}
  Password: [‘’]
  Database Name: [db1] *{не знаю что вписывать}
Здесь необходимо вписать данные учетной записи, которой скрипт подключается к MySQL. Посмотреть их можно в файле dbconn.php. Database Name - это имя базы данных в которой должны развернуться таблицы. Перед импортом дампа, данную БД надо создать вручную, либо выбрать Create database.
3) Database Host: [localhost:31006] - Как я понимаю, MySQL висит на порту 31006, в этом случае здесь ничего менять не надо. Либо можно попробовать вариант без указания порта: localhost.