перенос сервера на другой ПК

Проблемы/вопросы, связанные с запуском под различными платформами и конфигурациями.

Модератор: immortal

skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: перенос сервера на другой ПК

Сообщение skysilver » Вт окт 06, 2015 11:49 pm

Pacific писал(а):На попытку импорта дампа получаю ругань типа закончилось время выполнения скрипта.
Обычное дело, когда БД не маленькая, а производительности сервера не хватает на то, чтобы такую базу за один заход импортировать. :) Проверьте в настройках phpmyadmin (прямо в веб-интерфейсе), чтобы в разделе "Импорт" стояла галочка "Частичный импорт: разрешает прерывание". Если галочка стоит, то тупо повторяем импорт до тех пор, пока вся база не зальется. При этом каждый следующий импорт будет заливать новую порцию данных, а не начинать все сначала.

У меня дамп БД размером 50МБ на Cubietruck заливается обычно на шестой итерации. Сообщения phpmyadmin при этом выглядят так:
Достигнут временной лимит. Если вы хотите завершить импорт, перезапустите его выбрав тот же файл, и процесс продолжится с того места на котором остановился.
Процесс импорта был прерван из-за приближения временного лимита, после перезапуска импорт будет продолжен с позиции 6821421.
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: перенос сервера на другой ПК

Сообщение skysilver » Ср окт 07, 2015 12:21 am

Если шаманства с phpmyadmin не нравятся, и есть опыт работы с консолью, то то же самое можно делать с помощью консольного клиента mysql. Такой способ даже предпочтительнее будет. :)

Заходим в mysql:

Код: Выделить всё

mysql -uЛогин -pПароль -h localhost
Вместо Логин и Пароль вводим данные пользователя БД и хост, например localhost.

Выбираем базу данных:

Код: Выделить всё

use db_name
Вместо db_name вводим название БД.

Делаем импорт файла в выбранную БД:

Код: Выделить всё

source db_name.sql
Вместо db_name.sql вводим название файла дампа БД или путь до файла, если находимся не в той папке, где лежит файл дампа.
За это сообщение автора skysilver поблагодарил:
Pacific (Ср окт 07, 2015 7:00 am)
Рейтинг: 1.16%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Pacific
Сообщения: 116
Зарегистрирован: Чт май 28, 2015 9:40 pm
Откуда: Вёска пад Мiнскам
Благодарил (а): 60 раз
Поблагодарили: 7 раз

Re: перенос сервера на другой ПК

Сообщение Pacific » Ср окт 07, 2015 7:42 am

В phpmyadmin по умолчанию стояла галочка "Частичный импорт: разрешает прерывание". Но повтор импорта приводил к ошибкам, причем разным :
#1062 - Duplicate entry '1' for key 'PRIMARY'
#1046 - No database selected 
решения в нете я нашел, но не стал дергаться, ибо решил, что из исходного дампа мало что останется.

полез в консоль и быстренько всё сделал, как вы писали.
Однако, после запуска МЖД я снова остался с первоначальными настройками.
Возникло одно подозрение. Я уже упоминал, что у меня не происходит обновление времени по NTP. Может, это случай, описанный вами тут http://majordomo.smartliving.ru/forum/v ... =80#p25272
россыпь датчиков и серв <-> 20+ ESP8266(WiFi-IoT) <-> Malinka Pi3 :)
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: перенос сервера на другой ПК

Сообщение skysilver » Ср окт 07, 2015 9:11 am

Pacific писал(а):Однако, после запуска МЖД я снова остался с первоначальными настройками.
Возникло одно подозрение. Я уже упоминал, что у меня не происходит обновление времени по NTP. Может, это случай, описанный вами тут http://majordomo.smartliving.ru/forum/v ... =80#p25272
Вполне может быть. Но сразу замечу, пропадают только значения свойств объектов, история сообщений. Сами классы, объекты, методы и сценарии при этом не затрагиваются.

Чтобы не попадать в замкнутый круг с удалением накопленных данных, можно либо закомментировать эти строки (см. ту ссылку), либо вручную установить системное время, а после запустить главный цикл.
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Pacific
Сообщения: 116
Зарегистрирован: Чт май 28, 2015 9:40 pm
Откуда: Вёска пад Мiнскам
Благодарил (а): 60 раз
Поблагодарили: 7 раз

Re: перенос сервера на другой ПК

Сообщение Pacific » Ср окт 07, 2015 10:37 am

skysilver писал(а):пропадают только значения свойств объектов, история сообщений. Сами классы, объекты, методы и сценарии при этом не затрагиваются.
это... а может, я вообще не то делаю? переношу БД и проверяю перенеслись ли классы, а классы и тд в БД не хранятся?
россыпь датчиков и серв <-> 20+ ESP8266(WiFi-IoT) <-> Malinka Pi3 :)
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: перенос сервера на другой ПК

Сообщение skysilver » Ср окт 07, 2015 10:41 am

Классы, объекты, их свойства, сценарии - все хранится в БД. Поэтому после импорта дампа со старого сервера в пустую базу на новом сервере все они должны появиться. А удаляться из-за не настроенного системного времени могут только значения свойств объектов (например, история значений температуры, влажности и пр).
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Pacific
Сообщения: 116
Зарегистрирован: Чт май 28, 2015 9:40 pm
Откуда: Вёска пад Мiнскам
Благодарил (а): 60 раз
Поблагодарили: 7 раз

Re: перенос сервера на другой ПК

Сообщение Pacific » Ср окт 07, 2015 11:00 am

skysilver писал(а):Классы, объекты, их свойства, сценарии - все хранится в БД. Поэтому после импорта дампа со старого сервера в пустую базу на новом сервере все они должны появиться.
а у меня они не появляются. Поковыряю вечером. Есть подозрение, что я сделал неправильно это:
skysilver писал(а):1. На исходной системе делаем копию каталога с файлами MJD (www или htdocs).
и у меня восстанавливается не всё.

Спасибо!
россыпь датчиков и серв <-> 20+ ESP8266(WiFi-IoT) <-> Malinka Pi3 :)
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: перенос сервера на другой ПК

Сообщение skysilver » Ср окт 07, 2015 11:12 am

Pacific писал(а):а у меня они не появляются.
Дамп базы на старом сервер корректно сделан? Его можно открыть в обычном текстовом редакторе и проверить, попали ли в него ваши классы и объекты. На новом сервер лучше базу создать заново и импортировать дамп в эту пустую базу. Ну и с именами баз надо повнимательнее. А то поди в конфиге MJD одна база указана, а импорт идет в другую. :)
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Pacific
Сообщения: 116
Зарегистрирован: Чт май 28, 2015 9:40 pm
Откуда: Вёска пад Мiнскам
Благодарил (а): 60 раз
Поблагодарили: 7 раз

Re: перенос сервера на другой ПК

Сообщение Pacific » Чт окт 08, 2015 7:02 am

Заработало!!! Но, есть ньюанс.

Я выяснил, что все объекты и тд лежат в db_terminal и на Винде и на малине.

Экспериментов было много, выделю три.

Эксперимент А:
1. остановил циклы МЖД из консоли
2. на малине удалил БД db_terminal
3. на малине создал пустую БД db_terminal
4. из консоли сделал импорт db_terminal
5. в phpMyAdmin на малине открыл db_terminal/objects и нашел свои объекты
6. удаленно зашел в МЖД (циклы по-прежнему не запущены), увидел свои объекты
7. запустил из консоли МЖД, обновил веб-морду – мои объекты исчезли.
Хрень какая-то!

Эксперимент Б:
То же, что и А, только на малине папку /var/www/ очистил и скопировал туда содержимое c:\_majordomo\htdocs\ на Винде и в пункте 7 получил:
Fatal error: Call to a member function DbSafe() on a non-object in /var/www/lib/mysql.class.php on line 378

Я подумал, что МЖД каждый раз по какой-то причине возвращается к первоначальным настройкам. И, раз я не могу найти эту причину, то надо удалить эти настройки.

Эксперимент В:
То же, что и А, только на малине очистил папку /var/www/saverestore в пункте 7 мои объекты не исчезли. Зато на главной странице вместо меню было длинное сообщение об ошибке. Тут я прервал работу и усыпил комп с которого удаленно рулил малиной. Через час разбудил комп – ошибка в меню исчезла, МЖД работает отлично! Само! Мне только еще пришлось скопировать файл my.class.php со своими функциями из Винды c:\_majordomo\htdocs\ на малину /var/www/. Своих картинок и звуков я не добавлял, поэтому больше ничего копировать не пришлось.

Спасибо большое за действительно реальную помощь.

А теперь ньюанс. Причина, по которой МЖД самовосстанавливалась, видимо не устранена, поэтому каждый раз при перегрузке малины МЖД просит ввести часовой пояс и язык. Установка часов на малине вручную на это никак не повлияла.
Где копнуть?
россыпь датчиков и серв <-> 20+ ESP8266(WiFi-IoT) <-> Malinka Pi3 :)
Pacific
Сообщения: 116
Зарегистрирован: Чт май 28, 2015 9:40 pm
Откуда: Вёска пад Мiнскам
Благодарил (а): 60 раз
Поблагодарили: 7 раз

Re: перенос сервера на другой ПК

Сообщение Pacific » Чт окт 08, 2015 9:38 am

рано радовался...
Сегодня утром первым делом полез на главную страницу МЖД - все работает. Посидел часок, отлучился на 20 мин, обновляю страничку - снова вместо меню ошибка:

Sorry, page is temporary unavailable.

Please try again later.

<<< Back to previous page

http://192.168.1.101/menu.html
Error:
0:
SELECT shouts.*, DATE_FORMAT(shouts.ADDED, '%H:%i') as DAT, TO_DAYS(shouts.ADDED) as DT, users.NAME, users.COLOR FROM shouts LEFT JOIN users ON shouts.MEMBER_ID=users.ID WHERE 1 ORDER BY shouts.ADDED DESC, ID DESC LIMIT 10


Скрипты при этом выполняются.
И снова в бой!
россыпь датчиков и серв <-> 20+ ESP8266(WiFi-IoT) <-> Malinka Pi3 :)
Ответить