Size: a a a

2021 June 02

AG

Armen Gasparyan in ru_mysql
@Gr3ga риск контролируемый, это базы сайтов а их в целом пол миллиона соответственно разбросаны по 50к по разным серверам, время восстановления примерно 1 час - думаю оно того стоит
источник

AG

Armen Gasparyan in ru_mysql
Ребят всем кто отозвался - большое человеческое спасибо - помогла утилита mysqlbinlog
источник

G

Grigorij in ru_mysql
Шо было то?
источник
2021 June 03

AG

Armen Gasparyan in ru_mysql
бекэндовый баг, раздул одну таблицу на 600мб. так как все базы на сервере в основном размером 6-20 мегабайт, в данном случае это было аномально ну и раздуло бинлог естессно.
источник

NI

Nickolay Ihalainen in ru_mysql
иногда раздувает не одна табличка а несколько, тогда глазами бинлог не помогает смотреть: mysqlbinlog + баш скрипты типа summarize_binlogs.sh и ещё немного cut, sort, uniq даёт список табличке и количество изменённых строчек в binlog ( https://www.percona.com/blog/2015/01/20/identifying-useful-information-mysql-row-based-binary-logs/ )
источник

АБ

Алексей Быстрый... in ru_mysql
Приветики. Как удалить партиции в mysql без лока таблицы на запись? Вчера решили дропнуть старые партиции общим обьемом в 2ТБ и все приуныло изза лока.
источник

АБ

Алексей Быстрый... in ru_mysql
Интернет дает противоречивые данные. Документация говорит что вроде лок есть. А вне доки про лок молчат.
источник

G

Grigorij in ru_mysql
А если только одну старую партицию дропнуть? Он по идее это очень быстро должен делать
источник

АБ

Алексей Быстрый... in ru_mysql
там одна партиция 1TB
источник

АБ

Алексей Быстрый... in ru_mysql
даже она не успела за 20 минут удалиться
источник

АБ

Алексей Быстрый... in ru_mysql
мы просто потом ребутнули аврору
источник

АБ

Алексей Быстрый... in ru_mysql
ибо прод лежать начал
источник

G

Grigorij in ru_mysql
Звучит весьма странно
источник

G

Grigorij in ru_mysql
Но я с такими обьёмами не сталкивался никогда
источник

G

Grigorij in ru_mysql
innodb же? Как диагностировали лок?
источник

АБ

Алексей Быстрый... in ru_mysql
Да конечно.
Диагностировали никак. Небыло времени :(
источник

G

Grigorij in ru_mysql
Но продакшн начал заваливаться только спустя 20 минут?
источник

АБ

Алексей Быстрый... in ru_mysql
Сразу
источник
2021 June 04

AS

Anton Shumeyko in ru_mysql
Как можно сделать так чтобы создать в процедуре временную таблицу и пройтись по ней циклом (или просто циклом по массиву) я написал прототип: но увы у меня есть пару проблем
1. Я не могу создать в процедуре временную таблицу из за декларации курсора
2. Я не понимаю как поставить это значение в Drop * и Insert
мОЙ КОД
SET @@session.unique_checks = 0;
SET @@session.foreign_key_checks = 0;

DELIMITER //

CREATE PROCEDURE p1()
BEGIN  

 CREATE TEMPORARY TABLE tables_temp (name VARCHAR(255));
 INSERT INTO tables_temp VALUES("auth"),("auth_assignment"),("auth_item"),("auth_item_child"),("auth_item_group"),("auth_rule"),("career"),("career_lang"),("city"),("city_lang"),("comment"),("contact"),("district"),("district_lang"),("docs"),("eav_attribute"),("eav_attribute_lang"),("eav_attribute_option"),("eav_attribute_type"),("eav_entity"), ("eav_entity_attribute"), ("eav_entity_model"), ("eav_value"), ("formbuilder"), ("media"), ("media_album"), ("media_album_lang"), ("media_category"), ("media_category_lang"), ("media_lang"), ("media_upload"), ("menu"), ("menu_lang"), ("menu_link"), ("menu_link_lang"), ("message"), ("message_source"), ("migration"), ("newsletters"), ("page"), ("page_lang"), ("post"), ("post_category"), ("post_category_lang"), ("post_lang"), ("post_ref_category"), ("post_tag"), ("post_tag_lang"), ("post_tag_post"), ("seo"), ("setting"), ("statistics"), ("tracker"), ("user"), ("user_setting"), ("user_visit_log");


 DECLARE tbl VARCHAR(255);
 DECLARE cur1 CURSOR FOR SELECT name FROM tables_temp;
 
   OPEN cur1;
   OPEN cur2;

   read_loop: LOOP
   FETCH cur1 INTO tbl;
 
   DROP tbl;
   CREATE TABLE IF NOT EXISTS test.`tbl` LIKE `tbl`;
   INSERT IGNORE INTO test.`tbl` SELECT * from `tbl`;
 
   END LOOP;

   CLOSE cur1;  
   
END; //

DELIMITER ;

кто нибудь может мне помочь с этим, моя задача создать sql скрипт который будет выборочно копировать таблицы из базы1 в базу2 со всеми данными
источник

NI

Nickolay Ihalainen in ru_mysql
а зачем курсор? через insert select не реализуемо?
источник