Избранное сообщение

Фетісов В. С. Комп’ютерні технології в тестуванні. Навчально-методичний посібник. 2-ге видання, перероблене та доповнене / Мои публикации

В 10-х годах я принимал участие в программе Европейского Союза Tempus "Освітні вимірювання, адаптовані до стандартів ЄС". В рамк...

Благодаря Интернету количество писателей и поэтов увеличивается в геометрической прогрессии. Поголовье читателей начинает заметно отставать.

воскресенье, 30 апреля 2017 г.

Аквапарк в Дубай - 2 / Фото из личного архива




Смотри также:

Сравнение структур разделов GPT и MBR / Windows 10. Практика

Вы когда-нибудь задумывались о том, как загружается компьютер? Независимо от аппаратуры и операционной системы, все компьютеры при загрузке используют или традиционный метод BIOS-MBR, или более современный UEFI-GPT, реализованный в последних версиях ОС.

В этой статье мы сравним структуры разделов GPT и MBR; GPT означает GUID Partition Table, а MBR — Master Boot Record. Начнём с того, что разберём сам процесс загрузки.

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

Понимание процесса загрузки

Когда вы нажимаете кнопку питания на своём ПК, стартует процесс, который в итоге приведёт к загрузке операционной системы в память. Первая команда зависит от того, какова структура разделов на вашем жёстком диске.

Если два вида структур разделов: MBR и GPT. Структура разделов на диске определяет три вещи:
  1. Структура данных на диске.
  2. Код, который используется при загрузке, если раздел загрузочный.
  3. Где начинается и заканчивается раздел.

Процесс загрузки MBR

Вернёмся к процессу загрузки. Если в вашей системе используется структура разделов MBR, то первый процесс выполнения загрузит BIOS. Базовая структура ввода-вывода (Basic Input/Output System) включает в себя микропрограмму загрузчика. Микропрограмма загрузчика содержит низкоуровневые функции, такие как ввод с клавиатуры, доступ к видеодисплею, осуществление дисковых операций ввода-вывода и код для загрузки начальной стадии загрузчика. До того как BIOS может определить загрузочное устройство, он выполняет последовательность функций системной конфигурации, начиная со следующих:
  • Самотестирование при включении питания.
  • Обнаружение и инициализация видеокарты.
  • Отображение стартового экрана BIOS.
  • Осуществление быстрой проверки памяти (RAM).
  • Конфигурация устройств plug and play.
  • Определение загрузочного устройства.
Как только BIOS определил загрузочное устройство, он считывает первый дисковый сектор этого устройства в память. Первый сектор диска — это главная загрузочная запись (MBR) размером 512 байт. В этот размер поместились три объекта:
  • Первая стадия загрузчика (440 байт).
  • Таблица разделов диска (16 байт на раздел × 4 раздела) — MBR поддерживает только четыре раздела, подробнее об этом ниже.
  • Подписи диска (4 байта).

На этом этапе MBR сканирует таблицу разделов и загружает в оперативную память загрузочный сектор — Volume Boot Record (VBR).

VBR обычно содержит начальный загрузчик программ — Initial Program Loader (IPL), этот код инициирует процесс загрузки. Начальный загрузчик программ включает в себя вторую стадию загрузчика, который затем загружает операционную систему. На системах семейства Windows NT, таких как Windows XP, начальный загрузчик программ сначала загружает другую программу под названием NT Loader (аббревиатура NTLDR), которая затем загружает операционную систему.

Для операционных систем на ядре Linux используется загрузчик GRUB (Grand Unified Bootloader). Процесс загрузки похож на описанный выше, единственная разница в наименовании загрузчиков на первой и второй стадии.


В GRUB первая стадия загрузчика называется GRUB Stage 1. Она загружает вторую стадию, известную как GRUB Stage 2. Вторая стадия загружает получает список операционных систем на жёстких дисках и предоставляет пользователю список для выбора ОС для загрузки.

Процесс загрузки GPT

На том же этапе загрузки в структуре разделов GPT происходит следующее. GPT использует UEFI, в котором нет такой как у MBR процедуры хранения в загрузочном секторе первой стадии загрузчика с последующим вызовом второй стадии загрузчика. UEFI — унифицированный расширяемый интерфейс прошивки (Unified Extensible Firmware Interface) — является более продвинутым интерфейсом, чем BIOS. Он может анализировать файловую систему и даже сам загружать файлы.


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

Затем UEFI считывает GPT — таблицу разделов GUID. GUID расшифровывается как «глобальный уникальный идентификатор» (Globally Unique Identifier). GPT располагается в первых секторах диска, сразу после сектора 0, где по-прежнему хранится главная загрузочная запись для Legacy BIOS.

GPT определяет таблицу разделов на диске, на которой загрузчик EFI распознает системный раздел EFI. Системный раздел содержит загрузчики для всех операционных систем, установленных на других разделах жёсткого диска. Загрузчик инициализирует менеджер загрузки Windows, который затем загружает операционную систему.

Для операционных систем на ядре Linux существует версия GRUB с поддержкой EFI, которая загружает файл, такой как grub.efi, или загрузчик EFI, который загружает свой файл, такой как elilo.efi.

Вы можете заметить, что и UEFI-GPT, и BIOS-MBR передают управление загрузчику, но сами напрямую не грузят операционную систему. Однако в UEFI не требуется проходиить через несколько стадий загрузчика, как в BIOS. Процесс загрузки происходит на самой ранней стадии, в зависимости от вашей аппаратной конфигурации.

Различия между структурами разделов GPT и MBR

Если вы когда-нибудь пытались установить Windows 8 или 10 на новый компьютер, то скорее всего видели вопрос: какую структуру разделов использовать, MBR или GPT.

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

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

Главная загрузочная запись

MBR — традиционная структура для управления разделами диска. Поскольку она совместима с большинством систем, то по-прежнему широко используется. Главная загрузочная запись расположена в первом секторе жёсткого диска или, проще говоря, в самом его начале. Она содержит таблицу разделов — информацию об организации логических разделов на жёстком диске.

MBR также содержит исполняемый код, который сканирует разделы на предмет активной ОС и инициализирует процедуру загрузки ОС.

Диск MBR допускает только четыре основных раздела. Если вам нужно больше, то можно назначить один из разделов расширенным разделом, и на нём можно создавать больше подразделов или логических дисков.

MBR использует 32 бита для записи длины раздела, выраженной в секторах, так что каждый раздел ограничен максимальным разделом 2 ТБ.

Преимущества
  • Совместима с большинством систем.

Недостатки
  • Допускает только четыре раздела, с возможностью создания дополнительных подразделов на одном из основных разделов.
  • Ограничивает размер раздела двумя терабайтами.
  • Информация о разделе хранится только в одном месте — в главной загрузочной записи. Если она повреждена, то весь диск становится нечитаемым.

Таблица разделов GUID (GPT)

GPT — более новый стандарт для определения структуры разделов на диске. Для определения структуры используются глобальные уникальные идентификаторы (GUID).

Это часть стандарта UEFI, то есть систему на основе UEFI можно установить только на диск, использующий GPT, например, таково требование функции Windows 8 Secure Boot.

GPT допускает создание неограниченного количества разделов, хотя некоторые операционные системы могут ограничивать их число 128 разделами. Также в GPT практически нет ограничения на размер раздела.

Преимущества
  • Допускает неограниченное количество разделов. Лимит устанавливает операционная система, например, Windows допускает не более 128 разделов.
  • Не ограничивает размер раздела. Он зависит от операционной системы. Ограничение на максимальный размер раздела больше, чем объём любых существующих сегодня дисков. Для дисков с секторами по 512 байт поддерживается максимальный размер 9,4 ЗБ (один зеттабайт равен 1 073 741 824 терабайт)
  • GPT хранит копию раздела и загрузочных данных и может восстановить данные в случае повреждения основного заголовка GPT.
  • GPT хранит значения контрольной суммы по алгоритму циклического избыточного кода (CRC) для проверки целостности своих данных (используется для проверки целостности данных заголовка GPT). В случае повреждения GPT может заметить проблему и попытаться восстановить повреждённые данные из другого места на диске.

Недостатки
  • Может быть несовместима со старыми системами.

GPT против MBR


  • GPT допускает неограниченное количество основных разделов, в то время как MBR допускает только четыре основных, а остальные — дополнительные.
  • GPT позволяет создавать разделы любого размера, в то время как MBR имеет ограничение в 2 ТБ.
  • GPT хранит копию данных раздела, позволяя восстановить их в случае повреждения основного заголовка GPT; MBR хранит только одну копию данных раздела в первом секторе жёсткого диска, что может привести к потере всей информации в случае повреждении информации о разделах.
  • GPT хранит значения контрольной суммы для проверки, что данные не повреждены, и может выполнить необходимое восстановление из других областей диска в случае повреждения; MBR не имеет способа узнать о повреждении данных, вы можете узнать об этом только если компьютер откажется загружаться или исчезнет раздел.

Совместимость с операционными системами

Первый сектор (сектор 0) на диске GPT содержит защитную запись MBR, в которой записано, что на диске один раздел, который распространяется на весь носитель. В случае использования старых инструментов, которые читают только диски MBR, вы увидите один большой раздел размером с весь диск. Защитная запись сделана для того, чтобы старый инструмент ошибочно не воспринял диск как пустой и не перезаписал данные GPT новой главной загрузочной записью.

MBR защищает данные GPT от перезаписи.

Apple MacBook'и используют GPT по умолчанию, так что невозможно установить Mac OS X на систему MBR. Даже хотя Mac OS X может работать на диске MBR, но установка на него невозможна. Я пыталась сделать это, но безуспешно.

Большинство операционных систем на ядре Linux совместимы с GPT. При установке ОС Linux на диск в качестве загрузчика будет установлен GRUB 2.

Для операционных систем Windows загрузка из GPT возможна только на компьютерах с UEFI, работающих под 64-битными версиями Windows Vista, 7, 8, 10 и соответствующими серверными версиями. Если вы купили ноутбук с 64-битной версией Windows 8, то с большой вероятностью там GPT.

Windows 7 и более ранние системы обычно устанавливают на диски с MBR, но вы всё равно можете преобразовать разделы в GPT, как будет рассказано ниже.

Все версии Windows Vista, 7, 8, 10 могут считывать и использовать данные из разделов GPT — но они не могут загружаться с таких дисков без UEFI.

Так GPT или MBR?

Вы можете комфортно себя чувствовать и с MBR, и c GPT. Но учитывая преимущества GPT, упомянутые ранее, и факт постепенного перехода современных компьютеров на эту технологию, вы можете предпочесть GPT. Если цель заключается в поддержке старого оборудования или нужно использовать традиционный BIOS, то вы застряли на MBR.

Проверьте тип раздела жёсткого диска

На каждом жёстком диске под Windows можно проверить тип разделов с помощью «Управления дисками» (Disk Management). Для запуска «Управления дисками» сделайте следующее:

Нажмите сочетание «горячих клавиш» Windows+R, откроется окно для запуска программ.

Наберите diskmgmt.msc и нажмите клавишу Enter.

Windows просканирует жёсткие диски и вскоре покажет их. Для проверки типа разделов любого жёсткого диска нажмите правой кнопкой мыши на плашку диска в нижней части интерфейса. Нужно нажимать на «Диск 0», «Диск 1» и так далее, а не на разделы.

В появившемся контекстном меню выберите «Свойства». Откроется окно со свойствами выбранного диска.

Перейдите на вкладку «Тома» и посмотрите на значение «Стиль раздела».



Если вы предпочитаете командную строку, то можете выбрать другой вариант. Его преимущества в том, что он чуть быстрее, поскольку сразу выводит на экран диски и стили разделов.
  1. Нажмите клавишу Windows, наберите cmd.exe, удерживая Ctrl и Shift, нажмите Enter.
  2. Подтвердите UAC-сообщение о повышении привилегий в системе.
  3. Наберите diskpart и нажмите Enter.
  4. Наберите list disk и снова нажмите Enter.

В списке перечислены все диски. В колонке Gpt указан стиль раздела для каждого диска. Если видите звёздочку в колонке, то это GPT, если её нет — это MBR.

Преобразование между MBR и GPT во время установки Windows

Есть два типичных сообщения об ошибке, которые могут возникнуть при установке Windows на жёсткий диск:
  • Ошибка № 1: «Windows не может быть установлена на этот диск. Выбранный диск не имеет стиль разделов GPT».
  • Ошибка № 2: «Windows не может быть установлена на этот диск. Выбранный диск имеет стиль разделов GPT».
Когда появляется одна из этих двух ошибок, то у вас может не быть возможности выбрать раздел для установки. Но это не значит, что с компьютером что-то не то.

Как вы уже знаете, MBR и GPT — это две абсолютно разные структуры разделов жёсткого диска. MBR — это традиционная структура разделов, а GPT — более новая.

Ошибка № 1 возникает, когда вы пытаетесь установить Windows на компьютер с UEFI, а раздел жёсткого диска не сконфигурирован для режима UEFI или совместимости с Legacy BIOS. Microsoft TechNet предлагает два варианта решения проблемы.

  1. Перезагрузить компьютер в режиме совместимости с Legacy BIOS. Этот вариант позволит сохранить текущий стиль раздела.
  2. Переформатировать диск под UEFI, используя стиль раздела GPT. Этот вариант позволит вам использовать функции прошивки UEFI. Переформатирование можно сделать самостоятельно, следуя инструкциям ниже. Всегда сохраняйте резервную копию данных перед форматированием.

Конечно, есть сторонние утилиты для преобразования дисков в GPT с сохранением данных, но всё равно безопаснее сделать резервную копию на случай, если утилита не сможет завершить преобразование.

Инструкции для преобразования жёсткого диска с MBR на GPT




С помощью Windows Setup

  1. Выключите компьютер и вставьте загрузочный накопитель Windows (USB или DVD).
  2. Загрузитесь с него в режиме UEFI.
  3. Выберите «Другое» (Custom) в типе установки.
  4. Появится экран с сообщением «Куда вы хотите установить Windows?» Выберите все разделы на диске и нажмите «Удалить».
  5. После успешного удаления диск будет представлять собой единую область нераспределённого пространства.
  6. Выберите нераспределённое пространство и нажмите «Далее». Windows определит, что компьютер загружен в режиме UEFI, и автоматически переформатирует диск с применением стиля раздела GPT. Процесс установки начнётся сразу после этого.
Преобразование вручную
  1. Выключите компьютер и вставьте загрузочный накопитель Windows (USB или DVD).
  2. Загрузитесь с него в режиме UEFI.
  3. Из установки Windows нажмите Shift+F10, чтобы открыть консоль. После каждой следующей команды нажимайте Enter.
  4. Запустите инструмент diskpart командой diskpart.
  5. Чтобы выбрать диск для преобразования, наберите list disk.
  6. Укажите номер диска для преобразования: select disk #.
  7. Очистите диск: clean.
  8. Преобразование в GPT осуществляется командой convert gpt.
  9. Наберите exit для выхода из diskpart.
  10. Закройте консоль и возвращайтесь к установке Windows.
  11. При выборе типа установки выберите «Другое». Диск будет представлять собой единую область нераспределённого пространства.
  12. Выберите нераспределённое пространство и нажмите «Далее». Windows начнёт установку.

Инструкции для преобразования жёсткого диска с GPT на MBR

Иногда бывает необходимо преобразовать диск в структуру разделов MBR. Например, если во время установки Windows возникает такое сообщение об ошибке:

«Windows не может быть установлена на этот диск. Выбранный диск имеет стиль разделов GPT»

Загрузка с GPT поддерживается только в 64-битных версиях Windows Vista, 7, 8, 10 и соответствующих серверных версиях на UEFI-системах. Это сообщение об ошибке означает, что ваш компьютер не поддерживает UEFI, а поэтому вы можете использовать только BIOS, который работает со структурой разделов MBR.

Microsoft TechNet предлагает два варианта решения проблемы.

  1. Перезагрузить компьютер в режиме совместимости с BIOS. Этот вариант позволит сохранить текущий стиль раздела.
  2. Переформатировать диск, используя стиль раздела MBR. Всегда сохраняйте резервную копию данных перед форматированием. Хотя есть сторонние утилиты для преобразования дисков в GPT с сохранением данных, но всё равно безопаснее сделать резервную копию на случай, если утилита не сможет завершить преобразование.

Если вы выбрали второй вариант, то следуйте пошаговой инструкции:

С помощью Windows Setup

  1. Выключите компьютер и вставьте загрузочный накопитель Windows (USB или DVD).
  2. Загрузитесь с него в режиме UEFI.
  3. Выберите «Другое» (Custom) в типе установки.
  4. Появится экран с сообщением «Куда вы хотите установить Windows?» Выберите все разделы на диске и нажмите «Удалить».
  5. После успешного удаления диск будет представлять собой единую область нераспределённого пространства.
  6. Выберите нераспределённое пространство и нажмите «Далее». Windows определит, что компьютер загружен в режиме BIOS, и автоматически переформатирует диск с применением стиля раздела MBR. Процесс установки начнётся сразу после этого.

Преобразование вручную

  1. Выключите компьютер и вставьте загрузочный накопитель Windows (USB или DVD).
  2. Загрузитесь с него в режиме BIOS.
  3. Из установки Windows нажмите Shift+F10, чтобы открыть консоль. После каждой следующей команды нажимайте Enter.
  4. Запустите инструмент diskpart командой diskpart.
  5. Чтобы выбрать диск для преобразования, наберите list disk.
  6. Укажите номер диска для преобразования: select disk #.
  7. Очистите диск: clean.
  8. Преобразование в GPT осуществляется командой convert mbr.
  9. Наберите exit для выхода из diskpart.
  10. Закройте консоль и возвращайтесь к установке Windows.
  11. При выборе типа установки выберите «Другое». Диск будет представлять собой единую область нераспределённого пространства.
  12. Выберите нераспределённое пространство и нажмите «Далее». Windows начнёт установку.

Источники

Следующие источники содержат дополнительную информацию о стилях разделов MBR или GPT:

суббота, 29 апреля 2017 г.

Здоровый программист — счастливый программист



Нам приходится работать очень напряженно: вредные начальники (не все), жесткие сроки, мозговые штурмы, решение самых разных проблем и, прежде всего, работа допоздна не лучшим образом отражаются на здоровье. Все вышеперечисленные обстоятельства приводят к депрессии, курению, «заеданию» стресса — словом, портят здоровье.

А от здоровья в конечном итоге зависит наша жизнь — и это главная причина что-то с этим делать. Вторая по важности причина — от этого зависит карьера. Часто разработчики жалуются, что у них болит спина — иногда настолько сильно, что они не могут сидеть за столом. У многих из-за постоянного использования клавиатуры и мыши проблемы с запястьями. Все это может сделать работу неприятной, а в худшем случае и невозможной. И дело не только в мелких недугах: такая работа без заботы о собственном здоровье может укоротить жизнь. Возможно, это звучит слишком громко, но давайте вспомним, что главная причина смертности в мире — сердечно-сосудистые заболевания. Кроме того, все больше распространяются такие заболевания, как диабет 2-го типа и ожирение. Образ жизни программиста способствует появлению этих проблем, однако в большинстве случаев их можно предотвратить с помощью физических упражнений и правильного питания. Мы рассмотрим причины этих и других проблем со здоровьем, а затем поговорим о том, как эти причины устранить.

Переведено в Alconost

Сидеть — вредно

Да, это в прямом смысле вредит здоровью. Исследователи из Массачусетского университета попросили группу здоровых молодых людей ходить с помощью костылей и тростей так, чтобы мышцы на левой ноге не напрягались. После двух дней такого эксперимента ученые провели биопсию мышц обеих ног. В левой ноге был нарушен механизм репарации ДНК, снизилась инсулиновая реакция, повысился окислительный стресс, а метаболическая активность в отдельных мышечных клетках замедлилась.

Для программистов это почти приговор, ведь писать код (а это наша работа и наша страсть) — значит сидеть за компьютером. Но последствий сидячей работы можно избежать: достаточно каждый час делать пятиминутный перерыв на физическую активность. Чтобы улучшить обмен веществ, достаточно просто пройтись до уборной.

Нам нравится неправильно питаться

Ради достижения высоких целей мы можем бросаться в нездоровые крайности. По пути с работы — заскочим в автокафе, можем каждый день обедать с коллегами в общепите или брать в офис много газированных напитков и сладостей — потому что нет времени пообедать. А главное, мы ведь решили, что кофеин — это чуть ли не единственный способ оставаться энергичными и вообще тайный источник суперсилы разработчиков. В результате мы превращаемся в курильщиков, кофейных наркоманов и литрами поглощаем газировку. Таким образом мы закрепляем крайне плохие привычки в питании. Но чтобы исправить эти привычки, сначала придется их осознать.

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

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

Ой! Спина болит!

Обычно разработчик более 40 часов в неделю проводит сидя за компьютером. И лишь немногие из нас знают, как правильно расположиться в кресле. Поэтому у многих из-за неправильного положения и плохой эргономики кресла развиваются хронические боли в спине.
Проверить силу спинных мышц можно с помощью упражнения из теста Крауса — Вебера.



Если вы можете из положения лежа на животе поднять туловище и удерживать его в таком положении 10 секунд — поздравляем, тест пройден. Если нет — вам нужно обратиться к врачу.
В первую очередь важно найти достаточно эргономичное кресло, которое должно регулироваться в соответствии с весом и приспосабливаться к разным позам. Хорошее кресло действительно может значительно улучшить осанку и уменьшить боль в спине — впрочем, у вас, возможно, уже есть безупречное кресло. Но сидите вы в нем неправильно. Правильная посадка зависит от физических параметров тела. Отрегулируйте высоту кресла так, чтобы оно должным образом поддерживало позвоночник, равномерно распределяло вес тела и чтобы ноги стояли на земле.

Боль в запястьях

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

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



Упражнения на запястье. Источник изображения — sequencewiz.org.

Головная боль и напряжение глаз

Программирование — это во многом творчество, а головные боли — одна из основных причин снижения эффективности работы. В большинстве своем головные боли напрямую связаны со зрением. Самое распространенное заболевание (им страдают более 80 % людей, ежедневно проводящих за компьютером более 3 часов) — синдром компьютерного зрения. Это один из основных факторов, приводящих к головной боли, а в худших случаях — даже к галлюцинациям.

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

Следующий список поможет проверить, достаточно ли вы заботитесь о своем зрении:
  • Насколько близко к экрану вы сидите? Монитор должен находиться на расстоянии 0,5–1 м от глаз — это примерно длина вытянутой руки, так что здесь проверить довольно легко.
  • Насколько экран компьютера ярче, чем освещение в комнате? Большая разница между яркостью экрана и освещенностью помещения быстро утомляет глаза. Если в кабинете естественное освещение, яркость дисплея должна в течение дня регулироваться. Для этого можно установить f.lux — это приложение будет автоматически изменять яркость экрана и температуру цвета в течение дня (достаточно указать свои географические координаты).

f.lux в действии
  • Не слишком ли сильно бликует экран? Если на экране можно увидеть свое лицо или четкое отражение фона, значит, он слишком бликует. Наклейте на экран матовую или антибликовую пленку или раздобудьте безбликовый монитор — не откладывайте это надолго.
Некоторые рекомендации, ежедневное выполнение которых поможет избежать синдрома компьютерного зрения:
  • Моргайте глазами чаще. При работе за компьютером мы обычно моргаем реже и даже можем так сосредотачиваться, что забываем моргать. Моргание не дает глазам пересыхать. Подробнее можно прочитать в этом исследовании.
  • Если надолго сфокусироваться на чем-то одном, глаза устают. Размять мышцы глаз можно, отведя на некоторое время взгляд в сторону. Здесь отлично работает следующая рекомендация: после 20 минут работы отведите взгляд от компьютера и в течение 20 секунд смотрите на удаленный предмет на расстоянии не менее 6 метров.
  • Чтобы уменьшить блики и снизить напряжение глаз, носите антибликовые поляризованные линзы: они эффективно снимают раздражение, снижают сухость и утомляемость.
Чтобы избежать головной боли, потребляйте меньше кофеина и ферментированных продуктов. Если вы устранили перечисленные факторы, а головная боль осталась, обратитесь к врачу и проверьте глаза, чтобы вам назначили надлежащее лечение.

Заключение

Жизнь — это невероятно ценный дар. И обязанность каждого человека — заботиться об этом даре. Поэтому приобретайте хорошие социальные привычки и стремитесь к здоровому образу жизни. Ваша жизнь, ваше видение и ваши стремления — это намного больше и важнее, чем добиться каких-то целей, угробив здоровье и потеряв запал.

О переводчике

Перевод статьи выполнен в Alconost.

Alconost занимается локализацией приложений, игр и сайтов на 68 языков. Переводчики-носители языка, лингвистическое тестирование, облачная платформа с API, непрерывная локализация, менеджеры проектов 24/7, любые форматы строковых ресурсов, перевод технических текстов.

Мы также делаем рекламные и обучающие видеоролики — для сайтов, продающие, имиджевые, рекламные, обучающие, тизеры, эксплейнеры, трейлеры для Google Play и App Store.

Подробнее: https://alconost.com

пятница, 28 апреля 2017 г.

От Oracle к PostgreSQL – путь длиною в 4 года, доклад Андрея Рынкевича / Базы данных

28.04.17. 2017 год стал значимым событием для PG Day — мы преобразовали наше мероприятие в крупнейшую конференцию, посвященную базам данных.

Мы не изменяем своим традициям и готовим насыщенную и интересную программу, посвященную Посгресу. Тем не менее, общение с коллегами и обратная связь от участников дают однозначно понять, что огромное количество специалистов занимается эксплуатацией нескольких систем для хранения данных, вынужденно или же по собственному решению. Мы не хотим лишать коллег возможности пообщаться друг с другом, обменяться опытом и найти способы решить свои проблемы. Именно поэтому, в 2017 году PG Day делится на 5 параллельных потоков по различным направлениям: PostgreSQLMySQLOracleMS SQL ServerNoSQL решения и другие бесплатные и коммерческие СУБД.

Не смотря на то, что радикальные изменения в структуре ПГ Дня начались только в этом году, интерес к нашему мероприятию от колег по цеху стал появляться уже значительно раньше. На одном из прошлых PG Day Андрей Рынкевич представил интереснейший доклад От Oracle к PostgreSQL – путь длиною в 4 года, основанный на опыте миграции в компании Phorm, расшифровку которого мы рады представить читателям Хабра.



Доклад «От Oracle к PostgreSQL – путь длиною в 4 года” о самом большом вызове в нашем проекте, который должен завершиться в ближайший месяц с установкой продуктов, полностью работающих на PostgreSQL, на “продакшн”.



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

Так появился особый вид статистики, ключи в которой даже при наших слабых нагрузках полностью забили диск под завязку: это было около 5 ТБ. Статистику мы, конечно, отключили, но первый раз стали задумываться о дополнительной базе данных для расширения. Нагрузка росла, но наши возможности по оптимизации ограничивались лицензией Oracle. Текущая лицензия позволяет использовать только 4 ядра, при таком ограничении мы не можем даже standby использовать для запросов, у нас нет партиционирования – на таком паровозе далеко не уедешь. Поэтому мы начали смотреть варианты для расширения.



В начале мы рассмотрели возможности Oracle. Текущая лицензия нам стоила 15000 фунтов в год (support плюс upgrade на новые версии). Снятие лицензионных ограничений на процессоры и документы для партиционирования добавляло к этой сумме довольно значительный вклад, поэтому мы не стали идти этим путем, так как денег особо не было.

Первым решением, на которое мы взглянули, был MySQL. На тот момент в наших проектах уже использовался MySQL, но, поговорив с людьми, мы поняли, что он показал себя довольно проблемным и с ограниченной функциональностью. Поэтому совсем чуть-чуть взглянули на NoSQL решения. Разработчиков под NoSQL у нас тогда не было, и это показалось нам очень кардинальным изменением, поэтому мы это тоже отложили в сторону.

Наиболее устраивающим нас решением был Greenplum – это MPP БД, построенная на базе PostgreSQL. Конечно, единственный минус это то, что она тоже была платная, но суммы уже не такие как у Oracle, поэтому мы решили остановиться на PostgreSQL с целью дальше мигрировать на Greenplum. По плану такая миграция не должна была быть слишком трудной.



Для начала мы купили два хоста: master + standby (24 ядра, 128 GB оперативки), построили трехтерабайтный (3 TB) RAID10 – это не SSD диски, потому что SSD в тот момент стоили очень дорого. И задумались, что же нам дальше делать.



Признаюсь, в самом начале у нас не было четкого детального понимания всех шагов миграции. В какой-то момент нам все-таки пришлось нарисовать дорожную карту, как нам двигаться. На экране вы видите сильно урезанный вариант этой дорожной карты. Из этапов можно выделить следующие:
  • репликация данных из базы Oracle в базу PostgreSQL;
  • Merger – как способ заливки “сырых” блоков в саму БД;
  • перенос статистики из Oracle в Postgres;
  • перенос функциональности;
  • перенос таблиц и сопутствующих проектов.

Дальше – последовательно о каждом этапе.



В самом начале мы уже понимали, что у нас не будет возможности мигрировать в один присест, поэтому мы решили начать со статистики. И образовался такой момент, что какая-то статистика частично находится на PostgreSQL, а остальное – на Oracle (в основном, сущности). Проблема в том, что отчеты требуют и того, и другого. Вопрос: как же мы будем строить отчеты?

Вариант на Oracle мы отмели сразу, потому что у нас все-таки возможности там ограничены. Возможно, настроить сервис приложения, выкачивать сущности из Oracle, а статистику – из PostgreSQL, как-то соединяя и фильтруя. Такое приложение выполняет работу за базу данных. Этот подход нам показался очень сложным, поэтому дальше мы реализовали три подхода, которые используем в разных степенях.

Первый вариант: выкачивать необходимые сущности из Oracle с помощью DBI link при запросе на отчет в PostgreSQL, – этот подход рабочий и хорошо применим для небольших выборок, поскольку, когда нужно большие данные перекачивать с большим количеством сущностей, всё резко замедляется, плюс, оптимизация таких запросов очень сложна. Такой подход актуален, когда нужна актуальность сущностей: выходишь на страничку “редактировать”, добавляешь новый элемент и, уже при сохранении, его сразу нужно отобразить с новой статистикой.

Следующий вариант – перекачка полностью всех сущностей из Oracle в PostgreSQL, периодическая перекачка всех сущностей. Такой подход мы тоже используем, но дело в том, что количество сущностей занимает у нас около 100 ГБ, поэтому актуальность сущности в постгресе отстает. Но этот вариант хорошо работает, когда нужно обрабатывать большие отчеты, которые не требуют актуальности данных. Но, зная наших операторов, которые прибегают к нам через полчаса, как только какой-то вид статистики начинает отставать, мы решили реализовать потоковую репликацию: сущность при обновлении на Oracle практически сразу попадает в Postgres.



Для решения этого вопроса были рассмотрены следующие варианты:

WisdomForce Database Sync – это продукт коммерческий, который существовал в то время. Он вполне нас устраивал и скорость давал примерно 5 000 обновлений в секунду, но, в тот момент когда мы уже решили его использовать, его перекупила другая компания, и проект исчез с рынка, поэтому пришлось нам разбираться и строить решения самим.

Первый вариант, который был рассмотрен, это Oracle DataChange Capture. Это джавовские процессы, которые запускаются в базе данных Oracle. Они умеют отлавливать изменения табличек и запихивать их в очереди. К сожалению, скорость этого решения у нас потерялась в истории, но она была не очень высока.

Первый же вариант репликации был построен на Materialized View Log-ах – это специальные таблички Oracle, которые хранят все изменения мастер-таблички и служат для быстрого пересчета в Materialized View.

Это решение оказалось довольно простым в реализации и давало скорость около 500 обновлений в секунду, но продукт рос и этого оказалось мало. Дальше мы перешли на специальную оракловую технологию Stream, которая служит для репликации данных из Oracle в другие источники. Текущая скорость также позволяет перекачивать и обновлять сущности со скоростью 5000 обновлений в секунду (в пределе можно было довести до 50 000), при этом средняя задержка занимает до 30 секунд. Причем, что интересно, если даже вы обновили одну запись в Oracle, то она попадает в Stream не сразу, а с некоторой задержкой, потому что есть некоторая латентность во всех этих процессах.

Также у Oracle есть продолжение стрим-технологии – XStreams, который позволяет получать более высокие результаты, но это решение у них платное, поэтому мы его протестировали, но использовать не стали.



Схема репликации довольно простая. Теперь на Oracle поднимаются процессы, которые читают redo-логи – это аналог WAL-файлов в PostgreSQL. Все таблички, которые нужно реплицировать, записываются в отдельную табличку “Replication data”. С помощью промежуточного софта, на каждую табличку навешиваются процессы-обработчики redo-логов. В итоге, на выходе мы получаем данные, которые тоже складываются нашу табличку “Replication Data”.



На стороне же PostgreSQL, у нас построено приложение / утилита репликации на Java – она читает эти данные из Replication Data и записывает в PostgreSQL. Плюс ее в том, что при наличии возможности считывать и записывать данные потранзакционно, нарушения целостности нет.

Что касается скорости 5000 в секунду – в основном, узким звеном в этом месте является утилита репликации. Стрим-процессы, как я говорил, позволяют держать до 50 000 сортировок / обновлений. Для ускорения утилиты, мы разбили ее на 3 потока:
  1. Первый поток считывал данные из replication data и трансформировал в запросы, которые можно было применить уже на PostgreSQL.
  2. Второй применял эти изменения.
  3. Третий вычищал обработанные данные из таблички replication data.



Stream процессы позволяют не только реплицировать данные, но и DDL. Мы вначале ринулись решать эту задачу. Благо, система сложная, и хотелось максимально уменьшить все ручные дергания, но это оказалось непросто, потому что сам язык DDL многообразен. Плюс, есть момент неоднозначности трансляции DDL с Oracle в PostgreSQL. Бывало так, что часто у нас на продакшене выскакивали неучтенные варианты этого DDL. В итоге мы решили, что проще нам будет проще пересоздавать их в постгресе и перезаливать данные. В итоге мы оставили одну инструкцию, которая мы поддерживаем – это TRUNCATE.



Скорость 5000 обновлений в секунду, в большинстве случаев, приемлима, но есть один момент, когда всё-таки её не хватало. Это именно патчинг большого объема данных в Oracle. Так, бывали случаи, когда обновление затрагивало десятки гигабайт. Stream процессы достаточно тяжеловесны, потому прогонять все эти объёмы через них довольно накладно для сервера. Поэтому мы придумали такую схемку.

Если разработчик баз данных понимает, что его патч затронет большое количество изменений, он в системе патчиков выставляет определенный флаг, что нужно остановить репликацию. Применяя этот патч, система патчинга останавливала stream процессы, делала свои дела с табличками и в самом конце записывала в нашу табличку replication маркер о том, что патчинг закончился и флаг, что нужно инициализировать таблички. Дальше система патчинга приступала к постгресу. Она дожидалась этот последний маркер, записанный в Oracle, уже на Postgres, который проходил через репликацию. Он всегда приходил последний. Система смотрела на флаг и, если нужно пересоздавать таблички, она их пересоздавала и выкачивала все сущности из Oracle с помощью DBI link. И дальше делала патчинг самой системы. На этом с репликацией всё.



Следующий этап – загрузка данных в саму базу данных. По сути, у нас проект разбит на несколько: собственно, сама база данных; UI, который заливает в базу сущности и выдает отчёты; сервер логов, который ежедневно прокачивает через базу 150 GB, используя stored процедуры.

Поскольку разработчики баз данных не очень контролируют связку log-сервер – база данных, появляется много проблем. Например, статистика приходит из разных стран, в разное время и в разных объёмах, что периодически выдаёт скачки нагрузки. Понятно, что это влияет на всех пользователей. Следующая проблема, иногда неожиданная: log-сервер выдает слишком большие пачки данных. Опять же, обработка таких пачек занимает много ресурсов у сервера и влияет на все остальные процессы. К тому же, есть еще сложность в обработке провалившихся патчей для статистики.

Если что-то “зафейлилось”, эта статистика остаётся на log-сервере. Разработчику баз данных нужно каким-то образом туда попасть (а это не всегда возможно), преобразовать stored процедурой (в плане, вызвать, поправить, снова залить). Это довольно сложное решение. Поэтому на стороне постгреса мы немножко пошли другим путём, а именно заливаем файлы, т.е. сервер логов уже не вызывает stored процедуры, а выдает csv-файлы.



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



Merger тоже прошёл несколько долгий путь.

Первый вариант был сделан на коленке и выглядит, как вот эта строчка зелёная. Это его решение. То есть, создавалась для каждого вида статистики “стейджинговая” табличка и процедура, которая эти таблички помещала в базу данных. Но этот вариант подходит не для всех решений, поэтому мы хотели прийти к чему-то более простому, более универсальному. Так у нас появился второй вариант.

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

Такими правилами описывается большинство видов статистики, но вариантов всё-таки множество. Поэтому синтаксис Merger всё растёт и растёт. Так, есть правила для INSERT, UPDATE, задание условий, когда нужно делать то или другое партиционирование, залитие всякими другими извращёнными способами. Но выделить, пожалуй, можно следующее. Бывает так, что статистика приходит раньше, чем сущности, в PostgreSQL. Это бывает, например, когда сама репликация “упала” или не работала какое-то время.



Для решения этой проблемы мы тоже создали хитрую схемку. В Oracle существует табличка, HEART_BEAT называется, И job, который каждые 30 секунд в неё вставляет timestamp. Эта табличка реплицируется в базу PostgreSQL, и Merger уже может понимать, что требуется. Он смотрит последний пришедший heartbeat и обрабатывает только те файлы, которые младше этого heartbeat’а, иначе у нас могут потеряться некоторые данные. Понятно, что если сущности нету, а она уже есть в статистике, то при мердже она исчезнет.



Имея репликацию и Merger, мы могли перейти к переносу статистики. На слайде вы можете видеть немного изменённую и урезанную версию этого процесса. Из этапов можно выделить следующие:
  • создание табличек и правил для Merger;
  • перевод сервер логов на логирование как в Oracle, так и в PostgreSQL через csv файлы.

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

Здесь мы тоже реализовали нашу боязнь перехода, и поэтому в системе могли существовать сразу два одинаковых отчёта, один из которых работал на Oracle, а другой на PostgreSQL. Это оказалось достаточно удобно как для разработчиков, так и для тестировщиков: всегда можно было запустить одинаковые запросы, увидеть результаты и наглядно сравнить их, решить найденные проблемы.



Чем больше статистики оказывалось в PostgreSQL, тем чаще возникали новые кейсы. Так, например, по статистике, находящейся в PostgreSQL, нам в какой-то момент понадобилось обновление сущностей уже в Oracle. Например, при переходе некоторых пороговых значений, нужно было поменять статус. В данному случае на стороне постгреса мы заводили какой-то job, который максимально агрегировал нужную статистику и запихивал в Oracle через dbi link. Там – уже через stored процедуру либо в отдельную табличку, которая обрабатывалась соответствующим job’ом в Oracle. После чего данные, статусы и сущности менялись в Oracle и через репликацию приходили в PostgreSQL.



Догадываетесь что это? Это набор сущностей. Я загнал в Modeler все сущности, и он построил все связи между ними. Как вы видите, сетка довольно плотная, не всё даже в экран влезло. Поэтому такой же трюк со статистикой: перенести всё по частям у нас не получилось, потому что связи довольно плотные. К тому же в UI у нас работает ORM-система, и разрывать связи там довольно сложно. По сути, приходится реализовывать двухфазный commit в разные базы данных. Запустить два варианта в одну и ту же ORM-ку тоже было проблемным для модели. Поэтому мы решили всю миграцию сущностей отложить на последний рывок, при этом предварительно подготовив все необходимые моменты.

Для одной из табличек нам всё-таки пришлось реализовать перенос, разорвать связи, это заняло довольно долгое время. Причина в том, что эта табличка очень большая и она интенсивно менялась. Было накладно для начальной инициализации в постгресе (необходимость перекачивать все сущности) и для процесса репликации.



С переносом функциональности было немного попроще. На экране вы видите некоторую взаимосвязь этапов перехода какой-то части системы из Oracle на PostgreSQL. Связей уже, конечно, поменьше, но каждый квадратик состоит из квадратиков, который имеет свои связи. Поэтому, чтобы облегчить последний рывок, мы максимально упростили всё, что можем. Выделить можно три варианта.

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

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

Мертвый перенос – это перенос stored процедур, переписывание их с Oracle на постгрeс. Эти процедуры могли даже не работать. И, зачастую, они и не работали, не вызывались. Но это нам позволило создать набор “болванок” к следующему шагу.



Собственно, подготовив всё, чтобы перейти к последнему рывку, мы сладили с этим последним рывком. По сути, мы перенесли все статистики, включили ту функциональность, что работала вхолостую и которая лежала мёртвым грузом. Сам релиз происходил с довольно большим “даунтаймом”, поскольку нужно перекачать довольно большое количество актуальных данных и по пунктам выполнить некоторые миграции. Интересно что, несмотря на то, что мы много всего сделали, мы обнаружили, что мы забыли перенести определённые модули, поэтому мы были вынуждены отложить релиз где-то на неделю. И даже после этого, где-то через неделю-две, мы нашли ещё один модуль, который не был мигрирован, и нам уже пришлось допиливать по-живому.



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

Как видите, база не очень большая, но и не то, чтобы очень маленькая. Если брать по коду, то, чтобы написать такое количество с 0, нужно писать около 80 строчек в день. Это не так чтобы и очень много даже для небольшой команды.

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

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



Несмотря на то, что PostgreSQL — довольно классная БД и с каждым релизом она нам нравится всё больше и больше, всё-таки некоторых моментов нам не хватало во время миграции.

Джобы, в Oracle они существуют в самой базе и было непривычно выходить за рамки базы, запускать какой-то crontab. К тому же нужно всё это мониторить, что оно всё запускается и выполняется хорошо.

Resource management: иногда хорошо разделить ресурсы между процессами, например, между пользовательскими запросами и статистикой.

Самая крутая штука, которая есть в Oracle, на мой взгляд, поскольку спасала меня несколько раз, это flashback. Это возможность восстановить какую-то версию за какой-то непродолжительный промежуток времени. Что-то подобное мы думаем сейчас думаем реализовать на постгресе, поскольку были моменты, когда приходилось восстанавливать большие куски сущностей из-за инцидентов.

Также OEM (Oracle Enterprise Management) – это такое web-приложение. Когда у нас те или иные проблемы, DBA залазит в эту OEM, видит все активности, какие там есть. Может пройти по историям, посмотреть, что же происходило, сравнить взаимодействие различных аспектов и проделать всякие свои админские штуки. В PostgreSQL, понятно, у DBA мастерство на кончиках пальчиков, поэтому все запросы он может выдать с такой же скоростью, как и через это приложение, но удобство при этом страдает для людей, которые не являются DBA. Поэтому свой вариант OEM мы всё-таки написали, важно было сохранение всей истории обращения по таблицам и запросам. В итоге, мы могли зайти и посмотреть, что же там тормозило, увидеть всякие взаимосвязи и сделать изменения в нашем коде.



Greenplum мы всё-таки не купили, кризис, но объемы у нас растут, поэтому мы сталкиваемся с теми же проблемами, которые у нас были уже Oracle, на PostgreSQL, но уже в более крупных масштабах. Так, первая из проблем, с которой мы столкнулись, это ограничение по диску. В какой-то момент, нам даже пришлось сделать операцию un-raid на нескольких разделах. Превратив тем самым RAID-10 в RAID-5, кажется.

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

Новую версию смотрели? Смотрели-смотрели, но мы основную статистику, если кратко, перенесли в Hadoop. На хадупе у нас стоит Impala, такая колоночная, по сути, база данных, которая отвечает за наши данные. И у нас даже стратегически задача вынести все объёмные статистики, которые не нужны ни для биллинга, ни для работы сиюминутных jobs, в Hadoop кластер и, если нам что-то понадобится, то когда-то возвращать.

Так, у нас операторы любят смотреть почасовую статистику. Объем ключей в главной таблице событий очень большой и это накладно для сервера, поэтому часовую статистику мы уже вынесли в Hadoop.



Тематическое расширение PG Day'17 усилило интерес наших слушателей и докладчиков к тематике миграций с одного хранилища данных на другое. Вопросы миграции будут рассматриваться практически в каждой секции, так что вопросов не останется ни у кого! Специально для вас мы готовимся представить несколько интересных докладов.

Василий Созыкин из Яндекс.Деньги поведает про дао миграции нагруженного сервиса с Oracle на PotgreSQL, захватывающая история о том, как специалисты Яндекса мигрировали поистине огромную базу без „даунтайма“. Александр Коротков из компании Postgres Professional в своем докладе „Наш ответ Uber'у“ произведет разбор нашумевшей истории о переезде популярного Такси-сервиса с PostgreSQL обратно на MySQL. Кристина Кучерова из Distillery расскажет, как они с коллегами пришли к решению о миграции OLTP части своей системы с MS SQL на PostgreSQL, и чем это для них обернулось.

Ну а четвертый, не менее интригующий доклад об онлайн-репликации данных в Greenplum из 25 СУБД под управлением Oracle для вас готовит Дмитрий Павлов, руководитель группы администрирования Date Warehouse в банке Тинькофф. Дмитрий уже не в первый раз выступает на PG Day. Его предыдущие доклады имели оглушительный успех и собирали до отказа набитые залы.

В самый последний момент, когда мы готовили этот выпуск к публикации и уже были готовы нажать кнопку „Опубликовать“, коллеги из НИИ „Восход“ подали заявку на доклад. Дмитрий Погибенко расскажет об успешной миграции базы данных государственной системы „Мир“ (более 10 Тб данных!) с DB2 на PostgreSQL с минимальным простоем.

Источник: https://habrahabr.ru/company/pgdayrussia/blog/327418/?utm_source=habrahabr&utm_medium=rss&utm_campaign=interesting

Смотри также: