1) Check your chmod file available:
sudo chmod +x /etc/rc.local
2) Edit rc.local file:
sudo gedit /etc/rc.local
3) Add:
# PostgreSQL
mkdir /var/run/postgresql
mkdir /var/run/postgresql/12-main.pg_stat_tmp
touch /var/run/postgresql/12-main.pg_stat_tmp/global.tmp
chown -R postgres:postgres /var/run/postgresql
su postgres -c '/usr/lib/postgresql/12/bin/pg_ctl start -D /etc/postgresql/12/main'
# OR CHANGE YOUR DB VERSION AND DATABASE FILES FOLDER
# su postgres -c '/usr/lib/postgresql/9.5/bin/pg_ctl start -D /etc/postgresql/9.5/main'
4) Enable rc.local instructions (it is turned off by default):
sudo systemctl enable rc-local.service
5) Start your rc.local scripts right now:
sudo systemctl start rc-local.service
Для переноса таблицы из одной БД в другую - лучше всего использовать командную консоль. pgAdmin3 возникают сложности без соответствующей настройки (restore).
Короче. Правила простые.
За бэкап отвечает команда: pg_dump dbname > outfile
Где dbname - имя нашей БД, а outfile - название нового файла-бэкапа.
Но нам нужно бэкапнуть конкретную таблицу. Для этого пишем:
pg_dump dbname -n shema -t table > outfile
Где: shema - название схемы, а table - соответственно таблицы.
Для восстановления используем команду:
psql dbname < infile
Для конкретного пути назначения:
psql dbname -n shema < infile
Думаю, всё понятно.
Меня сильно удивила простота перестановки Ubuntu на новые разделы, по сути на новый диск (т.к. разделы форматировались, двигались и изменялись размеры, их количество).
В общем всё, в отличии от мастадонта коммерции - Windows, всё крайне просто и не зателиво.
1) Просто копируем нашу дату на другой носитель. Как есть, можно без архивации.
2) Разбираемся там со всеми разделами как нам нужно, ставим Ubuntu.
3) Т.к. я пользуюсь пакетами из оф. репозитария (я про Postgres, Lighttpd, Apache, Nginx и т.п.), то просто копирую папки с нужыми пакетами как есть, с заменой свеже-установленных.
Всё!
Вот так, как оказалось, совершенно просто перенеслись все мои документы из /home и 16 гб. база данных Postgres со всеми настройками/паролями...
sudo service postgresql stop
sudo service postgresql start
Из личного опыта по оптимизации PostgreSQL базы данных.
Объем строк: >>> 800067 raws.
Строки типа: TEXT
Разбитие строк: ,TEXT1,TEXT2,TEXT3,~~~,
>>> 800067 raws.
ALTER TABLE table.list ADD COLUMN itemnameTSVector TSVECTOR;
UPDATE table.list SET itemnameTSVector = to_tsvector(itemname);
CREATE INDEX list_GINindex ON table.list
USING GIN(itemnameTSVector);
Поисковый запрос без использования индекса:
>>> 7.2 sec.
SELECT * FROM table.list
WHERE itemname LIKE '%TEXT1%'
and itemname LIKE '%TEXT3%';
Поисковый запрос с использованием индекса:
>>> 7.0 sec.
SELECT * FROM table.list
WHERE tsvector(itemnameTSVector)
@@ tsquery('TEXT1 & TEXT3');
Далее пробовал с поисковым запросом без индекса, но с запятыми, как с разделителями:
>>> 7.0 sec.
SELECT * FROM table.list
WHERE itemname LIKE '%,TEXT1,%'
and itemname LIKE '%,TEXT3,%';
Вот и вся оптимизация. Результат на лицо.
Здесь такое дело. Как-то, с год назад, я начал в плотную осваивать языки программирования для моих проектов (genme.net, sistemaexport.ru).
Долго выбирал, с чего начать. И был выбран PHP, т.к. его знал немного ранее, был опыт, понимание и т.д. Тем более, что меня интересовала как многопоточность, скорость расчетов, так и серверная база.
Короче. Ковырялся в Windows с установкой denwer. Возможностей там раз-два... PostgreSQL - проблема, MySQL - проблема, PHP-cli - проблема... короче снес. Затем поставил openserver. Тоже не лучший вариант: нет многопоточности (нормального cli режима), да и с настройкой проблемы... Ну да ладно, первые скрипты были написаны там. Затем, за буквально два дня, для автономной работы был поднят сервер на ubuntu desktop. И поняслись постоянные проблемы с отладкой т.к. скрипны написаны в Windows среде, а исполняются в Linux...
Выход был найден установкой Ubuntu Desktop на лэптоп с разбивкой жесткого диска на разделы и установкой Grub.
Помогло на время - пока не закончилось место в логическом разделе Linux. А создание новых разделов привысило допустимы лимит... Выход был один - разносить системы на отдельные носители.
Решил поставить дополнительны диск в рабочий лэптоп, а т.к. слотов для подключения нового девайса нет - была найдена вот такая штуковина:
Слева - SSD. Справа - переходник вместо CDROM`а.
Весело и радужно всё запихнули в агрегат:
И началась пляска с бубном...
1) Ранее, уже как три месяца к времени апгрейда, у меня вылетел Windows. Так что было решено перенести всю инфу и разделы на новый диск с полным копированием. Инструктаж.
2) Загружаемся с LiveCD, Фигачим в cmd:
sudo fdisk –l
sudo dd if=/dev/sdb of=/dev/sdc
Фигня с объемом...
3) Ждем nn-ое количество времени и пытаемся восстановить Windows с уже нового носителя. Бесполезно, разделы нарушены. Мало того, т.к. диски были с точностью скопированы, название и ID разделов конфиктовали друг с другом, не дав запуститься...
4) Фарматнул новый SSD. Установил Windows с USB ISO. Скопировал через Ubuntu Live CD дату на новый SSD. Зпустил Windows. OK
5) Далее, монируем оба SSD, где SSD с Windows уходит как хламосборщик в слот от CDROM. Загружаемся с Ubuntu LiveCD, бновляем grub, пытаемся запустить linux => error, бесконечно вылетаем в emergency mode. Пытаемся запустить Windows => boot error. Кусок говна.
6) Силой мысли и форумов, пытаемся понять, что проблема в загрузочных секторах - конфликт. Проверяем bios, убеждаемся, что bios не видит новый SSD (тот, что через переходник). Это плохо, но всё возможно.
7) Думая о лучшем, удаляем boot сектор на SSD c Linux и восстанавливаем загрузчик Windows, затем Grub. Пример. Херачим:
bootrec.exe /FixMbr
bootrec.exe /FixBoot
bootsect /NT60 SYS
И update grub, ранее, а сейчас Boot Repair.
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update && sudo apt-get install -y boot-repair
И снова попадаем в замкнутый круг. Ubuntu слетает к чертям в emergency, windows не грузится.
Пытаемся решить задачу. Мы же упрямые. Да и нагадили уже по самое.
8) Выносим мозг с восстановлением разделов на старом SSD (тот, что Linux): работаем через Ubuntu Live CD с уилитой testdisk. Выискиваем глубоко и долго. Восстанавливаем нужные разделы.
9) Копируем данные linux в наш новый SSD - в мусоросборщик. Форматируем разделы и переустанавливаем Ubuntu. Запуск. OK! Ubuntu джобает. Windows сопротивляется...
10 ) Восстанавливаем загрузчик Windows... в очередной раз. Загружаемся с Windows USB, заходим в командную строку, пишем:
bootrec /FixMbr
bootrec /FixBoot
Не помогает. =) А помогает только:
bootrec /RebuildBcd
11) Грузим то-да-сё. Всё работает. Ура!
Квест пройден. Бубен порван и 24 часа жизни успешно отправлены в корзину.
Резюме: Думай дважды, юный падаван, перед началом большого пути... ;-) Нужно было сразу разносить по носителям, теперь еще и софт восстанавливать...