Неужели нет возможности восполнить это после удаления библиотеки?

база данных
Неужели нет возможности восполнить это после удаления библиотеки?

Задайте вопрос?

  1. Какое влияние вызовет аварийный перезапуск базы данных сервера?
  2. Случайно удалили базу данных, как это сделать, или случайно удалили данные из таблицы базы данных, как это сделать?
  3. Как оператор обновления связан с системой регистрации базы данных, когда он выполняется внутри системы базы данных?
  4. Резервное копирование базы данных, лучше делать резервное копирование каждый день или каждую неделю? Затем, объясняя систему ведения журнала, ответьте на приведенные выше вопросы.

Детали лог-системы:

журнал повторов (журнал повторов)

redoЭто журнал уровня движка, уникальный для InnoDB. ИнноБДredo logСуществует фиксированный размер, например, можно настроить как набор из четырех файлов (файл журнала-1, файл журнала-2, файл журнала-3, файл журнала-4), размер каждого файла 1 ГБ, затем операция записи и общая из 4 ГБ. Кольцевая структура цикла, записываемая с нуля, записываемая в конец обратно к началу цикла записи.

Кольцевая структура в REDO

Структурная схема:

write posЭто позиция текущей записи. Она перемещается назад при записи. Она имеет кольцевую структуру. Когда она записывается в конец файла 3, она возвращается в начало файла 0. контрольная точка — это текущая стертая позиция, которая также перемещается назад и зацикливается. Обратите внимание, что записи должны быть обновлены до файла данных перед удалением записей (здесь вы можете вспомнить пример официальной бухгалтерской книги босса)

функция журнала повторов (ответ на вопрос 1)

  1. В MySQL, если каждая операция обновления записывается на диск, а затем диск также находит соответствующую запись, а затем обновляет ее, стоимость ввода-вывода и стоимость поиска всего процесса очень высоки.Чтобы решить эту проблему и улучшить эффективности, это будет использование журналов повторного выполнения, технологии WAL, о которой часто говорит MySQL,WALСтендыwrite-Ahead-Logging, ключевой момент в том, что先写日志,再写磁盘. В частности, когда есть запись, которую необходимо обновить, механизм InoDB сначала записывает в журнал повторов и обновляет память.На этом обновление завершено. В то же время механизм InnoDb будет обновлять запись операции на диске в соответствующее время, и это обновление часто выполняется, когда система относительно простаивает.
  2. Именно благодаря журналу повторов InnoDB может гарантировать, что даже в случае аварийного перезапуска базы данных большинство ранее отправленных записей не исчезнет.crash-safe. Пока физические записи базы данных все еще находятся в журнале повторов, база данных сервера перезапускается из-за проблемы.После восстановления базы данных записи данных все еще могут быть восстановлены.

бинлог лог (архив лога)

Инфраструктура Mysql разделена на две части: серверный уровень и уровень механизма, который в основном отвечает за вопросы, связанные с хранением. Как было сказано выше, в слое движка есть свой лог, и он доступен только в движке InnoDB. Уровень сервера также имеет свой собственный журнал, который называется binlog (архивный журнал). Он использует способ записи в журнал. Добавление записи означает, что файл binlog переключится на следующий после того, как он будет записан до определенного размера, и не перезапишет предыдущий журнал.

функция журнала binlog (ответ на вопрос 2)

Полагаясь только на отказоустойчивую функцию журнала повторов, когда речь идет о случайном удалении базы данных, случайном удалении данных таблицы и т. Д., Иногда журнал повторов бессилен, но журнал binlog решает эти проблемы, потому что binlog записывает все логические операции и использует «добавить написать"форма.

Например, если однажды днем ​​сотрудник компании обнаруживает, что по ошибке выполняется операция по удалению данных из таблицы, и просит восстановить данные, что ему делать? (Примечание: необходимо учитывать, были ли они удалены по ошибке сразу после резервного копирования или до резервного копирования. Следующий пример удален до резервного копирования. Найдите данные, которые были удалены ранее)

  1. Во-первых, найдите ближайший полный объем резервной копии, это зависит от того, как долго резервная копия базы данных вашей компании (некоторые компании один день, некоторые компании будут удаляться регулярно, многие компании хранят только резервную копию базы данных за последний месяц), после получения резервной копии data, восстановите эти резервные данные во временную таблицу
  2. Затем, начиная с точки времени резервного копирования, по очереди извлекаются резервные бинлоги, и переигрываются до момента до случайного удаления таблицы.
  3. В это время временная база данных такая же, как онлайн-база данных до случайного удаления, а затем данные таблицы извлекаются из временных данных и при необходимости восстанавливаются в онлайн-базе данных.

Сравнение журнала повторов и журнала binlog

В чем разница между журналом повторов и журналом binlog? На самом деле многое из вышеперечисленного было упомянуто, и я еще раз подытожу, чтобы углубить свое впечатление.

  1. Журнал повторов уникален для механизма InnoDB; бинарный журнал реализован на уровне сервера MySQL и может использоваться всеми механизмами.
  2. журнал повторов — это физический журнал, который записывает, какие изменения были сделаны на странице данных; binlog — это логический журнал, который записывает исходную логику оператора, например «добавьте единицу в поле c строки с ID = 2». "
  3. Журнал повторов环状结构, циклическое письмо, пространство будет использовано, и он должен быть стерлен после использования; BinLog может быть дополнительно написан. «Добавить запись» означает, что только файл Belog переключится на следующий после того, как он записан на определенный размер, и не перезаписывает предыдущий журнал.

Обновить поток выполнения оператора (связь с журналами)

Заявление базы данных:

mysql> update Student set c=c+1 where ID=2;

Анализируя это заявление об обновлении, нарисуйте блок-схему,Вопрос 3также решиться.

Обратите внимание на последние три шага блок-схемы.Здесь оператор обновления и журнал тесно связаны.Журнал повторов разбит на два этапа: подготовка и фиксация.В середине из них исполнитель записывает в бинлог . (Примечание. Если вы этого не сделаете, то при успешной отправке одного журнала произойдет сбой базы данных до того, как будет отправлен другой журнал, но аварийное восстановление или случайное удаление восстановления базы данных могут вызвать проблемы с несогласованностью данных между двумя файлами. . )

Как установить эти две конфигурации сохранения журнала для mysql во время разработки

  • redo log

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

  • binlog

    Когда для параметра sync_binlog установлено значение 1, это означает, что binlog каждой транзакции сохраняется на диск. Я также рекомендую вам установить этот параметр равным 1, что может гарантировать, что случайные операции удаления MySQL (удаление данных таблицы, удаление данных базы данных) все еще могут быть восстановлены через binlog.

Как просмотреть оба журнала

Некоторые недоразумения и вопросы по системе логов

  • Вы считаете, что достаточно иметь журналы повторов, почему появляются журналы binlog?

    отвечать:

    1. Журнал повторов предоставляется только механизмом InnoDB.
    2. Журнал повторов записывается в циклической структуре и будет стерт после достижения настроенного фиксированного размера.При ошибочном удалении данных базы данных или таблицы резервная копия может быть восстановлена ​​не полностью.
  • Вот вопрос: Если аварийный перезапуск БД в момент совпадения стирания и учета, то как будет фиксироваться новая операция БД?Стирать часть записи, и запись пропадет, или ждать перезапустить, чтобы добавить данные?

  • Что касается резервных копий баз данных, лучше делать резервную копию один раз в день или раз в неделю, и как долго вы обычно храните файлы резервных копий?4 вопроса для решения

    Ответ: Для цикла резервного копирования базы данных необходимо рассмотреть следующие индикаторы: инвентаризация данных, приращение, стоимость резервного копирования и эффективность восстановления.

    1. Если хранилище данных настолько велико, что его нельзя создать резервную копию за один день, его можно создавать только один раз в неделю или даже дольше.
    2. Приращение бизнес-данных, если приращение очень велико, если вы выполняете резервное копирование один раз в неделю, добавочное резервное копирование может завершиться ошибкой, а время восстановления и вероятность успеха также сложны, вы можете рассмотреть возможность создания одной резервной копии в день.
    3. Бизнес важнее, а толерантность к времени восстановления низкая.Потребность в откате данных возникала уже много раз, и приращение данных не маленькое, поэтому можно подумать о его подготовке раз в день. Напротив, бизнес на самом деле не важен, и можно допустить некоторую недоступность, когда возникает проблема.

    В общем, это во многом связано с проектами, требованиями и сценариями.

  • Запись журналов повторного выполнения также является операцией ввода-вывода, и запись обновлений данных непосредственно на диск также является операцией ввода-вывода.Почему вы говорите, что запись журналов повторного выполнения эффективна и экономит затраты на ввод-вывод?

    Ответ: журнал повторов записи пишется последовательно, не для "нахождения позиции", а для обновления данных сразу на диск, для этого нужно найти место на диске и потом записать, конечно бывшая высокая оперативность.

Сводка и реклама

Вышеприведенный контент посвящен объяснению системы журнала базы данных. В то же время он решает несколько проблем, связанных с журналом базы данных, которые я поднял в начале. Я надеюсь, что это поможет вам лучше понять базу данных обучения. Если у вас есть какие-либо вопросы, вы всегда можете обратить внимание на общественный счет, чтобы связаться и учиться друг у друга.

Категории