Кратко,
selectMethod=cursor
selectMethod=direct
selectMethod=direct
selectMethod=cursor
direct
это уже оплатило стоимость получения данных, которые это по существу выбросит; с cursor
отходы ограничены в большей части пакетного размера - 1 строке - раннее условие завершения должно, вероятно, быть повторно кодировано в SQL так или иначе, например, как SELECT TOP
или функции окна)Таким образом,
selectMethod=cursor
более низкая производительность приложения? - любой метод может понизить производительность по разным причинам. Мимо определенного размера набора результатов, cursor
может все еще быть предпочтительным. Посмотрите ниже для того, когда использовать один или другойselectMethod=
прозрачная для приложения установка на соединении JDBC? - это прозрачно, но это может все еще повредить их приложение, если использование памяти выращивает достаточно значительно к пожирателю ресурсов их клиентскую систему (и, соответственно, Ваш сервер), или разрушьте клиент в целомcursor
по сравнению с direct
? - Я лично использую cursor
при контакте с потенциально большими или в других отношениях неограниченными наборами результатов. Распространение в прямом и обратном направлениях наверху затем амортизируется, учитывая достаточно большой пакетный размер, и мой клиентский объем потребляемой памяти предсказуем. Я использую direct
когда размер набора результатов, который я ожидаю, как будет известно, будет нижним к любому пакетному размеру, я использую с cursor
, или связанный в некотором роде, или когда память не является проблемой.С наилучшими пожеланиями, V.
Если мне нужно увеличить / до 257398 блоков размером 1 М и уменьшить / вернуться к 20000 блоков по 1 М, могу ли я сделать это без перезагрузки, и если да, то какова конкретная последовательность команд для этого?
У вас есть примерно 280 ГБ свободного места, из которых 50 ГБ выделено для '/', а 230 ГБ - для / home
. Поскольку это представляет все ваше доступное пространство, вам сначала нужно что-то освободить. Вот несколько вариантов:
Если вы не разместили никаких данных в / home
, проще всего просто отказаться от существующей файловой системы и воссоздать ее с соответствующим размером:
Размонтировать / home
:
# umount / home
Уменьшите размер логического тома (LV) до 20 ГБ:
# lvreduce -L 20G / dev / vg_livecd / lv_home
Восстановите файловую систему / home
:
# mke2fs -j -m0 / dev / vg_livecd / lv_home
И перемонтируйте / home
:
# mount / home
Можно сжать / home
, а не отбрасывать его, но это может быть немного сложнее:
Отключить / home
:
# umount / home
fsck
файловая система. Вероятно, это потребуется на следующем шаге:
# fsck / dev / vg_livecd / lv_home
Изменение размера файловой системы:
# resize2fs / dev / vg_livecd / lv_home 19G
Уменьшите LV:
# lvreduce -L 20G / dev / vg_livecd / lv_home
Вы заметите, что я уменьшил файловую систему немного больше, чем LV; это потому, что я никогда не могу вспомнить, считают ли они вещи одинаково, поэтому я стараюсь оставить немного места для маневра.
В любом случае, на данный момент у вас теперь есть примерно 210 ГБ свободного места в вашей группе томов. Теперь вы можете увеличить размер корневой файловой системы:
Увеличить размер корневого LV:
# lvresize -L260G / dev / vg_livecd / lv_root
Увеличьте размер файловой системы:
# resize2fs / dev / vg_livecd / lv_root
Обратите внимание, что вам может потребоваться число чуть меньше 260 ГБ из-за округления, которое я использую в этом ответе. Кроме того, в последних версиях утилит LVM есть возможность изменять размер файловой системы за вас, но я делал это еще до того, как эти параметры стали доступны ... поэтому я не могу утверждать, что знаю точно, как они работают.
Если я хочу добавить выделенный раздел / var, как мне это сделать без полной переустановки?
Во-первых, вы, вероятно, захотите сделать это в однопользовательском режиме, иначе запущенные процессы, вероятно, будут открывать файлы в / var
, что затрудняет замену. Сказав это ...
Вам снова понадобится свободное место. Если вместо того, чтобы использовать все свободное пространство на предыдущем шаге, вы оставите несколько ГБ свободными, вы можете сделать это:
Создайте новый логический том:
Создайте новую файловую систему:
# mke2fs -j -m0 / dev / vg_livecd / lv_var
Отредактируйте / etc / fstab
, чтобы смонтировать новый LV на / var
, добавив следующую строку:
/ dev / vg_livcde / lv_var / var ext4 defaults 1 2
Но пока не монтируйте!
Смонтируйте новую файловую систему в удобном месте:
# mount / dev / vg_livecd / lv_var / mnt
Скопируйте содержимое / var
:
# rsync -a / var / / mnt /
Переименуйте / var
в /var.old
и создайте новый каталог:
# mv / var /var.old
# mkdir / var
Установите новый LV на / var
:
# umount / mnt # mount / var
И продолжаем загрузку. Когда вы убедитесь, что все работает правильно, вы можете удалить /var.old
.
Принимая во внимание:
AFAIC, я бы попробовал netinstall / kickstart, чтобы получить желаемую конфигурацию за один раз и воспроизводимым способом.
My 2cts