Отправляет email-рассылки с помощью сервиса Sendsay

MS SQL Server

  Все выпуски  

MS SQL Server - дело тонкое...


Служба Рассылок Subscribe.Ru проекта Citycat.Ru

#041<<#042

СОВЕТ

Присоединение и отсоединение файлов
По материалам статьи Энди Уоррен на swynk.com «Attaching and Detaching Files»
http://www.swynk.com/friends/warren/default.asp

Недавно Энди опубликовал статью на swynk.com о том, как перемещать данные с одного сервера на другой. Оригинал статьи вы найдёте здесь:
http://www.swynk.com/friends/warren/movingdbstonewmachine.asp
В той статье он предлагал "уловку", которую Вы можете использовать, если новый сервер будет иметь ту же самую логическую конфигурацию дисков, как и старый. Если логическая конфигурация дисков различна, или Вы хотите переместить только часть ваших файлов, самый легкий путь состоит в том, чтобы отсоединить их от первоначального сервера и затем присоединяться к новому. Это даёт Вам шанс, изменить физическое расположения файлов для каждой базы данных. Обратная сторона этого метода в том, что, если Вам нужно перемещать много баз данных, это становится очень утомительным занятием!
Имеются три хранимые процедуры, которые применяют в этих целях: sp_detach_db, sp_attach_db, sp_attach_single_file_db. Использование sp_detach_db удалит указанную базу данных SQL сервера, но оставит нетронутыми её файлы. После этого Вы можете перемещать их в другие каталоги или даже на другой сервер. Затем, используя sp_attach_db, можно повторно подключить базу данных, и продолжить её использование. Отсоединение базы данных также полезно, когда Вы хотите её архивировать, но не исключена возможность использования её в будущем.
Когда Вы отсоединяете базу данных, В вашем распоряжении есть опция, позволяющая перед этим обновить статистику. Также, у Вас всегда есть возможность обновить статистику после того, как Вы снова прикрепили базу. Вы должны использовать sp_attach_single_file_db, если Вы имеете только файл данных, это позволит создать новый журнал транзакций (Примечание автора рассылки: если журнал разбит на несколько файлов – это не работает). Если журнал существует, то можно использовать sp_attach_db. SP_attach_db поддерживает до 16 файлов (имеется ввиду: комбинация файлов данных и журналов). Если Вы имеете больше 16-ти файлов, Вы должны использовать CREATE DATABASE вместе с опцией FOR ATTACH.
Когда Энди изучал BOL, у него возникло желание убедиться в ограничении на 16 файлов и причинах такого ограничения. Оказалось, что ограничение введено непосредственно в коде sp_attach_db и не допускает более 16-ти имен файлов, причём только для создания динамического sql-запроса, выполняющего CREATE DATABASE с опцией FOR ATTACH! Также Энди смотрел sp_attach_single_file_db, которая просто создаёт базу данных с опцией «for attach» и создаёт журнал в заданном по умолчанию каталоге. SP_detach_db - это только «обертка» для DBCC DetachDB, но можно предположить, что происходит только удаление строки из sysdatabases, а также из других, связанных таблицы базы данных master.
Отсоединение и присоединение баз данных в SQL сервер 7 требует, чтобы Вы использовали хранимые процедуры, но в SQL сервер 2000, Вы можете щёлкнуть правой кнопкой мыши, чтобы исполнить те же операции, что бывает очень удобно, так как необходимо вводить полный путь и имя файла. К сожалению ни одна хранимая процедура и Enterprise Manager не могут корректно оперировать фалами, включёнными в группы (filegroup), при выполнении операции присоединения. Если Вы имеете группы файлов, Вам придётся вручную написать sql - запрос, который будет содержать CREATE DATABASE вместе с опцией FOR ATTACH.
Энди предлагает Вам ознакомиться со статьёй, которая предлагает метод прикрепления баз данных с использованием DMO:
http://www.swynk.com/friends/warren/attachdetachdatabase2.asp

Комментарий автора рассылки к вопросу переприкрепления баз данных:

При переносе баз данных методом переприсоединения на другой сервер с отличной конфигурацией дисков или каталогов, может нарушиться связь между базой и её логинами. Решение этой проблемы было подробно освещено в 12-м выпуске рассылки в статье «Восстановление связи между пользователем БД и его login»
http://www.sql.ru/subscribe/012.shtml
В SQL сервер 2000 Вы можете воспользоваться мастером Copy Database Wizard, который также позволяет переместить базу данных без потери связи с логинами.

В прошлом выпуске рассылки, в статье Кришнана «Метод быстрого усечения журнала транзакций и перевода БД в offline» была предложена уловка, которая предлагала методом переприкрепления базы данных уменьшать до минимального размера журнал транзакций. После публикации этой статьи, в мой адрес поступила совершенно справедливая критика этого метода, а точнее не достаточно полного изложения Кришнаном всех возможных нюансов при таком подходе. Суть критики в том, что уловка не работает, если журнал транзакций разбит на два или более файла. Макетирование этой проблемы на моём полигоне показало, что попытка применить уловку Кришнана приводит к ошибке. Новый, с минимальным размером журнал создаётся при прикреплении базы, только если у открепляемой базы был один журнал. Обойти это ограничение удалось только после того, как оператором ALTER DATABASE были уничтожены все файлы журнала, кроме первого, а потом, файл базы был повторно прикреплён оператором CREATE DATABASE с опцией FOR ATTACH.

ГОТОВИМСЯ К ТЕСТУ ПО 70-028

ШПАРГАЛКА #8 Продолжение (обзор официального курса Microsoft)
Архив шпаргалок Вы найдёте на следующих сайтах:
http://www.sql.ru/subscribe/
http://subscribe.ru/archive/comp.soft.winsoft.sqlhelpyouself

Создание DTS пакета

Как правило, DTS пакет состоит из полного описания нескольких, последовательно/параллельно выполняемых задач, т.е. конкретных шагов (steps) состоящих из разнотипных или однотипных операций. Создать пакет Вы можете с помощью соответствующего визарда, DTS Designer или с помощью языка программирования с интерфейсом OLE Automation (VB, C#). Сохранить пакет можно в файле, репозитории или в базе msdb. Не сохранённый пакет будет незамедлительно исполнен. Сохранённые пакеты можно использовать повторно по расписанию, изменять и т.д.
Если DTS пакет сохраняется во внешнем файле, это облегчает планирование его выполнения, позволяет рассылать пакеты, как вложения, в письмах электронной почты, а также позволяет хранить в одном файле несколько пакетов или несколько версий одного пакета (пакеты сохраняются с другим именем, а имя файла не изменяется). Такие файлы имеют расширение .dts и объектную структуру Component Object Model (COM).
Если пакет сохранять в базе данных Microsoft Repository, предназначенной для хранения сведений об объектах и их взаимосвязях (метаданные), то у Вас появится возможность повторно использовать метаданные пакета и иметь информацию об его истории преобразования и происхождении пакета и сопутствующих данных. Кроме того, вся эта информация может быть доступна для других приложений.
Если пакет сохраняется в msdb, то он и его данные будут сохранены в таблице sysdtspackage. При таком варианте, не получится сохранять несколько пакетов в одном файле.
DTS пакет могут шифроваться, причём не зашифрованными останутся только имя, описание, идентификатор, номер версии и дата создания. У пакета может быть пароль владельца, предоставляющий на него все права, и пароль оператора, который применяется в основном при шифрации пакетов и предоставляет доступ к данным, не давая доступа к определению пакета, именам пользователей и паролям. По умолчанию, пакеты не шифруются и не имеют этих паролей. Т.о., пользователь, имеющий доступ к месту хранения пакета может прочитать содержащуюся там информацию, включая пароли и имена пользователей.
В процессе создания DTS пакета, Вы можете задать преобразование данных, при котором будет осуществляться их форматирование и/или изменение. Данные, после получения из источника, могут быть заменены обобщёнными или производными значениями. Эти значения могут быть результатом вычислений или других операций с разными полями набора строк источника данных, и наоборот, дно поле может быть разложено на несколько.
Наиболее частой операцией преобразования данных на пути от источника к месту назначения является отображение типов. Для этого используются специальные флаги преобразования, а также можно установить правила преобразования, в соответствии с которыми данные из столбцов одного типа будут трансформироваться в данные столбцы другого типа. Кроме типа данных, разными могут быть размер, точность, масштаб или допустимость NULL. С помощью таких правил можно добиться, что бы точного соответствия исходных данных результирующим, даже если Вам придётся преобразовывать real во float (вот наоборот будет сложнее). При создании DTS пакетов, визарды и дизайнер стараются, как можно более точно установить соответствие типов данных источника и назначения, но у Вас всегда есть возможность внести свои коррективы. Вы можете задать следующие уровни преобразования данных:
- Allow all possible conversions: устанавливается по умолчанию и разрешает все допустимые виды преобразования. Передаваться будут все данные, разрешено расширение типов и преобразование значений NULL.
- Reguire exact match between source and destination: устанавливает уровень точного совпадения данных, т.е. если тип, размер, точность, масштаб или допустимость NULL в источнике и в назначении абсолютно идентичны.
- Allow data type promotion: задаёт уровень, когда возможно расширение типов (real в float), т.е. из короткого в расширенный (из 16 в 32 разрядный).
- Allow data type demotion: Обратное предыдущему, когда из расширенного типа можно сделать короткий. Возможны ошибки переполнения.
- Allow NULL conversion: позволяет копировать столбцы не допускающие NULL в столбцы его допускающие.

Также, часто приходится всячески интегрировать или объединять данные одного или нескольких источников или наоборот, данные одного источника размещаются в нескольких таблицах назначения. Объединятся могут даже разнотипные таблицы. То же самое возможно ина уровне столбцов (объединение или дробление). Например, операция агрегирования, когда общие суммы по некоторым категориям записей и сохраняет эти суммы в таблице назначения.

Продолжение следует.

ПОЛЕЗНОСТИ

Статья Джозефа Ф. Ковара «SAN and NAS - два подхода к хранению данных». Непрерывно растущая потребность предприятий, специализирующихся на обработке данных, в различных хранилищах информации - оперативных, полуавтономных и автономных - все чаще вынуждает отдавать предпочтение устройствам, которые предназначены для работы в сетях хранения распределенных данных (storage area network, SAN), или сетевым устройствам памяти (network-attached storage, NAS).
http://www.crn.ru/news.asp?ID=3465
Справочное руководство от Владимира Новика по SQL, PL-SQL и SQL-Plus.
http://www.deltacom.co.il/rus/document/oracle_ref.htm
Журнал "Windows 2000 Magazine", #03/2000 «SQL Server в вопросах и ответах».
http://www.citforum.ru/database/articles/sqlservqa.shtml

Новые технические статьи Microsoft:

Q164516 - PRB: Error 17832 Caused by Blocking Timeout in 16-Bit Sockets
Q280846 - FIX: Merge Snapshot Agent May Fail With Syntax Error Message When Published Table Contains Computed Columns Q288890 - PRB: Incompatible Repository Error Message Occurs After Installation of DSO on Client Computer
Q293177 - BUG: Hypothetical Clustered Index From Index Tuning Wizard May Cause Recompile Loop
Q201240 - HOWTO: Put Stored Procedures Under Source Control in Visual InterDev
Q231646 - BUG: Placing tempdb in RAM Requires Twice the Configuration Size
Q256178 - BUG: OLAP DTS Task May Display HRESULT Error Codes on Failure
Q267953 - FIX: Interleaving Prepare And Adhoc Execute of Query May Cause Recompile Loop
Q275050 - FIX: OLAP Databases Missing in OLAP Manager with Migrated Repository Database
Q278239 - FIX: Extreme Memory Usage When Adding Many Security Roles
Q279514 - BUG: ExecuteWithResultsAndMessages2 Does Not Return Results
Q279660 - INF: How to Query with Data Using SQL Mail and Exchange Server
Q291364 - FIX: Query Performance Slower When Client Locale Differs from Server Locale
Q291374 - FIX: Creation of Local Cube with More Than 202 Measures May Fail
Q291563 - FIX: Analysis Server HTTPS Connections Slower Than HTTP and TCP/IP Connections
Q293318 - FIX: Analysis Services DTS Task Gets Timeout Error During Incremental Update

НОВОСТИ ПРОЕКТА SQL.RU

Продолжается БУРНОЕ развитие проекта. Сегодня добавлены новые возможности:

- Добавлены новые возможности поиска, который теперь охватывает абсолютно весь сайт и имеет опцию выбора отдельного раздела для поиска.
http://www.sql.ru/search/
- Запущен в работу ресурс, который даёт Вам возможность добавить свое резюме в нашу базу данных SQL программистов и DBA, информация из которой будет передаваться кадровым и рекрутинговыми агентствам.
Добавить резюме (http://www.sql.ru/job/addresume.php)
Найти специалиста (поиск резюме http://www.sql.ru/job/searchresume.php)

#041<<#042


Вопросы, предложения, коментарии, замечания, критику и т.п. присылайте Александру на адрес: MSSQLHelp@pisem.net


SQL.RU+MSSQLHELP
ФОРУМ
Описание рассылки



http://subscribe.ru/
E-mail: ask@subscribe.ru

В избранное