powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Дата создания БД или уникальный идентификатор
12 сообщений из 12, страница 1 из 1
Дата создания БД или уникальный идентификатор
    #38906542
svd85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть много баз данных, все связываются с центральной, чтоб не запутаться в них даже в случае восстановления из бекапов
...
Рейтинг: 0 / 0
Дата создания БД или уникальный идентификатор
    #38906596
rovan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я, скорее всего, вопрос не понял, но попробуй это
Код: plsql
1.
select oid, * from pg_database
...
Рейтинг: 0 / 0
Дата создания БД или уникальный идентификатор
    #38906605
svd85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rovan,

когда у клиента разворачиваешь базу с нуля, у почти всех oid будет 16385 +- 1
...
Рейтинг: 0 / 0
Дата создания БД или уникальный идентификатор
    #38906616
svd85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хотелось бы уникальный идентификатор кластера, который создается случайно в момент установки(например время установки), тогда его можно было бы использовать в паре с OID базы данных.

У меня просто так получается, сделал бэкап бд у клиента, принес куда ни будь, развернул, а он возьми и подключись к центру...
...
Рейтинг: 0 / 0
Дата создания БД или уникальный идентификатор
    #38906690
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svd85,

Во всей литературе по дизайну реляционной модели говориться "никогда не привязывайтесь к особенностям физической реализации СУБД". Если вам нужен идентификатор, то генерируйте и храните его самостоятельно.
...
Рейтинг: 0 / 0
Дата создания БД или уникальный идентификатор
    #38906785
fte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svd85хотелось бы уникальный идентификатор кластера, который создается случайно в момент установки(например время установки), тогда его можно было бы использовать в паре с OID базы данных.

У меня просто так получается, сделал бэкап бд у клиента, принес куда ни будь, развернул, а он возьми и подключись к центру...

Можно использовать uuid
...
Рейтинг: 0 / 0
Дата создания БД или уникальный идентификатор
    #38906842
Ы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ы
Гость
svd85хотелось бы уникальный идентификатор кластера, который создается случайно в момент установки(например время установки), тогда его можно было бы использовать в паре с OID базы данных.
Что и в какой момент должен идентифицировать ваш идентификатор?

svd85У меня просто так получается, сделал бэкап бд у клиента, принес куда ни будь, развернул, а он возьми и подключись к центру...
Я правильно понимаю, что развернутая из бэкапа база должна получить отличный от оригинала идентификатор?
...
Рейтинг: 0 / 0
Дата создания БД или уникальный идентификатор
    #38906933
Лопата
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ыsvd85хотелось бы уникальный идентификатор кластера, который создается случайно в момент установки(например время установки), тогда его можно было бы использовать в паре с OID базы данных.
Что и в какой момент должен идентифицировать ваш идентификатор?

svd85У меня просто так получается, сделал бэкап бд у клиента, принес куда ни будь, развернул, а он возьми и подключись к центру...
Я правильно понимаю, что развернутая из бэкапа база должна получить отличный от оригинала идентификатор?наверное в бекапе должна лежать непроинициализированнная БД -- тогда концы сойдутся -- развернутая из бекапа БД, к которой было совершено [инициализирующее] обращение -- далее по тексту.

гарантий тут не будет никаких, но гарантия сверхмалой вероятности может дать генерация гуид при первом обращении инициирующей процедурки.
(есть вроде набор утилит в виде http://www.postgresql.org/docs/9.4/static/uuid-ossp.html )

вариант реализации -- любое обращение читает из некоторой таблички запись констант, а если ее (записи) нет -- создает с опорой на сгенерированный гуид (и вешает блокирующий триггер на все события записи и таблицы). работает, если в бекапе этой записи гарантированно не будет. если кто-то обратится к бд--шаблону по пользовательским интерфейсам -- то проинициализирует её -- и придётся чистить перед бекапированием "шаблона"


а чтобы не подключаться куда не надо, если такой забывачивый, -- надо все обращения завернуть в WHERE client_inet_addr() blahblahblah UND server_inet_addr() blahblahblah , ну и усложнить жизнь жесткими ограничениями listen_addresses [postgres.conf]и hosts in pg_hba.conf

но дешевле -- не забывать
...
Рейтинг: 0 / 0
Дата создания БД или уникальный идентификатор
    #38907737
svd85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЫЧто и в какой момент должен идентифицировать ваш идентификатор?

идентифицировать надо конкретный экземпляр базы данных, чтобы центр мог определить случайные и посторонние копии

ЫЯ правильно понимаю, что развернутая из бэкапа база должна получить отличный от оригинала идентификатор?

правильно

лопатанаверное в бекапе должна лежать непроинициализированнная БД -- тогда концы сойдутся -- развернутая из бекапа БД, к которой было совершено [инициализирующее] обращение -- далее по тексту.

гарантий тут не будет никаких, но гарантия сверхмалой вероятности может дать генерация гуид при первом обращении инициирующей процедурки.
(есть вроде набор утилит в виде http://www.postgresql.org/docs/9.4/static/uuid-ossp.html )

вариант реализации -- любое обращение читает из некоторой таблички запись констант, а если ее (записи) нет -- создает с опорой на сгенерированный гуид (и вешает блокирующий триггер на все события записи и таблицы). работает, если в бекапе этой записи гарантированно не будет. если кто-то обратится к бд--шаблону по пользовательским интерфейсам -- то проинициализирует её -- и придётся чистить перед бекапированием "шаблона"


такой гуид есть, а ели его нет то при первом обращении создается, но и в бекап он тоже попадает, на этом как раз я и прокололся, и решил заморочится

лопатаа чтобы не подключаться куда не надо, если такой забывачивый, -- надо все обращения завернуть в WHERE client_inet_addr() blahblahblah UND server_inet_addr() blahblahblah , ну и усложнить жизнь жесткими ограничениями listen_addresses [postgres.conf]и hosts in pg_hba.conf


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

лопатано дешевле -- не забывать


цена ошибки очень велика, минимум день реставрации БД
...
Рейтинг: 0 / 0
Дата создания БД или уникальный идентификатор
    #38907739
svd85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
надеялся что есть что ни будь штатное
...
Рейтинг: 0 / 0
Дата создания БД или уникальный идентификатор
    #38907741
svd85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
svd85надеялся что есть что ни будь штатное

как в оракле http://www.sql.ru/forum/49760/data-sozdaniya-bazy-dannyh

наверное попробую что то типа
http://www.sql.ru/forum/1003712/kak-uznat-vremya-modifikacii-bd

или придется сделать привязку к железу
...
Рейтинг: 0 / 0
Дата создания БД или уникальный идентификатор
    #38908325
Лопата
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svd85<>

такой гуид есть, а ели его нет то при первом обращении создается, но и в бекап он тоже попадает, на этом как раз я и прокололся, и решил заморочится
<>

как там в поговорке ? "если далпайоп -- далпайоп, то это надолго, а если далпайоп -- дятел -- это навсегда" ?
шутка

задача октуальна, бо самому что-то надо придумывать, и от стрельбы холостыми в собственный эээ нос хотелось бы что-то придумать.

думаю, перед бекапированием таки процедурку подготовки написать -- никто не мешает. забыл запустить -- ССЗБ.

но важно в табличке с гуидом прописать константы окружения, если не тот же адрес сервера, то написать перловую функцию, читающую дату создания каталога кластера, класть в табличку-- если сменилась -- останавливать работу - запрашивать подтверждения админа. пёрл (plperlu) вам в помощь.

не совсем вкурил -- разворачиваетесь из pg_dump/pg_restore, или из именно бэкапа инстанса. (если первое -- можно финтить дополнительно).
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Дата создания БД или уникальный идентификатор
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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