MS SQL » История » Версия 3
Всеволод Дорофеев, 23.04.2017 09:37
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> |