powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Сделать выборку на огромном количестве серверов
10 сообщений из 35, страница 2 из 2
Сделать выборку на огромном количестве серверов
    #40123585
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ролг Хупин
Maxim Boguk
пропущено...


А это уже только на Сях писать если вам асинхронная работа с установкой соединений нужна.
libpq асинхронные функции вам в руки.


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru



Только "на Сях"?

Т.е. c#+Npgsql нельзя использовать?


С# - это MS. Считаю что на серверах продуктам MS не место (
...
Рейтинг: 0 / 0
Сделать выборку на огромном количестве серверов
    #40123586
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vadim Lejnin
Уткъ

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

Пожетому подключаюсь к серверу в одной подсети и запуска там все что связано в этой подсетью (100500/5) потом к другому и так несколько раз.



ответ студента на экзамене по автоматизации...
ЦАП-АЦП-ЦАП-АЦП-ЦАП-ЦАП-АЦП
...


Решал практически аналогичную задачу (только не с таким количеством серверов):

Есть PROD контур с текущей версией системы, + изолированный MIRROR контур, точная копия (включая IP) для отладки процедуры миграции. Доступ на mirror через терминальный сервер, + рабочий комп, который имеет доступ как к PROD, так и к терминальному серверу. ProxyJump может быть не один

1) набор ssh private/public keys

2) .ssh/config на рабочем компе (p - prod prefix, m - mirror prefix)
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
...
Host psrv8
 HostName 192.145.33.108
 User userdb33
 IdentityFile ~/.ssh/srv8

Host msrv8
 HostName 192.145.33.108
 User userdb33
 ProxyJump work2@term1
 IdentityFile ~/.ssh/srv8
...



3) набор скриптов для мониторинга/обслуживания/синхронизации конфигурации с prod на mirror
как базы так и системы.

Если нужна параллельность, то проблем нет, список/запрос с параметрами подается на xargs:
Код: sql
1.
2.
3.
4.
5.
6.
7.
...
# параллельная переиндексация для fix bug после pg_upgrade 
(
time psql $DB -t -A -c  "select ...... from pg_class where relname like 'pg_toast%' and ....;"|\
xargs -n 1 -P $PARALLEL_COUNT -I {} $T psql $DB -c "reindex table pg_toast.{};"
) 
...



Для win среды, написал бы что-то аналогичное для PowerShell


Благодарю за пример.

Часть серверов, к сожалению на винде...
...
Рейтинг: 0 / 0
Сделать выборку на огромном количестве серверов
    #40123588
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk

Я не очень знаю что там с реализацией асинхронного соединения с базой и асинхронной работы с запросами.
Как оно на libpq делается знаю.



Максим, очень интересно как это сделать, поделитесь пожалуйста.
...
Рейтинг: 0 / 0
Сделать выборку на огромном количестве серверов
    #40123590
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уткъ
Ролг Хупин
пропущено...



Только "на Сях"?

Т.е. c#+Npgsql нельзя использовать?


С# - это MS. Считаю что на серверах продуктам MS не место (



О, вы рискуете отстать от времени и от технологий.

Вам надо задачу решить или "считать", что на каких-то серверах продуктам MS не место?
Мир изменился, MS встроила в Windows WSL2. Вы в курсе?
...
Рейтинг: 0 / 0
Сделать выборку на огромном количестве серверов
    #40123592
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ролг Хупин
Уткъ
пропущено...


С# - это MS. Считаю что на серверах продуктам MS не место (



О, вы рискуете отстать от времени и от технологий.

Вам надо задачу решить или "считать", что на каких-то серверах продуктам MS не место?
Мир изменился, MS встроила в Windows WSL2. Вы в курсе?


MS поняла что они никому нафиг не нужны и прогибается как может, и sql server под линукс выпустили.

Но сути MS это не меняет, их цель выкачивание бабла любыми способами, не смотря на весьма плохое качество ПО.

По этой причине продуктам на серверах не место.
...
Рейтинг: 0 / 0
Сделать выборку на огромном количестве серверов
    #40123594
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уткъ
Ролг Хупин
пропущено...



О, вы рискуете отстать от времени и от технологий.

Вам надо задачу решить или "считать", что на каких-то серверах продуктам MS не место?
Мир изменился, MS встроила в Windows WSL2. Вы в курсе?


MS поняла что они никому нафиг не нужны и прогибается как может, и sql server под линукс выпустили.

Но сути MS это не меняет, их цель выкачивание бабла любыми способами, не смотря на весьма плохое качество ПО.

По этой причине продуктам на серверах не место.
...
Рейтинг: 0 / 0
Сделать выборку на огромном количестве серверов
    #40123597
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уткъ
Ролг Хупин
пропущено...



О, вы рискуете отстать от времени и от технологий.

Вам надо задачу решить или "считать", что на каких-то серверах продуктам MS не место?
Мир изменился, MS встроила в Windows WSL2. Вы в курсе?


MS поняла что они никому нафиг не нужны и прогибается как может, и sql server под линукс выпустили.

Но сути MS это не меняет, их цель выкачивание бабла любыми способами, не смотря на весьма плохое качество ПО.

По этой причине продуктам на серверах не место.


Вот это душевно "MS поняла что они никому нафиг не нужны"
Кому "никому"?

Если не трудно расшифруйте эту глубокую мысль
"По этой причине продуктам на серверах не место"?

Каким "продуктам" и на каких "серверах"? Да, и кто определил, что мол "не место"?

Большое человеческое спасибо наперёд
...
Рейтинг: 0 / 0
Сделать выборку на огромном количестве серверов
    #40123622
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уткъ
Maxim Boguk

Я не очень знаю что там с реализацией асинхронного соединения с базой и асинхронной работы с запросами.
Как оно на libpq делается знаю.



Максим, очень интересно как это сделать, поделитесь пожалуйста.


Всё есть в документации.
https://www.postgresql.org/docs/14/libpq-connect.html

PQconnectStartParams
PQconnectStart
PQconnectPoll

Make a connection to the database server in a nonblocking manner.
и далее по тексту.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Сделать выборку на огромном количестве серверов
    #40123648
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk
Уткъ
пропущено...



Максим, очень интересно как это сделать, поделитесь пожалуйста.


Всё есть в документации.
https://www.postgresql.org/docs/14/libpq-connect.html

PQconnectStartParams
PQconnectStart
PQconnectPoll

Make a connection to the database server in a nonblocking manner.
и далее по тексту.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru


+ c# npgsql
Код: c#
1.
2.
3.
4.
5.
 var connectionString = $"Server=localhost;Port=5432;Database={databaseName};User Id=postgres;Password=pwd;";

            using (var connection = new NpgsqlConnection(connectionString))
            {
                await connection.OpenAsync();
...
Рейтинг: 0 / 0
Сделать выборку на огромном количестве серверов
    #40123684
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уткъ

...
Для win среды, написал бы что-то аналогичное для PowerShell



Благодарю за пример.

Часть серверов, к сожалению на винде...

[/quot]

Я бы выделил следующие моменты которые нужно решить:

1) параллельность
2) proxy/jump соединения
3) authority
4) cross platform executing
5) избежать установки дополнительного ПО на сервера


os side solution:
1) powershell умеет параллелить команды
2) powershell умеет работать через proxy session
3) настройка не требует перезапуска postgres, но может быть гемор если нет общего дерева/домена см комментарий ниже
4) ssh/unix - решение уже приводил + powershell есть для linux
5) powershell можно установить настроить только на рабочей workstation, остальные сервера не требуют установки доп ПО

здесь грабли которые вижу - сквозная авторизация для powershell через подсетки/домены, если конечно уже нет единой системы

Выбор shell, решает флаг в списке серверов
правда придется скрипты писать придется в двух версиях
все остальное более/менее штатно
Я бы пошел по этому пути.

Если выбрать в качестве решения postgresql side solution:

1) параллельность - (job)
2) proxy/jump соединения - требует extension, хотя ЯТД количество подсеток все же меньше чем кол-во серверов, можно и заморочится
3) authority, тут могут быть засады, гемора немало
4) cross platform executing, без особых проблем
5) избежать установки дополнительного ПО на сервера
proxy/jump соединения - требует extension, но только на proxy машины
...
Рейтинг: 0 / 0
10 сообщений из 35, страница 2 из 2
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Сделать выборку на огромном количестве серверов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]