1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mo-shan-analysis_binlog

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
如何快速分析binlog.md 6.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 12:00 4e62965

需求: некоторая бизнес-задача по миграции MySQL, но перед миграцией необходимо выполнить следующие подготовительные работы:

  1. Собрать статистику операций DML для каждой бизнес-таблицы.
  2. Собрать информацию о последнем времени доступа к каждой бизнес-таблице.

Условия:

  1. Один бинлог размером 1 ГБ занимает 60 минут.
  2. Бинлоги хранятся в течение одного месяца.

Если вы столкнулись с такой задачей, как бы вы начали анализ? Я, столкнувшись с этой задачей, первым делом подумал о написании скрипта для автоматического анализа. Ниже я поделюсь своим процессом анализа.

  1. Установите скрипт для анализа binlog.
git clone https://gitee.com/mo-shan/analysis_binlog.git
cd analysis_binlog
sed -i 's#^mysqlbinlog=.*#mysqlbinlog=\"/usr/local/mysql/bin/mysqlbinlog\"#g' bin/analysis_binlog    #配置mysqlbinlog工具的路径,否则可能会因版本太低导致错误 必须配置
sed -i 's#^work_dir=.*#work_dir=\"/home/moshan/analysis_binlog\"#g' bin/analysis_binlog              #配置analysis_binlog家目录 必须配置
chmod +x bin/analysis_binlog                                                                        #添加可执行权限
echo "export PATH=/home/moshan/analysis_binlog/bin:${PATH}" >> ${HOME}/.bashrc                      #配置环境变量
  1. Выполните в соответствии с требованиями:
  • -bfile: укажите файл binlog, поддержите параллельный анализ нескольких файлов, используйте запятую для разделения нескольких файлов. Используйте параметр -w для параллельного анализа нескольких файлов.
  • -w: укажите количество параллельных процессов. Этот параметр действителен только при необходимости анализа нескольких файлов binlog. По умолчанию — 1.
  • -t: укажите формат вывода результатов или содержимое. Доступные варианты: «detail» или «simple». При указании «detail» результаты будут более подробными и будет отображаться подробный процесс анализа, что может занять больше времени. «Simple» выполняет только статистическую работу.
  • -s: укажите правило сортировки. Доступные параметры: «insert», «update» или «delete». По умолчанию результаты сортируются по таблицам, а затем подсчитывается количество операций insert, update и delete, и они сортируются в порядке убывания количества операций (по умолчанию — insert).

Примечание: для получения дополнительной информации об использовании других параметров обратитесь к руководству bash analysis_binlog -h.

analysis_binlog -bfile=/data/mysql/binlog/3306/mysql-bin.000798,/data/mysql/binlog/3306/mysql-bin.000799 -w=2 -t=simple -s=update  
  1. Просмотрите результаты.

После завершения анализа в каталоге res в каталоге analysis_binlog будет сохранён файл [binlog_file_name.res]. Откройте его с помощью текстового инструмента, например cat, tail, more. Результаты будут отсортированы по таблицам и количеству операций update. Поле «Last Time» показывает время последней операции для данной таблицы. Таблица Последнее время Вставки Обновления Удаления Всего mhjendwo.meffhde_fub_iwem 190421 16:17:35 144215 0 51744 195959 mhjendwo.meffhde_pub_hecohd 190421 16:17:35 128372 0 44397 172769 mhjendwo.fhlef_ef_phoducw_middle 190421 16:17:35 6 136902 0 136908 mhjendwo.fhlef_counweh 190421 16:17:35 37 52687 0 52724 mhjendwo.fhlef_phodheff_bhh 190421 16:17:35 0 49294 0 49294 mhjendwo.meffhde_fehvice_fend_plhn 190421 16:17:34 5322 10652 0 15974 mhjendwo.w_fhlef_difwhibuwion_phomowion_expenfef 190421 16:17:35 0 7273 0 7273 mhjendwo.fhlef_whip_fwhucw_jlidhw_ohidin 190421 16:17:26 217 5388 0 5605 mhjendwo.meffhde_fehvice_fend_fwhwifwicf 190421 16:17:34 0 5323 0 5323

[root@xxxxxx res]# tail -10 00xxxx3306-mysql-bin.003293.res mhjendwo.lochldehlf_nowice 190421 16:16:57 1 0 0 1 mhjendwo.dehlf_wickew_ohdeh_vifiwoh 190421 16:10:54 1 0 0 1 mhjendwo.cufwomize_fcheme_wemplhwe_bhfe 190421 16:11:31 1 0 0 1 mhjendwo.cufwomize_ef_fcheme_wemplhwe_middle 190421 16:11:31 1 0 0 1 mhjendwo.cufwomize_difwhibuwe 190421 16:14:48 1 0 0 1

Trans(всего) Вставки Обновления Удаления 648497 289939 279808 96517

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mo-shan-analysis_binlog.git
git@api.gitlife.ru:oschina-mirror/mo-shan-analysis_binlog.git
oschina-mirror
mo-shan-analysis_binlog
mo-shan-analysis_binlog
master