create or replace function refresh_jenki_postgres_schemalist() returns void AS $$
declare
slct RECORD;
i integer;
i2 integer;
begin
/* Удаляет из таблицы «azk» для «jenki» записи об отсутствующих базах */
delete from azk a where not exists (select null from pg_database d where d.datname = a.dbname);
GET DIAGNOSTICS i = ROW_COUNT;
RAISE NOTICE 'Deleted rows: %', i;
/* Вставляем записи о базах, которые есть на сервере, но которых нет в таблице «azk» для «jenki» (за исключением баз, которые не относятся к АЦК) */
i = 0;
for slct in select 'insert into azk(id,dbname) values(nextval(''azk_seq''),'''||d.datname||''')' as stmt from pg_database d where not exists (select null from azk a where d.datname = a.dbname) and d.datname not in ('postgres','template0','template1','zabbix') order by d.datname loop
execute slct.stmt;
i = i + 1;
end loop;
RAISE NOTICE 'Inserted rows: %', i;
end $$ language plpgsql;
Показаны сообщения с ярлыком postgresql. Показать все сообщения
Показаны сообщения с ярлыком postgresql. Показать все сообщения
суббота, 22 декабря 2018 г.
среда, 9 августа 2017 г.
PostgreSQL: пример исполняемого блока для создания таблицы DUAL
DO $$
DECLARE
b_parent_id numeric(15);
b_ppo_id numeric(15);
v_doc_id numeric(15);
v_rr_id numeric(15);
v_gen numeric(15);
v_gen1 numeric(15);
r RECORD; -- некоторая промежуточная запись
ru RECORD; -- некоторая промежуточная запись
dd RECORD; -- некоторая промежуточная запись
sysdate Date := now(); -- текущая дата
BEGIN
-- удалим временную таблицу, если существует
drop table if EXISTS dual;
-- создадим временную таблицу
create temp table dual (dummy integer); -- пустышка
execute 'insert into dual(dummy) values(0)';
end $$;
DECLARE
b_parent_id numeric(15);
b_ppo_id numeric(15);
v_doc_id numeric(15);
v_rr_id numeric(15);
v_gen numeric(15);
v_gen1 numeric(15);
r RECORD; -- некоторая промежуточная запись
ru RECORD; -- некоторая промежуточная запись
dd RECORD; -- некоторая промежуточная запись
sysdate Date := now(); -- текущая дата
BEGIN
-- удалим временную таблицу, если существует
drop table if EXISTS dual;
-- создадим временную таблицу
create temp table dual (dummy integer); -- пустышка
execute 'insert into dual(dummy) values(0)';
end $$;
суббота, 10 декабря 2016 г.
PostgreSQL: перенос БД (временное решение)
БД перенесена сюда:
(Временно) Запуск службы из под пользователя «postgres» с помощью команды:
(Временно) Использовать команду
/mnt/diska/postgresql/9.5/dataКонфигурационные файлы, например, pg_hba.conf, считываются оттуда же.
(Временно) Запуск службы из под пользователя «postgres» с помощью команды:
/usr/pgsql-9.5/bin/postmaster -D /mnt/diska/postgresql/9.5/data
(Временно) Использовать команду
service postgresql-9.5 startпока запрещено.
воскресенье, 23 октября 2016 г.
PostgreSQL for Beginners x2i.pdf, pg_hba.conf, appdb
В методичке для новичков "PostgreSQL for Beginners x2i.pdf" есть задание: нужно подключиться к созданной своими руками БД с помощью команды в "psql":
Помогло переключение метода (столбец "METHOD") определения доступа в файле "pg_hba.conf".
Было:
Стало:
\c appdb app localhost 5432которая заканчивается ошибкой:
ВАЖНО: пользователь "app" не прошёл проверку подлинности (Ident)
Сохранено предыдущее подключение
Помогло переключение метода (столбец "METHOD") определения доступа в файле "pg_hba.conf".
Было:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident
Стало:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
Установка PostgreSQL 9.5 на Oracle Linux 5
По мотивам: http://tecadmin.net/install-postgresql-9-5-on-centos/#
1) yum install postgresql95-server postgresql95
2) service postgresql-9.5 initdb
3) service postgresql-9.5 start
4) для автозапуска при старте сервера:
P.S. Пришлось вручную добавить в /var/lib/pgsql/.bash_profile:
1) yum install postgresql95-server postgresql95
2) service postgresql-9.5 initdb
3) service postgresql-9.5 start
4) для автозапуска при старте сервера:
chkconfig postgresql-9.5 on
P.S. Пришлось вручную добавить в /var/lib/pgsql/.bash_profile:
alias psql = '/usr/pgsql-9.5/bin/psql'
среда, 19 октября 2016 г.
PostgreSQL: расположение конфигурационных файлов и другие параметры СУБД
В "PostgreSQL for Beginners v2i.pdf" написано, что конфигурационные файлы СУБД находятся по следующим путям:
об автозагрузке:
Но на практике, по крайней мере на виртуальном образе с Xubuntu, скачаного с оф.сайта, после установки СУБД конфигурационные сайты удалось найти только с помощью команды в psql:
Вообще, команда "SHOW" очень удобная, например, с помощью команды:
Например, параметр "data_directory" указывает на место расположения файлов данных СУБД в хранилище:
об автозагрузке:
/etc/postgresql/9.5/main/start.confпараметры сервера:
/etc/postgresql/9.5/main/postgresql.confнастройки доступа:
/etc/postgresql/9.5/main/pg_hba.conf
Но на практике, по крайней мере на виртуальном образе с Xubuntu, скачаного с оф.сайта, после установки СУБД конфигурационные сайты удалось найти только с помощью команды в psql:
postgres=# show hba_file;
hba_file
-----------------------------------
/usr/local/pgsql/data/pg_hba.conf
(1 row)
Вообще, команда "SHOW" очень удобная, например, с помощью команды:
SHOW ALL;можно получить список всех параметров СУБД вместе с их значениями.
Например, параметр "data_directory" указывает на место расположения файлов данных СУБД в хранилище:
postgres=# show data_directory;
data_directory
-----------------------
/usr/local/pgsql/data
(1 row)
понедельник, 17 октября 2016 г.
PostgreSQL: образы виртуальных машин
https://files.postgrespro.ru/departments/edu/www/
Мое знакомство с Linux началось с Oracle Enterprise Linux 5.11, поэтому для меня было неожиданностью то, что в Ubuntu пользователь "root" заблокирован и не имеет пароля.
Все команды из методички по "PostgreSQL DBA1", для которой предназначены образы виртуальных машин, нужно выполнять с командой "sudo" и вводить пароль для пользователя с логином "student" - пароль такой же - "student".
Мое знакомство с Linux началось с Oracle Enterprise Linux 5.11, поэтому для меня было неожиданностью то, что в Ubuntu пользователь "root" заблокирован и не имеет пароля.
Все команды из методички по "PostgreSQL DBA1", для которой предназначены образы виртуальных машин, нужно выполнять с командой "sudo" и вводить пароль для пользователя с логином "student" - пароль такой же - "student".
PostgreSQL: make distclean
Ошибка невнимательного админа :)
При выполнении команды по сбросу состояния дистрибутива, не заметил надпись, что выполнять ее нужно при повторной установке. В первый раз она выдает ошибка:
При выполнении команды по сбросу состояния дистрибутива, не заметил надпись, что выполнять ее нужно при повторной установке. В первый раз она выдает ошибка:
[root@myserver postgresql-9.5.4]# make distclean
You need to run the 'configure' program first. See the file
'INSTALL' for installation instructions.
make: *** [distclean] Ошибка 1
Генераторы в PostgreSQL
1) Генерация следующего значения:
Подробнее: https://postgrespro.ru/docs/postgrespro/9.5/functions-sequence.html
insert into table1(ID, ...) values (NEXTVAL('table1_seq'), ...);2) Получение текущего значения генератора:
CURRVAL('table1_seq')
Подробнее: https://postgrespro.ru/docs/postgrespro/9.5/functions-sequence.html
среда, 28 сентября 2016 г.
PostgreSQL. Начало.
• Видеозапись курсов DBA1: https://www.youtube.com/playlist?list=PLaFqU3KCWw6KzGwUubZm-9-vKsi6vh5qC
• Видеозапись курсов DBA2: https://www.youtube.com/playlist?list=PLaFqU3KCWw6JgufXBiW4dEB2-tDpmOXPH
• Дополнительные ресурсы:
o ftp://ftp.bftcom.com/BFT2/!azk_update/!soft/PostgreSQL;
o https://postgrespro.ru/education/courses.
Расположение (предполагаемое) БД по-умолчанию в Windows
c:\Program Files\PostgresPro\9.5\data\base\
• Видеозапись курсов DBA2: https://www.youtube.com/playlist?list=PLaFqU3KCWw6JgufXBiW4dEB2-tDpmOXPH
• Дополнительные ресурсы:
o ftp://ftp.bftcom.com/BFT2/!azk_update/!soft/PostgreSQL;
o https://postgrespro.ru/education/courses.
Расположение (предполагаемое) БД по-умолчанию в Windows
c:\Program Files\PostgresPro\9.5\data\base\
Подписаться на:
Сообщения (Atom)
Архив
-
►
2019
(44)
- декабря (2)
- октября (6)
- сентября (9)
- августа (1)
- июля (1)
- июня (2)
- мая (2)
- апреля (2)
- марта (2)
- февраля (9)
- января (8)
-
►
2018
(54)
- декабря (4)
- ноября (3)
- октября (6)
- сентября (4)
- августа (2)
- июля (2)
- мая (3)
- апреля (4)
- марта (11)
- февраля (6)
- января (9)
-
►
2017
(55)
- декабря (4)
- ноября (14)
- октября (1)
- сентября (3)
- августа (10)
- июля (2)
- июня (5)
- мая (2)
- апреля (3)
- марта (4)
- февраля (4)
- января (3)
-
►
2016
(111)
- декабря (12)
- ноября (4)
- октября (14)
- сентября (7)
- августа (7)
- июля (14)
- июня (12)
- мая (8)
- апреля (5)
- марта (16)
- февраля (10)
- января (2)
-
►
2015
(96)
- декабря (2)
- ноября (4)
- октября (3)
- сентября (6)
- августа (2)
- июля (2)
- июня (2)
- мая (11)
- апреля (14)
- марта (24)
- февраля (21)
- января (5)
-
►
2014
(72)
- декабря (18)
- ноября (16)
- октября (2)
- сентября (7)
- августа (4)
- июля (1)
- июня (4)
- мая (5)
- апреля (3)
- марта (3)
- февраля (6)
- января (3)
-
►
2013
(33)
- декабря (3)
- ноября (2)
- октября (3)
- сентября (2)
- августа (1)
- июля (1)
- июня (2)
- мая (5)
- апреля (2)
- марта (2)
- февраля (1)
- января (9)
-
►
2012
(181)
- ноября (6)
- октября (11)
- сентября (6)
- августа (5)
- июля (6)
- июня (25)
- мая (24)
- апреля (14)
- марта (20)
- февраля (38)
- января (26)