MS SQL » История » Версия 4
Всеволод Дорофеев, 23.04.2017 09:40
| 1 | 2 | Всеволод Дорофеев | h1. MS SQL - регламентные задачи |
|---|---|---|---|
| 2 | 2 | Всеволод Дорофеев | |
| 3 | 2 | Всеволод Дорофеев | https://its.1c.ru/db/metod8dev#content:5837:hdoc |
| 4 | 2 | Всеволод Дорофеев | |
| 5 | 2 | Всеволод Дорофеев | h3. Обновление статистик |
| 6 | 2 | Всеволод Дорофеев | |
| 7 | 2 | Всеволод Дорофеев | <pre> |
| 8 | 2 | Всеволод Дорофеев | exec sp_msforeachtable N'UPDATE STATISTICS ? WITH FULLSCAN' |
| 9 | 2 | Всеволод Дорофеев | </pre> |
| 10 | 2 | Всеволод Дорофеев | |
| 11 | 2 | Всеволод Дорофеев | Оптимальная частота обновления статистик зависит от величины и характера нагрузки на систему и определяется экспериментальным путем. Рекомендуется обновлять статистики *не реже одного раза в день*. |
| 12 | 2 | Всеволод Дорофеев | |
| 13 | 2 | Всеволод Дорофеев | h3. Очистка процедурного КЭШа |
| 14 | 2 | Всеволод Дорофеев | |
| 15 | 2 | Всеволод Дорофеев | <pre> |
| 16 | 2 | Всеволод Дорофеев | DBCC FREEPROCCACHE |
| 17 | 2 | Всеволод Дорофеев | </pre> |
| 18 | 2 | Всеволод Дорофеев | |
| 19 | 2 | Всеволод Дорофеев | Этот запрос следует выполнять непосредственно после обновления статистики. Соответственно, частота его выполнения должна совпадать с частотой обновления статистики. |
| 20 | 2 | Всеволод Дорофеев | |
| 21 | 2 | Всеволод Дорофеев | h3. Дефрагментация индексов |
| 22 | 2 | Всеволод Дорофеев | |
| 23 | 2 | Всеволод Дорофеев | <pre> |
| 24 | 2 | Всеволод Дорофеев | sp_msforeachtable N'DBCC INDEXDEFRAG (<имя базы данных>, ''?'')' |
| 25 | 2 | Всеволод Дорофеев | </pre> |
| 26 | 2 | Всеволод Дорофеев | |
| 27 | 2 | Всеволод Дорофеев | Рекомендуется выполнять дефрагментацию индексов не реже одного раза в неделю. |
| 28 | 2 | Всеволод Дорофеев | |
| 29 | 2 | Всеволод Дорофеев | h3. Реиндексация таблиц базы данных |
| 30 | 2 | Всеволод Дорофеев | |
| 31 | 2 | Всеволод Дорофеев | <pre> |
| 32 | 2 | Всеволод Дорофеев | sp_msforeachtable N'DBCC DBREINDEX (''?'')' |
| 33 | 2 | Всеволод Дорофеев | </pre> |
| 34 | 2 | Всеволод Дорофеев | |
| 35 | 2 | Всеволод Дорофеев | Реиндексация таблиц блокирует их на все время своей работы, что может существенно сказаться на работе пользователей. В связи с этим реиндексацию рекомендуется выполнять во время минимальной загрузки системы. |
| 36 | 2 | Всеволод Дорофеев | После выполнения реиндексации нет необходимости делать дефрагментацию индексов. |
| 37 | 3 | Всеволод Дорофеев | |
| 38 | 3 | Всеволод Дорофеев | |
| 39 | 3 | Всеволод Дорофеев | h1. Сброс пароля в 1с (MSSQL/PostgreSQL) |
| 40 | 3 | Всеволод Дорофеев | |
| 41 | 3 | Всеволод Дорофеев | |
| 42 | 3 | Всеволод Дорофеев | Бывают случаи когда БД работает в серверном варианте, при этом есть доступ на SQL Server, а пароль от пользователя 1С с полными права потерян, в этом случае возможно снять пароль способом который описан ниже. |
| 43 | 3 | Всеволод Дорофеев | Итак, поехали. |
| 44 | 3 | Всеволод Дорофеев | Платформа 1С при работе на SQL Server хранит список пользователей в двух местах, а именно в таблице v8users и в файле users.usr который бинарно расположен в таблице Params. |
| 45 | 3 | Всеволод Дорофеев | Теперь попробуем заставить платформу думать что в базе нет ни одного пользователя. Для этого необходимо всего навсего переименовать таблицу v8users и строчку с файлом users.usr. Открываем SQL Server Management Studio логинимся и создаем запрос к базе данных с содержанием: |
| 46 | 3 | Всеволод Дорофеев | |
| 47 | 3 | Всеволод Дорофеев | <pre> |
| 48 | 3 | Всеволод Дорофеев | EXEC sp_rename ‘v8users’, ‘v8users_old’ |
| 49 | 3 | Всеволод Дорофеев | GO |
| 50 | 3 | Всеволод Дорофеев | UPDATE Params |
| 51 | 3 | Всеволод Дорофеев | SET FileName = ‘users.usr_old’ |
| 52 | 3 | Всеволод Дорофеев | WHERE FileName = ‘users.usr’ |
| 53 | 3 | Всеволод Дорофеев | GO |
| 54 | 3 | Всеволод Дорофеев | </pre> |
| 55 | 3 | Всеволод Дорофеев | |
| 56 | 3 | Всеволод Дорофеев | После этого открываем базу данных в конфигураторе и видим что платформа не спрашивает пользователя и пароль, при этом в SQL Server будет заново создана таблица v8users. Теперь чтобы всех пользователей вернуть обратно не закрывая конфигуратора выполним в SQL Server Management Studio запрос: |
| 57 | 3 | Всеволод Дорофеев | |
| 58 | 3 | Всеволод Дорофеев | <pre> |
| 59 | 3 | Всеволод Дорофеев | DROP TABLE v8users |
| 60 | 3 | Всеволод Дорофеев | GO |
| 61 | 3 | Всеволод Дорофеев | EXEC sp_rename ‘v8users_old’, ‘v8users’ |
| 62 | 3 | Всеволод Дорофеев | GO |
| 63 | 3 | Всеволод Дорофеев | UPDATE Params |
| 64 | 3 | Всеволод Дорофеев | SET FileName = ‘users.usr’ |
| 65 | 3 | Всеволод Дорофеев | WHERE FileName = ‘users.usr_old’ |
| 66 | 3 | Всеволод Дорофеев | GO |
| 67 | 3 | Всеволод Дорофеев | </pre> |
| 68 | 3 | Всеволод Дорофеев | |
| 69 | 3 | Всеволод Дорофеев | После выполнения запроса в списке пользователей появяться все пользователи 1С, останеться только найти нужного и изменить ему пароль. |
| 70 | 3 | Всеволод Дорофеев | |
| 71 | 3 | Всеволод Дорофеев | Для PostgreSQL открываем pgAdminIII и выполняем: |
| 72 | 3 | Всеволод Дорофеев | |
| 73 | 3 | Всеволод Дорофеев | <pre> |
| 74 | 3 | Всеволод Дорофеев | ALTER TABLE v8users RENAME TO v8users_old; |
| 75 | 3 | Всеволод Дорофеев | UPDATE Params SET FileName = ‘users.usr_old’ WHERE FileName = ‘users.usr’; |
| 76 | 3 | Всеволод Дорофеев | </pre> |
| 77 | 3 | Всеволод Дорофеев | |
| 78 | 3 | Всеволод Дорофеев | Заходим в конфигуратор без пароля и выполняем в pgAdminIII: |
| 79 | 3 | Всеволод Дорофеев | |
| 80 | 3 | Всеволод Дорофеев | <pre> |
| 81 | 3 | Всеволод Дорофеев | DROP TABLE v8users; |
| 82 | 3 | Всеволод Дорофеев | ALTER TABLE v8users_old RENAME TO v8users; |
| 83 | 3 | Всеволод Дорофеев | UPDATE Params SET FileName = ‘users.usr’ WHERE FileName = ‘users.usr_old’; |
| 84 | 3 | Всеволод Дорофеев | </pre> |
| 85 | 4 | Всеволод Дорофеев | |
| 86 | 4 | Всеволод Дорофеев | |
| 87 | 4 | Всеволод Дорофеев | h3. Определение версии MS SQL |
| 88 | 4 | Всеволод Дорофеев | |
| 89 | 4 | Всеволод Дорофеев | <pre> |
| 90 | 4 | Всеволод Дорофеев | SELECT SERVERPROPERTY('Edition') |
| 91 | 4 | Всеволод Дорофеев | UNION ALL |
| 92 | 4 | Всеволод Дорофеев | SELECT SERVERPROPERTY('ProductVersion') |
| 93 | 4 | Всеволод Дорофеев | UNION ALL |
| 94 | 4 | Всеволод Дорофеев | SELECT SERVERPROPERTY('ProductLevel'); |
| 95 | 4 | Всеволод Дорофеев | </pre> |