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

MS SQL Server

  Все выпуски  

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


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

#058<<  #059

DBA И БЕЗОПАСНОСТЬ

Microsoft Security Bulletin (MS01-041)
26 июля 2001г Микрософт выпущен бюллетень "Malformed RPC Request Can Cause Service Failure". Исправлена уязвимость, которая позволяла злоумышленнику с помощью нештатного RPC запроса осуществить атаку на сервер, которая могла привести к отказу в обслуживании клиентов.

Затронутые продукты:
Microsoft SQL Server 7.0
Microsoft SQL Server 2000
Microsoft Exchange Server 5.5
Microsoft Exchange Server 2000
Microsoft Windows NT 4.0
Microsoft Windows 2000

FAQ относительно этой уязвимости и заплаты можно найти тут:
http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/bulletin/MS01-041.asp

Заплаты доступны тут:

Microsoft SQL Server 7.0:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=31645
Also included in SQL Server 7.0 Service Pack 3.
Microsoft SQL Server 2000:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=31644
Also included in SQL Server 2000 Service Pack 1.

СОВЕТ

Поиск первой записи
По материалам статьи Steve Jones на sqlservercentral.com: "Find The First Row"

В этой статье Стив рассматривает вопрос о применимости коррелированных подзапросов.

Представим, что мы имеем таблицу, которая содержала информацию о служащих. Некий номер отдела, имя и код. Стив создал маленькую тестовую таблицу, используя следующий код:

create table MyTest
( id int,
nm char( 10),
code int
)

Запрос в данном примере должен был возвращать первого служащего из каждого отдела. Предположим, что таблица содержала следующую информацию:

ID Nm Code
1 Joe 550
1 Jim 600
2 Mary 300
3 Mike 350
4 Pam 50
4 Jeff 200
4 Judge 100

Идея состояла в том, чтобы возвращались следующие результаты:

ID Nm Code
1 Joe 550
2 Mary 300
3 Mike 350
4 Pam 50

Существует несколько решений, как и для большинства проблем в SQL. Чтобы возвратить требуемые результаты, мы должны отобрать первую запись каждого значения идентификатора. Самый легкий способ сделать это состоит в том, чтобы использовать коррелированный подзапрос.
В построении этого запроса, мы сначала строим список, воспользовавшись простым отбором:

select id, nm, code
from MyTest a

Теперь мы можем построить запрос, который находит имя. Мы не можем использовать функцию MIN() по следующей причине. Предположим, что мы выполним:

select id, min( nm)
from MyTest b
group by id

Мы получаем:

Идея состояла в том, чтобы возвращались следующие результаты:

ID Nm
1 Jim
2 Mary
3 Mike
4 Jeff

Проблема с отделом 4. Во-первых: Pam не Jeff. Использование упорядочения также приведёт к подобной проблеме. Что мы хотим - первый элемент в естественном порядке или в порядке, в котором элементы сохранены.
Лучшее решение даёт использование оператора TOP. Мы можем использовать этот оператор для ограничения результирующей выборки, и без предложения ORDER BY или другого оператора, затрагивающего результирующий набор, и сохраняющий естественный порядок. Рассмотрим следующий код:

select top 1 nm
from MyTest b
where id = 4

Мы получаем то, что хотим.

Мы можем теперь связать эти два запроса вместе, делая подзапрос следующим образом:

select id, nm, code
from MyTest a
where nm = ( select top 1 nm from MyTest b where b.id = a.id)

Заметьте, что из внешнего запроса (первый запрос) внедрена ссылка в подзапрос (второй запрос). Эта ссылка обеспечивает корреляцию между подзапросом и внешним запросом. Этот запрос дает нам результаты, которых мы ожидаем:

ID Nm Code
1 Joe 550
2 Mary 300
3 Mike 350
4 Pam 50

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

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

Планирование репликации

Разработка структуры репликации аналогична конструированию базы данных: сначала необходимо планировать логическую структуру, а затем физическую реализацию. При этом необходимо ответить на следующие вопросы:
Какие данные будут публиковаться? В среде распределенных данных серверам подписки, как правило, необходимо держать у себя лишь какую-то часть содержимого базы данных. Если реплицировать только требуемые данные, то можно сократить размеры используемого дискового пространства, время обработки и объем сетевых операций ввода-вывода.
Подумайте о том, как лучше группировать статьи. Будут ли данные публиковаться подмножествами, например, по группам, по узлам, по регионам? В модели с центральным подписчиком и несколькими издателями (Central Subscriber/Multiple Publisher) каждый узел должен публиковать все свои таблицы, а центральный узел должен подписаться на каждую публикацию. Для распространения данных необходимо пойти одним из двух путей:
 - создать одну публикацию с глобальными данными, на которую подпишутся все узлы, и по одной публикации для каждого подписчика с данными, выделяемыми именно для этого подписчика;
 - создать одну публикацию для каждого подписчика, включающую и глобальные данные, и выделенные данные.
Кто получает данные? Какие серверы будут подписываться на данные? Какими характеристиками обладают серверы назначения? Известны ли они или отключены? Если узлы предполагается наделить возможностями обновления, нужно подумать о том, как разрешать конфликты.
Как часто данные следует синхронизировать? Как будет проводиться синхронизация - по расписанию или по запросу?
Если используемое приложение допускает задержку данных, можно составить расписание так, чтобы обновление выполнялось редко.
Каковы характеристики сети? Рассмотрите следующие аспекты:
 - Доступны ли сетевые узлы всегда или только в определенные интервалы времени? Если узлы доступны не всегда, можно воспользоваться методом репликации с большей задержкой.
 - Быстро ли работает сеть? Если быстродействие низкое, возможно, имеет смысл уменьшить объем передаваемых по сети данных путем фильтрации. При наличии медленного канала связи можно установить отдельный сервер дистрибуции.
 - Какова пропускная способность сети? Если пропускная способность невелика, подумайте об использовании удаленных дистрибуторов. Определите, в какое время дня наблюдается наиболее высокий уровень активности. Это особенно важно в случае синхронизации автономных подписчиков в периоды пиковых нагрузок. Учитывайте это при составлении расписания.
 - Насколько надежно работает сеть? Если сбои в сети нередки, было бы неблагоразумно использовать план репликации, включающий распределенные транзакции.
Какой должна быть топология репликации? Какой тип репликации предполагается использовать? Кто инициирует процесс репликации? Сколько будет подписчиков? Каковы требования к выделяемому пространству?
Планируя физическую реализацию логической структуры, необходимо решить ряд вопросов.
Какой должна быть топология репликации? Какую топологию репликации планируется реализовать? Распределение ролей серверов определяет физическую структуру репликации:
 - Выберите модель репликации.
 - Определите, какой дистрибутор будет использоваться - локальный или удаленный.
 - Oпределите, будет ли база данных distribution открыта для совместного пользования. Если несколько издателей работают с одним дистрибутором, будет ли у каждого из них своя собственная база данных distribution на своем сервере? Или они будут пользоваться общей базой данных distribution?
Какой тип репликации предполагается использовать? Можно выбрать репликацию моментальных снимков (snapshot replication), репликацию транзакций (transactional replication) или репликацию слиянием merge replication).
Кто инициирует процесс репликации? В случае принудительной подписки (push subscription) используются ресурсы дистрибутора, а в случае подписки по запросу (pull subscription) -ресурсы подписчика.
Сколько будет подписчиков? Если правильно оценить число подписчиков, это поможет определить нагрузку на сервер распределения. Каковы требования к выделяемому пространству? Размеры журналов транзакций всех баз данных, участвующих в репликации, а также размеры базы данных distribution и рабочей папки дистрибутора зависят от следующих факторов:
 - числа публикаций и статей;
 - частоты выполнения репликации;
 - величины задержки при репликации;
 - типа репликации.
Данные назначения должны быть описаны с определенными характеристиками, поскольку некоторые характеристики не могут быть реплицированы или изменяются при репликации. При определении данных необходимо рассмотреть следующие вопросы:
Использование при репликации некоторых типов данных, перечисленных в следующей таблице, имеет специфические последствия.

Тип данных Эффект
Timestamp Указывает хронологический порядок операций сервера, выполнявшихся над строкой. Это значение реплицируется в базу данных подписчика как значение типа binary. Данные типа Timestamp не имеют никакогоотношения к полям даты/времени.
uniqueidentifer Идентификатор GUID (Global Unique Identifier- глобально уникальный идентификатор). Применяется при репликации слиянием, когда объединяются строки с разных серверов. Используется вместе с функциейNEWID, генерирующей идентификационный номер. Тип данных реплицируется, ункция - нет.
Определяемый пользователем Данный тип реплицируется только в том случае, если онсуществует в базе данных подписчика.

Замечание: Чтобы результаты запросов в отношении данных, реплицируемых с одного сервера на
другой, были согласованы, рекомендуется на каждом сервере, участвующем в репликации, использовать один и тот же набор символов и порядок сортировки. Это условие не обязательное, но оно гарантирует единообразную обработку запросов для всех серверов.
Использование свойства IDENTITY Значение столбца, для которого установлено свойство IDENTITY, реплицируется, но само свойство не реплицируется. В начальном моментальном снимке столбцы, обладающие свойством IDENTITY, по умолчанию преобразуются в базе данных подписчика в столбцы целочисленных значений. Это преобразование осуществляется таким образом, чтобы значения у подписчика совпадали со значениями у издателя.
Чтобы выполнить разбиение данных в каждом узле, можно на сервере подписчика снова создать столбец со свойством IDENTITY. При этом необходимо сделать следующее:
 - использовать соответствующие начальные значения и ограничения CHECK во избежание конфликтов;
 - используя тип данных uniqueidentifer и функцию NEWID, сгенерировать уникальный ключ.
Использование параметра NOT FOR REPLICATION: Данный параметр позволяет во время репликации при добавлении данных на сервер подписчика отменить некоторые характеристики, например, свойство IDENTITY, ограничение CHECK и триггеры. Если же данные добавляются пользователями, то при использовании этого параметра указанные характеристики сохранят свой смысл. Данный параметр весьма полезен в модели с несколькими издателями и несколькими подписчиками (multiple publisher/multiple subscriber).

Настройка системы безопасности сети

Прежде чем приступать к реализации плана репликации, следует проверить, соблюдены ли некоторые важные требования.
Установка доверительных отношений между доменами: Если серверы, участвующие в репликации, принадлежат разным доменам системы Windows NT необходимо установить доверительные отношения между этими доменами. Подробнее об установке доверительных отношений см. справочную систему операционной системы Windows NT.
Проверка учетной записи домена Windows NT для службы SQL Server Agent: По умолчанию репликация использует учетную запись пользователя домена системы Windows NT, назначенную службе SQL Server Agent:
 - Рекомендуется использовать одну и ту же учетную запись пользователя домена службы SQL Server Agent для всех серверов, участвующих в транзакции.
 - Проверьте, обладает ли учетная запись пользователя домена системы Windows NT для службы SQL Server Agent административными полномочиями. Для этого учетная запись должна быть членом локальной группы Administrators системы Windows NT.
Вместо учетной записи системы Windows NT можно также использовать учетную запись подключения SQL сервера.
Замечание: В качестве учетной записи системы Windows NT для службы SQL Server Agent нельзя использовать учетную запись Local System (локальная система) или учетную запись локального пользователя, поскольку ни та, ни другая не обеспечивает доступа к сети.

Подготовка серверов

Для подготовки серверов можно воспользоваться услугами мастера Configure Publishing and Distribution Wizard (мастер настройки средств публикации и дистрибуции) в программе Enterprise Manager. Установка сервера дистрибутора и сервера издателя осуществляется в ходе одного процесса. После того как они установлены, можно определять публикации и подписываться на них.
Замечание: Все серверы, участвующие в репликации, должны быть зарегистрированы в программе Enterprise Manager.

Установка дистрибутора

Установка дистрибутора должна предшествовать установке обслуживаемых им издателей. Для создания дистрибутора необходимы права системного администратора. После того как дистрибутор установлен, можно просматривать свойства локального или удаленного дистрибутора.
Настройка базы данных distribution: База данных distribution принадлежит типу баз данных промежуточного хранения (store-and-forward) и предназначена для хранения транзакций, ожидающих распределения по подписчикам; она устанавливается автоматически вместе с дистрибутором.
Вы можете также сделать следующее:
 - задать существующий удаленный сервер дистрибуции или создать новую базу данных distribution на сервере, установленном в качестве дистрибутора;
 - определить одну или несколько баз данных distribution, каждая из которых поддерживает одну или несколько публикаций.
Проверка доступности рабочей папки службы дистрибуции: Убедитесь, что рабочая папка службы дистрибуции доступна для агентов репликации, которые должны ею пользоваться. Понадобится ли она агенту - это зависит от типа репликации и режима использования удаленного дистрибутора. Рабочая папка (\имя_компьютера\C$\MSSQL7\ReplData) службы дистрибуции устанавливается по умолчанию на серверах, работающих под управлением NT.
Замечание: Если дистрибутор установлен на компьютере, работающем под управлением системы Windows 95/98, то для доступа к значениям по умолчанию рабочая папка должна быть явно предоставлена для совместного пользования под именем C$. Эта папка доступна только учетным записям пользователей домена, имеющим административные разрешения, и должна быть доступна учетной записи, используемой агентами репликации.
Обеспечение достаточного объема памяти: Необходимо также убедиться, что для сервера дистрибутора отведено нужное количество памяти. Дистрибутор не должен испытывать недостатка в ресурсах; исходить при их выделении следует из предполагаемого объема данных и числа подписчиков.
Меры предосторожности при удалении дистрибутора: Удавление дистрибутора осуществляется с помощью мастера Uninstall Publishing and Distribution Wizard (мастер удаления средств публикации и дистрибуции). В результате удаления дистрибутора происходит следующее:
 - с сервера дистрибуции удаляются все базы данных distribution;
 - все издатели, пользовавшиеся данным дистрибутором, отключаются, и все публикации на этих серверах удаляются;
 - удаляются все подписки на упомянутые публикации (но данные, полученные подписчиками по подписке, не удаляются).
Настройка дистрибутора: После того как база данных distribution установлена, можно проводить её настройку, задавать свойства и изменять.
Установка свойств базы данных distribution: С помощью мастера настройки средств публикации и распределения можно задать для каждой базы данных distribution следующие свойства:
 - имя базы данных и спецификации файлов;
 - параметры срока хранения данных протокола;
 - параметры срока хранения записей о транзакциях.
Обеспечение достаточного объема пространства: Убедитесь, что в рабочей папке службы дистрибуции и в базе данных distribution достаточно свободного места:
 - В случае репликации моментальных снимков и репликации слиянием данные хранятся в рабочей папке службы дистрибуции, в базе данных distribution отслеживается только состояние.
 - В случае репликации транзакций в базе данных distribution необходимо хранить реплики для всех издателей и подписчиков. Поскольку в базе данных distribution содержатся все транзакции, ожидающие дистрибуции, размер этой базы данных имеет ключевое значение.
Какой бы ни использовался тип репликации, при определении размера базы данных distribution необходимо учесть следующее:
 - Общее число публикуемых таблиц.
 - Число столбцов и объем данных типов text и image в статье.
 - Размер статей.
 - Максимальное время хранения транзакций и протокола.
Дистрибутор хранит сведения о транзакциях до тех пор, пока они не будут применены ко всем базам данных подписчиков. Некоторые подписчики могут пребывать в автономном режиме. В случае репликации транзакций следует принять во внимание ряд дополнительных факторов:
 - число операторов INSERT и UPDATE, поскольку каждый из них содержит данные;
 - примерное число транзакций в секунду;
 - средний размер транзакции.
Удаление базы данных distribution: Базу данных distribution можно удалить без отключения дистрибутора: для этого нужно предварительно отключить всех издателей, использующих эту базу данных distribution.

Установка издателя

Установив базу данных distribution, можно назначать серверы, ответственные за публикацию. Кроме этого, необходимо разрешить публикацию в базах данных. Установка параметров издателя включает следующие действия:
 - Задайте базы данных, которые будут публиковать свое содержимое.
 - Задайте серверы, которым будет разрешено использовать данный сервер-издатель в качестве своего удаленного сервера дистрибутора.
 - Включите подписчиков и установите параметры дистрибуции: задайте максимальное число фиксируемых транзакций на один пакет для подписчика; в случае репликации транзакций составьте расписание дистрибуции таким образом, чтобы транзакции реплицировались в непрерывном режиме или планировались на определенное время (по умолчанию устанавливается непрерывная репликация).
 - Убедитесь, что на сервере-издателе достаточно места для журнала транзакций, чтобы в него можно было помещать транзакции, когда недоступен дистрибутор. Журнал транзакций издателя нельзя очищать до тех пор, пока не будут распределены все ожидающие транзакции.
Если используется удаленный дистрибутор, убедитесь, что работающий на нем агент создания моментальных снимков имеет во время репликации доступ к издателю, а также к рабочей папке службы дистрибуции. Проще всего использовать одну и ту же учетную запись пользователя домена службы SQL Server Agent и для издателя, и для дистрибутора.
Замечание: Соблюдайте осторожность при изменении базы данных distribution, используемой каким-либо издателем, так как для этого придется отключить издателя, удалить все публикации и подписки, а затем установить тот же сервер публикации в качестве нового издателя с другой базой данных distribution. Установка подписчика При установке подписчика рассматриваются следующие вопросы: Подготовка подписки: Чтобы на сервере можно было подписываться, сделайте следующее:
 - Выберите серверы публикации, которые будут реплицироваться на данный сервер.
 - Выберите базы данных назначения для реплицируемых публикаций. Если базы данных назначения не существует, ее нужно создать.
 - Проверьте, действительна ли ваша учетная запись для доступа к дистрибутору и его рабочей папке.
Если вы получаете подписку по запросу с удаленного дистрибутора, убедитесь, что агент дистрибуции или агент слияния, работающий на сервере-подписчике, имеет доступ к рабочей папке службы дистрибуции.
Изменение свойств подписчика: После того, как подписчики подготовлены к приему публикации, может потребоваться изменить свойства какого-либо подписчика. Изменять разрешено следующие свойства:
 - Описание подписчика.
 - Режим безопасности.
 - Расписание по умолчанию (непрерывное распределение или согласно установленному расписанию).
Замечание: Изменение последнего свойства не влияет на расписания существующих подписок.
Отключение подписчика: Отключить подписчика можно на сервере-издателе. Будут автоматически отменены подписки на все публикации. Однако удалять базу данных подписчика или какие-либо ее объекты вправе только администратор сервера-подписчика.

Процесс публикации

Перед проведением подписки необходимо обязательно выполнить начальную синхронизацию.
Создание публикаций: Подготовив все необходимые серверы, можно приступать к созданию публикаций. Программа Enterprise Manager поддерживает несколько способов создания публикаций: использование мастеров репликации, использование команд меню и использование дерева консоли в программе Enterprise Manager. В каждой пользовательской базе данных издателя можно создать одну или несколько публикаций. Если базы данных назначения не существует, ее необходимо создать.
Использование мастеров: В процессе публикации можно пользоваться услугами следующих мастеров репликации:
 - Create Publication Wizard (мастер создания публикации).
 - Disable Publishing and Distribution Wizard (мастер отключения средств публикации и дистрибуции).
Определение публикации: Можно определить публикацию, содержащую одну или несколько статей. При создании публикации можно задать следующие ее свойства:
 - тип публикации - публикация моментальных снимков, публикация транзакций или публикация слиянием;
 - требования к моментальным снимкам, например, как планировать работу агента создания моментальных снимков и следует ли хранить моментальный снимок публикации на сервере-дистрибуторе;
 - таблицы или хранимые процедуры, которые предполагается публиковать;
 - следует ли разрешить анонимную подписку, обновление подписчиков или подписку по запросу;
 - публикации, имеющие общего агента. По умолчанию каждая публикация пользуется услугами своего собственного агента.
Замечание: Чтобы сохранить ссылочную целостность между публикуемыми таблицами, необходимо все таблицы, участвующие в каком-либо отношении, включить в одну публикацию. Это гарантирует одновременное применение транзакций ко всем таблицам и поддержание целостности.
Создание фильтров: Можно определить статью, представляющую подмножество данных некоторой таблицы; для этого используются фильтры и сценарии, определяющие, какие столбцы или строки должны включаться в статью. Можно определить вертикальное подмножество данных, горизонтальное или некую комбинацию этих видов:
 - Чтобы создать вертикальный фильтр, выберите только те столбцы, которые следует реплицировать.
Замечание: При вертикальной фильтрации данных реплицируемые столбцы должны содержать первичный ключ, за исключением случаев, когда выбрана репликация моментальных снимков.
 - Чтобы создать горизонтальный фильтр, используйте предложение WHERE для ограничения набора реплицируемых строк.
Ограничения на процесс публикации: На публикации сервера накладываются следующие ограничения:
 - Публикации не могут охватывать несколько баз данных; каждая публикация должна содержать статьи только из одной базы данных.
 - Нельзя реплицировать системные базы данных model, tempdb, msdb, master и distribution.
 - В таблице должен быть определен первичный ключ для идентификации строки и обеспечения сущностной целостности, за исключением случаев репликации моментальных снимков.
Ограниченная поддержка нерегистрируемых операций: Предусмотрена ограниченная поддержка операций, не регистрируемых в журнале транзакций, над данными типов text, ntext и image, как описано в следующей таблице.

Тип репликации Обработка изменений
Репликация моментальных снимков Изменения выявляются и реплицируются
Репликация транзакций Агент чтения журнала транзакций не отслеживает изменений
Репликация слиянием Системные триггеры не отслеживают изменений

Однозначная идентификация в репликации слиянием: Важным условием репликации слиянием является обеспечение однозначной идентификации строк. Необходимо использовать столбец типа данных uniqueidintifier со свойством ROWGUIDCOL. Когда сервер обнаружит столбец с таким свойством, он автоматически будет использовать этот столбец в качестве идентификатора строки для реплицируемой таблицы. Если сервер не обнаружит подобного столбца, он добавит в базовую таблицу столбец со свойством ROWGUIDCOL.
Начальная синхронизация: Для того чтобы новый подписчик мог получить публикацию, обычно бывает нужно, чтобы исходные таблицы и таблицы назначения содержали одну и ту же схему и одинаковые данные. С этой целью выполняется процесс синхронизации, называемый начальным моментальным снимком, и делает это издатель. По умолчанию все статьи публикации подвергаются начальной синхронизации как единое логическое целое. Это позволяет сохранить отношения целостности, унаследованные из таблиц, на основе которых созданы статьи. Агент создания моментальных снимков выполняет следующие действия:
 - Создает различные сценарии в зависимости от типа репликации. Эти сценарии содержат:
 - определения схемы;
 - файл вывода программы массового копирования с реплицируемыми данными;
 - определения индекса;
 - дополнительные файлы сценариев для репликации слиянием.
 - Сохраняет файлы в рабочей папке службы распределения.
 - Записывает сведения о состоянии заданий синхронизации в базу данных distribution.
Замечание: Процесс синхронизации использует служебную программу BCP либо в собственном формате сервера, либо в символьном формате. Символьный формат следует задавать в том случае, если на каких-либо серверах, входящих в сеть репликации, не установлен сервер.
Частота выполнения синхронизации: Для новых подписчиков (и только для них) можно составить расписание создания файлов начальной синхронизации. После проведения начальной синхронизации подписчик не нуждается в повторной синхронизации, если только не возникли какие-либо неполадки.
Замечание: Начальную синхронизацию можно отменить. Это делается, например, в случае, если вы проводите синхронизацию другими средствами или хотите, чтобы схема у издателя немного отличалась от схемы подписчика. Тем не менее, если начальная синхронизация отменена, ее необходимо выполнить вручную. Для этого может понадобиться, например, добавить столбцы timestamp и uniqueidentifier, в зависимости от используемого типа репликации.
Процесс подписки: После проведения начальной синхронизации можно выбрать характеристики подписки и указать, как часто следует обновлять данные у подписчика, используя данные издателя.
Подготовка принудительной подписки и подписки по запросу: Чтобы задать подписку, следует определить используемый ею метод репликации и указать вид подписки - принудительная или по запросу. Для каждого типа репликации можно использовать подписку любого из двух видов. Проводить подписку помогают два мастера: Push Subscription Wizard (мастер принудительной подписки) и Pull Subscription Wizard (мастер подписки по запросу).
Создание подписки: Для создания принудительной подписки или подписки по запросу необходимо сделать следующее:
 - создать или выбрать публикацию;
 - для каждого подписчика задать существующую базу данных подписки или создать новую;
 - выбрать один из методов синхронизации.
Принудительная подписка: Принудительная подписка определяется издателем. Принудительная подписка используется в среде с централизованным администрированием и устанавливается на сервере-издателе. Выбранный вид подписки определяет режим работы агентов, используемых для управления репликацией. В случае репликации моментальных снимков и репликации транзакций используется агент дистрибуции, работающий в распределителе, а в случае репликации слиянием - агент слияния, работающий на сервере-распределителе.
Подписка по запросу: Подписка по запросу определяется на каждом сервере-подписчике. В случае подписки по запросу подписчики сами определяют, когда следует подписываться, и таким образом берут на себя часть обязанностей администратора. Данный вид подписки также используется, если допускаются анонимные подписчики. В случае репликации моментальных снимков и репликации транзакций на сервере-подписчике работает агент распределения, а в случае репликации слиянием - агент слияния.
Использование параметра Immediate Updating Subscribers: Если при создании публикации выбрать параметр Immediate Updating Subscribers (Немедленное обновление подписчиков), то подписчик сможет обновлять копию своих локальных данных, при условии, что эти изменения можно немедленно передать издателю с помощью распределенной транзакции. Затем издатель рассылает изменения всем остальным подписчикам. Данный параметр не действует в случае репликации слиянием.
Обнаружение конфликтов: Если подписчикам разрешается обновлять содержимое публикации, повышается вероятность увеличения числа конфликтов обновления. В обновляемые таблицы необходимо включить
столбец timestamp. Когда пользователь попытается обновить строку в базе данных подписчика,
сервера с помощью столбца timestamp определит, зафиксированы ли издателем какие-либо изменения в этой строке. Использование данного параметра дает ряд преимуществ:
 - исключается вероятность конфликтов обновления;
 - поддерживается целостность транзакций;
 - расширяется автономия всех узлов.
Данный параметр рекомендуется использовать для сводных документов, таких как прейскуранты или списки заказчиков, частота обновления которых достаточно мала, а также для данных, подвергающихся логическому разбиению.
На использование данного параметра накладывается ряд ограничений. Ограничения на обновление типов данных Подписчику, запрещается:
 - обновлять значения типов timestamp, identity, text и image;
 - вставлять данные в таблицу, содержащую столбец типа timestamp или identity, за исключением случаев, когда у таблицы есть уникальный индекс.
Ограничения на обновление идентификации строки Подписчик не вправе обновлять уникальный индекс или первичный ключ, так как они используются для идентификации строки.
Замечание: Если вы отменили подписку и хотите вносить изменения в таблицу в узле подписчика, необходимо вручную удалить триггеры, установленные для реплицируемой таблицы базы данных подписчика.
Вопросы производительности: Чтобы добиться хорошей производительности при выполнении репликации, примите во внимание следующие рекомендации.
 - Используйте удаленного дистрибутора, чтобы снять часть нагрузки с издателя. Это целесообразно, если между дистрибутором и подписчиком действует медленный канал связи.
 - Старайтесь использовать подписки по запросу, чтобы уменьшить рабочую нагрузку на распределитель. Это имеет смысл делать, когда у вас много подписчиков.
 - Публикуйте только подмножества данных, чтобы подписчики получали лишь ту часть данных, которая им действительно нужна.
 - Используйте параметр Immediate Updating Subscribers (Немедленное обновление подписчиков). Этот параметр обеспечивает целостность транзакций. Однако его следует использовать только при надежном сетевом соединении.
 - Обеспечьте нужные показатели скорости работы и доступности сети, поскольку репликация может увеличивать нагрузку в сети.
Чтобы успешно планировать и настраивать процесс репликации, придерживайтесь следующих рекомендаций:
 - используйте одну и ту же учетную запись пользователя домена NT для всех служб сервера баз данных;
 - используйте первичные ключи в таблицах для поддержания сущностной целостности;
 - сведите к минимуму вероятность конфликтов обновления, ограничив возможности подписчика обновлением лишь определенного подмножества данных;
 - осуществляйте разбиение или фильтрацию данных, чтобы ограничить сетевой трафик и уменьшить размер базы данных.

Вопросы для повторения

ВОПРОС
Вы пытаетесь наладить репликацию между двумя серверами. Оба сервера на первый взгляд установлены корректно, однако репликация не действует. В чем могут быть неполадки? Как их исправить?
ОТВЕТ
Сначала убедитесь, что сетевое соединение между серверами работает нормально. Затем проверьте учетную запись, используемую сервером SQL Server для репликации (по умолчанию это учетная запись службы SQL Server Agent). Убедитесь, что данная учетная запись имеет доступ к другому серверу.
ВОПРОС
Когда устанавливается сервер дистрибуции, что следует учитывать при определении необходимого размера базы данных distribution?
ОТВЕТ
Число издателей, публикаций и подписчиков; объем данных, которые будут изменяться; частота изменений данных; используемый тип репликации; величина задержки; есть ли анонимные подписчики.
ВОПРОС
Ваша компания решила взять на вооружение средства репликации сервера SQL Server. На сервере публикации работает приложение, использующее значительное число ресурсов, и на нем невозможно организовать какие-либо работы по управлению репликацией. Предполагается, что подписчиков будет много. Некоторые из подписчиков время от времени будут переходить в автономный режим; всем подписчикам должно быть предоставлено разрешение обновления данных. Какая модель и какой метод репликации наиболее подойдут в данных условиях? Почему?
ОТВЕТ
Один издатель с удаленным дистрибутором (на отдельном компьютере), обслуживающий подписчиков с разрешением доступа только для чтения и подписчиков с параметром Immediate Updating Subscribers (Немедленное обновление подпичиков). Для подписчиков, пребывающих в автономном режиме, разрешите подписку с доступом только для чтения или репликацию слиянием. Для подключенных подписчиков установите параметр Immediate Updating Subscribers.

Окончание ШПАРГАЛКИ #11

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

ПОЛЕЗНОСТИ

Программное управление источниками данных ODBC
Автор: N/A.
Тема нашего сегодняшнего разговора - ODBC. Если вы хоть раз писали СУБД (системы управления базами данных), то вам, наверное, знакома эта аббревиатура. Расшифровывается ODBC как Open DataBase Connectivity (вольный перевод - открытая система связи с базами данных). Open (открытая) в данном случае означает "расширяемая", "легко наращиваемая", "открытая для модификаций". Вы сами это поймете, если посмотрите на архитектуру построения ODBC... [подробнее]

Новости проекта SQL.RU

Russian SQL User Group: начато обсуждение чернового варианта проекта Устава, с основными положениями которого Вы можете ознакомиться тут:
Russian SQL User Group - от слов к делу!
RSUG: СТАТЬЯ V - ПРАВЛЕНИЕ ДИРЕКТОРОВ И ЧИНОВНИКИ

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

Q111723 - BUG: SQL Server SQLSetParam Fails on the 252nd Parameter
Driver Removes Entry From WIN.INI
Q113146 - BUG: Some API's May Return SQL_ERROR: SQLSTATE S0001
Q119812 - BUG: SQLSRVR.DLL GP Fault on Vines When SQL Server Not Running
Q121449 - BUG: SQL Server: Certain Outer Joins Can Cause SQL_ERROR
Another Table in FROM May Cause SQL_ERROR
Q123657 - BUG: 16-bit ODBC Driver Setup Fails Due to Missing ODBC32.DLL
Data Sized Between 64K and 128K
Q124899 - BUG: SQLNumResultCols May Fail After Prepared SQL Statement
Q135715 - BUG: SQLParamData Returns Incorrect Values Under Win32s
Q135989 - BUG: SQLNumResultCols Returns Zero for the pcCol Argument
Q137970 - BUG: Precision for a Projected Column Always Reported as 255
Q141811 - BUG: Problems w/ ODBC 32-bit Thunking Installer DLL in Win32s
Q149644 - BUG: Out of Range Error When Binding a SQL_C_BINARY Datatype
Not Return Unique Index Information
Q169468 - BUG: SQL Server ODBC Driver AVs When Inserting from a Remote SP
Support WebCast: Implementing ADOX in Jet and SQL Server Applications
Q304363 - FIX: Merge Snapshot Does Not Recognize FTP for Jet Subscribers
Q304096 - PRB: Trigger Does Not Fire on View When Updated Through ADO
Q280458 - BUG: SQL Server May Not Find Existing Appropriate Query Plan Causing Recompilation
Q303897 - FIX: Cubes Unavailable During Incremental Update
Q100087 - BUG: Print Database Properties from SQL Admin Mixes Results
Q304261 - INF: Support for Network Database Files
Convert to SYBCHAR > 255 & FMT File
Q124314 - BUG: dbconvert Not Consistent w/ Transact SQL CONVERT Function
Q128726 - BUG: Mac ODBC App Via TCP/IP May Cause Connections to Hang
Q141664 - BUG: Convert From Binary to Numeric Gives Error 8114
Q151593 - BUG: SQL Server's ODBC Function SQLConnect is Not Thread Safe
Q153847 - BUG: ODBC Driver Misses ANSItoOEM with Server Cursors
Q154891 - BUG: ODBC TDS Error Calling Procedure with SQLTrace.
Q161351 - BUG: Bcp_bind Does Not Correctly Convert Real DBFLT4
Q187874 - CnPool.exe Test Connection Pooling with Tempdb Objects
Persistence Model
Q199872 - PRB: Some Database Tables Are Not Available for OLAP Cubes
Procedures Under Source Control in Visual InterDev
Q224973 - PRB: OLAP: MSSQLServerOLAPService Should Use Domain Account When Using Integrated Security
Q238912 - INF: Understanding Microsoft Repository
Q240036 - FIX: Distribution Agent Ignores Error on Pre-Creation Command
Q240039 - FIX: DBCC OPENTRAN Does Not Report Replication Information
Q240221 - INF: How To Handle Errors in DTS Package and Step Objects
Q239583 - INF: DTS Transfer SQL Server Objects Does Not Transfer Table with User-Defined Datatype
Q240833 - FIX: Full-Text Search Support for TOP via CONTAINSTABLE and FREETEXTTABLE Clauses
Q241249 - INF: How to Obtain a List of DTS Packages
Q254123 - FIX: Incorrect Values for Datetime, Smalldatetime, and Money Types With Big-Endian Client
Q254759 - BUG: ListAvailableServers Method of the SQLDMO.Application Object Causes Error 0x800A000E
Q256178 - BUG: OLAP DTS Task May Display HRESULT Error Codes on Failure
Q258990 - INF: How to Trace in SQL Server by Using Extended Stored Procedures
Q259571 - PRB: DTS Connection Password Is Write Only
Q261133 - FIX: DTS "Send Mail" Fills Up Mailbox and Outlook Cannot See or Delete E-Mail Messages
Q260895 - PRB: Error -2147217900 When You Run Distributed Queries in SQL from MTS
Q263076 - PRB: SQL Server 2000 Install May Fail Due to 'mfc42u.dll'
Q265263 - PRB: Cannot Open a Client-Side Cursor for a SQL Query to OLAP Server
Q268020 - PRB: Error Message 15320 Generated When Trying to Expand the Log for a Database on a Shared Device
Q268358 - PRB: OLAP Dates May Display Incorrect Format on Japanese Windows NT 4.0
Q268362 - PRB: OLAP Databases Larger Than 150 GB May Result in NT Kernel Out of Memory Errors
Q268505 - PRB: Deletion of Rows with the Same Values Behaves Differently in SEM and Query Analyzer
Q268591 - PRB: ODBC Tracing to SQL.LOG Can Slow SQL Server or Consume All Disk Space
Q268877 - INF: Registering SQL Server Wizard Gives a Misleading Error Message
Q271509 - INF: How to Monitor SQL Server 2000 Blocking
Q270856 - BUG: Processing a SQL Server 7.0 Object From a SQL Server 2000 DTS Task Causes an Error
Q271770 - PRB: SELECT in Incremental Update Filter Might Return ODBC Error Message
Q271887 - PRB: Desktop Engine Upgrade of MSDE 1.0 Fails
Q274199 - INF: Cannot Install MSDE 2000 on Windows 95
Q273495 - PRB: Cluster Count Property May Not Match the Actual Number of Clusters Displayed in the Mining Model Editor
Q274390 - PRB: Rebuildm.exe not Available After You Upgrade MSDE Edition to SQL Server 2000
Q273833 - BUG: Restore of a Large Database on Windows 98 May Fail with 3257 Error Message
Q273836 - INF: Running OLAP Services on a Domain Controller
Q275305 - FIX: Directory Name \MSDE2000\RESOURCES Is More Than Eight Characters, Resulting in Non-ISO CD
Q275309 - FIX: Uninstall, Repair, or Modify Fails on Program with Embedded SQL Server 2000 MSDE Merge Modules
Q277626 - FIX: Distributed Partitioned View By Using UNION May Not Use Optimal Plan
Q278239 - FIX: Extreme Memory Usage When Adding Many Security Roles
Q278325 - BUG: OLAP Server Stops Responding When Data Files are Corrupted
Q279489 - INF: How to Connect to Analysis Server 2000 By Using HTTP Connection
Q279490 - FIX: Analysis Services 2000 Does Not Support Security Account Delegation
Q278667 - BUG: Sqlmaint Does Not Delete Expired Backup Files on Windows 95, 98 or ME Computers
Q281117 - FIX: Timeout Error Occurs with Large Dimensions in Dimension Editor or Wizard
Q281126 - PRB: System Tables Missing Primary Key Information After Upgrade from SQL Server 6.x to SQL Server 7.0 or SQL Server 2000
Q281184 - FIX: SQL Server 2000 Desktop Engine Merge Modules Dependencies Are Incorrect
Q280380 - FIX: Buffer Overflow Exploit Possible with Extended Stored Procedures
Q282017 - PRB: SQL Server 2000 Help File Contains Confusing Information About the Desktop Engine Setup
Q283564 - BUG: Alias Parameters Do Not Work with Oracle Databases
Q281983 - PRB: Cannot Specify Instance Name Using SQL Server 2000 Merge Modules
Q285103 - BUG: BOL Incorrect on SAPASSWORD and USEDEFAULTSAPWD Options for SQL Server 2000 Desktop Engine Installation
Q285097 - INF: How to Change the Default Login Authentication Mode to SQL While Installing SQL Server 2000 Desktop Engine by Using Windows Installer
Q285833 - PRB: Need to Map to Default Admin Account and Use NULL for Password In Order to Query Linked Server to Access Database
Q287139 - PRB: Cannot Connect to OLAP Database Using OLE DB Provider for ODBC
Q288095 - BUG: Query with Large IN Clause Results in Stack Overflow
Q288890 - PRB: Incompatible Repository Error Message Occurs After Installation of DSO on Client Computer
Q290416 - BUG: Unable to Drill Down to Next Level with Hide Member if Property Set
Q289804 - FIX: Dimension Wizard Generates Unusable Custom Rollup Formula with Private Parent-Child Dimension
Q289748 - BUG: Missing Values For Database Event Constants
Q290562 - FIX: HTTP Connection Resets Session ID of an ASP Session Object
Q291265 - FIX: Error Occurs when you Exit Internet Explorer or Excel When You Use a Pivot Table Control with a Visual Basic User Defined Function
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
Q290799 - BUG: Missing Horizontal Scroll Bar in Cube Browser
Q292295 - BUG: Unable to Connect to Analysis Services 2000 When OfficeXP is Installed
Q293195 - FIX: Use of the Colon Operator to Define a Range of Members May Cause Incorrect Results in MDX Query
Q293318 - FIX: Analysis Services DTS Task Gets Timeout Error During Incremental Update
Q293463 - FIX: ASP Error 0115 Occurs When Connecting Through HTTP to Analysis Server on Windows NT 4.0
Q293516 - FIX: Processing of Remote Partition Fails When Dimension and Fact Table Are in Different Data Sources
Q293528 - FIX: Drill-Through Fails if Dimension Table Has an Alias in the Cube
Q295022 - FIX: Sqlmaint.exe Is Not Available with MSDE 2000
Q294276 - FIX: "Subscript Out of Range" Error Message in Usage Analysis Report
Q293609 - FIX: Drill-Through Returns Incorrect Data When Dimension Tables Are Aliased in Dimension Editor
Q293612 - FIX: Remote Partitions Require Remote Servers to Run Under OLAP Administrators Account
Q294285 - FIX: Processing All Dimensions May Fail with Very Large Dimensions
Q293616 - FIX: How to Migrate Repository from Meta Data Format to SQL Server Database Format
Q294287 - INF: How to Automate an Archive or Backup of OLAP Database
Q293627 - BUG: Failure to Migrate Repository from Meta Data Format to SQL Server 7.0 Format
Q293641 - FIX: Error Occurs When You Process Cube or Dimension Through ASP
Q294371 - FIX: Cubes and Dimensions Not Visible After Upgrading From OLAP Services 7.0 to Analysis Services 8.0
Q293776 - FIX: Cube Remains in Repository Database After Restore of Archived Database Without Cube
Q293782 - BUG: Can Only Administer Analysis Server if User is a Member of Administrators Group
Q294535 - FIX: Real-Time Cubes Fail to Process with a Measure Defined as Distinct Count
Q294703 - FIX: Incorrect Data in Local Cube Using Custom Rollup with Parent Child Dimension and UNARY Operator
Q294734 - FIX: Invalid Data Displays after Refreshing the Definition of a Cube That Contains Virtual Dimensions
Q294746 - FIX: Error Occurs When Changes are Made to Dimension Security for Very Large Dimensions
Q294664 - FIX: Timeout Error While Browsing Data from Analysis Manager
Q294929 - FIX: MSDE Installation Contains the Wrong Icon for the Service Manager
Q294968 - FIX: Error Processing Partitions in Parallel Through DTS May Cause Processing to Fail
Q296064 - FIX: Analysis Services Cubes Restored From Archive May Show #ERR When Browsed
Q295442 - FIX: Processing OLAP 7.0 Objects from Analysis Services DTS Task Fails
Q295443 - INF: How To Enable Analysis Server to Use 3 GB of RAM
Q295446 - FIX: MSOLAP 8.0 Provider Returns Invalid Property Values for Non-Leaf Members
Q294993 - FIX: Combination of Order and CrossJoin Functions in MDX Causes Error
Q295463 - FIX: Cube Editor Reports Named Set Name Not Valid but Named Set Displays Correctly
Q296147 - FIX: Errors in Application Center Event Viewer About Analysis Services Performance Counter
Q296186 - BUG: Incorrect Results In Cube Editor When You Edit a Dependent Calculated Member or Calculated Cell
Q295533 - BUG: Opening an Existing DTS Package with OLAP Tasks Causes Error After Analysis Manager Is Installed
Q295605 - FIX: Internal Error on Writeback to a Virtual Cube That Has More Dimensions Than the Component Cubes
Q295537 - FIX: Unable to Save Changes to Analysis Services Named Sets
Q295634 - FIX: Server Fails with Query to Cube with Multiple Partitions and Distinct Count Measure
Q295683 - FIX: Virtual Cube Returns #ERR if You Use Dimension Security and Visual Total Together
Q295706 - FIX: Virtual Cube Returns Empty Cells if Custom Rule Is Applied
Q297205 - FIX: A Remote Cut and Paste of a SQL Server 7.0 Cube or Dimension In Analysis Manager Causes an Error
Q295737 - FIX: Analysis Manager Reports Error: Cannot Create Temp Directory Due to Disk Space Problems
Q297179 - FIX: OLAP Service Fails to Start After Changing Sort Order to Binary on Japanese Windows
Q297232 - FIX: Can't Browse Cubes or Process Mining Model After Installing Analysis Services 2000 RTM
Q297248 - FIX: Server Shutdown When Processing a Cube with Private, Virtual, and Shared Dimensions
Q296378 - FIX: Query Using NON EMPTY Clause Fails for Measures with a Large Cellset
Q296380 - FIX: IS_DRILLTHROUGH_ENABLED in MDSCHEMA_CUBES Resultset Invalid for Copied Objects
Q296381 - FIX: Creating a Local Cube with a Large Number of Measures May Cause Error on the Client
Q296419 - FIX: Cannot Set Parent for Calculated Member to Member of Parent-Child Dimension
Q296420 - FIX: Incremental Update of Cube Results in Empty Cube if Partition Was Previously Empty
Q297338 - FIX: Division by Zero Produces Zero as a Result for a Calculated Member
Q296496 - FIX: Replace of Fact Table Does Not Display Correct Fact Table Name in Cube Editor
Q296533 - INF: Analysis Services Processing Task May Not Execute Correctly
Q295985 - FIX: Creating a Local Cube from a Linked Cube May Return Error
Q296639 - FIX: Analysis Services Fails When All Shared Dimensions Are Processed
Q296652 - FIX: Dimension Editor Displays Error Message While Setting Default Member
Q296762 - FIX: DSO Allows Cube Role or Data Mining Role to Be Added Without a Corresponding Database Role
Q296774 - FIX: DTS Logs Processing Messages Even When Package Logging Is Turned Off
Q296901 - FIX: Cube Editor Stops Responding on Save After Adding Private Dimension
Q296905 - FIX: Data Mining Provider Stops Responding When Using Row Navigation through OLE DB API
Q296915 - FIX: Access Violation When Processing a Database That Was Restored Over Existing Database
Q296929 - FIX: Creation of Ad Hoc Data Mining Models Fails with Mining Execution Location=3
Q297728 - FIX: Unhandled Exception Error Querying with the Data Mining Provider from ADO+ and C#
Q297799 - PRB: Empty Cells Are Returned by a MDX Query that Uses a Non Empty Clause
Q297823 - FIX: Incorrect Data Displays in PivotTable When it is Filtered and AutoCalc is Set to Max or Min
Q297933 - FIX: Full Process of a Remote Partition Unprocesses Other Remote Partitions in Same Server
Q297889 - FIX: Unable to Count Fact Table Rows When Creating a Cube
Q298443 - FIX: Analysis Services Always Uses Visual Totals for Restricted Dimensions
Q298600 - FIX: Partition Stops Inheriting FromClause Property from Parent Cube
Q298700 - FIX: Syntax Error Occurs When You Use EQUAL_AREAS or THRESHOLDS Keyword for DISCRETIZED Method
Q298701 - FIX: Error When Regional Setting Is Different Than Operating System Language
Q298679 - FIX: NonEmptyCrossJoin Queries Cannot Run Remotely on the Server
Q298711 - FIX: Unable to Browse Data Mining Model that has the Same Name as a Cube
Q298485 - FIX: Incremental Update of Cube with Distinct Measure Causes Analysis Server to Shut Down
Q298681 - FIX: Drillthrough Query on a Virtual Cube Shows Incorrect Results or Error
Q298688 - FIX: "Members With Data" Property Produces Wrong Result with Unary Operators in Parent-Child Dimension
Q298689 - FIX: Analysis Manager Cube Browser May Fail While You Browse Cube Data
Q298822 - FIX: MSDE Connection May Fail on a Multihomed Computer
Q298594 - FIX: Cubes with a Remote Partition and Parent-Child Dimension Display #ERR
Q298595 - FIX: Order and Format of Dimension Members Not Maintained After Processing
Q299351 - BUG: MSDE Installation Fails on Systems that Have SQL Server 2000 Service Pack 1 Installed
Q299383 - FIX: Incorrect Results Returned from MDX Query When Default Member Is Defined by User
Q299616 - FIX: Error Training Mining Model That Has Many Input Attributes and Many Rows of Data
Q299926 - INF: Writebacks That Use Multi-Hierarchies Must Specify All Hierarchies
Q299930 - PRB: Unable to Set SourceTable Property of Partitions to a Different Source Table
Q300047 - PRB: Analysis Services Runs Out of Memory While Processing
Q301472 - FIX: Assertion Occurs When You Use VT_UI4 Integer for SERVICE_TYPE_ID with the OpenSchema Method
Q301627 - FIX: Error Message: "ICE03 Invalid template string" Reported by MSIVal2
Q303343 - SQL Server 2000 User-Defined Functions White Paper
Q42745 - INFO: SQL Row Size Limited to 1962 Characters
Q80640 - BUG: Convert Defaults to 30 When No Length Is Given
Q89384 - INFO: Improving Performance in Views with Aggregate Functions
Q121728 - BUG: dbconvert Fails to Convert Strings Other Than "0" or "1"
Q161354 - BUG: SQLGetInfo Gives Incorrect Result for SQL_DRIVER_HSTMT
Q231951 - INF: Permission Needed for Administering an OLAP Server
Q282966 - BUG: DTS Package Fails with Dynamic Properties Task and OLAP Processing Task
Q293815 - INF: Dimension Rules for Security Role Not Saved When Programmatically Set
Q299905 - INF: Data Types Used by Analysis Services

ФОРУМ SQL.RU: САМЫЕ ПОПУЛЯРНЫЕ ТОПИКИ НЕДЕЛИ

Russian SQL User Group - от слов к делу!
SQL Server user group in Russia - ДВА
Репликация данных посредством триггеров?
Работа с данными через Интернет
SQL-Mail OutLook. Отправка.
Помогите построить запрос, плиз!
Сравнение с Null
Еще раз о Instead, многотабличном view и клиентах
Запросик слабенький
Как настроить package ?
Получение MIN от выражения
sp_executesql (exec) и локальный курсор
RE:SQL Server user group in Russia - ДВА
Отображение дат MSSQL server 7 - помогите
Горизонтально секционированных представлений и индексы
целостность

ФОРУМ SQL.RU: ВОПРОСЫ ОСТАЛИСЬ БЕЗ ОТВЕТА

Merge replication и вертикальный фильтр
Вопрос от чайника event id 17055
В Enterprise Maneger при открытиии DTS Package пропали все элементы группы Task
Репликация транзакций с обновляемыми подписчиками
Конвертация DBF-SQL table
Помогите составить запрос (типа cross-tab)...
Странный глюк
Про репликацию, может я чего не понимаю ....
MSAccess2000 MSDE - для локальной сети 128кбит/сек - есть ли другой вариант???
OLE DB Session портится?
Кто-нить из MultiEdit с SourceSafe 6 работает? Может не в тему, но нужно очень

#058<<  #059


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

sql.ru

Описание рассылки
 Поиск на SQL.RU
Искать: 
Результатов на странице: Формат:
Тип запроса: Раздел:
МИНИФОРМА
ПОДПИСКИ




http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться Рейтингуется SpyLog

В избранное