Иногда возникает ситуация когда необходимо перенести данные баз данных с одного сервера CallBox на другой, к примеру при переносе IP АТС на более мощный сервер.Для осуществления данной процедуры нам потребуется root доступ к серверу IP АТС.Приступим.
- На первом сервере, с которого будем переносить конфигурацию и базы данных mysql и psql
1.2 Перед началом копирования, остановим asterisk командой:
/etc/init.d/asteriskstop
1.3 Создадим архив с директорией содержащей файл AstDB (база данных Asterisk’а) и ряд подкаталогов:
tar czvf /tmp/var.tar.gz /var/lib/asterisk/
1.4 Создадим архив директории содержащей конфигурационные файлы Asterisk’а
tar czvf /tmp/etc.tar.gz /etc/asterisk/
1.5 Снимем дамп баз данных MySQL
mysqldump -u USERNAME -p —databases ams asterisk asteriskcdrdb crm qstats sms users > /tmp/databases.sql
Если появляется следующая ошибка:
mysqldump: Couldn't execute 'show table status like 'city\_city'': Can't read dir of './crm/' (errno: 24) (1018)
Выполняем последовательно следующее:
В файле /etc/mysql/my.cnf в конце ветки [mysqld] добавим следующие строчки:
open-files-limit = 2048
table_cache = 512
Далее в конце файла /etc/security/limits.conf добавим две строчки перед фразой # End of file:
mysql soft nofile 4096
mysql hard nofile 8192
Перезагрузим демона MySQL:
/etc/init.d/mysql restart
1.6 Повторим пункт 1.5.
1.7 Снимем дамп базы данных PostgreSQL:
pg_dump -U USERNAME2 cel > /tmp/cel.sql
2.1 На втором сервере, создадим соединение по FTP с первым:
sftp -P [порт ssh] [IPпервого сервера]
2.2 Перейдем в подкаталог:
cd /tmp/
2.3 Скачаем два архива и два файла с дампами баз данных в домашнюю директорию:
get databases.sql .
get cel.sql .
get etc.tar.gz .
get var.tar.gz .
Ctrl+D – этим сочетанием клавиш сбросим соединение с первым сервером:
2.4 Остановим asteriskна втором сервере:
/etc/init.d/asterisk stop
2.5 Разархивируем скачанные с первого сервера файлы:
tarxzvfvar.tar.gz
tarxzvfetc.tar.gz
2.6 Импортируем дамп базы данных MySQL:
mysql -u USERNAME -p < databases.sql
2.7 Зайдем в консоль управления Postgre:
psql -U USERNAME2 cel
2.8 Выполним следующие команды, удалим существующие таблицы:
\dt
DROP TABLE cdr;
DROP TABLE cel;
\q
2.9 Сделаем импорт базы данных Postgre
psql -U USERNAME2 cel < cel.sql