YuryD Опубликовано 8 января, 2019 · Жалоба 5 часов назад, alibek сказал: А ведь и правда, нужно было проверить. Как же это я не подумал. Ладно, значит будет предварительным подарком на новый год. С иннодб у меня не сложилось, а бакапы исам вполне устраивают. Да и лечится всё это безболезнее для юзеров. Откатить платежи в новогоднюю ночь - невозможно, все мои банки клиентов в это время празднуют... Просто было иннодб - после одного из крахов утомился чинить. Откатился на исам, пока живой.... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 8 января, 2019 · Жалоба 21 час назад, alibek сказал: Это как раз про MySQL, по крайней мере классический (5.x). Если уж хочется эту СУБД использовать. то лучше смотреть на MariaDB. mariadb это же форк mysql. нет смысла их считать разными СУБД, они даже бинарно совместимы друг с другом https://mariadb.com/kb/en/library/mariadb-vs-mysql-compatibility/ И отличия-то в основном лицензионного характера. Короче, для меня это одно и тоже. В будущем, возможно, они сильно разойдутся, но пока нет Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 8 января, 2019 · Жалоба ИМХО MariaDB стабильнее и приятных плюшек больше. И по ощущениям работает лучше. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
nixx Опубликовано 9 января, 2019 · Жалоба 15 часов назад, s.lobanov сказал: mariadb это же форк mysql. нет смысла их считать разными СУБД, они даже бинарно совместимы друг с другом https://mariadb.com/kb/en/library/mariadb-vs-mysql-compatibility/ И отличия-то в основном лицензионного характера. Короче, для меня это одно и тоже. В будущем, возможно, они сильно разойдутся, но пока нет поставил я как-то с годик-полтора назад эту марию-дб, какой-то софт у меня ее захотел вместо mysql. ну и после установки даю ей из её же архива файлик my.cnf, кушай на здоровье. а она и говорит "не знаю я таких ключей, что у вас там понаписаны". великие разработчики марии стырили форкнули дистриб у mysql, код попереписали, а конфиги оставили оригинальными. хорошие разработчики, внимааательные... код, наверно, так же качественно переписан. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andrei Опубликовано 9 января, 2019 · Жалоба 19 часов назад, YuryD сказал: бакапы исам вполне устраивают Чем делаете? Mysql-dump знаю, но это не совсем то. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Artom_12 Опубликовано 9 января, 2019 · Жалоба Navicat Premium по моему достаточно удобная программа Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 9 января, 2019 · Жалоба 1 час назад, Andrei сказал: Mysql-dump знаю, но это не совсем то А чем именно не то? Работает быстро, консистентность обеспечивает. Можно еще остановить mysqld и бэкапить (а лучше снэпшотить) файлы данных, но это не всегда приемлемо. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andrei Опубликовано 9 января, 2019 · Жалоба Полнота бэкапа не обеспечивается если база под нагрузкой. Конечно бэкапим тот же биллинг часа в 4 ночи, когда нагрузки почти нет, но все равно какой-нибудь радиус-аккаунтинг корректно не забэкапится. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 9 января, 2019 · Жалоба Ну можно ещё попробовать снэпшотить файлы данных без остановки сервера - на MyISAM это должно сработать. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andrei Опубликовано 9 января, 2019 · Жалоба 9 минут назад, alibek сказал: снэпшотить Поясните. Просто налету копировать базы тут же куда-нить в сторонку, а потом уже потихоньку слить например по ftp на другой сервер? У меня правда innodb и там, как я понимаю, рядом с базой лежат приличные по размеру файлы журнала транзакций вида ib_logfile0, ib_logfile1, ib_logfile2 - тоже надо копировать? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
jffulcrum Опубликовано 9 января, 2019 · Жалоба @Andrei Вероятно, подразумеваются моментальные снимки файловой системы, вроде функционала ZFS или btfrs Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 9 января, 2019 · Жалоба Да, я имел ввиду файловую систему типа ZFS или специализированный SAN, в них как правило есть поддержка снэпшотов. А вот файлы innodb я бы не рискнул копировать (без остановки сервера), так как для транзакционного движка моментальный снимок не гарантирует консистентность. Для транзакционных СУБД есть специальный механизм снэпшотов в SAN, не знаю как он реализован в деталях, но эта функция лицензируемая и недешевая. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
NiTr0 Опубликовано 9 января, 2019 · Жалоба 10 часов назад, alibek сказал: - на MyISAM это должно сработать. сработает в виде битой полузаписанной базы, как при отключении питания :) базу нужно готовить для снэпшота (flush tables). и тогда пофиг - хоть иннодб хоть еще что. а без этого - разломанные полузаписанные таблицы вместо бэкапа. ну и да, у mysqldump есть ключик --single-transaction Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Sacrament Опубликовано 10 января, 2019 · Жалоба В случае с иннодб самый простой вариант - ставить мастер-слейв и делать бэкапы останавливая слейв. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
taf_321 Опубликовано 10 января, 2019 · Жалоба В 08.01.2019 в 22:29, s.lobanov сказал: И отличия-то в основном лицензионного характера. Короче, для меня это одно и тоже. В будущем, возможно, они сильно разойдутся, но пока нет Это давно уже не так. В конфигах уже несовместимая разбежка, по фичам тоже уже второй год несовместимости. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andrei Опубликовано 10 января, 2019 · Жалоба 9 часов назад, NiTr0 сказал: у mysqldump есть ключик --single-transaction Это тоже в курсе. По итогу пришли к варианту: nice -n 15 mysqldump -u _user_ -p_pasword_ --quick --single-transaction --force --create-options --add-drop-table --routines --databases billing | gzip > "/vol1/LB/lb.`date +\%Y\%m\%d`.sql.gz" Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
YuryD Опубликовано 27 января, 2019 · Жалоба В 09.01.2019 в 14:02, Andrei сказал: Чем делаете? Mysql-dump знаю, но это не совсем то. mysqlhotcopy. жадные люди, но с хекседитором оно становится вполне лицензионной на века и бесплатно. Я - не хакер :) P.S. - Она давно была платной, сейчас вроде бесплатна. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andrei Опубликовано 2 июня, 2019 · Жалоба Бэкапил InnoDB базу ЛанБиллинг указанным тут Биллинг стоит на очень старом выделенном сервере с дебианом. Хочу перенести в виртуалку. Сделал дамп диска с выделенного сервера, развернул на его основе виртуалку. Пытаюсь развернуть на виртуалке свежий бэкпап базы и получаю: root@lb:~# mysql -u root -pхххххххххх billing < lb.20190531.sql ERROR 2013 (HY000) at line 1540: Lost connection to MySQL server during query root@lb:~# mysql -u root -pхххххххххх billing < lb.20190531.sql ERROR 2013 (HY000) at line 2236: Lost connection to MySQL server during query Номер проблемной строки всякий раз разный. Что-то делаю не так? Какой best practice в этом вопросе? Или проще остановить ночью биллинг и mysql на старом сервере и забрать файлы баз простым копированием каталога /var/lib/mysql? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
zhenya` Опубликовано 2 июня, 2019 · Жалоба --skip-extended-insert может попробовать? мускл то подтюнили? если там иннодб, то имеет смысл задрать буферпул на время влития дампа. net_read_timeout / wait_timeout еще подкрутить. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andrei Опубликовано 2 июня, 2019 · Жалоба 2 минуты назад, zhenya` сказал: --skip-extended-insert может попробовать? При снятии дампа на старом сервере? или при развертывании на новом? 2 минуты назад, zhenya` сказал: мускл то подтюнили? Поскольку виртуалка сделана на базе дампа с диска старого сервера, то и мускул получился идентичным. 3 минуты назад, zhenya` сказал: если там иннодб, то имеет смысл задрать буферпул на время влития дампа. net_read_timeout / wait_timeout еще подкрутить. net_read_timeout - наверное вряд ли критично? т.к. бэкап вливается не по сетке, а локально. Все остальное "крутить в какую сторону"? :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
zhenya` Опубликовано 2 июня, 2019 · Жалоба --skip-extended-insert для mysqldump конечно. mysql это клиент mysqld, который работает скорее всего через unix socket. чем это не сеть? конечно крутить в большую сторону. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andrei Опубликовано 2 июня, 2019 · Жалоба Памяти на виртуалке 8 гиг root@lb:~# free total used free shared buffers cached Mem: 8310032 4667192 3642840 177972 107464 2848264 -/+ buffers/cache: 1711464 6598568 Swap: 2096124 0 2096124 Но больше чем innodb_buffer_pool_size = 2G сделать не удалось. При попытке поставить хотя бы 3 или 4: 190602 13:24:10 InnoDB: Initializing buffer pool, size = 3.0G InnoDB: mmap(3263692800 bytes) failed; errno 12 190602 13:24:10 InnoDB: Completed initialization of buffer pool 190602 13:24:10 InnoDB: Fatal error: cannot allocate memory for the buffer pool Остальные таймауты поставил net_read_timeout=180 wait_timeout=31536000 Пока без положительного результата. PS. --skip-extended-insert для mysqldump пока не делал, днем как-то не решился снимать дамп со старой базы. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
NiTr0 Опубликовано 2 июня, 2019 · Жалоба 1 час назад, Andrei сказал: Что-то делаю не так? Какой best practice в этом вопросе? попробуйте конфиг мускуля со старого сервера закинуть. ну и логгирование включите, если не поможет. как вариант куда покопать: query_cache_limit query_cache_size innodb_log_file_size innodb_log_buffer_size по поводу pool size - попробовать покрутить kernel.shmmax и kernel.shmall (второе - в 4к страницах, не байтах!) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
zhenya` Опубликовано 2 июня, 2019 · Жалоба У него поди остальные параметры влияющие на память не очень оптимально настроены. Натрави mysqltuner.pl и покажи вывод? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andrei Опубликовано 2 июня, 2019 · Жалоба 2 часа назад, zhenya` сказал: mysqltuner.pl на новом сервере: root@lb:~# mysqltuner >> MySQLTuner 1.3.0 - Major Hayden <major@mhtx.net> >> Bug reports, feature requests, and downloads at http://mysqltuner.com/ >> Run with '--help' for additional options and output filtering [OK] Logged in using credentials from debian maintenance account. [OK] Currently running supported MySQL version 5.5.62-0+deb8u1 [!!] Switch to 64-bit OS - MySQL cannot currently use all of your RAM -------- Storage Engine Statistics ------------------------------------------- [--] Status: +ARCHIVE +BLACKHOLE +CSV -FEDERATED +InnoDB +MRG_MYISAM [--] Data in PERFORMANCE_SCHEMA tables: 0B (Tables: 17) [--] Data in InnoDB tables: 1G (Tables: 4072) [--] Data in MyISAM tables: 2G (Tables: 2122) [!!] Total fragmented tables: 4072 -------- Security Recommendations ------------------------------------------- [!!] User 'billing@%' has no password set. -------- Performance Metrics ------------------------------------------------- [--] Up for: 7h 57m 56s (72K q [2.540 qps], 2K conn, TX: 1M, RX: 4B) [--] Reads / Writes: 32% / 68% [--] Total buffers: 2.2G global + 6.3M per thread (70 max threads) [!!] Allocating > 2GB RAM on 32-bit systems can cause system instability [!!] Maximum possible memory usage: 2.6G (33% of installed RAM) [OK] Slow queries: 0% (1/72K) [OK] Highest usage of available connections: 5% (4/70) [OK] Key buffer size / total MyISAM indexes: 128.0M/1.3G [OK] Key buffer hit rate: 100.0% (79M cached / 2K reads) [!!] Query cache efficiency: 4.3% (188 cached / 4K selects) [OK] Query cache prunes per day: 0 [OK] Sorts requiring temporary tables: 0% (0 temp sorts / 2 sorts) [OK] Temporary tables created on disk: 20% (55 on disk / 271 total) [OK] Thread cache hit rate: 99% (4 created / 2K connections) [!!] Table cache hit rate: 0% (24 open / 14K opened) [OK] Open file limit used: 2% (44/2K) [OK] Table locks acquired immediately: 100% (9K immediate / 9K locks) [OK] InnoDB buffer pool / data size: 2.0G/1.1G [OK] InnoDB log waits: 0 -------- Recommendations ----------------------------------------------------- General recommendations: Run OPTIMIZE TABLE to defragment tables for better performance MySQL started within last 24 hours - recommendations may be inaccurate Enable the slow query log to troubleshoot bad queries Increase table_open_cache gradually to avoid file descriptor limits Read this before increasing table_open_cache over 64: http://bit.ly/1mi7c4C Variables to adjust: query_cache_limit (> 1M, or use smaller result sets) table_open_cache (> 256) "User 'billing@%' has no password set." Это гониво какое-то: root@lb:~# mysql billing -u billing -p; Enter password: ERROR 1045 (28000): Access denied for user 'billing'@'localhost' (using password: NO) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...