Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Разные базы или одна база с файловыми группами ???  [new]
Алексей Кр
Member

Откуда: Белгород
Сообщений: 458
Поясните пожалуйста отличие в следующем.
Например, требуется 2 базы данных, первая собственно с данными, вторая база с историческими данными (либо база данных с журналированием, логированием...)

Делать 2 базы, или можно все реализовывать внутри одной базы данных посредством файловых групп???

В чем отличие файловой группы и собственно отдельной бд ???
25 окт 11, 11:13    [11493604]     Ответить | Цитировать Сообщить модератору
 Re: Разные базы или одна база с файловыми группами ???  [new]
aleks2
Guest
Отдельная БД - она отдельная.
А файловые группы - тока вместе.

PS. Ну есть и ишо отличия.
25 окт 11, 11:26    [11493710]     Ответить | Цитировать Сообщить модератору
 Re: Разные базы или одна база с файловыми группами ???  [new]
UV
Member

Откуда: EU
Сообщений: 36
Лучше 1 БД.
25 окт 11, 11:29    [11493742]     Ответить | Цитировать Сообщить модератору
 Re: Разные базы или одна база с файловыми группами ???  [new]
Алексей Кр
Member

Откуда: Белгород
Сообщений: 458
и что посоветуете ?

Разнести данные и логику по разным файловым группам (соответственно и по разным дискам можно разнести), но в целом всё оставить в одной бд???

или все же лучше поделить по разным базам данных ?

как будет оптимальнее???
25 окт 11, 11:32    [11493777]     Ответить | Цитировать Сообщить модератору
 Re: Разные базы или одна база с файловыми группами ???  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31959
Алексей Кр
и что посоветуете ?

Разнести данные и логику по разным файловым группам (соответственно и по разным дискам можно разнести), но в целом всё оставить в одной бд???

или все же лучше поделить по разным базам данных ?

как будет оптимальнее???
Решения проектируют исходя из задач.

А то устроить голосование "какую машину выбрать"... И вот стоит у рынка спорткар с картонкой "доставка стройматериалов :-)"
25 окт 11, 11:36    [11493818]     Ответить | Цитировать Сообщить модератору
 Re: Разные базы или одна база с файловыми группами ???  [new]
Алексей Кр
Member

Откуда: Белгород
Сообщений: 458
Тогда попробую по другому задать вопрос.

В чем плюс отдельной БД в отличие от файловой группы в существующей БД ?
25 окт 11, 11:40    [11493859]     Ответить | Цитировать Сообщить модератору
 Re: Разные базы или одна база с файловыми группами ???  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31959
Алексей Кр
Тогда попробую по другому задать вопрос.

В чем плюс отдельной БД в отличие от файловой группы в существующей БД ?
Плюс в возможности реализации требований из ТЗ :-)

Например, можно перенести бакап на дев-сервер не для всех данных, а только для части.
Скажем, если у вас хранилище на 100 терабайт, можно выделить 100 терабайт фактов в отдельную базу, и переносить на сервер разработчиков только маленькую базу с логикой и агрегатами.
25 окт 11, 11:43    [11493913]     Ответить | Цитировать Сообщить модератору
 Re: Разные базы или одна база с файловыми группами ???  [new]
Алексей Кр
Member

Откуда: Белгород
Сообщений: 458
т.е. отдельно файловую группу уже нельзя будет перенести?

это основное отличие? отличие по переносу...?
25 окт 11, 12:09    [11494222]     Ответить | Цитировать Сообщить модератору
 Re: Разные базы или одна база с файловыми группами ???  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Алексей Кр
т.е. отдельно файловую группу уже нельзя будет перенести?
Можно, но нельзя будет обращаться к данным лежащих в не-перенесённых файлах.
Структура всёй БД хранится полностью в PRIMARY, и может вообще не содержать пользовательских данных.

Вопрос по той же теме:
Можно ли имея только PRIMARY файл "открыть/создать" базу но без данных?:
В FAQ-е: Присоединение файла .mdf без файла .ldf (Glory)

Меж-базовых FK (связей) не бывает. Если данные связываются до пихай в одну, если конечно нет явных требований независимости. Иначе (нет связей и не предвидеться) - нафиг.

Исторические данные (особенно используя механизм партиций) можно пихать в отдельные файловые группы (в отдельные таблицы) и потом откусывать от самой БД (и прикусывать обратно если надо).

Мы используем механизм множественных файлов и множественными схемами.
25 окт 11, 21:08    [11498941]     Ответить | Цитировать Сообщить модератору
 Re: Разные базы или одна база с файловыми группами ???  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31959
Mnior
Можно, но нельзя будет обращаться к данным лежащих в не-перенесённых файлах.
А как это сделать? У меня не получалось...
25 окт 11, 21:15    [11498968]     Ответить | Цитировать Сообщить модератору
 Re: Разные базы или одна база с файловыми группами ???  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
alexeyvg
А как это сделать? У меня не получалось...
У вас???
RESTORE DATABASE [NewDB]
	FILEGROUP = N'PRIMARY'
	FROM DISK = N'Z:\Backup\MyDB.bak'
WITH	  PARTIAL
--	, NORECOVERY
	, RECOVERY
	, MOVE N'MyDB'		TO N'Z:\Data\NewDB.mdf'
	, MOVE N'MyDB_log'	TO N'Z:\Data\NewDB.ldf'
	, MOVE N'MyDB_FG1'	TO N'Z:\Data\NewDB_FG1.ndf'
-- ...
	, MOVE N'MyDB_FGN'	TO N'Z:\Data\NewDB_FGN.ndf'
GO
Ну и если актуальные из логов то:
RESTORE LOG [NewDB]
	FROM DISK = N'Z:\Backup\MyDB_Log.bak'
WITH	  RECOVERY
Для всех остальных должно быть NORECOVERY.
26 окт 11, 18:23    [11505066]     Ответить | Цитировать Сообщить модератору
 Re: Разные базы или одна база с файловыми группами ???  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Mnior
RESTORE DATABASE [NewDB]
	FILEGROUP = N'PRIMARY'
	FROM DISK = N'Z:\Backup\MyDB.bak'
WITH	  PARTIAL
--	, NORECOVERY
	, RECOVERY
	, MOVE N'MyDB'		TO N'Z:\Data\NewDB.mdf'
	, MOVE N'MyDB_log'	TO N'Z:\Data\NewDB.ldf'
	, MOVE N'MyDB_FG1'	TO N'Z:\Data\NewDB_FG1.ndf'
-- ...
	, MOVE N'MyDB_FGN'	TO N'Z:\Data\NewDB_FGN.ndf'
Указывать пути/названия для невосстанавливаемых файлов необязательно.
26 окт 11, 18:40    [11505154]     Ответить | Цитировать Сообщить модератору
 Re: Разные базы или одна база с файловыми группами ???  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31959
Mnior
alexeyvg
А как это сделать? У меня не получалось...
У вас???
Да, действительно :-(

Как то давно пытался, но не получалось, видимо, это было до 2005-го...

Правда, для типичной задачи, когда это требуется (перенести небольшую часть базы, подсунув устаревшую и давно перенесённую часть, которая большая), такой способ, как я понял, не подходит.
26 окт 11, 22:43    [11506016]     Ответить | Цитировать Сообщить модератору
 Re: Разные базы или одна база с файловыми группами ???  [new]
aleks2
Guest
alexeyvg
Mnior
пропущено...
У вас???
Да, действительно :-(

Как то давно пытался, но не получалось, видимо, это было до 2005-го...



Ты не расстраивайся. Этот фокус (частичное восстановление) возможен только для READONLY файлогрупп.
27 окт 11, 07:37    [11506408]     Ответить | Цитировать Сообщить модератору
 Re: Разные базы или одна база с файловыми группами ???  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
alexeyvg
Как то давно пытался, но не получалось, видимо, это было до 2005-го...
Да вроде как и на 2000-м работает. Синтаксиси разве что может другой. Но проверить не могу, старья радом нет.
Просто частичное востановлении давно было задуманно.

alexeyvg
Правда, для типичной задачи, когда это требуется (перенести небольшую часть базы, подсунув устаревшую и давно перенесённую часть, которая большая), такой способ, как я понял, не подходит.
Если я вас правильно понял, то вообщето проходит, я даже поэтому статью Glory выложил. Где-то указываешь что-то типа IgnoreError и тому подобное, главное чтобы чек прокатил - лень опять копаться и искать скрипты.
Но лучше конечно нормально - старые/архивные файловые группы заREADONLYить.

Но если вы имели ввиду подсунуть совсем левый файл с несходящимися данными, то естественно не прокатит (либо чудовищное количесво мороки).

Мы как раз пользовались (редко) частичным востановлением только нужных ФГ. Экономим место. Для всего осталного есть снапы.

Меня другое интересует, можно ли одновременно заюзать один READONLY файл для нескольких баз/инстансов? Опять таки сэкономить на спейсе. Это касается многих вопросов, включая тестирование.

aleks2
Этот фокус (частичное восстановление) возможен только для READONLY файлогрупп.
Что за х...
Скорее я вас плохо понял / или вы не так выразились.
27 окт 11, 11:14    [11507307]     Ответить | Цитировать Сообщить модератору
 Re: Разные базы или одна база с файловыми группами ???  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31959
Mnior
Если я вас правильно понял, то вообщето проходит, я даже поэтому статью Glory выложил
Я увидел только ссылку на "Присоединение файла .mdf без файла .ldf" Но это про лог-файл, при чём тут файловые группы?
Mnior
Но если вы имели ввиду подсунуть совсем левый файл с несходящимися данными, то естественно не прокатит (либо чудовищное количесво мороки).
Естественно - левый и с несходящимеся.

Иначе какой в этом смысл?

Про READONLY файлгруппы я знаю, но это предназначено для восстановления той же базы - Просто логичное решение не делать много раз бакап одного и того же.
Mnior
Мы как раз пользовались (редко) частичным востановлением только нужных ФГ. Экономим место. Для всего осталного есть снапы.
Вот есть такая задача - продакшен сервер с хранилищем, состоит из одной таблицыбольшого размера и всего остального.

Хочется иметь на не-продакшен серверах точную копию базы, но копировать всё сложно - размер большой.

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

Как вариант той же задачи - разная периодичность переноса бакапов на сервер разработчиков - большие таблицы раз в месяц, средние раз в неделю, остальное раз в день.

По повобу восстановления с PARTIAL я посомотрю, но думаю, что подсунуть там ничего нельзя, просто остаться без части объектов. Это не то, что нужно...
27 окт 11, 16:11    [11510348]     Ответить | Цитировать Сообщить модератору
 Re: Разные базы или одна база с файловыми группами ???  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
alexeyvg

Способ Glory я указал как раз для "восстановления" не из бэкапов, а файлов данных, а это другое направление/возможности.
Неконсистентные файлы подсовывать глупо - а как же ссылочные данные (FK)?! И это главное! В вашем случае акцентируется внимание на части данных в ущерб целосности, а у PARTIAL целостность в ущерб независимости.
У нас зависимость данных очень большая.

Скажем так - я не так интерпретировал эти два последующих сообщения: 11493913 (последнее предложение) и 11494222.
Вы акцентируете на переносе, а я воспринял как частичное развёртывание/хранение.

Ваш случай для рассмотрения:
1. Нужна вся система в целом (не важно одна база или несколько)
2. Нужно её полностью периодически актуализировать.
Вы предлагаете резать вдоль (по базам), а потом поперёк (логи/дифы) каждой части, вместо просто поперёк всей.
Т.е. в целом объём вроде тот же, но зато в вашем варианте неравномерная нагрузка переноса и неконсистентные данные.
Но зато можно быстро (и следовательно часто) поднимать с нуля определённые маленькие данные (и возможно по многим сущностям). Т.е.:
3. Нужно очень часто актуализировать много мелких сущностей при гигантской БД и с целостностью можно не считаться.

Хорошо.
1. А для данной задачи репликацию разве тяжело поднять/поддерживать? Ибо здесь я тоже профан.
Вроде как поднималось много топиков в этом ракурсе.
2. А можно ли делать ROLLBACK (тестового мусора) базы до состояния предыдущего бэкапа, а потом до-накатить очередной лог/дифф?
Ведь весь сыр бор (как я понял) только из-за времени восстановления из бэкапа (ну м.б. ещё его хранения).
29 окт 11, 01:26    [11520043]     Ответить | Цитировать Сообщить модератору
 Re: Разные базы или одна база с файловыми группами ???  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Mnior
Меня другое интересует, можно ли одновременно заюзать один READONLY файл для нескольких баз/инстансов? Опять таки сэкономить на спейсе. Это касается многих вопросов, включая тестирование.
Вроде работает нормально:
1. Создание базы из бэкапа (с READONLY файловыми группами)
2. Детач
3. Копирование всех READ_WRITE файлов для новых баз
Опционально?: установка свойства ReadOnly на READONLY файлы.
4. Опционально: если нужно поднять вторичные БД на том же инстансе: mklink на READONLY файлы
5. Атач для всех созданных баз
А) На разных инстансах: указаение одних и техже READONLY файлов
Б) На одном инстансе: указаение на хардлинкнутые файлы
6. Накат частичных (READ_WRITE) бэкапов для любой из баз или всех

Полноценно не тестил, может где и аукнется в хитрой обстановке. Видимо таблица файлов всех БД с уникальным индексом, поэтому на одном и томже сервере нельзя указать однин файл для разных БД, поэтому и хардлинки.
3 ноя 11, 12:28    [11545372]     Ответить | Цитировать Сообщить модератору
 Re: Разные базы или одна база с файловыми группами ???  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31959
Mnior
Т.е.:
3. Нужно очень часто актуализировать много мелких сущностей при гигантской БД и с целостностью можно не считаться.
Ну да, задача такая.


Mnior
1. А для данной задачи репликацию разве тяжело поднять/поддерживать? Ибо здесь я тоже профан.
Вроде как поднималось много топиков в этом ракурсе.
Во первых, канал медленный. Вплоть до того, что мы пересылали данные почтой.

Во вторых, бакапом просто перенести какой срез системы (выделенный в одну БД) целиком
Mnior
2. А можно ли делать ROLLBACK (тестового мусора) базы до состояния предыдущего бэкапа, а потом до-накатить очередной лог/дифф?
Вроде так нельзя.

Ну и потом это предполагает, что у нас на какой то момент времени будет в тестовой базе полный набор данных из рабочей базы. А это невозможно, просто дисков много надо.
3 ноя 11, 14:17    [11546317]     Ответить | Цитировать Сообщить модератору
 Re: Разные базы или одна база с файловыми группами ???  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31959
Mnior
Ведь весь сыр бор (как я понял) только из-за времени восстановления из бэкапа (ну м.б. ещё его хранения).
В первую очередь из за хранения, ну и из за времени восстановления тоже.
3 ноя 11, 14:18    [11546321]     Ответить | Цитировать Сообщить модератору
 Re: Разные базы или одна база с файловыми группами ???  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31959
alexeyvg
Во вторых, бакапом просто перенести какой срез системы (выделенный в одну БД) целиком
Я имею в виду, что переносятся роли, юзеры, новые схемы с появившимися таблицами, процедуры, схемы секционирования, новые файловые группы, в общем, всё. Репликацией большинство из этого тоже можно перенести, но не всё. Ну и управлять сложнее.
3 ноя 11, 14:20    [11546338]     Ответить | Цитировать Сообщить модератору
 Re: Разные базы или одна база с файловыми группами ???  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
alexeyvg
Mnior
2. А можно ли делать ROLLBACK (тестового мусора) базы до состояния предыдущего бэкапа, а потом до-накатить очередной лог/дифф?
Вроде так нельзя.

Ну и потом это предполагает, что у нас на какой то момент времени будет в тестовой базе полный набор данных из рабочей базы. А это невозможно, просто дисков много надо.
Да ошибка такого рода:
Msg 3117, Level 16, State 1, Line 1
The log or differential backup cannot be restored because no files are ready to rollforward.
Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.

Если нельзя то думаю стоит умолять MS, ибо вещь очень нужная. Хотя может уже просят, надо пройтись по Connect-у.
3 ноя 11, 16:49    [11547548]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить