Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Вопросы и ответы по MS SQL Server" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
← Октябрь 2000 → | ||||||
1
|
||||||
---|---|---|---|---|---|---|
3
|
4
|
5
|
6
|
7
|
8
|
|
9
|
11
|
12
|
13
|
14
|
15
|
|
16
|
18
|
19
|
20
|
21
|
22
|
|
23
|
25
|
26
|
27
|
28
|
29
|
|
30
|
Автор
Статистика
17.597 подписчиков
-20 за неделю
-20 за неделю
MS SQL Server - дело тонкое...
#16 СОВЕТЫ Проверка корректности обновления MS SQL Server с помощью SQL Server Upgrade Wizard (По материалам SQL Server Books Online) SQL Server Upgrade Wizard использует при обновлении параметры, которые вводятся администратором. При этом происходит проверка данных Microsoft SQL Server 6.x на возможные повреждения во время обновления версии. Если SQL Server Upgrade Wizard обнаруживает проблемы в процессе обновления, выводится диалоговое окно с представленным ниже текстом: During the SQL Server Upgrade Wizard process: - User stored procedures are verified against the contents of syscomments for inconsistencies. - All logins, users, and permissions are validated. Это означает, что одно или более предупреждений об ошибках были зарегистрированы. Для принятия решения о Ваших дальнейших шагах необходимо тщательно изучить последующую, выводимую на экран информацию. Дополнительные данные Вы можете получить из создаваемого во время обновления файла, который расположен в каталоге: \Mssql\Upgrade\<имя_сервера>_<дата>_<время>, в фалах *.err. Заключительное резюме диалогового окна "Summary of Warnings" отображает противоречия, найденные в объектах или учетных записях пользователей. Пользователи не должны подключаться к базе данных, пока эти проблемы не разрешены. Дополнительную информацию по каждой базе Вы найдёте в каталоге: \Mssql\Upgrade\<имя_сервера>_<дата>_<время>, в фалах *_err.out В имя файла включено название базы данных и её ID: "check65-<dbid><dbname>_err.out" (Например, "check65-007mypubs_err.out"). Если необходимо все-таки допустить пользователей к базе без разрешения проблем, проверьте правильность размещения файлов, наличие объектов базы данных, учётные записи пользователей, и установки политики безопасности, разграничивающие доступ. Если в процессе обновления некоторые хранимые процедуры были переименованы с помощью системной процедуры sp_rename, оригинальное имя, сохранённое в syscomments должно быть изменено. Удалите такую процедуру и создайте её заново, используя новое название в синтаксисе CREATE PROCEDURE. Изящный способ нумерации строк (По материалам статьи Gaz "Creating a Sequential Record Number field" на SQLTeam.com) При углублённом изучении Books Online, Gaz обнаружил возможность с помощью одиночной инструкции T-SQL, через параметры оператора UPDATE нумеровать строки. Ниже представлен пример и пояснения к нему: declare @intCounter int set @intCounter = 0 update Yaks SET @intCounter = YakSequenceNumber = @intCounter + 1 Синтаксис привязки счётчика к порядковому номеру строки следующий: SET @variable = column = expression После выполнения этой инструкции, поле YakSequenceNumber будет содержать порядковый номер строки. Представленный способ нумерации строк не подходит для случаев с сортировкой данных, поскольку данный выбираются в порядке их физического расположения в базе. Как избавиться от Service Pack 2 (По материалам Q254555) Service Pack 2 не удаляется, как обычные программы, поскольку вносит необратимые изменения в системные компоненты. Для возврата к компоновке сервера до установки SP2, Вы должны повторно установить SQL 7.0 и, если потребуется, инсталлировать SP1. Прежде, чем Вы переустановите SQL 7.0, отсоедините ваши базы данных под SP2, и повторно прикрепите их после того, как Вы установите SQL 7.0 и SP1. Информацию об использовании системных процедур sp_attach_db и sp_detach_db смотрите в Books Online. К сожалению, Вам придется повторить все настройки/установки/логины/копии/расписания/репликации сервера заново, так что позаботьтесь о том, что бы сохранить их перед началом описанного выше процесса. Чтобы определить, какой Service Pack установлен на Ваш SQL сервер, выполните запрос: SELECT @@version Результат: 7.00.623 - Service Pack не установлен, 7.00.699 - Service Pack 1, 7.00.842 - Service Pack 2. ЭМОЦИИ: Старый, "добрый", универсальный способ разрешения проблем мелкомягких: "Всё снести и установить заново...". По другому у них, кажется, ничего починить нельзя... ГОТОВИМСЯ К ТЕСТУ ПО 1139А ШПАРГАЛКА №4 Продолжение (обзор официального курса Microsoft) (Архив шпаргалок Вы найдёте в предыдущих номерах на http://subscribe.ru/archive/comp.soft.winsoft.sqlhelpyouself) Параметры базы данных В процессе разработки и создания баз данных Вам может понадобится изменить некоторые её параметры, для обеспечения специальных ограничений на разные этапы установки и эксплуатации. Параметры позволяет менять MS SQL SEM или sp_dboption. Если Вы находитесь на этапе разработки базы, логично ограничить доступ всем другим установкой параметра dbo_use_only, т.е. сделать её доступной только владельцу. Если Вы хотите исключить изменение данных кем бы то ни было, установите ей reade_only. Процесс наполнения таблиц информацией из внешних источников (BCP) или массовое копирование (SELECT INTO) не желательно журналировать, что решается установкой select into/bulkcopy. Некоторые операции можно выполнить в однопользовательском режиме single user, помните только, что MS SQL SEM зачастую использует два подключения. Когда Вам без надобности резервировать транзакции и Вас устраивает, что после каждой контрольной точки они будут удаляться из журнала, установите trunc. log on chkpt. Если у вас проблемы с дисковым пространством, а количество данных может уменьшаться (вынос в долговременный архив), поставьте autoshrink, и база будет уменьшаться автоматически. Когда вы создаёте много схожих баз данных, можно установить параметры для model и тогда, все установки для этой базы данных будут наследоваться вновь созданными. Посмотреть, какие параметры (кроме перечисленных выше) можно настроить для Ваших баз данных, Вы можете с помощью sp_dboption. Список всех баз можно получить от sp_helpdb, а указание в качестве параметра этой процедуры имени базы данных позволит получить только для неё: размер, владельца, sid, дату создания, параметры, список файлов. Если Вас заинтересует, сколько места занимает база или её журнал на диске, используйте sp_spaceused [имя-объекта]. Законы Мэрфи для баз данных 1. Если Вы создали новую базу данных, набили её данными, привязали к ней пользователей и т.д., тут же выяснится, что структуру и состав данных надо менять. 2. Если вы запланировали объём базы данных на ближайшую перспективу и, исходя из этого, рассчитали требуемое дисковое пространство, не показывайте цифры шефу, пока не умножите их на два (а лучше на три - с учётом поправки на Microsoft). Помните, дискового пространства для данных не бывает много. Отрезок времени, на который Вы рассчитали время стопроцентной утилизации дискового пространства вашими данными, нужно поделить на два. После этого, поделите на три то время, которое Вы считаете можно жить спокойно. Поэтому, давайте сразу рассмотрим, как вносить изменения в базу данных: Поскольку, самым злейшим врагом любой современной СУБД является рост файлов данных, научимся управлять этим процессом. В предыдущих номерах мы уже (слегка) касались этой темы. Разумеется, можно разрешить файлу расти автоматически. После этого, Вам придётся, возможно, только изредка, поглядывать на остаток дискового пространства на той/тех дисковой системе, где у Вас положен файл/файлы данных. Здесь, оптимальным кажется получение неких алармов при уменьшении пространства до некоего порогового значения. Можно просто контролировать заполнение файлов и, при необходимости (если не прозеваете) увеличивать их вручную. А если у Вас уже не осталось места или нет денег на RAID, можно прицепить к основному файлу вспомогательный на дополнительном диске или массиве. Все эти возможности доступны через MS SQL SEM или через оператор ALTER DATABASE. Для автоматизации процесса, Вам потребуется задать некоторый набор параметров, не всегда обязательных. Это могут быть: начальный размер, максимальный размер, величина приращения. Мы уже знаем, что если не задавать максимальный размер, файл будет расти, пока не заполонит собой всё, а нулевое приращение не позволяет файлу расти автоматически. Отказ от автоматики вынудит Вас, в случае увеличения файла, воспользоваться возможностями графического интерфейса Enterprise Manager или освоить синтаксис оператора ALTER DATABASE, краткое описание которого ниже: ALTER DATABASE ИмяБазыДанных {ADD FILE <описание_файла> [TO FILEGROUP имя_файлгруппы] [FOR RESTORE] | ADD LOG FILE <описание_файла> | DROP FILE логическое_имя_файла | CREATE FILEGROUP имя_файлгруппы | DROP FILEGROUP имя_файлгруппы | MODIFY FILE <описание_файла> } Здесь для нас ключевым параметром является MODIFY FILE <описание_файла>. Через него, устанавливая значения для описателей: NAME, FILE NAME, SIZE, MAXSIZE и т.п., можно осуществить обозначенные выше действия. Причём, как Вы, наверное, заметили, безразлично какой файл Вы расширяете, данных или журнала. Единственное отличие (не синтаксическое), в том, что поведение журнала транзакций труднее предсказать. Эта "головная боль", пожалуй, требует отдельного упоминания. Законы Мэрфи для журналов транзакций 1. Расчёт оптимального размера журнала транзакций не поддаётся здравому смыслу. 2. Если кто - либо может, без Вашего ведома, закачать в индексированную таблицу уйму данных, он это сделает. 3. Если Ваша БД может хранить в полях таблиц (или иным образом) большие объекты (изображения, MP3, офисные документы, текстовые данные), то всегда найдётся пользователь, который захочет загрузить свой (несколько гигабайтный) архивчик за один присест. 4. Если прикладное ПО для Вашей базы данных пишет кто - ни будь другой (разумеется, не Вы), помните, ни один программист не знает, что в таких операторах, как INSERT, UPDATE, или DELETE есть предложение WHERE. И даже Гуру в набивании кода, не часто помнят, что предложение WHERE нельзя оставлять в слишком общем виде. 5. Между двумя операторами BEGIN TRNSACTION и COMMIT TRNSACTION программист поместит максимально большое количество кода. Как видите, для журналов "законов" побольше получилось... Остаётся только посочувствовать DBA, у которого набор данных в базе разношёрстный. Тут даже Microsoft разводит форточками в стороны и, стыдливо, отсылает Вас к Performance Monitor, за которым Вы должны неусыпно выслеживать безумства своих юзеров. Названия счётчиков приводить нет смысла, они легко обнаружимы и их не больше, чем пальцев на левой задней ноге марсианина. Если же у Вас с данными всё "тихо", Вы можете просто посматривать на заполненость лог - файла в MS SQL SEM. Но, на всякий случай, держите ухо востро, или временно увеличьте размер журналов, когда: - происходит массовая загрузка по индексу в таблицу, вследствие чего, все вставки/изменения индекса журналируются; - необходимо выполнить изменение текстовых или иных громоздких данных в таблицах посредством операторов WRITETEXT или UPDATETEXT при включённой регистрации изменений с помощью WITH LOG. Если Вы планируете нечто не ординарное, убедитесь, что у Вас хватит места в журнале для всех индексов таблицы, а потом вспомните упомянутые законы Мэрфи. И тогда, считайте, что у Вас дело началось хорошо... Продолжение следует ВОПРОСЫ ПОДПИСЧИКОВ ВОПРОС #1. Есть интересная проблема, с которой мы столкнулись, установив SQL Server: Нужно БД в Access 97 конвертировать в SQL 7. DTS выполняет конвертацию таблиц с ошибками, ссылаясь на 1-ю строку, в которой якобы некорректные символы (хотя все не так). Это происходит только с большими таблицами 300 - 500 тысяч строк. Если БД конвертировать в Access 2000, а потом в SQL, то DTS дает ошибку в последних строках больших таблиц, говоря, что невозможно создать индекс. Если экспортировать данные внутренними средствами Access 2000, то никаких ошибок не выдается, но данные не копируются в БД SQL, а только структура без ключей. Каковы правила переноса больших БД из Access в SQL? Где грабли? Заранее благодарен за ответ. Алексей. ВОПРОС #2. Можно ли поставить MSSQL 2000 Enterprise на Win2k Pro? Он предлагает поставить только клиента, сервер отказывается напрочь. Best regards, Alex ВОПРОС #3. (Продолжение вопроса Нины из #15 рассылки) Вопрос звучал следующим образом: НИНА >Очень нужно решить проблему без переустановки баз master, msdb... НИНА >Кратко предыстория проблемы... На рабочем сервере была запущена НИНА >и полгода успешно функционировала репликация журнала операций. НИНА >Дистрибутивная база размещена на том же сервере. Кроме прочих НИНА >рабочих баз с MSSQL работал SMS- сервер. При установке SP2 мною НИНА >не были остановлены запущенные в это время агенты репликации, и НИНА >не была остановлена работа SMS...Установка SP прошла с ошибкой. НИНА >После этого не запускается агент SNAPSHOT из-за ошибки 21036 НИНА >Another snapshotagent for the subscription(s) is running. НИНА > НИНА >После сравнения трассировок на тестовом и рабочем серверах я нашла НИНА >следующее: НИНА >на тестовом сервере агент запускается дважды (первый раз со значением НИНА >N="Testing connection"). И в дальнейшем все проходит без ошибок. НИНА >На рабочем сервере запуск происходит без этого значения N, и при НИНА >выполнении одной из хранимых процедур утилита DBCC находит НИНА >instance агента, и я получаю ошибку 21036. Реплика не работает во всех НИНА >базах рабочего севера. Перезапуск сервера ничего не дал. НИНА >Может кто-нибудь сталкивался с чем-либо подобным? В порядке уточнения к Вашему вопросу: 1. Пробовали ли Вы повторно установить SP2? НИНА > После установки sp2 блокирована возможность повторной инсталляции и НИНА > деинсталляции. Мне не удалось это. 2. Если агентов запускается два, может одного просто отключить... НИНА > Увы! Агент не запущен. Точнее он пытается запустится и вылетает. НИНА > Причем это происходит даже в тех базах, где никогда не было НИНА > репликации. Я просмотрела содержимое SYSCACHEOBJECTS. В процессе НИНА > запуска агента используются хранимые процедуры из НИНА > XPSTAR.DLL. Проверила её. Дата, размер совпадает с тестовым НИНА > сервером. Пыталась переконфигурировать издателя и дистрибутивную НИНА > базу. Ошибка сохраняется. Предполагаю, что из-за некорректного НИНА > завершения репликации возможно осталась какая-то информация в НИНА > таблицах MSDB. НИНА > Самое неприятное - это работающий на MSSQL SMS. Не знаю насколько НИНА > корректно его база присоединится к переустановленному MSSQL. НИНА > Спасибо. НИНА > Нина ALEX >Средство. ALEX >Самый простой и железный вариант - остановить репликацию и создать ее ALEX >заново. У меня доходило до того, что я просто убирал совсем репликацию ALEX >на сервере-источнике (Tools/Replication/Desable publishing) - никакие ALEX >другие меры не помогали. После этого информация обо всех репликациях ALEX >будет уничтожена, все сервисы остановлены. НИНА > Увы!! Это первое что я сделала. И физически уничтожала НИНА > дистрибутивную базу (хотя она явно никакого отношения к проблеме не НИНА > имеет). Проблема в SP2 установленном некорректно. Просмотрела НИНА > каталог скриптов в инсталляшке SP2. Версию он похоже берет с REGKEY. НИНА > И инсталляция сразу останавливается. В ключе НИНА > HKEY_LOCAL_MACHINE/MICROSOFT/MSSQLserver/MSSQLServer значение НИНА > CurrentVersion= 7.00.623 после SP2. Может перед запуском инсталляции НИНА > SP2 мне сейчас изменить этот номер на старый (знать бы еще-КАКОЙ?). НИНА > SP2 переписывает массу хранимых процедур, в том числе и НИНА > расширенных, при этом он уничтожает базу MSDB, и создает ее НИНА > заново. (Sorry, если я поняла что-то не так из инсталляшки SP2). НИНА > Думаю, что самое простое (и пока не знаю как ) - это надо обмануть НИНА > SP2 и заставить его все установить заново. Может быть у опытных НИНА > админов есть идеи для реализации повторной установки SP2? РАБОТА ДЛЯ DBA (Только пошлите английское резюме) POSITION ID: 024422 EMAIL: dflores@taylormgmt.com WEB: http://taylormgmt.com POSITION ID: 200297 EMAIL: youngk@aviant.com WEB: http://www.aviant.com POSITION ID: 200298 EMAIL: youngk@aviant.com WEB: http://www.aviant.com POSITION ID: 001 EMAIL: SWEST@TROIKATECH.COM WEB: http://www.troikatech.com POSITION ID: WKLNetworkVR EMAIL: Kimberly_Lunn@arcnow.com WEB: http://www.arcnow.com ИНФОРМАЦИЯ АВТОРА РАССЫЛКИ В целях облегчения и оперативности решения Ваших проблем, а также для предоставления подписчикам возможности обсуждать настоящую рассылку и высказывать критические замечания по поводу содержания рассылки публично, открыт *ФОРУМ "MS SQL Server - дело тонкое"*: http://www.netale.net/cgi-bin/mb.cgi?SQLServer-Forum В связи с чем, обращаюсь к нашим уважаемым "ГУРУ" с нижайшей просьбой не оставить мольбы о помощи в этом форуме без внимания и мудрых советов. Для разработчиков прикладного ПО рекомендую оживить своими вопросами и ответами группу новостей на MSDN сервере компании Microsoft, которая на русском языке не пользуется массовым спросом. Может быть потому, что для доступа туда нужно заполнить анкету на три листа. http://www.microsoft.ru/msdn/mhm/newsgroup/newsgroup.asp Для начинающих DBA, могу порекомендовать некоторые ссылки на русскоязычные ресурсы, содержащие статьи нашей тематики: http://document.newmail.ru/db.htm http://www.rusdoc.ru/db.shtml http://www.microsoft.com/rus/support/kbrus.htm http://www.osp.ru/archive/ В последнее время участились вопросы по совместному использованию SQL Server и Windows 2000. Поскольку не все подписчики имеют прямой выход в интернет, я не нашёл ничего лучше, чем перепечатать некоторые FAQ с русского сайта Microsoft (надеюсь они меня за это простят): SQL Server 6.5 и SQL Server 7.0 Зачем мне переходить на Windows 2000? Пользователи SQL Server 6.5 и SQL Server 7.0 получат в результате перехода следующие преимущества: Упрощение администрирования системы. Windows 2000 Server унифицирует и делает проще выполнение задач, связанных с управлением системой, что приводит к снижению временных и денежных затрат на ее поддержку. Службы Microsoft Active Directory(tm) и Windows Management Instrumentation (WMI) - в основе этих улучшений. Дополнительная масштабируемость. SQL Server 7.0 Enterprise Edition (версия для предприятий) под управлением Windows 2000 Advanced Server продемонстрировала 5%-ное улучшение производительности в стандартных тестах приложений SAP по сравнению с системой SQL Server 7.0 Enterprise Edition под управлением Microsoft Windows NT(r) 4.0. Требуется ли какое-либо специальное программное обеспечение для работы SQL Server 6.5 под управлением Windows 2000 Server? Да. Сервисный пакет обновлений SQL Server 6.5 Service Pack 5a необходим для работы SQL Server 6.5 на Windows 2000 Server. SQL Server 2000 На каких операционных системах будет работать SQL Server 2000? SQL Server 2000 оптимизирован для Windows 2000. Вдобавок, возможна работа SQL Server 2000 под управлением Windows NT и Windows 98. Какое влияние оказывает Windows 2000 на свойства SQL Server 2000 как СУБД? При использовании SQL Server 2000 совместно с Windows 2000 Server вы, например, можете воспользоваться службами Active Directory. В случае SQL Server 2000 Active Directory отвечает за хранение свойств всех баз данных, например, описание, алиас, версия, размер базы данных, дата создания последней резервной копии и т.д. Кроме того, SQL Server 2000 обладает дополнительными характеристиками, позволяющими использовать инновации, реализованных производителями аппаратного обеспечения, поддержка которых заложена в семействе серверных продуктов Windows 2000. SQL Server 2000 Enterprise Edition обеспечивает работу систем с 8-ю гигабайтами памяти под управлением Windows 2000 Advanced Server, а также восьмипроцессорные системы. SQL Server 2000 Enterprise Edition также обладает встроенной поддержкой специализированного издания Windows 2000 Datacenter Server и систем с симметричной многопроцессорной архитектурой (до 32-узлов), снабженных оперативной памятью вплоть до 64 Гбайт. Какое влияние оказывает Windows 2000 на отказоустойчивость SQL Server? Windows 2000 Server обеспечивает снижение необходимости осуществлять перезапуск системы, ядро ОС минимизирует число возможных системных ошибок и повышает защищенность системы по отношению к приложениям, неверная работа которых могла бы привести к сбою системы. Windows 2000 Advanced Server обеспечивает возможность непосредственной модернизации Microsoft Cluster Server. Это означает, что в момент модернизации узлов Cluster Server система будет продолжать работать. Каковы основные направления интеграции SQL Server 2000 с Windows 2000? В дополнение к уже упомянутой выше интеграции с Active Directory, SQL Server 2000 обеспечивает улучшенную систему защиты данных, трекинга и анализа производительности и управления благодаря интеграции с Windows 2000. SQL Server 2000 использует свойства делегирования в системе защиты Kerberos Windows 2000 для передачи реквизитов пользователя на удаленные серверы. Мониторинг производительности базы данных может производиться параллельно с прочими задачами мониторинга с помощью консоли администратора Microsoft Management Console. Для обеспечения простоты настройки в среде пользователей ПО различных языковых версий SQL Server 2000 позволяет, например, настроить пользовательский интерфейс, благодаря возможностям, заложенным в многоязыковые версии Windows 2000. Доступные ресурсы рассылки: Каталог http://subscribe.ru/catalog/comp.soft.winsoft.sqlhelpyouself Архив http://subscribe.ru/archive/comp.soft.winsoft.sqlhelpyouself Статистика http://subscribe.ru/stat/comp.soft.winsoft.sqlhelpyouself Форум http://www.netale.net/cgi-bin/mb.cgi?SQLServer-Forum
Вопросы, предложения, коментарии, замечания, критику и т.п.
присылайте Александру на адрес:
MSSQLHelp@pisem.net

http://subscribe.ru/
E-mail: ask@subscribe.ru |
В избранное | ||