Рубрика «mariadb»

Сколько проектов можно разрабатывать одновременно? Вопрос звучит неоднозначно. С одной стороны, на процесс влияет человеческий фактор, с другой – технические ограничения.

Если в работе используется Docker, то запуск нескольких проектов одновременно может превратиться в жонглирование контейнерами. Под таким словосочетанием я имею в виду постоянное отключение и подключение контейнеров, изменения портов, чтобы не было конфликтов, а также имена контейнеров, потому что внутри контейнера иногда необходимо выполнить скрипты. 

Читать полностью »

Три кита. Краткая история трех популярных CMS и попытка заглянуть в будущее - 1
Во второй половине «девяностых» индустрия «сайтостроения» переживала расцвет. Каждая компания стремилась заявить о себе в интернете, каждый пользователь мечтал завести личную «домашнюю страничку». На помощь веб-мастерам приходили всевозможные программы вроде FrontPage и Dreamweaver, но большинство сайтов все еще представляли собой набор статических HTML-страниц, иногда — с вкраплением CSS. Чуть позже появилась технология Server Side Includes, позволявшая динамически собирать сайт на сервере из стандартных блоков: «шапки», панели меню, «подвала» и, собственно, полезного содержимого. После этого оставался только один шаг до внедрения баз данных и систем управления контентом, значительно упростивших жизнь как разработчикам, так и владельцам ресурсов.
Читать полностью »

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

Ну а начиналось все очень мирно: мы хотели немного подтянуть сайт под обновленные требования Google.

Читать полностью »

Прим. перев.: в процессе поиска решения проблемы с логированием медленных запросов MySQL наткнулся на довольно познавательную статью. Её автор не только в деталях описывает своё расследование, которое может оказаться полезным для начинающих администраторов, но и попутно пробуждает чувства ностальгии по эпохе VT100.

Краткое содержание:

  • MySQL работает под пользователем mysql без root-прав.

  • Контейнер Docker использует Alpine, само собой. А как иначе?

  • Попытка сделать так, чтобы пользователи без root-прав могли записывать в /dev/stderr и /dev/stdout, похоже, провалилась.

  • Читать полностью »

Let's Encrypt перевел серверы БД на AMD EPYC - 1
Внутреннее устройство 2U-сервера Dell PowerEdge R7525. Два серебристых прямоугольника посередине — процессоры AMD EPYC 7542. Сверху и снизу от них планки оперативной памяти по 64 ГБ каждая. На левом краю фотографии — 24 диска NVMe, такое возможно только на EPYC

Let's Encrypt — крупнейший удостоверяющий центр в интернете, на его бесплатных TLS-сертификатах работает более 235 млн сайтов. В сердце УЦ находится база данных, на основе которой происходит управление сертификатами. Важно, чтобы её производительность была на уровне, иначе мы увидим ошибки API и таймауты при выдаче сертификатов.

В конце 2020 года некоммерческая организация сделала апгрейд своих серверов.
Читать полностью »

Есть такая проблема — в 2038м году количество секунд с начала эпохи Unix Time перевалит за величину signed int и исчезнет. Это как проблема 2000 года, только намного сложнее, потому что для неё нужно менять типы данных.

Так вот… в MySQL уже четырнадцать с половиной лет висит просьба что-то сделать на этот счёт. Функции UNIX_TIMESTAMP и FROM_UNIXTIME вообще не могут обрабатывать даты после 19 января 2038го.

Проверить это достаточно просто: попробуйте вот этот запрос.

select unix_timestamp('2038-01-20');

Читать полностью »

image

Предыстория

Так произошло, что сервере был атакован вирусом шифровальщиком, который по "счастливой случайности", частично отставил не тронутыми файлы .ibd (файлы сырых данных innodb таблиц), но при этом полностью зашифровал файлы .fpm (файлы структур). При этом .idb можно было поделить на:

  • подлежащие восстановлению через стандартные средства и гайды. Для таких случаев, есть отличная статься;
  • частично зашифрованные таблицы. Преимущественно это большие таблицы, на которые (как я понял), злоумышленниками не хватило оперативной памяти на полное шифрование;
  • ну и полностью зашифрованные таблицы, не подлежащие восстановлению. Читать полностью »

Свой велосипед для синхронизации MariaDB и Sphinx - 1

28 февраля я выступал с докладом на SphinxSearch-meetup, который проходил в нашем офисе. Рассказывал о том, как мы пришли от регулярного перестроения индексов для полнотекстового поиска и отправки обновлений в коде «по месту» к рейлтайм-индексам и автоматической синхронизации состояния индекса и базы данных MariaDB. По ссылке доступна видеозапись моего доклада, а для тех, кто предпочитает чтение просмотру видео, я написал эту статью.

Читать полностью »

Как научить MySQL заглядывать в прошлое

В статье речь пойдёт о протоколировании изменений в MySQL. Хочу показать реализацию протоколирования на триггерах и то, какие удивительные вещи можно будет с этим делать.

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

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

В целом же решение является законченным и комплексным. Может быть внедрено «как есть» и прекрасно справляться со своей задачей.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js