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

Откуда:
Сообщений: 12
Подскажите пожалуйста
как луче сделать, есть база , база объемом 500 ггб, несколько файлов

база состоит из 5 файлов

D1.MDF
D2.LDF
D3.LDF
LOG1.LDF
LOG2.LDF

Как проще эффективней и быстро собрать базу в два файла

D1.MDF <--- ( D1.MDF D2.LDF D3.LDF )
LOG.LDF <-- ( LOG1.LDF LOG2.LDF )
9 июл 12, 13:05    [12838273]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше собрать базу из несколькоих файлов  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
DBCC SHRINKFILE + EMPTY_FILE для ненужных, после чего удалить.
9 июл 12, 13:07    [12838281]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше собрать базу из несколькоих файлов  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
Хотя нет, это для данных. А у вас лог зачем-то размазан на несколько. Или не лог?
9 июл 12, 13:09    [12838292]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше собрать базу из несколькоих файлов  [new]
sqlbig
Member

Откуда:
Сообщений: 12
Гавриленко Сергей Алексеевич
Хотя нет, это для данных. А у вас лог зачем-то размазан на несколько. Или не лог?

Вся база уже лежит на одном носителе.
а лежала на 5 носителях, потому и была побита на 5 частей

Да , два лога. На разных физических массивах и у каждого массива свой контроллер.
LOG.LDF <-- ( LOG1.LDF LOG2.LDF )
по логике скорость работы выше была
ведь в два потока быстрее на разные харды у которых разные контролеры , - чем писать в один поток на один хард
9 июл 12, 13:26    [12838389]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше собрать базу из несколькоих файлов  [new]
Glory
Member

Откуда:
Сообщений: 104760
sqlbig
На разных физических массивах и у каждого массива свой контроллер.
LOG.LDF <-- ( LOG1.LDF LOG2.LDF )
по логике скорость работы выше была
ведь в два потока быстрее на разные харды у которых разные контролеры , - чем писать в один поток на один хард

Лог заполняется всегда последовательно. Нет никаких двух потоков.
9 июл 12, 13:28    [12838397]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше собрать базу из несколькоих файлов  [new]
sqlbig
Member

Откуда:
Сообщений: 12
Glory
sqlbig
На разных физических массивах и у каждого массива свой контроллер.
LOG.LDF <-- ( LOG1.LDF LOG2.LDF )
по логике скорость работы выше была
ведь в два потока быстрее на разные харды у которых разные контролеры , - чем писать в один поток на один хард

Лог заполняется всегда последовательно. Нет никаких двух потоков.


В этом утверждении возникает сомнение

допустим 2 варианта
1-й вариант имеем железо 5 массивов у каждого массива свой контролер итого 20 терабайт
2-й вариант имеет общий массив 20 террабайт и один контроллер

Вы утверждаете, что в обоих вариантах скорость работы с базой будет одинаковая ?
вы уверены ?
9 июл 12, 13:50    [12838578]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше собрать базу из несколькоих файлов  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
sqlbig
В этом утверждении возникает сомнение
Раз сомневаетесь, то откройте документацию, и почитайте, как сервер работает с файлами бд и логом.

Сообщение было отредактировано: 9 июл 12, 13:53
9 июл 12, 13:52    [12838606]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше собрать базу из несколькоих файлов  [new]
Glory
Member

Откуда:
Сообщений: 104760
sqlbig
Вы утверждаете, что в обоих вариантах скорость работы с базой будет одинаковая ?
вы уверены ?

Причем тут работа с базой и запись в лог-файл ?
Вы правильно читаете ответы ?
9 июл 12, 13:54    [12838627]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше собрать базу из несколькоих файлов  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
sqlbig
допустим 2 варианта
1-й вариант имеем железо 5 массивов у каждого массива свой контролер итого 20 терабайт
2-й вариант имеет общий массив 20 террабайт и один контроллер

Вы утверждаете, что в обоих вариантах скорость работы с базой будет одинаковая ?
вы уверены ?
Какая-то каша у вас в голове. Уясните, что база состоит из файлов данных и файлов логов, с которыми сервер работает абсолютно по-разному.
9 июл 12, 13:55    [12838631]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше собрать базу из несколькоих файлов  [new]
sqlbig
Member

Откуда:
Сообщений: 12
Гавриленко Сергей Алексеевич
sqlbig
В этом утверждении возникает сомнение
Раз сомневаетесь, то откройте документацию, и почитайте, как сервер работает с файлами бд и логом.

Если база размазана на разные физические носители прироста производительности нет ?
И об этом косвенно или прямо описано в документации ?
SQL сервер не умеет работать многозадачно ?
Читать/писать файлы может только последовательно ?
Можете дать прямую ссылку на это , можно из MSDN
Например сказать номер страницы или название раздела , версию сервера.
9 июл 12, 14:06    [12838724]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше собрать базу из несколькоих файлов  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
sqlbig
Гавриленко Сергей Алексеевич
пропущено...
Раз сомневаетесь, то откройте документацию, и почитайте, как сервер работает с файлами бд и логом.

Если база размазана на разные физические носители прироста производительности нет ?
И об этом косвенно или прямо описано в документации ?
SQL сервер не умеет работать многозадачно ?
Читать/писать файлы может только последовательно ?
Можете дать прямую ссылку на это , можно из MSDN
Например сказать номер страницы или название раздела , версию сервера.
Ой, рукалицо... Вы ответы через слово читаете? В вашем понимании "база" - это что? Файлы данных? Файлы лога? И то, и другое?

Сообщение было отредактировано: 9 июл 12, 14:09
9 июл 12, 14:07    [12838732]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше собрать базу из несколькоих файлов  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
http://msdn.microsoft.com/en-us/library/ms187087(v=SQL.105).aspx
http://msdn.microsoft.com/en-us/library/ms190925(v=sql.105).aspx
9 июл 12, 14:15    [12838783]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше собрать базу из несколькоих файлов  [new]
sqlbig
Member

Откуда:
Сообщений: 12
Glory
sqlbig
На разных физических массивах и у каждого массива свой контроллер.
LOG.LDF <-- ( LOG1.LDF LOG2.LDF )
по логике скорость работы выше была
ведь в два потока быстрее на разные харды у которых разные контролеры , - чем писать в один поток на один хард

Лог заполняется всегда последовательно. Нет никаких двух потоков.


эхх.. ошибаетесь
материалы из матчасти
особенно красным и зеленым выделил специально для Вас

Гавриленко Сергей Алексеевич
Хотя нет, это для данных. А у вас лог зачем-то размазан на несколько. Или не лог?

За ссылки в предыдущем посту спасибо...

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

https://www.sql.ru/articles/mssql/03102701transactionlogsql2k.shtml


Для чего может понадобиться несколько журналов транзакций?
Во первых, может кончиться место на диске, где находится журнал и тогда, чтобы продолжить работу, нужно будет увеличить журнал, создав дополнительный файл на другом диске.
Во вторых, если разбить журнал на несколько дисков, он будет работать быстрее, т.к. у сервера есть механизм равномерного распределения нагрузки на файлы журнала.
Файлы журнала не могут объединяться в группы как файлы данных, они администрируются по отдельности.
В Enterprize Manager файлы журнала транзакций создаются и добавляются в окне Database Properties на вкладке Transaction Log.
Однако, создавая несколько журналов транзакций для одной базы данных, Вы должны учитывать особенности прикрепления базы с помощью системной хранимой процедуры sp_attach_db, которые были описаны в статье: " Метод быстрого усечения журнала транзакций и перевода БД в offline"
Стандартной рекомендацией, для повышения производительности сервера баз данных, является размещение журнала транзакций на отдельном физическом диске. Журнал является файлом последовательного доступа, и скорость работы с ним зависима от того, насколько оптимально перемещаются головки его диска. Когда к диску обращаются только процессы, обслуживающие журнал транзакций, перемещение головок вдоль поверхности диска будет самым оптимальным. Наличие других процессов, конкурирующих за диск с операциями журналирования, увеличивает количество позиционирований головок между секторами диска и этим значительно снижает производительность сервера баз данных.
9 июл 12, 15:01    [12839129]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше собрать базу из несколькоих файлов  [new]
Kirillich
Member

Откуда:
Сообщений: 581
sqlbig,

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

Журнал является файлом последовательного доступа, и скорость работы с ним зависима от того, насколько оптимально перемещаются головки его диска
9 июл 12, 15:09    [12839215]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше собрать базу из несколькоих файлов  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31438
sqlbig
допустим 2 варианта
1-й вариант имеем железо 5 массивов у каждого массива свой контролер итого 20 терабайт
2-й вариант имеет общий массив 20 террабайт и один контроллер

Вы утверждаете, что в обоих вариантах скорость работы с базой будет одинаковая ?
вы уверены ?
Во втором варианте будет быстрее. Это если вы именно про файлы логов говорите.
sqlbig
разделение лога на несколько файлов дает прирост производительности
тут внятно описано зачем делать два и более файлов лога.

https://www.sql.ru/articles/mssql/03102701transactionlogsql2k.shtml
Даже Ирина Наумова может ошибаться :-(
9 июл 12, 15:11    [12839232]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше собрать базу из несколькоих файлов  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
sqlbig
Glory
пропущено...

Лог заполняется всегда последовательно. Нет никаких двух потоков.


эхх.. ошибаетесь
материалы из матчасти
особенно красным и зеленым выделил специально для Вас

Гавриленко Сергей Алексеевич
Хотя нет, это для данных. А у вас лог зачем-то размазан на несколько. Или не лог?

За ссылки в предыдущем посту спасибо...

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

https://www.sql.ru/articles/mssql/03102701transactionlogsql2k.shtml


Для чего может понадобиться несколько журналов транзакций?
Во первых, может кончиться место на диске, где находится журнал и тогда, чтобы продолжить работу, нужно будет увеличить журнал, создав дополнительный файл на другом диске.
Во вторых, если разбить журнал на несколько дисков, он будет работать быстрее, т.к. у сервера есть механизм равномерного распределения нагрузки на файлы журнала.
Файлы журнала не могут объединяться в группы как файлы данных, они администрируются по отдельности.
В Enterprize Manager файлы журнала транзакций создаются и добавляются в окне Database Properties на вкладке Transaction Log.
Однако, создавая несколько журналов транзакций для одной базы данных, Вы должны учитывать особенности прикрепления базы с помощью системной хранимой процедуры sp_attach_db, которые были описаны в статье: " Метод быстрого усечения журнала транзакций и перевода БД в offline"
Стандартной рекомендацией, для повышения производительности сервера баз данных, является размещение журнала транзакций на отдельном физическом диске. Журнал является файлом последовательного доступа, и скорость работы с ним зависима от того, насколько оптимально перемещаются головки его диска. Когда к диску обращаются только процессы, обслуживающие журнал транзакций, перемещение головок вдоль поверхности диска будет самым оптимальным. Наличие других процессов, конкурирующих за диск с операциями журналирования, увеличивает количество позиционирований головок между секторами диска и этим значительно снижает производительность сервера баз данных.

В статье явная ошибка.

http://msdn.microsoft.com/en-us/library/ms191433(v=sql.105)
SQL Server uses a proportional fill strategy across all the files within each filegroup and writes an amount of data proportional to the free space in the file. This enables the new file to be used immediately. In this way, all files generally become full at about the same time. However, transaction log files cannot be part of a filegroup; they are separate from one another. As the transaction log grows, the first log file fills, then the second, and so on, by using a fill-and-go strategy instead of a proportional fill strategy. Therefore, when a log file is added, it cannot be used by the transaction log until the other files have been filled first.
9 июл 12, 15:14    [12839259]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше собрать базу из несколькоих файлов  [new]
Shakill
Member

Откуда: мск
Сообщений: 1880
sqlbig,

материалы из матчасти это вот:

http://technet.microsoft.com/ru-ru/magazine/2009.02.logging.aspx
Ведение журнала и восстановление в SQL Server. Пол С. Рэндал (Paul S. Randal)
По мере возникновения транзакций записи журнала последовательно записываются в журнал транзакций, из чего следует, что создание нескольких файлов журнала транзакций не дает никакого выигрыша в производительности, что является широко распространенным заблуждением. Журнал транзакций будет использовать все файлы журнала по очереди.
9 июл 12, 15:15    [12839267]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше собрать базу из несколькоих файлов  [new]
sqlbig
Member

Откуда:
Сообщений: 12
Shakill
sqlbig,

материалы из матчасти это вот:

http://technet.microsoft.com/ru-ru/magazine/2009.02.logging.aspx
Ведение журнала и восстановление в SQL Server. Пол С. Рэндал (Paul S. Randal)
По мере возникновения транзакций записи журнала последовательно записываются в журнал транзакций, из чего следует, что создание нескольких файлов журнала транзакций не дает никакого выигрыша в производительности, что является широко распространенным заблуждением. Журнал транзакций будет использовать все файлы журнала по очереди.


Признаю был не прав
Значит я как раз из тех кто заблуждался!

ну тогда тем более нужно слить лог в один файл
заодно соединить базу из 3 в один
9 июл 12, 15:39    [12839478]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше собрать базу из несколькоих файлов  [new]
Shakill
Member

Откуда: мск
Сообщений: 1880
sqlbig,

Adding and Deleting Data and Transaction Log Files
9 июл 12, 16:48    [12840016]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше собрать базу из несколькоих файлов  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31438
sqlbig
заодно соединить базу из 3 в один
А вот для файлов данных распаралеливание работает, особенно хорошо, если у вас несколько контроллеров.

И ещё, самое главное - не класть на один рэйд файлы данных и лога.
9 июл 12, 18:56    [12840819]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше собрать базу из несколькоих файлов  [new]
sqlbig
Member

Откуда:
Сообщений: 12
alexeyvg
sqlbig
заодно соединить базу из 3 в один
А вот для файлов данных распаралеливание работает, особенно хорошо, если у вас несколько контроллеров.

И ещё, самое главное - не класть на один рэйд файлы данных и лога.

Спасибо.
Да знаю что лучше разносить если есть куда

Просто сейчас базу посадили на один физический носитель
Меня удивило то что майкрософт не смогла реализовать
Паралельную обработку лога если он лежит на разных физических носителях
Отстой просто.
9 июл 12, 20:57    [12841214]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше собрать базу из несколькоих файлов  [new]
Glory
Member

Откуда:
Сообщений: 104760
sqlbig
Меня удивило то что майкрософт не смогла реализовать
Паралельную обработку лога если он лежит на разных физических носителях
Отстой просто.

Я так понимаю, что у вас есть опыт реализации параллельно рабоыт именно с лог файлами ?
9 июл 12, 21:51    [12841362]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше собрать базу из несколькоих файлов  [new]
sqlbig
Member

Откуда:
Сообщений: 12
Glory
sqlbig
Меня удивило то что майкрософт не смогла реализовать
Паралельную обработку лога если он лежит на разных физических носителях
Отстой просто.


Я так понимаю, что у вас есть опыт реализации параллельно рабоыт именно с лог файлами ?

а вы считаете что это невыполнимая неподъемная задача?
9 июл 12, 22:04    [12841407]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше собрать базу из несколькоих файлов  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31438
sqlbig
Меня удивило то что майкрософт не смогла реализовать
Паралельную обработку лога если он лежит на разных физических носителях
Отстой просто.
"Отстой просто" - это когда администраторы настраивают сервер, не зная, как он работает :-)

Наверное, программисты у МС плохие - видимо, из оракла переманивали, он тоже не умеет писать паралельно в несколько логов :-(
sqlbig
Glory
пропущено...
Я так понимаю, что у вас есть опыт реализации параллельно рабоыт именно с лог файлами ?

а вы считаете что это невыполнимая неподъемная задача?
Хотелось бы тоже задать вопрос - как это можно было бы реализовать, вы наверное знаете решение, раз так безаппеляционно говорите?
9 июл 12, 23:21    [12841639]     Ответить | Цитировать Сообщить модератору
 Re: Как лучше собрать базу из несколькоих файлов  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
alexeyvg
Хотелось бы тоже задать вопрос - как это можно было бы реализовать, вы наверное знаете решение, раз так безаппеляционно говорите?
ХЗ. Там много подводных камней и нужно разобраться с его структурой.
Но на вскидку можно придумать пару аргументов. Другое дело, на сколько они имеют смысл.

1. Тупо эмуляция RAID (RAID 10). А оно надо? Придумывать свой ласапед, дублируя имеющиеся технологии.
2. Разнесение цепочек транзакций по группам. - Теже яйца только в профиль.
Ну разве что, может быть (гипотетически) меньше проблем со сборкой всех процессов в один единственный поток.

Но тогда возникает проблема последовательного потока логической зависимости:
В одной части на диск попадёт CHECKPOINT (к примеру), хотя данные предшествовавшие ему на другом диске не дописались. Хамба - историческая логика нарушена, с вероятностью этого не заметить.
Не знаю проблема ли это, но всё не так уж просто как может показаться некоторым на первый взгляд.
А еще надо понимать что проблема не только разбить на N кусков и потом это цельно собрать при любых случаях, но и разбить на N одинаковых кусков (иначе смысл теряется), т.е. полная симметричность.

PS: Есть сцылка, как устроен файл и страницы лога. Кто помнит, укажите пожалуйста. Плиз.
10 июл 12, 01:46    [12842030]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить