Вопросы, сопутствующие внедрению клиент-серверного варианта 1С:Предприятие 8


черновик статьи от 4 августа 2007
Гилёв Вячеслав aka Demiurg
присылайте предложения по
содержанию статьи на
gilev_slava@mail.ru

Спасибо Антону Батыркину за корректирование контента!

Почему не рекомендуется выполнять установку на контроллер домена 1С:Предприятие 8 и MS SQL Server

Существуют несколько особенностей для серверов Windows Server с использованием роли контроллера домена, которые создают препятствия  для эффективной работы серверов 1С:Предприятие 8.1 и MS SQL Server:
1) Повышенные требования безопасности, в том числе отсутствие локальных учетных записей, используемых кластером приложений.
2) Низкое быстродействие дисковой подсистемы. Контроллер домена (DC) отключает кэширование записи на физ. диск, что ухудшает производительность.

Что такое Enterprise Manager?

SQL Server Enterprise Manager – это основное средство администрирования сервера и баз данных SQL Server 2000. Запустите его Start – All Programs – Microsoft SQL Server – Enterprise Manager.

Что такое QA?

QA - Query Analyzer - приложение для работы с базами данных SQL на языке Transact SQL. Чтобы запустить Query Analyzer, выберите пункт меню "Программы - Microsoft SQL Server - Query Analyzer" или запустите из SQL Server Enterprise Manager через меню Tools. Другим способом является запуск через командную строку, выполнив "Пуск - Выполнить - isqlw.exe". Для открытия нового окна запроса в Query Analyzer достаточно щелкнуть на панели инструментов, на кнопке New Query (Создать запрос).
Команды выполняются по нажатию клавиш  F5, Ctrl+E, Alt+X.

Что такое Management Studio?

SQL Server Management Studio – это основное средство администрирования сервера и баз данных в SQL Server 2005, «потомок» Enterprise Manager в SQL Server 2000. Этот инструмент унаследовал функциональность SQL Query Analyzer и Analysis Manager SQL Server 2000.

Для запуска выполните Start – All Programs – Microsoft SQL Server 2005 – SQL Server Management Studio.

Что такое BOL или где можно почитать про MS SQL Server 

Часто в Интернет–пространстве встречается сокращение BOL. BOL - это сокращение от SQL Server Books Online. Т.е. электронная документация, поставляемая вместе с Microsoft SQL Server. Файлы документации могут быть установлены при инсталляции самого Microsoft SQL Server (в составе Client Tools). Электронная документация к MS SQL Server периодически обновляется и ее  можно скачать с сайта microsoft.com.

Ссылка на документацию для SQL Server 2000 (английский) http://www.microsoft.com/downloads/details.aspx?familyid=a6f79cb1-a420-445f-8a4b-bd77a7da194b&displaylang=en

Документация для версии 2000 на русский официально не переводилась.

Ссылка на документацию для SQL Server 2005 (английский) http://www.microsoft.com/technet/prodtechnol/sql/2005/downloads/books.mspx

Ссылка на документацию для SQL Server 2005 (русский) http://msdn2.microsoft.com/ru-ru/library/ms203721.aspx

Где можно получить сервис паки

Обновления можно скачать по данной ссылке
http://www.microsoft.com/technet/prodtechnol/sql/2005/downloads/servicepacks/default.mspx

Как удалить сервер

Описание процедуры удаления сервера приведено на сайте Microsoft
http://support.microsoft.com/?kbid=909967

Команды с префиксом DBCC

http://www.intuit.ru/department/database/sqlserver2000/39/
http://msdn2.microsoft.com/ru-ru/library/ms188796.aspx
В Microsoft SQL Server имеется набор команд, предназначенный для выявления и устранения проблем согласованности в базе данных SQL Server. Для запуска этих команд нужно использовать в качестве префикса строку DBCC. На самом деле "DBCC" означает "database consistency checker" (средство проверки согласованности базы данных). Хотя команды DBCC первоначально разрабатывались как инструменты проверки согласованности, со временем диапазон применения команд DBCC расширился.
В этом приложении приводится список команд DBCC и дается краткое описание каждой команды, что позволяет вам быстро находить нужную команду. В этом приложении не представлены все параметры каждой команды DBCC. Полные инструкции по выполнению этих команд можно найти в SQL Server Books Online.

  • CHECKALLOC. Проверяет размещение и использование всех страниц в указанной базе данных. CHECKALLOC – это подмножество CHECKDB.
  • CHECKCATALOG. Проверяет согласованность в системных таблицах для указанной базы данных.
  • CHECKCOSTRAINTS. Проверяет целостность одного ограничения или всех ограничений по таблице.
  • CHECKDB. Проверяет размещение (строк, страниц и экстентов) и структурную целостность всех объектов в указанной базе данных. Эта команда выявляет и устраняет проблемы, связанные с размещением базы данных и таблицами. На самом деле DBCC CHECKDB проверяет целостность всех элементов в базе данных. Будьте готовы к тому, что для ее выполнения потребуется некоторое время.
  • CHECKFILEGROUP. Проверяет размещение и структурную целостность объектов в указанной группе файлов базы данных. Вы можете использовать эту команду вместо DBCC CHECKDB, если предполагаете, что запорчена только группа файлов, что может произойти из-за отказа оборудования.
  • CHECKIDENT. Проверяет и, если нужно, исправляет текущее значение типа identity для указанной таблицы.
  • CHECKTABLE. Проверяет целостность страниц типа data, index, text, ntext и image для указанной таблицы. Эта команда полезна для проверки таблицы, которая, по вашим предположениям, может быть повреждена.
  • CLEANTABLE. Возвращает пространство, которое раньше использовалось для данных переменной длины типа varchar или данных типа text.
  • CONCURRENCYVIOLATION. Для версий SQL Server Standard Edition и Personal Edition сообщает, когда на сервере одновременно исполняется более пяти пакетов.
  • DBREINDEX Использовалась для переиндексации индексов таблицы. Эта команда уже не поддерживается в SQL Server 2000. Для выполнения этой задачи в Microsoft SQL Server 2000 используйте предложение DROP_EXISTING с командой CREATE INDEX.
  • DBREPAIR. Использовалась для удаления поврежденной базы данных. Эта команда не поддерживается в SQL Server 2000. Вместо нее следует использовать команду DROP DATABASE.
  • dll-имя (FREE). Выгружает из памяти указанную расширенную хранимую DLL-процедуру.
  • DROPCLEANBUFFERS. Удаляет все пустые буферы из буферного пула.
  • FREEEPROCCACHE. Удаляет все элементы из кэша процедур.
  • HELP. Возвращает синтаксис указанного оператора DBCC, что позволяет вам быстро использовать эту команду без обращения к SQL Server Books Online. Задавая имя оператора, не указывайте ключевое слово DBCC.
  • INDEXDEFRAG. Дефрагментирует кластеризованные и вторичные индексы для указанной таблицы.
  • INPUTBUFFER. Выводит на экран последний оператор, переданный в SQL Server пользователем, который связан с указанным идентификатором системного процесса (SPID-номером).
  • MEMUSAGE. Раньше создавал подробный отчет об использовании памяти. Эта команда больше не поддерживается.
  • NEWALLOC. Обеспечивает те же функциональные возможности, что и команда DBCC CHECKALLOC. Эта команда больше не поддерживается.
  • OPENTRAN. Выводит информацию о самой "старой" активной транзакции в базе данных. Это полезно для поиска "зависших" или длительных транзакций.
  • OUTPUTBUFFER. Выводит выходные данные, переданные из SQL Server пользователю, который связан с указанным SPID-номером.
  • PINTABLE. Помечает таблицу как закрепляемую в памяти. Закрепляемая в памяти таблица не освобождает себя из кэш-памяти. Иными словами, она постоянно размещена в кэше и не извлекается из него. Это полезно для небольших таблиц, которые редко используются, но требуют немедленного доступа. Вы должны убедиться, что закрепляемая в памяти таблица не использует слишком много памяти, иначе это окажет нежелательное влияние на другую обработку в SQL Server.
  • PROCCACHE. Выводит информацию о кэше процедур SQL Server. Эта информация может оказаться полезной для оценки эффективности кэша процедур и операторов SQL.
  • ROWLOCK. Использовалась в Microsoft SQL Server 6.5, чтобы активизировать блокировку строк. В SQL Server 2000 это происходит автоматически.
  • SHOWCONTIG. Выводит информацию о фрагментированности данных и индексов в указанной таблице. Сильно фрагментированный индекс следует создать заново. Сильно фрагментированную таблицу следует экспортировать и затем импортировать назад в базу данных.
  • SHOW_STATISTICS. Выводит статистику для указанного элемента в указанной таблице. Именно эта статистика используется оптимизатором запросов.
  • SHRINKDATABASE. Уплотняет файлы, связанные с указанной базой данных. Для выполнения этой задачи рекомендуется использовать параметр autoshrink процедуры sp_dboption.
  • SHRINKFILE. Уплотняет указанный файл. Это может быть файл данных или файл журнала.
  • SQLPERF. Предоставляет информацию об использовании пространства для журнала транзакций во всех базах данных. Использование этой команды для слежения за использованием пространства файлов журнала полезно для планирования мощности и состава системы.
  • TEXTALL. Использовалась для проверки согласованности таблиц, содержащих колонки типа text, ntext и image. В SQL Server 2000 ту же задачу выполняют DBCC CHECKDB и CHECKTABLE. Однако вместо DBCC TEXTALL рекомендуется использовать DBCC CHECKDB.
  • TEXTALLOC. Использовалась для проверки согласованности таблиц, содержащих колонки типа text, ntext и image. В SQL Server 2000 ту же задачу выполняют DBCC CHECKDB и CHECKTABLE. Однако вместо DBCC TEXTALLOC рекомендуется использовать DBCC CHECKTABLE. DBCC TEXTALL раньше запускала DBCC TEXTALLOC.
  • TRACEOFF. Сбрасывает указанный флаг или флаги трассировки SQL Server.
  • TRACEON. Активизирует указанный флаг или флаги трассировки SQL Server.
  • TRACESTATUS. Выводит состояние указанного флага или флагов трассировки SQL Server.
  • UNPINTABLE. Помечает ранее закрепленную в памяти таблицу как незакрепленную. После этого таблица рассматривается в кэше как любая другая таблица.
  • UPDATEUSAGE. Выводит и исправляет неточности в таблице sysindexes. Эти неточности могут приводить к тому, что sp_spaceused будет возвращать неверные данные.
  • USEROPTIONS. Возвращает состояние операций оператора SET, заданных для текущего соединения. Это подходит только для текущего соединения.

Таблица определений объектов MS SQL Server

Объект БД

Описание

Таблица
Table

Таблица состоит из строк и столбцов данных аналогично электронной таблице. Каждая строка таблицы представляет уникальную запись, каждый столбец – отдельное поле записи. Тип данных указывает, данные какого типа могут храниться в столбце.

Представление
View

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

Индекс
Index

Индекс – это структура, связанная с  таблицей или представлениями, повышающая скорость выборки записей из таблицы. Индексы в таблице могут быть кластерными или не кластерными. При наличии кластерного индекса данные таблицы физически упорядочиваются на основании значений ключа индекса.

Ключ
Key

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

Пользовательские типы данных
User-Defined Data Type

Создаются пользователями. Этот тип данных определен на одном из встроенных типов данных SQL Server. Пользовательский тип данных позволяет сделать структуру таблиц более ясной для программистов. Кроме того, он гарантирует, что столбцы, которые содержат схожие классы данных, имеют один и тот же базовый тип.

Хранимые процедуры
Stored Procedure (SP)

Хранимая процедура представляет собой набор операторов Transact-SQL, скомпилированных в один план выполнения. Процедуры используются для оптимизации производительности и управления правами доступа. Сходна с макросом тем, что сохраняется под отдельным именем. Запустив хранимую процедуру, вы по сути выполняете код Transact -SQL, сохраненный под ее именем.

Ограничения
Constraints

Ограничения определяют правила, задающие допустимые значения для величин, хранящихся в полях таблиц. Ограничения являются стандартным механизмом поддержки целостности базы данных.

Значения по умолчанию
Default

Значения по умолчанию определяют, какие значения будут подставлены в поле текущей записи в данном столбце, если при вводе данных значение в этом поле будет пропущено.

Триггер
Trigger

Триггеры – это особый вид хранимых процедур, автоматически выполняемых при исполнении оператора Update, Insert или Delete над данными таблицы или представления.

Пользовательские функции
User-Defined function

Пользовательские функции – это программы, состоящие из одной или нескольких функций, выполняющих операторы Transact-SQL, похожи на код хранимой процедуры. Функции применяются для инкапсуляции кода с целью повторного его использования.
Например, вы можете создать функцию, которая будет изменять данные в столбце, представленные в числовом формате.

Как лучше размесить файлы информационной базы 1С:Предприятие на MS SQL Server

Файл базы данных рекомендуется размещать на отдельном внешнем RAID массиве (5 или 10 для баз, 0 - для базы tempdb, которая кстати заново создается при каждом новом старте СУБД)
На жестком диске, где находятся файлы базы данных должно быть как минимум в 2,5 раза больше места чем размер самой базы данных. Это связано с административными работами с базой данных (перестроением индексов и т.п.).
Нежелательно при создании базы данных указывать автоприращение размера файлов базы, потому что это приведет к фрагментации файлов базы данных. Не размещайте файлы базы данных на диске, на котором установлена система или исполняемые файлы SQL Server. Особенно не рекомендуется размещать файлы базы данных на том же диске, где установлен контроллер домена. Это связано с тем, что по умолчанию, система для диска на котором находится каталог базы Active Directory (по умолчанию это C:\Windows\NTDS), отключает кеширование на запись. И наконец, ни в коем случае не размещайте файлы базы данных на зашифрованном или сжатом средствами NTFS диске - это приведет к значительному снижению производительности.


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

* второй RAID-массив;
* отдельный физический диск (набор дисков) на том же RAID-массиве, что и файлы базы данных;
* два обычных (желательно SATA) дисков в зеркальном отношении друг к другу (точная копия);
* обычный отдельный диск;
* тот же диск, на котором размещены файлы базы данных.

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

Инструменты работы с MS SQL Server 2000

Графические утилиты

Описание

SQL Server Enterprise Manager

Основное средство администрирования сервера и БД, в состав которого входит интегрируемый графический интерфейс  Microsoft Management Console (MMC)

SQL Query Analyzer

Используется для создания и управления объектами БД и интерактивного тестирования операторов, пакетов и сценариев, написанных на Transact-SQL

SQL Profiler

Используется для мониторинга и перехвата определенных событий SQL Server 2000 с целью последующего анализа и воспроизведения

SQL Server Manager

Приложение, представленное значком в панели задач, позволяющее запустить, приостановить выполнение, завершить работу, а также изменить конфигурацию служб из состава  SQL Server 2000

Client Network Utility

Используется для настройки параметров клиентских сетевых библиотек (Net-Libraries), а также для создания псевдонимов, включающих настраиваемые параметры подключения к серверам

Server Network Utility

Используется для настройки параметров серверных сетевых библиотек (Net-Libraries), в том числе для включения шифрования с использованием протокола SSL

 

Утилиты командной строки

Описание

Osql

Позволяет создавать и передавать SQL Server 2000 интерактивные запросы, состоящие из операторов transact-SQL, системные процедуры и файлы сценариев

Scm

Позволяет запускать, завершать работу, приостанавливать работу, устанавливать на компьютер, удалять и конфигурировать службы SQL Server 2000. Кроме того, позволяет запускать, останавливать или временно приостанавливать работу SQL Server, работающего как отдельное приложение

Sqldiag

Собирает и сохраняет данные диагностики, ускоряя и упрощая процесс сбора информации службами Microsoft Product Support Services, по умолчанию расположенный в папке \mssql\log.

Bcp

Позволяет в пользовательском формате копировать данные из SQL Server 2000 в текстовый файл или из файла

Dtsrun

Позволяет выполнять DTS - пакеты

Sqlmaint

Выполняет определенный администратором план сопровождения

 

Инструменты работы с MS SQL Server 2005

Графические утилиты

Описание

SQL Server Management Studio

Основное средство администрирования сервера и БД, «потомок» SQL Server Enterprise Manager, но вобравший в себя также функциональность SQL Query Analyzer и Analysis Manager 2000-й версии)

SQL Server Configuration Manager

Объединяет в себе утилиты Server Network Utility, Client Network Utility и Service Manager от предыдущих версий (sqlwb)

Business Intelligence Development Studio

Разработка объектов для бизнес - анализа и управления ими. Включает в себя конструктор пакетов SSIS Designer для использования службой интеграции SQL Server 2005. Для целей 1С:Предприятие 8 не используется.

Database Tuning Adviser

Оптимизация производительности при работе с базами данных SQL Server

SQL Server Profiler

Анализ действий пользователей и запись их в журналы аудита. Является графическим интерфейсом к трассировщику SQL Trace.

SQL Server Import and Export Configuration Manager

Создание пакетов SSIS для импорта и экспорта данных

Report Manager

Управление отчетами, которые генерируются службой отчетов

 

Утилиты командной строки

Описание

Sqlcmd

Позволяет создавать и передавать SQL Server 2000 интерактивные запросы, состоящие из операторов Transact-SQL, системные процедуры и файлы сценариев. В отличии от предшественником Osql и Isql обращения к серверу происходят через OLE DB.

Dta

Анализирует загрузку и дает рекомендации по ее оптимизации

dtexec

Настраивает и выполняет пакет SSIS. Графическим аналогом является DTExecUI

Bcp

Импортирует и экспортирует данные и копирует их между экземплярами SQL Server

Dtutil

Управляет пакетами SSIS

nscontrol

Создает экземпляры службы сообщений

Profiler90

Запускает SQL Server Profiler из командной строки

RS

Выполняет сценарии службы отчетов

Rsconfig

Настраивает соединения с сервером отчетов

Rskeymgmnt

Управляет ключами шифрования сервера отчетов

Sac

Импортирует и экспортирует настройки конфигурации площади возможных атак на сервер

Sqlagent90

Запускает службу агента сервера из командной строки

Sqlmaint

Выполняет планы обслуживания баз данных, созданные в предыдущих версиях

Tablediff

Сравнивает данных двух таблиц и отображает разницу между ними

Перемещение  системной базы tempdb в MS SQL Server

TEMPDB представляет собой системную базу данных Microsoft SQL Server, в которой хранятся временные таблицы, созданные как самим сервером, так и пользователями. Эта база данных создается заново при каждом перезапуске Microsoft SQL Server. По умолчанию размер этой базы данных неограничен и увеличение его осуществляется при необходимости автоматически, порциями по 10% от текущего размера TEMPDB. Однако эти параметры могут быть переопределены пользователем. По умолчанию, минимальный размер этой базы данных, который устанавливается при старте Microsoft SQL Server, определяется размером системной базы данных MODEL. Очистка журнала транзакций в этой базе данных производится автоматически, при этом удаляются только неактивные записи журнала транзакций.
При работе 1С:Предприятия 8.1 в режиме клиент-сервер используются временные таблицы и переменные table. Кроме того, TEMPDB используется Microsoft SQL Server при выполнении запросов, использующих операторы GROUP BY, UNIONDISTINCT  и т.п.
Проблема:
В процессе работы 1С:Предприятия 8.1 возможно значительное увеличение размера базы данных TEMPDB. Если размер диска, на котором расположена база данных TEMPDB, окажется недостаточным, работа 1С:Предприятия 8.1 может завершиться аварийно.
Решение:
Если эта проблема проявляется регулярно, то рекомендуется переместить TEMPDB на другой диск большего размера.
Эту операцию можно выполнить следующим способом:
определить логические имена файлов базы данных TEMPDB (колонка "NAME" результата выполнения процедуры). Для этого нужно в Query Analyzer выполнить следующую команду:

USE tempdb
GO
EXEC sp_helpfile
GO
изменить месторасположение файлов базы данных TEMPDB с помощью команды ALTER DATABASE. Для этого нужно в Query Analyzer выполнить следующую последовательность команд:
USE master
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev, FILENAME = 'Новый_Диск:\Новый_Каталог\tempdb.mdf')
GO
ALTER DATABASE  tempdb
MODIFY FILE (NAME = templog, FILENAME = 'Новый_Диск:\Новый_Каталог\templog.ldf')
GO
Перезапустить Microsoft SQL Server.
Смотрите также Перестройка индексов в MS SQL Server 2005
Смотрите также Советы от разработчиков 1С

Как поменять владельца базы данных

Доступ к базе из 1С возможен только под учетной записью владельца базы. Для того чтобы поменять владельца, надо выполнить следующий скрипт:
use base1c
EXEC sp_changedbowner 'user1c'
где base1c - имя базы данных, user1c - имя пользователя, который должен стать владельцем базы.

SQL Server Profiler

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

1. Пошаговое выполнение проблемных запросов для поиска источника проблемы;
2. Выявление и диагностика медленно работающих запросов;
3. Перехват серии инструкций Transact-SQL, ведущих к проблеме. Сохраненную трассировку затем можно использовать для моделирования и диагностики проблемы на тестовом сервере;
4. Контроль производительности SQL Server для настройки рабочих нагрузок;
5. Анализ счётчиков производительности для диагностики проблем.

SQL Server Profiler также поддерживает аудит действий, выполняемых в экземплярах SQL Server. В ходе аудита ведётся запись действий, связанных с безопасностью, для дальнейшего просмотра администратором безопасности.

Database Engine Tuning Advisor

Помощник по настройке ядра СУБД - новое средство в службах Microsoft SQL Server 2005, позволяющий настраивать базы данных для повышения скорости обработки запросов. Помощник по настройке ядра СУБД выявляет, каким образом запросы обрабатываются в указанных пользователем базах данных, а затем выдает рекомендации по повышению скорости обработки запросов путем изменения структур физического проектирования, таких как индексы, индексированные представления и секции.

Присылайте вопросы, которые Вы бы хотели увидеть освещенными здесь на gilev_slava@mail.ru

Вернуться к списку статей

Copyright © 2007 Гилёв Вячеслав Валерьевич