powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Первичный и внешний ключ в разных базах данных
25 сообщений из 44, страница 1 из 2
Первичный и внешний ключ в разных базах данных
    #39526063
kudatsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно, что бы таблица с первичным ключом
находилась в одной БД, а таблица с внешним
ключом - в другой. И что бы обеспечивалась
ссылочная целостность.
...
Рейтинг: 0 / 0
Первичный и внешний ключ в разных базах данных
    #39526074
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изучай http://firebirdsql.su/doku.php?id=execute_statement, конкретно ON EXTERNAL DATA SOURCE.
В принципе задача решаемая, но зачем непонятно.
...
Рейтинг: 0 / 0
Первичный и внешний ключ в разных базах данных
    #39526079
kudatsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Gallemar
Спасибо !
Зачем это ?
Основная БД имеет размер 1.5 Гб, с ней интенсивно
работают и каждую ночь делается бэкап. Сейчас
готовится справочная информация и она займёт до
100 Гб. Меняться она будет раз в несколько лет.
Если её поместить в основную БД то бэкапы быстро
забьют сервер. Поэтому рассматриваются разные
варианты размещения в отдельном файле.
...
Рейтинг: 0 / 0
Первичный и внешний ключ в разных базах данных
    #39526082
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kudatskyНужно, что бы таблица с первичным ключом
находилась в одной БД, а таблица с внешним
ключом - в другой. И что бы обеспечивалась
ссылочная целостность.

копию мастер-таблицы во все БД
...
Рейтинг: 0 / 0
Первичный и внешний ключ в разных базах данных
    #39526106
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kudatskyПоэтому рассматриваются разные варианты размещения в отдельном файле.
Тут нет ответа "зачем нужны внешние ключи в другой бд".
...
Рейтинг: 0 / 0
Первичный и внешний ключ в разных базах данных
    #39526111
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GallemarВ принципе задача решаемая, но зачем непонятно.

не решаемая. Не обеспечишь ты контроль целостности никакими триггерами так как это делают FK
...
Рейтинг: 0 / 0
Первичный и внешний ключ в разных базах данных
    #39526118
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисGallemarВ принципе задача решаемая, но зачем непонятно.

не решаемая. Не обеспечишь ты контроль целостности никакими триггерами так как это делают FK
Думаешь? Надо попробовать сделать. Вообще главной проблемой вижу реализацию каскадности.
...
Рейтинг: 0 / 0
Первичный и внешний ключ в разных базах данных
    #39526119
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

для начала придумай как это в одной БД триггерами сделать. А потом про разные подумаешь. Уверен что обломишься ещё на первом этапе
...
Рейтинг: 0 / 0
Первичный и внешний ключ в разных базах данных
    #39526120
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kudatskyОсновная БД имеет размер 1.5 Гб, с ней интенсивно
работают и каждую ночь делается бэкап. Сейчас
готовится справочная информация и она займёт до
100 Гб. Меняться она будет раз в несколько лет.
Если её поместить в основную БД то бэкапы быстро
забьют сервер. Поэтому рассматриваются разные
варианты размещения в отдельном файле.

Проблему именно бэкапов такой единой базы можно частично решить применением nbackup.
Первый бэкап будет размером с саму БД, но последующие инкременты уже не будут включать в себя неизменяемые данные.
Начиная с FB3, насколько я в курсе, существенно ускорился nbackup т.к. он читает только те страницы которые были изменены.
На FB2.5 такой оптимизации не было и для инкрементного бэкапа приходилось читать все страницы.
...
Рейтинг: 0 / 0
Первичный и внешний ключ в разных базах данных
    #39526135
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисдля начала придумай как это в одной БД триггерами сделать.Да не ходи вокруг да около, сразу проблему обозначь.
А то ведь сейчас проверит в своей тестовой базе, и даже не подумает, что это только монопольно работает.
...
Рейтинг: 0 / 0
Первичный и внешний ключ в разных базах данных
    #39526184
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kudatsky,

проблема со справочниками известная. В текущий момент целостность между двумя БД не решается никак. Для этого можно было бы использовать tablespace, но этого в ФБ пока нет. Частичный бэкап есть, но он не официальный, и будет геморрой при восстановлении БД из бэкапа.

p.s. мне тоже не нравится, например, что у 1С 8 кладр всегда в базе. Раньше хоть отдельные файлы были, а теперь все в одном...
...
Рейтинг: 0 / 0
Первичный и внешний ключ в разных базах данных
    #39526207
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kudatsky,

1. подойдет ли вариант с исключением таблиц из бакапа?
в тройке вроде как такой ключик есть и для ранних версий есть сборки.

восстановление делать с отключенными констрейнтами, переливать в БД с уже готовой структурой и справочником.

2. таки репликация вместо бакапа
...
Рейтинг: 0 / 0
Первичный и внешний ключ в разных базах данных
    #39526211
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисНе обеспечишь ты контроль целостности никакими триггерами так как это делают FKЕсли обеспечить отсутствие удалений и изменений PK, то юзерских триггеров вполне достаточно.
Есс-но, работать это будет совсем не быстро...

PS Ссылочную целостность между таблицами разных БД не обеспечивает ни одна СУБД, на сколько мне известно.
Подумайте хотя бы о том, что разные БД имеют право быть восстановленными из бекапа независимо друг от друга -
о какой ссылочной целостности тут может идти речь ?
...
Рейтинг: 0 / 0
Первичный и внешний ключ в разных базах данных
    #39526220
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastor,

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

этот ключик есть и в финальной версии. Вот только насчёт него много ограничений. Совсем не понятно как слить два разных бекапа в одну БД: один в которой была исключена эта таблица и второй в котором она присутствует

per anus ad astrum

в три этапа

1. восстановление эталонной БД только со справочником
2. восстановление калечной БД БД без справочника и констрейнтов
3. перенос данных из калечной в эталонную

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

в принципе если полный бекап делать раз в месяц, а частичный каждый день, то может и ничего.
Но если та исключённая таблица присутствует в одной ХП/триггере, то жопа
...
Рейтинг: 0 / 0
Первичный и внешний ключ в разных базах данных
    #39526272
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kudatskyОсновная БД имеет размер 1.5 Гб, с ней интенсивно
работают и каждую ночь делается бэкап. Сейчас
готовится справочная информация и она займёт до
100 Гб. Меняться она будет раз в несколько лет.
Если её поместить в основную БД то бэкапы быстро
забьют сервер.

Во-первых, бэкап, делающийся на тот же сервер, может вообще не делаться, ибо бесполезен.
Во-вторых, пара-тройка террабайтных винтов в бэкап-сервере решит эту проблему.
В-третьих, как уже сказали, ничто не мешает поместить основную БД в справочную, которую не
бэкапить вообще.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Первичный и внешний ключ в разных базах данных
    #39526507
kudatsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возможен ещё вот какой вариант:
Доп. БД не делать. Всё разместить в одной БД.
Всё сделать в четыре прохода.
1. Backup.
2. Restore во временный FDB-файл
3. Во временном файле лишнее удалить.
4. Bacup из временного файла.
Должно работать, но как-то громоздко.
...
Рейтинг: 0 / 0
Первичный и внешний ключ в разных базах данных
    #39526568
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kudatsky3. Во временном файле лишнее удалить.
4. Bacup из временного файла.

Зачем? Неужели в самом деле экономия места на носителе с бэкапами?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Первичный и внешний ключ в разных базах данных
    #39526569
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kudatsky3. Во временном файле лишнее удалить.

....и тут у тебя foreign key с опцией cascade вслед за справочником снесут всю БД
...
Рейтинг: 0 / 0
Первичный и внешний ключ в разных базах данных
    #39526603
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kudatskyВозможен ещё вот какой вариант:
Доп. БД не делать. Всё разместить в одной БД.
Всё сделать в четыре прохода.
1. Backup.
2. Restore во временный FDB-файл
3. Во временном файле лишнее удалить.
4. Bacup из временного файла.
Должно работать, но как-то громоздко.

если цель отлична от СКОРОСТИ (читай частоты) создания бакапа/восстановления, то делать это бессмысленно

есть и другие м-е-е-дленные, но рабочие варианты
...
Рейтинг: 0 / 0
Первичный и внешний ключ в разных базах данных
    #39526665
kudatsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pastor>
Для меня это вопрос не скорости, а сохранности данных.
Сервер нормальный, ночью за час-другой упакует.
Просто, некрасиво как-то...
...
Рейтинг: 0 / 0
Первичный и внешний ключ в разных базах данных
    #39526695
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kudatskyPastor>
Для меня это вопрос не скорости, а сохранности данных.
Сервер нормальный, ночью за час-другой упакует.
Просто, некрасиво как-то...

Перенаправляй вывод gbak в gzip на том же сервере и гони результат по ftp в хранилище. Пакуется хорошо.
...
Рейтинг: 0 / 0
Первичный и внешний ключ в разных базах данных
    #39526725
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kudatskyPastor>
Для меня это вопрос не скорости, а сохранности данных.
Сервер нормальный, ночью за час-другой упакует.
Просто, некрасиво как-то...

Если укладываешься в СВОИ требования по ТЗ (с учетом N лет эксплуатации) - оставляешь как есть. Нет - доводишь до заявленных параметров



Примерно такГОСТ 34.602-89 Техническое задание на создание информационных систем

4.3.2.7. Требования к защите данных от разрушений при авариях и сбоях в электропитании системы
Информация в базе данных системы должна сохраняться при возникновении аварийных ситуаций, связанных со сбоями электропитания.
Система должна иметь бесперебойное электропитание, обеспечивающее её нормальное функционирование в течение 15 минут в случае отсутствия внешнего энергоснабжения, и 5 минут дополнительно для корректного завершения всех процессов.
Резервное копирование данных должно осуществляться на регулярной основе, в объёмах, достаточных для восстановления информации в подсистеме хранения данных.
...
Рейтинг: 0 / 0
Первичный и внешний ключ в разных базах данных
    #39526738
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый плюшевый мишка,

100 гиг паковать? да ну нафиг. nbackup здесь нужен. а обычный гбак - пару-тройку раз в месяц, и то для проверки базы данных на отсутствие дефектов.
...
Рейтинг: 0 / 0
25 сообщений из 44, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Первичный и внешний ключ в разных базах данных
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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