Батник на "языке 1С" для клиент серверных баз, скачивает с сайта ИТС нужное обновление, бекапит базу и обновляет. Подойдет как рабочая заготовка для собственных "обновляторов". В текущем виде все работает. Надо только занести свои переменные.
Одной из часто встречающихся причин не оптимальной работы системы является неправильное или несвоевременное выполнение регламентных операций на уровне СУБД. Особенно важно выполнять эти регламентные процедуры в крупных информационных системах, которые работают под значительной нагрузкой и обслуживают одновременно большое количество пользователей. Специфика таких систем в том, что обычных действий, выполняемых СУБД автоматически (на основании настроек) оказывает недостаточно для эффективной работы.
Если в работающей системе наблюдаются какие-либо симптомы проблем с производительностью, следует проверить, что в системе правильно настроены и регулярно выполняются все рекомендуемые регламентные операции на уровне СУБД.
Выполнение регламентных процедур должно быть автоматизировано. Для автоматизации этих операций рекомендуется использовать встроенное средства MS SQL Server: Maintenance Plan. Существуют так же другие способы автоматизации выполнения этих процедур. В настоящей статье для каждой регламентной процедуры дан пример ее настройки при помощи Maintenance Plan для MS SQL Server 2005.
Для MS SQL Server рекомендуется выполнять следующие регламентные операции:
Обновление статистикОчистка процедурного КЭШаДефрагментация индексовРеиндексация таблиц базы данных
Рекомендуется регулярно контролировать своевременность и правильность выполнения данных регламентных процедур.
Обновление статистик
MS SQL Server строит план запроса на основании статистической информации о распределении значений в индексах и таблицах. Статистическая информация собирается на основании части (образца) данных и автоматически обновляется при изменении этих данных. Иногда этого оказывается недостаточно для того, что MS SQL Server стабильно строил наиболее оптимальный план выполнения всех запросов.
В этом случае возможно проявление проблем с производительностью запросов. При этом в планах запросов наблюдаются характерные признаки неоптимальной работы (неоптимальные операции).
Для того, чтобы гарантировать максимально правильную работу оптимизатора MS SQL Server рекомендуется регулярно обновлять статистики базы данных MS SQL.
Для обновления статистик по всем таблицам базы данных необходимо выполнить следующий SQL запрос:
Обновление статистик не приводит к блокировке таблиц, и не будет мешать работе других пользователей. Статистика может обновляться настолько часто, насколько это необходимо. Следует учитывать, что нагрузка на сервер СУБД во время обновления статистик возрастет, что может негативно сказаться на общей производительности системы.
Оптимальная частота обновления статистик зависит от величины и характера нагрузки на систему и определяется экспериментальным путем. Рекомендуется обновлять статистики не реже одного раза в день.
Приведенный выше запрос обновляет статистики для всех таблиц базы данных. В реально работающей системе разные таблицы требуют различной частоты обновления статистик. Путем анализа планов запроса можно установить, какие таблицы больше других нуждаются в частом обновлении статистик, и настроить две (или более) различных регламентных процедуры: для часто обновляемых таблиц и для всех остальных таблиц. Такой подход позволит существенно снизить время обновления статистик и влияние процесса обновления статистики на работу системы в целом.
Запустите MS SQL Server Management Studio и подключитесь к серверу СУБД. Откройте папку Management и создайте новый план обслуживания:
Создайте субплан (Add Sublan) и назовите его «Обновление статистик». Добавьте в него задачу Update Statistics Task из панели задач:
Настройте расписание обновления статистик. Рекомендуется обновлять статистики не реже одного раза в день. При необходимости частота обновления статистик может быть увеличена.
Настройте параметры задачи. Для этого следует два раза кликнуть на задачу в правом нижнем углу окна. В появившейся форме укажите имя базу данных (или несколько баз данных) для которых будет выполняться обновление статистик. Кроме этого вы можете указать для каких таблиц обновлять статистики (если точно неизвестно, какие таблицы требуется указать, то устанавливайте значение All).
Обновление статистик необходимо проводить с включенной опцией Full Scan.
Сохраните созданный план. При наступлении указанного в расписании срока обновление статистик будет запущено автоматически.
Очистка процедурного КЭШа
Оптимизатор MS SQL Server кэширует планы запросов для их повторного выполнения. Это делается для того, чтобы экономить время, затрачиваемое на компиляцию запроса в том случае, если такой же запрос уже выполнялся и его план известен.
Возможна ситуация, при которой MS SQL Server, ориентируясь на устаревшую статистическую информацию, построит неоптимальный план запроса. Этот план будет сохранен в процедурном КЭШе и использован при повторном вызове такого же запроса. Если Вы обновили статистику, но не очистили процедурный кэш, то SQL Server может выбрать старый (неоптимальный) план запроса из КЭШа вместо того, чтобы построить новый (более оптимальный) план.
Таким образом, рекомендуется всегда после обновления статистик очищать содержимое процедурного КЭШа.
Для очистки процедурного КЭШа MS SQL Server необходимо выполнить следующий SQL запрос:
Этот запрос следует выполнять непосредственно после обновления статистики. Соответственно, частота его выполнения должна совпадать с частотой обновления статистики.
Настройка очистки процедурного КЭШа
для (MS SQL 2005)
Поскольку процедурный КЭШ необходимо очищать при каждом обновлении статистики, данную операцию рекомендуется добавить в уже созданный субплан «Обновление статистик». Для этого следует открыть субплан и добавить в его схему задачу Execute T-SQL Statement Task. Затем следует соединить задачу Update Statistics Task стрелочкой с новой задачей.
В тексте созданной задачи Execute T-SQL Statement Task следует указать запрос «DBCC FREEPROCCACHE»:
Дефрагментация индексов
При интенсивной работе с таблицами базы данных возникает эффект фрагментации индексов, который может привести к снижению эффективности работы запросов.
Рекомендуется регулярное выполнение дефрагментации индексов. Для дефрагментации всех индексов всех таблиц базы данных необходимо использовать следующий SQL запрос (предварительно подставив имя базы):
Дефрагментация индексов не блокирует таблицы, и не будет мешать работе других пользователей, однако создает дополнительную нагрузку на SQL Server. Оптимальная частота выполнения данной регламентной процедуры должна подбираться в соответствии с нагрузкой на систему и эффектом, получаемым от дефрагментации. Рекомендуется выполнять дефрагментацию индексов не реже одного раза в день.
Возможно выполнение дефрагментации для одной или нескольких таблиц, а не для всех таблиц базы данных.
Настройка дефрагментации индексов (MS SQL 2005)
В ранее созданном плане обслуживания создайте новый субплан с именем «Дефрагментация индексов». Добавьте в него задачу Reorganize Index Task:
Задайте расписание выполнения для задачи дефрагментации индексов. Рекомендуется выполнять задачу не реже одного раза в неделю, а при высокой изменчивости данных в базе еще чаще – до одного раза в день.
Настройте задачу, указав базу данных (или несколько баз данных) и выбрав необходимые таблицы. Если точно неизвестно, какие таблицы следует указать, то устанавливайте значение All.
Реиндексация таблиц включает полное перестроение индексов таблиц базы данных, что приводит к существенной оптимизации их работы. Рекомендуется выполнять регулярную переиндексацию таблиц базы данных. Для реиндексации всех таблиц базы данных необходимо выполнить следующий SQL запрос:
Реиндексация таблиц блокирует их на все время своей работы, что может существенно сказаться на работе пользователей. В связи с этим реиндексацию рекомендуется выполнять во время минимальной загрузки системы.
После выполнения реиндексации нет необходимости делать дефрагментацию индексов.
В ранее созданном плане обслуживания создайте новый субплан с именем «Дефрагментация индексов». Добавьте в него задачу Rebuild Index Task:
Задайте расписание выполнения для задачи реиндексирования таблиц. Рекомендуется выполнять задачу во время минимальной нагрузки на систему, не реже одного раза в неделю.
Настройте задачу, указав базу данных (или несколько баз данных) и выбрав необходимые таблицы. Если точно неизвестно, какие таблицы следует указать, то устанавливайте значение All.
Реиндексация таблиц базы данных
Необходимо осуществлять регулярный контроль выполнения регламентных процедур на уровне СУБД. Ниже приведен пример контроля выполнения плана обслуживания для MS SQL Server 2005.
Откройте созданный вами план обслуживания и выберите из контекстного меню пункт «View History»:
Откроется окно с протоколом выполнения всех заданных регламентных процедур.
Успешно выполненные задачи и задачи, выполненные с ошибками, будут помечены соответствующими иконками. Для задач, выполненных с ошибками, доступна подробная информация об ошибке.
ФиксированныйМассив, элементами которого могут быть значения перечисленных типов, включая ФиксированныйМассив. ФиксированныйМассив не допускает никаких изменений своего содержимого и может быть сконструирован из объекта типа "Массив";
А если проще, то: Фиксированный массив от того и фиксированный, что не поддается изменению.
Инициализируй массив один раз, помещай в фиксированный и больше не трогай
Запуск исполняемого файла системы 1С:Предприятие 8.x
Помимо запуска путем выбора соответствующей пиктограммы из меню «Пуск —Программы» операционной системы MS Windows, запуск системы 1С:Предприятие 8.x может быть выполнен путем запуска исполняемого файла 1CV8.EXE. Такой запуск может быть произведен, например, при помощи пункта «Выполнить» меню «Пуск» операционной системы MS Windows, или двойным щелчком мыши на имени файла 1CV8.EXE в программе Проводник (Explorer).
В командной строке запуска файла 1CV8.EXE можно указать все необходимые параметры: режим запуска, имя каталога с информационной базой, имя пользовательского каталога, и другие. Если параметры командной строки указаны верно, файл 1CV8.EXE будет запущен в одном из режимов запуска: «1С:Предприятие» или «Конфигуратор» — в зависимости от указанных параметров.
Если при запуске файла 1CV8.EXE обнаружена ошибка в параметрах командной строки, или параметры отсутствуют, то после запуска на экран будет выдан диалог «Запуск 1С:Предприятия». В этом диалоге пользователь может выбрать режим запуска файла 1CV8.EXE, имя информационной базы и другие параметры запуска.
Примеры:
Файловый вариант: "C:\Program Files\1cv82\common\1cestart.exe" ENTERPRISE /F"Путь к базе данных" /N"Имя пользователя" /P"Пароль"
Клиент-серверный вариант: "C:\Program Files\1cv82\common\1cestart.exe" ENTERPRISE /S"НазвСервер\База" /N" Имя пользователя " /P"Пароль"
Если на одном сервере стоит 8.1 и 8.2 (как ставить- тут), то при подключении к базам 8.2 нужно указывать порт сервера(например 1641): "C:\Program Files\1cv82\common\1cestart.exe" ENTERPRISE /S"server-1C:1641\ZUP" /N"EMigachev" /P"12345" "C:\Program Files\1cv82\common\1cestart.exe" ENTERPRISE /S"НазвСервер:1641\База" /N" Имя пользователя" /P"Пароль "
Запуск программы под пользователем и выпопление обработки при открытии: "C:\Program Files\1cv82\8.2.17.235\bin\1cv8s.exe" ENTERPRISE /F "D:\1C\HRM" /N user /P password /Execute "D:\1C\Внешние_обработки_1С\РаботающиеОбработки\РабочийСтол.epf" "C:\Program Files\1cv82\common\1cestart.exe" ENTERPRISE /F "ПУТЬ К ПАПКЕ С БД" /N ПОЛЬЗОВАТЕЛЬ /P ПАРОЛЬ /Execute "C:\\обработка.epf"
Архивация информационной базы 1С "C:\Program Files\1cv82\common\1cestart.exe" DESIGNER /S Server-1C\1C-Work82 /N"Администратор" /P"12345" /DumpIB \\bdc\BackUp\Base.dt
"C:\Program Files\1cv82\common\1cestart.exe» config /S server:1641\82_zup /N Администратор /P zzzz /WA- /Out"c:\Backup\backup.log» -NoT_runcate /DumpIB H:\1S_VIGR\82_zup.dt
Для 8.1:
Для файлового варианта: "C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /F"D:\1C_base\ZUPRAZR" /N"EMigachev" /P"12345"
Для клиент-серверного варианта: "C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /S"server-1C\ZUP" /N"EMigachev" /P"12345"
Если на одном сервере стоит 8.1 и 8.2 (как ставить- тут), то при подключении к базам 8.2 нужно указывать порт сервера(например 1641): "C:\Program Files\1cv82\common\1cestart.exe" ENTERPRISE /S"server-1C:1641\ZUP" /N"EMigachev" /P"12345"
Параметры командной строки
При запуске файла 1CV8.EXE в командной строке могут быть указаны следующие параметры:
Параметры командной строки выбора режима:
CONFIG - запуск системы 1С:Предприятие 8.x в режиме «Конфигуратор»;
ENTERPRISE - запуск системы 1С:Предприятие 8.x в режиме «1С:Предприятие»;
CREATEINFOBASE <connect string> [/AddInList [<имя ИБ>]] - создание информационной базы ( <connect string>
строка, задающая параметры информационной базы, каждый из которых представляет собой фрагмент вида <Имя параметра=><Значение>, где Имя параметра — имя параметра, а Значение — его значение.
Фрагменты отделяются друг от друга символами ';'.
Если значение содержит пробельные символы, то оно должно быть заключено в двойные кавычки (").
Для файлового варианта определен параметр:
File — каталог информационной базы;
Locale — язык (страна), которые будут использованы при создании информационной базы. Допустимые значения такие же как у параметра <Форматная строка> метода Формат. Параметр Locale задавать не обязательно. Если не задан, то будут использованы региональные установки текущей информационной базы.
Для клиент-серверного варианта определены параметры:
Srvr — имя сервера 1С:Предприятия;
Ref — имя информационной базы на сервере;
SQLSrvr — имя SQL сервера;
SQLDB — имя SQL базы данных;
SQLUID — имя пользователя SQL;
SQLPwd — пароль пользователя SQL. Если пароль для пользователя SQL не задан, то данный параметр можно не указывать
SQLYOffs - смещение дат, используемое для хранения дат в SQL Server. Может принимать значения 0 или 2000. Данный параметр задавать не обязательно. Если не задан принимается значение 0.
Locale - язык (страна), (аналогично файловому варианту).
Для всех вариантов определены параметры:
Usr — имя пользователя;
Pwd — пароль
/AddInList - параметр, показывающий, под каким именем добавлять базу в список, если не указан, база не будет добавлена в список. Если не указано имя, используется умолчание, аналогичное интерактивному созданию информационной базы.
Одновременное использование ключей не допускается.
Параметры командной строки для указания параметров запуска:
/@<имя файла> - параметры командной строки записаны в указанном файле
/F<Путь> - путь к информационной базе, если она хранится в файле (имя файла указывать не надо)
/S<Адрес> - адрес информационной базы, хранящейся на сервере 1С:Предприятия 8.x, складывается следующим образом:
<Имя компьютера, работающего сервером приложений>\ <Ссылочное имя информационной базы, известное в рамках сервера 1С:Предприятия 8.x>
/N<Имя> -имя пользователя. Должно быть указано так же, как в списке пользователей, создаваемом в Конфигураторе
/P<Пароль> -пароль пользователя, имя которого указано в параметре /N. Если у пользователя нет пароля, этот параметр можно опустить
/WA- запрет применения Windows-аутентификации при старте Предприятия или Конфигуратора
/WA+ установка обязательного применения Windows-аутентификации при старте 1С:Предприятия или Конфигуратора. Если ключ /WA не указывается, то подразумевается, что используется параметр командной строки /WA+
/AU- запрет вывода вопроса об обновлении текущей версии 1С:Предприятия с административной установки
/AU+ установка вывода вопроса об обновлении текущей версии 1С:Предприятия с административной установки. Если ключ /AU не указывается, то подразумевается, что используется параметр командной строки /AU+
/Out<Имя файла> [-NoT_runcate] - установка файла для вывода служебных сообщений. Если задан ключ –NoT_runcate (через пробел), файл не очищается
/L<Каталог> - указывается каталог локализованных ресурсов интерфейса (например, «RU»)
/DisableStartupMessages -Подавляет стартовые сообщения: «Конфигурация базы данных не соответствует сохраненной конфигурации. Продолжить?»; «Возможностей Вашего компьютера недостаточно для редактирования справки по конфигурации. Для редактирования справки необходимо установить Microsoft Internet Explorer версии 6.0 или выше.»; «Возможностей Вашего компьютера недостаточно для редактирования html-документов, в том числе разделов справки. Для редактирования html-документов необходимо установить Microsoft Internet Explorer версии 6.0 или выше. В данном запуске редактирование html-документов будет недоступно.»
/C<Строка текста> - передача параметра в конфигурацию Параметры командной строки пакетного режима конфигуратора:
/DumpIB<Имя файла> -выгрузка информационной базы в командном режиме
/RestoreIB<Имя файла> - загрузка информационной базы в командном режиме
/DumpCfg<имя cf файла> - сохранение конфигурации в файл
/LoadCfg<имя cf файла> - загрузка конфигурации из файла
/UpdateDBCfg [-WarningsAsErrors] - обновление конфигурации базы данных. Если ключ WarningsAsErrors указан (через пробел), то все предупредительные сообщения будут трактоваться как ошибки
/DumpDBCfg<имя cf файла> - сохранение конфигурации базы данных в файл
/RollbackCfg - возврат к конфигурации базы данных
/CheckModules - выполнить синтаксический контроль
/UpdateCfg<имя cf | cfu файла> - обновление конфигурации, находящейся на поддержке
/IBCheckAndRepair [-ReIndex] [-LogIntergrity] [-RecalcTotals] [-IBCompression] [-TestOnly | [-BadRefCreate | -BadRefClear | -BadRefNone]
[-BadDataCreate | -BadDataDelete] ] - выполнить тестирование и исправление информационной базы
ReIndex - реиндексация таблиц
LogIntergrity - проверка логической целостности
RecalcTotals - пересчет итогов
IBCompression - сжатие таблиц
TestOnly - только тестирование
При наличии ссылок на несуществующие объекты:
BadRefCreate - создавать объекты
BadRefClear - очищать объекты
BadRefNone -не изменять
при частичной потере объектов:
BadDataCreate - создавать объекты
BadDataDelete - удалять объекты
Одновременное использование ключей внутри подгруппы параметров не допускается.
Если команда прошла успешно, возвращает код возврата 0, в противном случае — 1 (101, если в данных имеются ошибки).
После выполнения закрывает систему 1С:Предприятие 8.x.
Параметры командной строки пакетного режима создания файлов поставки и обновления:
/CreateDistributionFiles [-cffile<имя cf файла>] [-cfufile <имя cfu файла> [-f<имя cf файла>|-v<версия дистрибутива>]+] - Создание файлов поставки и обновления
-cffile<имя cf файла> - указание создать дистрибутив
-cfufile<имя cfu файла> - указание создать обновление
-f<имя cf файла> - дистрибутив, включаемый в обновление, задан именем
-v<версия дистрибутива>] - дистрибутив, включаемый в обновление, задан версией
Примечание: группа параметров -f<имя cf файла>|-v<версия дистрибутива> повторяется столько раз, сколько файлов дистрибутивов включается в обновление.
Параметры командной строки режима работы с хранилищем конфигурации:
/DepotF - каталог хранилища
/DepotN - имя пользователя хранилища
/DepotP - пароль пользователя хранилища
/DepotDumpCfg<имя cf файла> [-v<номер версии хранилища>] - сохранить конфигурацию из хранилища в файл (пакетный режим)
-v<номер версии хранилища>
v - номер версии, если номер версии не указан, или равен -1, будет сохранена последняя версия.
/DepotUpdateCfg [-v<номер версии хранилища>] [-revised] - Обновить конфигурацию хранилища из файла (пакетный режим)
-v<номер версии хранилища> - номер версии, если номер версии не указан, или равен -1, будет сохранена последняя версия, если конфигурация подключена к хранилищу, то параметр игнорируется
-revised - получать захваченные объекты, если потребуется. Если конфигурация не подключена к хранилищу, то параметр игнорируется.
Параметры командной строки пакетного режима регистрации 1С:Предприятия 8.x в качестве Automation сервера:
/RegServer - регистрация приложения
/UnregServer - удаление регистрации приложения
После выполнения закрывает систему 1С:Предприятие 8.x.
Если значения параметров включают пробелы (например, путь или имя файла), значения должны быть заключены в кавычки.
Ниже приведены примеры командной строки для запуска системы 1С:Предприятие 8.x: С:\1CV8\BIN\1CV8.EXE ENTERPRISE /FDB
Приведенная командная строка означает, что система 1С:Предприятие 8.x будет запущена в режиме «1С:Предприятие», а информационная база находится в подкаталоге «\DB» каталога «С:\1CV8\BIN».
С:\1cv81bin\1cv8.exe enterprise /s Serv06\ZUP /L RU
А эта приведенная командная строка означает, что система 1С:Предприятие 8.x будет запущена в режиме «1С:Предприятие», адрес информационной базы ZUP, хранящейся на сервере 1С:Предприятия Serv06 и интерфейс Русский
Для снятия блокировки установки соединений с информационной базой нужно:
Войти в информационную базу, используя параметр запуска "/UC" с тем же кодом разрешения доступа, который был указан при установке блокировки. Запустить данную обработку, указав в качестве действия блокировки "Снять блокировку соединений". Нажать кнопку "Выполнить".
в cmd start C:\Progra~1\1cv81\bin\1cv8.exe /UC <код доступа>
в ярлыке "C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /F"D:\Конфигурации\Типовые\УпрТорг" /N"ИмяПользователя" /P"Пароль" /UC 456743