Хочу рассказать о том, как создать сквозной монотонно возрастающий целочисленный id в MySQL (это называется sequence
в других БД). Зачем это нужно? Например, у нас есть два вида задач для сотрудников в системе, у каждого типа задач есть свой набор атрибутов и свой жизненный цикл (набор статусов). Для того чтобы не городить огород в коде приложения для корректного чтения разных сущностей из БД и не плодить колонки с NULL проще всего разнести сущности по разным таблицам.
MySQL *
Свободная реляционная СУБД
MySQL в Docker не может писать slow-логи в /dev/stderr
Прим. перев.: в процессе поиска решения проблемы с логированием медленных запросов MySQL наткнулся на довольно познавательную статью. Её автор не только в деталях описывает своё расследование, которое может оказаться полезным для начинающих администраторов, но и попутно пробуждает чувства ностальгии по эпохе VT100.
Сначала краткая предыстория. Я пытался сделать так, чтобы логи медленных запросов в MySQL писались в /dev/stderr
и их можно было бы читать с помощью простого docker-compose logs -f mysql
без необходимости входить в контейнер с docker-compose exec mysql ash
.
selectel-exporter — экспортер для manage-баз данных
Мы в KTS на многих проектах пользуемся услугами managed database от selectel. За этими кластерами нужно следить, и делать это хотелось бы из одной точки. Этой точкой у нас является prometheus, alertmanager и grafana.
Из коробки у selectel нет prometheus exporter для manage-баз данных. Есть внутренние графики и мониторинг, но использовать их затруднительно. Поэтому мы написали свой selectel-exporter, который использует selectel API.
В статье расскажем, почему решили его написать и расскажем, что он умеет.
PlanetScale — Serverless SQL база данных для разработчиков
Этим летом я по уши увяз в serverless-тематике и даже решил переписать один из своих pet-проектов целиком на serverless. Движок для сайта, поддерживающий бессерверные вычисления и вендор для кэширующей прослойки были найдены быстро - NextJS (с деплоем на Vercel) и Upstash с оплатой за каждую отдельную операцию и байт в хранилище. Камнем преткновения стал выбор провайдера для DBaaS. Мне бы хотелось реализовать всё таким образом, чтобы у проекта было две разных базы данных - для разработки и для production, и мне совсем не хотелось запускать базу данных для разработки на локальной машине. Поверхностное ознакомление с DBaaS провайдерами показало, что за дополнительную базу данных пришлось бы платить вдвое больше несмотря на то, что она использовалась бы дай Бог пару раз в неделю. И я ушёл в просмотр докладов и презентаций на YouTube и это именно тот момент когда я открыл для себя PlanetScale. Хочу поделиться своим открытием с вами.
Истории
Централизованное управление CBPolicyD в мультисерверной инфраструктуре Zimbra OSE
CBPolicyD является универсальным инструментом для управления политиками в Postfix. Он входит в комплект поставки Zimbra OSE и ранее мы рассказывали о том, как настраивать CBPolicyD на своем почтовом сервере и создавать в нем различные политики, которые позволяют повысить уровень защищенности сервера от кибератак. Однако все данные ранее рекомендации были применимы к односерверной инфраструктуре Zimbra OSE, так как CBPolicyD по умолчанию использует автономную СУБД SQLite 3 для хранения и управления политиками, а это означает, что созданная на одном сервере политика не будет иметь силы на другом сервере и каждый раз для внедрения новой политики, администратору придется создавать ее на каждом сервере MTA. В случае с односерверной инфраструктурой это допустимо, однако когда речь идет о мультисерверной инфраструктуре Zimbra OSE, необходимо чтобы созданная политика применялась сразу на всех MTA. Это облегчает не только процесс создания политик, но и процесс управления ими. Для того, чтобы созданная политика автоматически применялась на всех MTA в инфраструктуре, необходимо подключить ее к глобальной СУБД MariaDB. Плюсом использования MariaDB является то, что эта СУБД более отказоустойчива, чем SQLite 3. То есть при больших нагрузках на MTA CBPolicyD гарантированно не будет пропускать письма, не соответствующие настроенным политикам. В данной статье мы расскажем о том, как это сделать.
DataGrip 2021.2: Генерация источника на основе кода, поиск по истории изменений, управление списком автодополнения и др
Привет! Рассказываем о том, что мы сделали в DataGrip за четыре месяца. Если вы пользуетесь другими IDE от JetBrains и работаете в них с базами данных, то этот пост для вас тоже.
Как написать Viber чат-бота, работающего с АСУ ТП на базе ПЛК Siemens
Как создать Viber чат-бота на Python для диспетчеризации технологического процесса.
Фреймворк на PHP: CodeIgniter 4. «Лёгкий пример» использования Database Migrations (миграций) и Seeding (посев)
Познакомиться с PHP фреймворком CodeIgniter 4 достаточно просто.
Нужно потратить вечер, выполняя инструкции из раздела «Build Your First Application» («Создайте свое первое приложение»). Поскольку документация написана хорошим, технически понятным языком, то в процессе ознакомления с этим и другими разделами возможно получить даже некоторое эстетическое удовольствие.
Установка Ispconfig3 на ubuntu 20.04 (nginx+php-fpm+mysql)
ISPConfig - бесплатная панель управления хостингом с открытым исходным кодом c возможностью управлять несколькими серверами из одной панели управления. Это один из лучших вариантов для веб-студий, хостинг-компаний, а так же для всех, кто ищет бесплатную панель управления хостингом с широким функционалом. В данной статье мы рассмотрим как выполнить установку Ispconfig3 с nginx, php-fpm и mysql на ubuntu 20.04.
Быстрый запуск Nextcloud и Onlyoffice на Ubuntu + SSL от Letsencrypt
Мало того, что многие не доверяют общедоступным облакам, так они еще и предлагают непозволительно малые объемы дискового пространства.
Однажды мне понадобилось 1Tb облачного хранилища и выбор пал на Nextcloud, который и было решено развернуть на собственном домашнем сервере
В данной статье я опишу как быстро и безболезненно установить и настроить облако Nextcloud и облачный редактор Onlyoffice
Статья предполагает, что у вас уже установлен и настроен Ubuntu.
Все действия были проверены на Ubuntu Server 20.04
Что будем делать:
1. Установим Nginx, PHP и MariaDB
2. Добавим бесплатный SSL-сертификат Let's Encrypt
3. Развернем NextCloud
4. Произведем тонкие настройки сервера
5. Установим Onlyoffice
CS Cart или через терни к черной дыре костылей и оптимизаций
Совсем недавно, я стал разработчиком модулей для CS Cart. Случилось это по воле случая: меня взяли на работу в Петербургскую сеть интернет магазинов, торгующих вейпами и всякими интересными штуками для удовлетворения потребностей физического характера страждущих пар и одиночек (кто не понял - еще не дорос ). Оба интернет магазина развернуты на двух витринах с разными доменами, но одной админкой и общей базой данных. Что же с ней не так? Думаю о CMS написано много, но я добавлю свою ложку дегтя в бочку с дегтем .
Безотказный Zabbix: миграция с асинхронной на групповую репликацию
Всем привет!
Жил был Zabbix с MySQL асинхронной репликацией. И всё бы ничего, но иногда приходилось переключать основной хост и делалось это запуском всяческих Ansible плейбуков, да и при отказе одного из дата центров нужно было проделывать некоторые ручные действия по переключению Secondary реплик на нового мастера. А хотелось чего-то из коробки, отказоустойчивого, и чтобы всё само.
Различия индексов MySql, кластеризация, хранение данных в MyIsam и InnoDb
Как устроены индексы в MySql, чем отличается индексирование в двух наиболее популярных движках MyISAM и InnoDb, чем первичные ключи отличаются от простого индекса, что такое кластерные индексы и покрывающие индексы, как с помощью них можно ускорить запросы. Вот как мне кажется наиболее интересные темы которые раскрою в этой статье. Тут же постараюсь подробно раскрыть тему с позиции того как работает этот механизм внутри. Буквально на пальцах и с позиции абстракций а не конкретики. В общем чтоб было минимум текста и максимум понятно.
Ближайшие события
Как новость про +4 выходных дня уронила нам базу данных
Примерно в 13:30 у нас резко подскочила нагрузка на поиск по авиации и по железнодорожным билетам. Где-то в этот момент РЖД сообщила о перебоях на сайте и в приложении, а мы начали экстренно наливать дополнительные инстансы бекендов во всех ЦОДах.
Но на самом деле проблемы начались раньше. Примерно в 8 утра мониторинг прислал алерт про то, что на одной из реплик базы данных у нас что-то подозрительно много долгоживущих процессов. Но мы это прошляпили, сочли не очень важным.
KODI: собираем удобный и функциональный медиацентр для дома. Часть 6. MariaDB и синхронизация медиатеки
Продолжаем «изобретать» медиацентр. Разберемся, как иметь несколько KODI-медиацентров и одну медиатеку на все устройства в доме. Причем такую медиатеку, которая понимает, где вы закончили просмотр и позволит его продолжить на другом устройстве.
Войны лоббистов и развитие BIM. Часть 5: BlackRock — хозяин всех технологий. Как корпорации контролируют Open source
Технологические гиганты при помощи денег инвестиционных фондов контролируют всё большую часть новых разработчиков и продуктов, перекрывая тем самым путь для новых программ и новых технологий в строительной отрасли.
Сегодняшние лидеры САПР-индустрии: Autodesk, Hexagon, Nemetschek, Bentley, Trimble - хорошо готовятся к будущим угрозам: стандартной тактикой больших корпораций стал агрессивный захват новых рынков и поглощение возможных конкурентов на ранних стадиях развития.
В результате вся САПР-индустрия стала похожа на олигополию, в которой доминирует группа из нескольких компаний. И их положение на вершине становится всё более непоколебимым.
Как использовать ClickHouse не по его прямому назначению
Алексей Миловидов делает ClickHouse и, конечно, знает его вдоль и поперек. В том числе и о том, как его можно использовать дополнительно к его штатным и всем хорошо известным функциям.
И сегодня расскажет про эти необычные способы его использования и, может быть, даже не для хранения и обработки данных.
«Ваша устаревшая база данных перерастает сама себя». Опыт chess.com
Прим. перев.: в этой статье сербский «инженер по масштабируемости» нагруженного онлайн-проекта в подробностях рассказывает о своем опыте оптимизации большой БД на базе MySQL. Проведена она была для того, чтобы выдержать резкий рост трафика на сайт, случившийся из-за пандемии.
База данных становится слишком большой или старой? Ее тяжело обслуживать? Что ж, надеюсь, я смогу немного помочь. Текст, который вы собираетесь прочитать, содержит реальный опыт масштабирования монолитной базы данных, лежащей в основе одного из сайтов Топ-250 (согласно alexa.com). На момент написания этой статьи chess.com занимал 215 место в мире по популярности. Ежедневно к нам заглядывали более 4 млн уникальных пользователей, а наши MySQL-базы обрабатывали в общей сложности более 7 млрд запросов. Год назад сайт ежедневно посещали 1 млн уникальных пользователей; в марте прошлого года их число увеличилось до 1,3 млн; сегодня более 4 млн человек заходят на chess.com ежедневно, а число сыгранных партий превышает 8 млн. Я, конечно, знаю, что это не сопоставимо с самыми крупными игроками на рынке, однако наш опыт все же может помочь в такой сложной задаче, как «исправление» монолитной базы данных и ее вывод на новый уровень производительности.
Мониторинг популярных баз данных из единого интерфейса Quest Foglight — анонс вебинара
Кроме этого, инструмент позволяет сравнивать производительности БД в разные периоды времени (например, до релиза и после него), а также выполнять сравнение производительности различных экземпляров.
Приглашаем вас зарегистрироваться на вебинар, который состоится 7 апреля в 11 часов по московскому времени. Вы узнаете о возможностях решения, кейсах использования, лицензировании и сможете задать интересующие вопросы. Если вы не сможете присутствовать на вебинаре, в любом случае оставьте ваши контактные данные, мы вышлем вам запись после мероприятия. Под катом описание функционала решения и несколько скриншотов.
DataGrip 2021.1: Редактирование прав, контекстные шаблоны, предсказуемая навигация и не только
Привет!
Сегодня мы выпустили DataGrip 2021.1: наш самый мощный релиз за последние годы. И это не шутка!
Вклад авторов
alizar 732.0maghamed 424.0snevsky 400.0olegbunin 346.2moscas 269.0tuta_larson 263.0youROCK 241.0zabivator 206.0mcshadow 197.0rdruzyagin 179.4