Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > после переноса БД на другой сервер


Автор: DCoder 15.7.2010, 20:19
Доброго времени суток!
После переноса базы данных с одного сервака на другой процессы mysqld и mysqld_safe (смотрю в консоли командой top) грузят процессор на 100%. И так довольно упорно и долго. Кто-нибудь знает, над чем он может колдовать? ОС - Linux Ubuntu, MySQL - 5.1, база InnoDB. При переносе всё делаю по алгоритму на dev.mysql.com: останавливаю сервер, копирую ibdata, .frm-файлы, логи... База в итоге получается рабочая, но это долгое шуршание демона делает сервер неработоспособным.

Автор: skyboy 15.7.2010, 21:20
думаю, либо радикально отличаются параметры железа сервера и схожие параметры конфигурации, либо разные конфиги mysql.
лично я в настройке не рублю, но, коль ты рассчитываешь получить помощь, рекомендую тебе привести железячные конфиги обоих серверов и содержимое файлов mysql.ini(предварительно удалив их от комментариев)

Автор: DCoder 15.7.2010, 22:17
Хм... Конфиги вряд ли. Проводили эксперименты на виртуальных машинах (на одной базу создавали, потом несли на другую VM) - там уж точно конфиги идентичные. Хорошо, выложу.

Автор: DCoder 16.7.2010, 10:42
my.cnf:
Код

[client]
port        = 3306
socket        = /var/run/mysqld/mysqld.sock
default-character-set=utf8

[mysqld_safe]
socket        = /var/run/mysqld/mysqld.sock
nice        = 0

[mysqld]

user        = mysql
pid-file    = /var/run/mysqld/mysqld.pid
socket        = /var/run/mysqld/mysqld.sock
port        = 3306
basedir        = /usr
datadir        = /var/lib/mysql
tmpdir        = /tmp
skip-external-locking

query_cache_size=32M
table_cache=4096
thread_cache_size=32
max_heap_table_size=32M
tmp_table_size=32M
innodb_buffer_pool_size=32M
innodb_flush_log_at_trx_commit=2
innodb_flush_method=O_DIRECT
transaction-isolation=READ-COMMITTED

default-storage-engine = innodb
bind-address        = 127.0.0.1
key_buffer        = 16M
max_allowed_packet    = 16M
thread_stack        = 128K
myisam-recover        = BACKUP
expire_logs_days    = 10
max_binlog_size         = 100M

join_buffer_size        = 1M
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
init-connect="SET NAMES utf8"
skip-character-set-client-handshake

[mysqldump]
quick
quote-names
max_allowed_packet    = 16M

default-character-set=utf8

[mysql]

[isamchk]
key_buffer        = 16M

!includedir /etc/mysql/conf.d/

Автор: skyboy 16.7.2010, 11:12
конфиги одинаковые, да?
а характеристики сервера сильно различаются?
видишь, в конфиге куча параметров, определяющих объемы данных. может, к примеру, у тебя стало намного меньше оперативной памяти и какие-то параметры надо уменьшить?
это "живой сервер"? в смысле, запросов выполняется много и все разные? или же можно выделить из небольшой совокупности запросов именно те, которые тормозят? если бы выделить конкретный запрос, который раньше не тормозил вообща, а сейчас тормозит адски - можно было бы натравить на него профайлер и выяснить, какая подсистема(сеть, дисковая подсистема или другое) так тормозит.
какие таблицы используются: innodb или myisam?

Автор: DCoder 16.7.2010, 12:37
Да, конфиги и серваки одинаковые - для чистоты эксперимента smile
Сервак "не живой" - он пока только для разработки. Запросов он не выполняет (кроме наших), а загрузка начинается сразу же после старта MySQL сервера. То есть MySQL не занят обработкой запросов, а выполняет какие-то свои внутренние операции. Таблицы, как я уже указал ранее, InnoDB.

Автор: skyboy 16.7.2010, 13:05
а в логах mysql пусто?

Автор: DCoder 16.7.2010, 16:17
а где MySQL хранит логи - ib_logfile'ы?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)