Как стать автором
Обновить
134.9

Администрирование баз данных *

Все об администрировании БД

Сначала показывать
Порог рейтинга
Уровень сложности

Тестируем играючи: мастер-мастер репликация в Tarantool

Время на прочтение10 мин
Количество просмотров3.5K


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


Каждый игрок будет некоторым узлом, который меняет данные в игровом мире. Эти данные реплицируются между узлами. Таким образом, репликация Tarantool будет являться своего рода транспортом для игрового процесса.

Всего голосов 37: ↑36 и ↓1+35
Комментарии32

NetSarang xShell — мощный клиент SSH

Время на прочтение3 мин
Количество просмотров21K
image

Всё ещё пользуетесь Putty + WinSCP/FileZilla?

Тогда рекомендуем обратить внимание на такое ПО как xShell.

  • Он поддерживает не только SSH протокол, но и другие. Например, telnet или rlogin.
  • Одновременно можно подключаться к нескольким серверам (механизм вкладок).
  • Нет необходимости каждый раз вводить данные, их можно запомнить.
  • Начиная с 6-й версии появился русский интерфейс, понимает все русские кодировки, в том числе и UTF-8.
  • Поддерживает как подключение по паролю, так и подключение по ключу.

Читать дальше →
Всего голосов 17: ↑10 и ↓7+3
Комментарии19

Расшифровываем Key и Page WaitResource в дедлоках и блокировках

Время на прочтение5 мин
Количество просмотров5.9K
Если вы пользуетесь отчётом о блокировках (blocked process report) или собираете графы дедлоков, предоставляемые SQL Server'ом, периодически, вы будете сталкиваться с вот такими штуками:

waitresource=“PAGE: 6:3:70133“

waitresource=“KEY: 6:72057594041991168 (ce52f92a058c)“

Иногда, в том гигантском XML, который вы изучаете, будет больше информации (графы дедлоков содержат список ресурсов, который помогает узнать имена объекта и индекса), но не всегда.

Этот текст поможет вам их расшифровать.

Вся информация, которая тут есть, есть в интернете в различных местах, она просто сильно распределена! Я хочу собрать всё вместе — от DBCC PAGE к hobt_id и к недокументированным %%physloc%% и %%lockres%% функциям.
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии5

Межплатформенная миграция Oracle Database

Время на прочтение9 мин
Количество просмотров6.7K

В последние годы межплатформенная миграция Oracle Database перестала быть уникальной задачей. Компании, как правило, переезжают с рисковых платформ на x86, хотя бывает и наоборот. В этом посте поделимся нашим опытом межплатформенных миграций и подробнее остановимся на описании относительно нового способа физической миграции — расширении TTS.
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии9

Истории

Шифрование в MySQL: использование Master Key

Время на прочтение5 мин
Количество просмотров7K

В преддверии старта нового набора на курс «Базы данных» продолжаем публиковать серию статей про шифрование в MySQL.

В предыдущей статье этой серии (Шифрование в MySQL: хранилище ключей) мы говорили о хранилищах ключей. В этой статье мы рассмотрим, как используется главный ключ (master key), а также обсудим достоинства и недостатки шифрования методом конвертов (envelope encryption). 

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии0

Знакомство с Debezium — CDC для Apache Kafka

Время на прочтение18 мин
Количество просмотров83K


В своей работе я часто сталкиваюсь с новыми техническими решениями/программными продуктами, информации о которых в русскоязычном интернете довольно мало. Этой статьей постараюсь восполнить один такой пробел примером из своей недавней практики, когда потребовалось настроить отправку CDC-событий из двух популярных СУБД (PostgreSQL и MongoDB) в кластер Kafka при помощи Debezium. Надеюсь, эта обзорная статья, появившаяся по итогам проделанной работы, окажется полезной и другим.

Что за Debezium и вообще CDC?


Debezium — представитель категории программного обеспечения CDC (Capture Data Change), а если точнее — это набор коннекторов для различных СУБД, совместимых с фреймворком Apache Kafka Connect.
Читать дальше →
Всего голосов 52: ↑52 и ↓0+52
Комментарии1

Дорогой DELETE. Николай Самохвалов (Postgres.ai)

Время на прочтение20 мин
Количество просмотров8.8K


Когда-нибудь в далёком будущем автоматическое удаление ненужных данных будет одной из важных задач СУБД [1]. Пока же нам самим нужно заботиться об удалении или перемещении ненужных данных на менее дорогие системы хранения. Допустим, вы решили удалить несколько миллионов строк. Довольно простая задача, особенно если известно условие и есть подходящий индекс. "DELETE FROM table1 WHERE col1 = :value" — что может быть проще, да?

Всего голосов 20: ↑20 и ↓0+20
Комментарии2

Восемь интересных возможностей PostgreSQL, о которых вы, возможно, не знали

Время на прочтение8 мин
Количество просмотров26K

Привет, Хабр! Приглашаем на бесплатный Demo-урок «Параллельный кластер CockroachDB», который пройдёт в рамках курса «PostgreSQL». Также публикуем перевод статьи Тома Брауна — Principal Systems Engineer at EnterpriseDB.

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

Читать далее
Всего голосов 42: ↑39 и ↓3+36
Комментарии8

Что и зачем мы делаем в Open Source базах данных. Андрей Бородин (Яндекс.Облако)

Время на прочтение19 мин
Количество просмотров4.2K


Будет рассмотрен вклад Яндекса в следующие базы данных.


  • ClickHouse
  • Odyssey
  • Восстановление на точку во времени (WAL-G)
  • PostgreSQL (включая logerrors, Amcheck, heapcheck)
  • Greenplum
Всего голосов 17: ↑15 и ↓2+13
Комментарии0

Odyssey roadmap: что ещё мы хотим от пулера соединений. Андрей Бородин (2019)

Время на прочтение15 мин
Количество просмотров3.8K


В докладе Андрей Бородин расскажет, как они учли опыт масштабирования PgBouncer при проектировании пулера соединений Odyssey, как выкатывали его в production. Кроме того, обсудим какие функции пулера хотелось бы видеть в новых версиях: нам важно не только закрывать свои потребности, но развивать сообщество пользователей Одиссея.

Всего голосов 18: ↑17 и ↓1+16
Комментарии9

Эта база данных в огне…

Время на прочтение9 мин
Количество просмотров8.8K


Позвольте мне рассказать техническую историю.

Много лет назад я разрабатывал приложение со встроенными в него функциями совместной работы. Это был удобный экспериментальный стек, в котором использовался полный потенциал раннего React и CouchDB. Он в реальном времени синхронизировал данные по JSON OT. Его использовали во внутренней работе компании, однако широкая применимость и потенциал в других сферах были очевидными.

Пытаясь продать потенциальным клиентам эту технологию, мы столкнулись с неожиданным препятствием. В демонстрационном видео наша технология выглядела и работала отлично, тут никаких проблем. Видео показывало именно то, как оно работает, и в нём ничего не имитировалось. Мы придумали и закодировали реалистичный сценарий применения программы.
Читать дальше →
Всего голосов 25: ↑24 и ↓1+23
Комментарии0

MS SQL Server: BACKUP на стероидах

Время на прочтение9 мин
Количество просмотров17K

Подождите! Подождите! Правда, это не очередная статья про типы бэкапов SQL Server. Я даже не буду рассказывать про отличия моделей восстановления и как бороться с разросшимся "логом".

Возможно (только возможно), после прочтения этого поста, вы сможете сделать так, чтобы бэкап, который снимается у вас стандартными средствами, завтра ночью снялся, ну, в 1.5 раза быстрее. И только за счёт того, что вы используете чуть-чуть больше параметров BACKUP DATABASE.

Если для вас содержимое поста было очевидным - извините. Я прочитал всё, до чего добрался гугл по фразе "habr sql server backup", и ни в одной статье не нашёл упоминания о том, что на время бэкапа можно каким-то образом повлиять с помощью параметров.

Enlarge your...
Всего голосов 13: ↑13 и ↓0+13
Комментарии38

PostgreSQL Antipatterns: убираем медленные и ненужные сортировки

Время на прочтение5 мин
Количество просмотров15K
«Просто так» результат SQL-запроса возвращает записи в том порядке, который наиболее удобен серверу СУБД. Но человек гораздо лучше воспринимает хоть как-то упорядоченные данные — это помогает быстро сравнивать соответствие различных датасетов.

Поэтому со временем у разработчика может выработаться рефлекс «Дай-ка я на всякий случай это вот отсортирую!» Конечно, иногда подобная сортировка бывает оправдана прикладными задачами, но обычно такой случай выглядит как в старом анекдоте:
Программист ставит себе на тумбочку перед сном два стакана. Один с водой — на случай, если захочет ночью пить. А второй пустой — на случай, если не захочет.
Давайте разбираться — когда сортировка в запросе точно не нужна и несет с собой потерю производительности, когда от нее можно относительно дешево избавиться, а когда сделать из нескольких — одну.

Читать дальше →
Всего голосов 29: ↑28 и ↓1+27
Комментарии14

Ближайшие события

PG Bootcamp 2024
Дата16 апреля
Время09:30 – 21:00
Место
МинскОнлайн
EvaConf 2024
Дата16 апреля
Время11:00 – 16:00
Место
МоскваОнлайн
Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн

Базы данных: большой обзор типов и подходов. Доклад Яндекса

Время на прочтение28 мин
Количество просмотров79K
Это конспект лекции Татьяны Денисовой tdenisova — бэкенд-разработчика в Яндекс.Учебнике. Вы узнаете, какие бывают базы данных, какие их особенности важно помнить, как в работе с данными учитывать характеристики системы и планы масштабирования, в какую из тем нужно углубиться для решения конкретной задачи. А также как при возникновении багов определить, является ли работа с БД источником проблемы (и если да, то в какую сторону копать).



— О чем именно мы будем говорить? Не о примитивных селектах и джойнах — о них, я думаю, большинство из вас уже знает.
Читать дальше →
Всего голосов 37: ↑35 и ↓2+33
Комментарии15

Пока все праздновали мой день рождения, я до утра чинил кластер — а разрабы валили на меня свои ошибки

Время на прочтение7 мин
Количество просмотров44K


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

Компания, которая написала, занималась аналитикой данных. Ежедневно она обрабатывала тысячи запросов. К нам они пришли со словами: ребят, у нас есть ClickHouse и мы хотим автоматизировать его настройку и установку. Хотим Ansible, Terraform, Докер и чтобы это все хранилось в гите. Хотим кластер из четырех нод по две реплики в каждой.

Стандартная просьба, каких десятки, и нужно такое же хорошее стандартное решение. Мы сказали «окей», и через 2-3 недели все было готово. Работу они приняли и начали переезжать на новый кластер Кликхауса с помощью нашей утилиты.
Читать дальше →
Всего голосов 129: ↑124 и ↓5+119
Комментарии68

Шифрование в MySQL: хранилище ключей

Время на прочтение6 мин
Количество просмотров5.5K
В преддверии старта нового набора на курс «Базы данных» подготовили для вас перевод полезной статьи.





Прозрачное шифрование данных (Transparent Data Encryption, TDE) появилось в Percona Server for MySQL и MySQL довольно давно. Но задумывались ли вы когда-нибудь о том, как оно работает под капотом и какое влияние TDE может оказывать на ваш сервер? В этой серии статей мы рассмотрим, как TDE работает внутри. Начнем с хранения ключей, так как оно требуется для работы любого шифрования. Затем подробно рассмотрим как работает шифрование в Percona Server for MySQL/MySQL и какие дополнительные возможности есть в Percona Server for MySQL.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии1

Что нам стоит Resource Governor настроить

Время на прочтение15 мин
Количество просмотров8.3K

Наверное, каждый, кто работает с SQL Server оказывался, или ещё окажется, в такой ситуации: вечер пятницы, ты уже мысленно готов отдыхать и тут начинают прилетать уведомления о высокой нагрузке на CPU твоего SQL Server, телефон начинает звонить и в системе мониторинга ты видишь картинку как на КДПВ.

И, с одной стороны, в этом может не быть особой проблемы - да, серверу тяжело, да, это неприятно, но ведь, господи, ну сформируется ваш отчёт не за 15, а за 45 секунд - делов-то, вы же видите - вас много, а сервер один, нужно просто немножко подождать. Но что, если при всём при этом, есть какие-то бизнес-процессы, которые не могут ждать? Что если при такой нагрузке продажа товара становится настолько медленной, что покупатели отказываются от покупки?

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

И иногда их и правда можно разделить
Всего голосов 22: ↑22 и ↓0+22
Комментарии20

PostgreSQL Antipatterns: «Бесконечность — не предел!», или Немного о рекурсии

Время на прочтение4 мин
Количество просмотров7.3K
Рекурсия — очень мощный и удобный механизм, если над связанными данными делаются одни и те же действия «вглубь». Но неконтролируемая рекурсия — зло, которое может приводить или к бесконечному выполнению процесса, или (что случается чаще) к «выжиранию» всей доступной памяти.


СУБД в этом отношении работают по тем же принципам — "сказали копать, я и копаю". Ваш запрос может не только затормозить соседние процессы, постоянно занимая ресурсы процессора, но и «уронить» всю базу целиком, «съев» всю доступную память. Поэтому защита от бесконечной рекурсии — обязанность самого разработчика.

В PostgreSQL возможность использовать рекурсивные запросы через WITH RECURSIVE появилась еще в незапамятные времена версии 8.4, но до сих пор можно регулярно встретить потенциально-уязвимые «беззащитные» запросы. Как избавить себя от проблем подобного рода?
Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии9

В Tarantool можно совместить супербыструю базу данных и приложение для работы с ними. Вот как просто это делается

Время на прочтение15 мин
Количество просмотров12K
Пять лет назад я попробовал работать с Tarantool, но тогда он мне не зашел. Но недавно я проводил вебинар, где рассказывал про Hadoop, про то, как работает MapReduce. Там мне задали вопрос — «А почему под эту задачу не использовать Tarantool?».

Ради любопытства я решил вернуться к нему, протестировать последнюю версию — и на этот раз проект мне очень понравился. Сейчас я покажу, как написать в Tarantool простое приложение, нагружу его и проверю производительность, и вы увидите, как там все легко и круто.


Читать дальше →
Всего голосов 36: ↑36 и ↓0+36
Комментарии42

10 приёмов работы с Oracle

Время на прочтение26 мин
Количество просмотров53K
В Сбере есть несколько практик Oracle, которые могут оказаться вам полезны. Думаю, часть вам знакома, но мы используем для загрузки не только ETL-средства, но и хранимые процедуры Oracle. На Oracle PL/SQL реализованы наиболее сложные алгоритмы загрузки данных в хранилища, где требуется «прочувствовать каждый байт».

  • Автоматическое журналирование компиляций
  • Как быть, если хочется сделать вьюшку с параметрами
  • Использование динамической статистики в запросах
  • Как сохранить план запроса при вставке данных через database link
  • Запуск процедур в параллельных сессиях
  • Протягивание остатков
  • Объединение нескольких историй в одну
  • Нормалайзер
  • Визуализация в формате SVG
  • Приложение поиска по метаданным Oracle
Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии18
Изменить настройки темы

Вклад авторов

Работа