diff --git a/dev/database/postgresql/Индекс в PostgreSQL.md b/dev/database/postgresql/Индекс в PostgreSQL.md index 7fedd1d5..45e6aad2 100644 --- a/dev/database/postgresql/Индекс в PostgreSQL.md +++ b/dev/database/postgresql/Индекс в PostgreSQL.md @@ -9,7 +9,7 @@ date: 2024-03-31 **Особенности:** - Для **первичного ключа** индекс создается автоматически. - Можно **отключить автоматическое обновление индекса** и настроить обновление вручную. -- **Распухание индексов** (bloat) — это проблема увеличения размера индексов со временем, требующая переиндексации. +- **Распухание индексов** ([[Раздутие таблиц|bloat]]) — это проблема увеличения размера индексов со временем, требующая переиндексации. - [[Создание индекса в PostgreSQL]] - [[../Частичный индекс|Частичный индекс]] @@ -24,8 +24,8 @@ date: 2024-03-31 - [[BRIN индекс в PostgreSQL|BRIN индекс]] **Влияние обновления строки на индекс** -- **Обновление индексированной колонки.** По факту мы добавляем новую запись в индекс, а старую забываем. Старая остается мертвым грузом (bloat), индекс распухает, его нужно убрать vacuum. -- **Обновление не индексированной колонки.** Если строка в таблице остается на той же [[../DB page|странице бд]], то есть было место на странице, то индекс не меняется. Если строка не помещается, то добавляется новая запись в индекс, а старая остается мертвым грузом (bloat), индекс распухает, его нужно убрать vacuum. +- **Обновление индексированной колонки.** По факту мы добавляем новую запись в индекс, а старую забываем. Старая остается мертвым грузом ([[Раздутие таблиц|bloat]]), индекс распухает, его нужно убрать - [[Autovacuum]]. +- **Обновление не индексированной колонки.** Если строка в таблице остается на той же [[../DB page|странице бд]], то есть было место на странице, то индекс не меняется. Если строка не помещается, то добавляется новая запись в индекс, а старая остается мертвым грузом ([[Раздутие таблиц|bloat]]), индекс распухает, его нужно убрать vacuum. *** ## Мета информация **Область**:: [[../../../meta/zero/00 PostgreSQL|00 PostgreSQL]] diff --git a/dev/linux/Logical Volume Management.md b/dev/linux/Logical Volume Management.md new file mode 100644 index 00000000..540c612d --- /dev/null +++ b/dev/linux/Logical Volume Management.md @@ -0,0 +1,34 @@ +--- +aliases: + - LVM +tags: + - maturity/🌱 +date: + - - 2024-01-09 +--- +- [[Основные команды для управления LVM|Основные команды для управления LVM]] + +Проверка состояния логических томов (LV) +```bash +sudo lvs -a -o +devices,lv_health_status +``` + +## Logical Volume + + +## Полезные материалы +- [Работа с LVM. Управление дисковыми носителями с помощью Logical Volume Manager](https://www.dmosk.ru/instruktions.php?object=lvm&ysclid=lr6peozovr651519872#delete) +*** +## Мета информация +**Область**:: [[../../meta/zero/00 Linux|00 Linux]] +**Родитель**:: +**Источник**:: +**Автор**:: +**Создана**:: +### Дополнительные материалы +- +### Дочерние заметки + + +- [[Основные команды для управления LVM]] + diff --git a/dev/linux/Основные команды для управления LVM.md b/dev/linux/Основные команды для управления LVM.md new file mode 100644 index 00000000..4c3f9eb3 --- /dev/null +++ b/dev/linux/Основные команды для управления LVM.md @@ -0,0 +1,80 @@ +--- +aliases: +tags: + - maturity/🌱 +date: 2024-11-12 +--- +Эта заметка содержит основные команды для работы с LVM (Logical Volume Management) в Linux. Команды разделены на несколько категорий: физические тома, группы томов, логические тома, управление файловыми системами, создание снимков, а также конфигурация и обслуживание. +## Physical Volumes +- `pvcreate ` — инициализация физического тома для использования в LVM. +- `pvdisplay` — отображение информации о физических томах. +- `pvs` — вывод всех физических томов с краткой информацией. Объем доступного и используемого пространства. +- `pvscan` — сканирование всех дисков на наличие физических томов. +- `pvresize ` — изменение размера физического тома. +## Volume Groups +- `vgcreate ` — создание группы томов из одного или нескольких физических томов. +- `vgextend ` — добавление физического тома в существующую группу томов. +- `vgreduce ` — удаление физического тома из группы. +- `vgdisplay` — отображение информации о группах томов. +- `vgs` — вывод всех групп томов с краткой информацией. +- `vgscan` — сканирование всех дисков для обнаружения групп томов. +- `vgremove ` — удаление группы томов (должна быть пустой). +- `vgrename ` — переименование группы томов. +## Logical Volumes +- `lvcreate -L -n ` — создание логического тома в группе. +- `lvextend -L ` — увеличение размера логического тома. +- `lvreduce -L ` — уменьшение размера логического тома. +- `lvresize -L ` — изменение размера логического тома до заданного значения. +- `lvdisplay` — отображение информации о логических томах. +- `lvs` — вывод всех логических томов с краткой информацией. +- `lvscan` — сканирование всех дисков для обнаружения логических томов. +- `lvrename ` — переименование логического тома. +### Удаление Logical Volume +Размонтировать папку от LV. + +```shell +umount /folder/path +``` + +Откройте `/etc/fstab` и убедитесь, что нет записи для автоматического монтирования файловой системы. Если есть, удалите запись, сохраните изменения и закройте файл. + +``` +nano /etc/fstab +``` + +Также нужно убедиться, что к данной папке не присоединен docker volume. + +После чего можно удалить LV +```shell +lvchange -an /dev/vgname/lvmname +lvremove /dev/vgname/lvmname +``` +### Управление файловыми системами на логических томах +- `mkfs.ext4 /dev//` — создание файловой системы ext4 на логическом томе. +- `mkfs.xfs /dev//` — создание файловой системы XFS на логическом томе. +- `mount /dev// /mnt` — монтирование логического тома в директорию. +- `umount /mnt` — размонтирование логического тома. +## 5. Снимки (Snapshots) +- `lvcreate -L -s -n ` — создание снимка логического тома. +- `lvremove ` — удаление снимка. +- `lvconvert --merge ` — объединение снимка с оригинальным логическим томом. +## 6. Конфигурация и обслуживание LVM +- `lvchange -a y ` — активация логического тома. +- `lvchange -a n ` — деактивация логического тома. +- `vgchange -a y ` — активация группы томов. +- `vgchange -a n ` — деактивация группы томов. +- `vgcfgbackup ` — создание резервной копии метаданных группы томов. +- `vgcfgrestore ` — восстановление метаданных группы томов из резервной копии. +*** +## Мета информация +**Область**:: [[../../meta/zero/00 Linux|00 Linux]] +**Родитель**:: [[Logical Volume Management|Logical Volume Management]] +**Источник**:: +**Создана**:: [[2024-11-12]] +**Автор**:: +### Дополнительные материалы +- + +### Дочерние заметки + + diff --git a/meta/files/images/telegram-cloud-photo-size-2-5296530902261821546-y.jpg b/meta/files/images/telegram-cloud-photo-size-2-5296530902261821546-y.jpg new file mode 100644 index 00000000..67a4b4f9 Binary files /dev/null and b/meta/files/images/telegram-cloud-photo-size-2-5296530902261821546-y.jpg differ diff --git a/meta/files/images/webp/telegram-cloud-photo-size-2-5296530902261821546-y.webp.md5 b/meta/files/images/webp/telegram-cloud-photo-size-2-5296530902261821546-y.webp.md5 new file mode 100644 index 00000000..8941595f --- /dev/null +++ b/meta/files/images/webp/telegram-cloud-photo-size-2-5296530902261821546-y.webp.md5 @@ -0,0 +1 @@ +5860554aa3f9f9759e9335019e1fe84c diff --git a/meta/zero/00 Головные мюсли.md b/meta/zero/00 Головные мюсли.md new file mode 100644 index 00000000..ab3ed7b9 --- /dev/null +++ b/meta/zero/00 Головные мюсли.md @@ -0,0 +1,8 @@ +--- +tags: + - type/zero-link +--- + + +- [[Исторически так сложилось]] + \ No newline at end of file diff --git a/muesli/Исторически так сложилось.md b/muesli/Исторически так сложилось.md new file mode 100644 index 00000000..5e46b64f --- /dev/null +++ b/muesli/Исторически так сложилось.md @@ -0,0 +1,42 @@ +--- +aliases: +tags: + - maturity/🌱 + - content/muesli +date: 2024-11-12 +--- +## Анекдот +Яша с утра спросил у супруги, почему она отрезает кончики сосисок, когда готовит их. «Не знаю, меня мама так научила, спроси у неё», — отвечает супруга. Яша оказался любопытным и пошёл к тёще. Он спросил: «Мама, почему действительно вы всё время кончики у сосисок отрезаете, когда варите?» + +Она говорит: «Я не знаю, меня мама так научила. Если тебе интересно, позвони ей». Ну Яша такой любопытный, пошёл звонить. Звонит, говорит: «Ида Самуиловна, это Яша, ваша внучка (моя жена) и ваша дочь (моя тёща) всё время, когда варят сосиски, отрезают кончики и говорят, что это вы их научили. В чём смысл?» + +«Вы что, до сих пор варите сосиски в той моей самой маленькой кастрюлечке?» + +*** + +В старых проектах часто можно услышать фразу: "Исторически так сложилось". Это объяснение используется, когда никто уже не помнит, почему было принято какое-то решение, но все продолжают следовать этой практике. Как и в анекдоте, причина, по которой что-то делается именно так, теряется во времени, а изначальная необходимость, возможно, давно отпала. + +Такие устаревшие решения могут быть следствием технических ограничений, которые были актуальны на момент создания системы, или обусловлены привычками и отсутствием времени на пересмотр принятых решений. С течением времени кодовая база разрастается, а оригинальные мотивации забываются. В итоге разработчики продолжают следовать устаревшим практикам, не подвергая их сомнению. + +Ситуации, когда решение было принято "потому что так было удобно 10 лет назад", могут сдерживать развитие проекта и приводить к трудностям в поддержке и модернизации системы. + +Разработка требует регулярного переосмысления архитектурных решений и устранения наследия, которое перестало приносить пользу. Периодически задавая вопрос "Почему это сделано именно так?", можно избежать накопления технического долга и упростить жизнь будущим разработчикам. + +**Как бороться с наследием прошлого** +1. **Документировать решения**: Поддержка документации помогает понимать, почему определённое решение было принято, и облегчает пересмотр устаревших подходов. Например, Architecture decision log +2. **Регулярные ревизии кода**: Периодически пересматривайте старый код, чтобы выявлять и устранять неэффективные решения. +3. **Постоянное обучение команды**: Обучение помогает разработчикам понимать современные подходы и технологии, что позволяет быстрее определять устаревшие паттерны. +4. **Открытые обсуждения**: Создайте культуру, где команда может открыто задавать вопросы о текущих решениях и предлагать улучшения. Например TechTalk +*** +## Мета информация +**Область**:: [[../meta/zero/00 Головные мюсли|00 Головные мюсли]], [[../meta/zero/00 Разработка|00 Разработка]] +**Родитель**:: +**Источник**:: +**Создана**:: [[2024-11-12]] +**Автор**:: +### Дополнительные материалы +- + +### Дочерние заметки + +