Последовательно выполните действия:
Отключение пользователей от базы данных
Если к моменту восстановления БД к базе будут подключены пользователи, необходимо их отключить. Чтобы отключить пользователей:
1. | Запустите в SQL Server Management Studio монитор активности. Для этого на панели инструментов нажмите на кнопку Activity Monitor. |
2. | Выберите для каждого пользователя пункт контекстного меню Kill Process. |
|
Установка запрета на работу с базой данных
1. | В SQL Server Management Studio откройте окно свойств базы данных с помощью пункта контекстного меню Properties. |
2. | На странице «Options» в группе «State» для параметра Restrict Access установите значение RESTRICTED_USER. |
|
Создание копии исходной базы данных
Создайте новую базу данных копированием вашей рабочей базы (в данном примере DIRECTUM_T). Дальнейшие действия будут проводиться с данной базой.
|
Удаление таблиц, схема которых не dbo
1. | Выберите базу данных DIRECTUM_T. На закладке «Object Explorer Details» откройте папку «Tables»: |
2. | Отсортируйте открывшийся список таблиц по полю Schema: |
3. | Выделите таблицы, для которых значение поля Schema не равно dbo. |
4. | В контекстном меню выберите пункт Delete. |
|
Генерация структуры исходной базы данных
1. | Удалите в базе данных DIRECTUM_T все триггеры на таблицах с помощью запроса: |
DECLARE @nametr sysname
DECLARE trigger_cursor CURSOR FOR
select
name
from
sysobjects
where
xtype = 'TR'
OPEN trigger_cursor;
FETCH NEXT FROM trigger_cursor
INTO @nametr
WHILE @@FETCH_STATUS = 0
BEGIN
exec('DROP TRIGGER [dbo].['+@nametr+']')
FETCH NEXT FROM trigger_cursor
INTO @nametr
END
CLOSE trigger_cursor
DEALLOCATE trigger_cursor
2. | Для сохранения порядка присваивания номеров новым записям справочников в новой базе данных выполните запрос: |
declare @TableName nvarchar(50)
declare @SqlCmd nvarchar(500)
declare @LastSeedVal bigint
-- Список таблиц
declare tbl_name_list_cursor cursor
for
select name
from sys.tables
where name like 'SBSequence%'
open tbl_name_list_cursor
fetch next from tbl_name_list_cursor into @TableName
-- Цикл по списку таблиц
while @@FETCH_STATUS = 0
begin
-- Получить последнее значение identity-поля
set @LastSeedVal = ident_current(@TableName) + 1
-- Удалить identity-столбец таблицы и добавить его с новым значением seed
set @SqlCmd = '
alter table [' + @TableName + '] drop column [Ident]
alter table [' + @TableName + '] add [Ident] [bigint] IDENTITY(' + Convert(nvarchar(20), @LastSeedVal) + ', 1) NOT NULL'
exec sp_executesql @SqlCmd
fetch next from tbl_name_list_cursor into @TableName
end
close tbl_name_list_cursor
deallocate tbl_name_list_cursor
3. | Выберите базу данных DIRECTUM_T и запустите генерацию скриптов. Для этого в контекстном меню последовательно выберите пункты Tasks, Generate Scripts. Откроется окно приветствия. |
4. | Нажмите на кнопку Next>. Откроется окно «Select Database». |
5. | Выберите базу данных DIRECTUM_T и нажмите на кнопку Next>. Откроется окно «Choose Script Options»: |
• | в поле Include if NOT EXISTS установите значение True; |
• | в поле Script Create установите значение True; |
• | в поле Script Drop установите значение True; |
• | в поле Script for Server Version установите значение SQL Server <версия SQL-сервера, на который переносятся данные>; |
• | в поле Script Statistics установите значение Do not script statistics; |
• | в поле Script USE DATABASE установите значение True; |
• | значения остальных полей изменять не нужно. |
7. | Нажмите на кнопку Next>. Откроется окно «Choose Object Types». |
8. | Установите флажок Tables и нажмите на кнопку Next>. Откроется окно «Choose Tables». |
9. | Установите флажки во всех полях таблицы с помощью кнопки Select All. Нажмите на кнопку Next>. Откроется окно «Output Option»: |
• | установите переключатель в положение Script to file; |
• | в поле File name задайте имя файла tables.sql; |
• | в группе Files to generate установите переключатель в поле Single file; |
• | в группе «Save as» установите переключатель в поле Unicode text. |
11. | Нажмите на кнопку Next>. Откроется окно «Script Wizard Summary». |
12. | Проверьте значения всех выбранных параметров и нажмите на кнопку Finish. Откроется окно «Generate Script Progress», в котором отображается процесс генерации структуры данных. |
13. | По окончании процесса генерации скрипта нажмите на кнопку Close. |
|
Генерация индексов и первичных ключей исходной базы данных
1. | Выберите базу данных DIRECTUM_T и запустите генерацию скриптов. Для этого в контекстном меню последовательно выберите пункты Tasks, Generate Scripts. Откроется окно приветствия. |
2. | Нажмите на кнопку Next>. Откроется окно «Select Database». |
3. | Выберите базу данных DIRECTUM_T и нажмите на кнопку Next>. Откроется окно «Choose Script Options»: |
4. | Заполните поля. Для большинства полей необходимо установить значение False, поэтому удобно выбрать False во всех полях и затем изменить значение отдельных полей на нужное: |
• | в поле Include If NOT EXIST установите значение True; |
• | в поле Script Check Constraints установите значение True; |
• | в поле Script Create установите значение True; |
• | в поле Script for Server Version установите значение SQL Server <версия SQL-сервера, на который переносятся данные>; |
• | в поле Script Indexes установите значение True; |
• | в поле Script Primary Keys установите значение True; |
• | в поле Script Statistics установите значение Do not script statistics; |
• | в поле Script USE DATABASE установите значение True. |
5. | Нажмите на кнопку Next>. Откроется окно «Choose Object Types». |
6. | Установите флажок Tables и нажмите на кнопку Next>. Откроется окно «Choose Tables». |
7. | Установите флажки во всех полях таблицы с помощью кнопки Select All. Нажмите на кнопку Next>. Откроется окно «Output Option»: |
• | установите переключатель в положение Script to file; |
• | в поле File name задайте имя файла indexes.sql; |
• | в группе Files to generate установите переключатель в поле Single file; |
• | в группе «Save as» установите переключатель в поле Unicode text. |
9. | Нажмите на кнопку Next>. Откроется окно «Script Wizard Summary». |
10. | Проверьте значения всех выбранных параметров и нажмите на кнопку Finish. Откроется окно «Generate Script Progress», в котором отображается процесс генерации структуры данных. |
11. | По окончании процесса генерации скрипта нажмите на кнопку Close. |
|
Создание новой базы данных
1. | В SQL Server Management Studio выделите папку «Databases» и в контекстном меню выберите пункт New Database. Откроется окно «New Database»: |
2. | На закладке «General» заполните поля: |
• | в поле Database name укажите имя создаваемой базы данных DIRECTUM_NEW; |
• | в таблице «Database files» в поле Initial Size установите значение размера файла данных и файла транзакций исходной базы данных DIRECTUM_NEW аналогично значениям базы данных DIRECTUM. |
3. | Перейдите на закладку «Options»: |
• | в поле Collation укажите значение SQL_Latin1_General_CP1251_CI_AS; |
• | в поле Recovery model укажите значение Simple. |
Примечание
Модель восстановления (Recovery model) и режим создания резервных копий базы данных должны выбираться администратором в зависимости от размеров базы, быстродействия и интенсивности работы с системой.
|
Создание структуры таблиц в новой базе
Чтобы создать структуру таблиц в базе данных DIRECTUM_NEW, в которую переносятся данные:
1. | В Microsoft SQL Server Management Studio выберите пункт меню File/Open/File и укажите скрипт tables.sql, созданный при генерации структуры исходной базы данных; |
2. | Выполните скрипт, перед этим исправив используемую базу в тексте «use DIRECTUM_NEW». |
|
Импорт данных
1. | В контекстном меню Tasks/Import Data базы DIRECTUM_NEW запустите мастер импорта данных. Откроется окно приветствия. |
2. | Нажмите на кнопку Next>. Откроется окно «Choose a Data Source»: |
• | в поле Data source выберите значение SQL Native Client 10.0; |
• | в поле Server name выберите имя сервера, с которого переносятся данные; |
• | установите переключатель в положение Use SQL Server Authentication; |
• | в поле User name укажите администратора SQL-сервера, обычно это sa; |
• | в поле Password введите пароль; |
• | в поле Database укажите имя базы данных DIRECTUM. |
4. | Нажмите на кнопку Next>. Откроется окно «Choose a Destination»: |
• | в поле Destination выберите значение SQL Native Client 10.0; |
• | в поле Server name выберите имя сервера, на который переносятся данные; |
• | установите переключатель в положение Use SQL Server Authentication; |
• | в поле User name укажите администратора SQL-сервера, обычно это sa; |
• | в поле Password введите пароль; |
• | в поле Database укажите имя базы данных DIRECTUM_NEW, в которую импортируются данные. |
6. | Нажмите на кнопку Next>. Откроется окно «Specify Table Copy or Query». |
7. | Установите переключатель в положение Copy data from one or more tables or views и нажмите на кнопку Next>. Откроется окно «Select Source Tables and Views». |
8. | Импортируйте данные из таблиц одной базы данных в другую. На этом шаге порядок импорта данных отличается в зависимости от того, готовится новая база данных или база данных для вторичного сервера репликации: |
При переносе данных из одной БД в другую:
• | установите флажки только для таблиц (Tables). Для этого можно выделить все, установив флажок в поле Source, затем снимите флажки у полей с представлениями (Views); |
• | для каждой из таблиц replSBTaskText, replSBEDocVer, replSBEDocValR(3..24), replSBEDocAcc, replSBEDoc, replMBText, replSBFolder, replSBTask, replSBTaskJob, SBTask, SBTaskJob, SBTaskText, SBFolder, SBIndexDataTask, SBIndexDataJob, SBIndexDataFolder, SBIndexDataEDoc, SBEDocVer, SBEDocValR(3..24), SBEDocAcc, MBText, SBEDoc выполните действия: |
a) | Выберете таблицу и нажмите на кнопку Edit Mappings…. |
b) | В открывшемся окне найдите в столбце «Destination» поле со значением timestamp и замените его на <ignore>. |
• | выделите выбранные таблицы и нажмите на кнопку Edit Mappings…. Откроется окно «Transfer Settings»: |
• | установите флажок Enable identity insert и нажмите на кнопку ОК. |
При создании БД вторичного сервера системы DIRECTUM:
• | установите флажки только для перечисленных таблиц: |
MBCompAType
MBCompATypeR
MBComponent
MBConst
MBConstLst
MBEDocType
MBEDocTypeMethod
MBEDocTypeMethodParam
MBEDocTypeRecv
MBEDocTypeView
MBFunc
|
MBFuncRecv
MBGrFunc
MBRecvAn
MBRecvEDoc
MBRegUnit
MBReports
MBRptView
MBVidAn
MBVidAnRecv
MBVidAnView
MBVidAnHierarchy
|
MBVidAnHierarchyRecv
MBVidAnHierarchyView
MBVidAnMethod
MBVidAnMethodParam
SBDialog
SBDialogMethod
SBDialogMethodParam
SBDialogRequisiteLink
SBDialogRequisite
SBLocalizationSysData
SBLocalizedData
|
SBMetadataLastUpdates
SBPrivileges
SBRouteBlock
SBRouteBlockGroup
SBServerEvent
SBServerEventParams
SBSupportedLanguages
XGrSPS
XIni
XObj
|
• | для выбранных таблиц нажмите на кнопку Edit Mappings…. Откроется окно «Transfer Settings»: |
• | установите флажок Enable identity insert и нажмите на кнопку ОК. |
Подробнее о разворачивании вторичного сервера системы DIRECTUM см. в разделе «Создание вторичного сервера».
9. | В окне «Select Source Tables and Views» нажмите на кнопку Next>. Откроется окно «Save and Run Package». |
10. | Установите флажок Run immediately и нажмите на кнопку Next>. Откроется окно «Complete the Wizard». |
11. | Нажмите на кнопку Finish. Откроется окно «Performing Operation…», в котором отображается процесс переноса данных. |
12. | По окончании процесса нажмите на кнопку Close. |
|
Создание индексов и первичных ключей
Чтобы создать индексы и первичные ключи в той БД, в которую были перенесены данные:
1. | В Microsoft SQL Server Management Studio выберите пункт меню File/Open/File и укажите созданный на шаге генерации индексов и первичных ключей исходной базы данных скрипт «indexes.sql». |
2. | Выполните скрипт, при этом исправив используемую базу в тексте «use DIRECTUM_NEW». |
|
Генерация серверной части
Для генерации серверной части системы:
1. | Из папки с установленной системой DIRECTUM запустите утилиту STExecSQL.exe с ключом -X. |
2. | В открывшемся окне укажите параметры базы данных, логин и пароль администратора SQL-сервера, например, sa. |
3. | Из папки установочного диска UTILS/ServerPart/Modern или UTILS/ServerPart/Classic, в зависимости от конфигурации серверной части, выполните скрипты: |
• | 01_ISBEDMS.sql – генерирует структуру некоторых таблиц, создает триггеры, представления и ХП; |
• | WebAccessServerPart.sql – генерирует серверную часть веб-доступа; |
• | 02_EDMS_ReIndex.sql – создает индексы и ключи. |
|
Активация системы
Для активации системы необходимо использовать компоненту Утилита развертывания системы DIRECTUM в режиме «Активация существующей системы». Подробнее см. раздел «Развертывание системы».
|
Генерация пользователей в системе
При создании вторичного сервера репликации генерировать пользователей в системе не нужно.
Для генерации пользователей в новой базе данных:
1. | Откройте компоненту Пользователи через быстрый запуск системы DIRECTUM. |
2. | Сгенерируйте каждого пользователя в списке. Для этого выберите пользователя и на вкладке Главная в группе Действия нажмите на кнопку Генерировать. |
• | заполните поля Пароль и Подтверждение, если генерируется пользователь с аутентификацией по паролю. При генерации пользователя с Windows-аутентификацией поля ввода пароля отсутствуют; |
• | установите флажок Генерировать пользователя БД; |
• | нажмите на кнопку Генерировать. |
При Windows-аутентификации и Novell-аутентификации можно сразу сгенерировать несколько пользователей. Для этого необходимо в списке записей компоненты выделить пользователей с Windows-аутентификацией и нажать на кнопку Генерировать.
|