Перемещение базы данных сервера отчетов на другой компьютер
Изменения: 14 апреля 2006 г.
Базы данных сервера отчетов, используемые текущей установкой, можно переместить на экземпляр компонента SQL Server Database Engine, находящийся на другом компьютере. Базы данных reportserver и reportservertempdb должны перемещаться или копироваться вместе. Чтобы установить службы Reporting Services, необходимы обе базы данных. База данных reportservertempdb должна быть связана по имени с перемещаемой базой данных-источником reportserver.
Перемещение базы данных не влияет на запланированные операции, определенные в данный момент для элементов сервера отчетов. Расписания будут созданы повторно при первом перезапуске службы Windows сервера отчетов. Подписки, кэшированные отчеты и моментальные снимки сохраняются в перемещенной базе данных. Временные данные отчета и пользовательского сеанса, хранящиеся в базе данных reportservertempdb, при перемещении этой базы данных сохранятся.
SQL Server предусматривает несколько подходов к перемещению баз данных, включая резервное копирование и восстановление, присоединение и отсоединение, а также копирование. Не все из них пригодны для переноса существующей базы данных на новый экземпляр сервера. Подход, который следует использовать для перемещения базы данных сервера отчетов, зависит от того, предъявляются ли какие-либо требования ко времени, по истечении которого компьютер должен находиться в работоспособном состоянии. Наиболее простой способ перемещения баз данных сервера отчетов состоит в их отсоединении и присоединении. Однако такой подход требует, чтобы сервер отчетов во время отсоединения базы данных был переведен в автономный режим. Если необходимо минимизировать перерывы в обслуживании, лучшим выбором будет резервное копирование и восстановление, хотя для осуществления этих операций потребуется выполнение команд Transact-SQL. Не рекомендуется выполнять копирование базы данных (особенно с использованием мастера копирования базы данных), так как при этом в базе данных не сохраняются настройки разрешений.
Важно! |
---|
Шаги, описанные в этом подразделе, следует выполнять только в том случае, если перемещение базы данных сервера отчетов является единственным изменением, которое вносится в текущую установку. Для миграции полной установки служб Reporting Services (то есть для перемещения базы данных и изменения удостоверения службы сервера отчетов Windows, которая использует эту базу данных) необходима повторная настройка соединения и переустановка ключа шифрования. Дополнительные сведения о миграции установки служб Reporting Services см. в разделе Миграция служб Reporting Services. |
Отсоединение и присоединение баз данных сервера отчетов
Если сервер отчетов может быть переведен в автономный режим, можно отсоединить базы данных, чтобы переместить их на тот экземпляр SQL Server, который требуется использовать. При таком подходе разрешения в базах данных сохраняются. Если используется база данных SQL Server 2005, необходимо переместить ее на другой экземпляр компонента SQL Server 2005 Database Engine. После перемещения баз данных следует заново настроить соединение сервера отчетов с базой данных сервера отчетов. Если при масштабном развертывании запущено несколько серверов отчетов, необходимо заново настроить соединение с базой данных сервера отчетов для каждого сервера отчетов, входящего в конфигурацию.
Для перемещения баз данных выполните следующие шаги:
- Остановите службу Windows и веб-службу сервера отчетов. Чтобы остановить веб-службу сервера отчетов, можно остановить пул приложений, содержащий эту службу.
- Запустите среду SQL Server Management Studio и подключитесь к экземпляру SQL Server, на котором размещены базы данных сервера отчетов.
- Щелкните правой кнопкой мыши базу данных сервера отчетов, укажите пункт «Задачи» и выберите команду Отсоединить. Повторите этот шаг для временной базы данных сервера отчетов.
- Скопируйте или переместите MDF- и LDF-файлы в папку данных экземпляра SQL Server, который предполагается использовать. Поскольку осуществляется перемещение двух баз данных, удостоверьтесь, что скопированы или перемещены все четыре файла.
- В среде Management Studio подключитесь к новому экземпляру SQL Server, на котором будут размещены базы данных сервера отчетов.
- Щелкните правой кнопкой мыши узел «Базы данных» и выберите пункт Присоединить.
- Нажмите кнопку Добавить, чтобы выбрать MDF- и LDF-файлы базы данных сервера отчетов, которые следует присоединить. Повторите этот шаг для временной базы данных сервера отчетов.
- После присоединения баз данных удостоверьтесь, что роль RSExecRole представляет собой роль базы данных как в базе данных, так и во временной базе данных сервера отчетов. Роль RSExecRole должна иметь разрешения на выбор, создание, обновление, удаление и ссылку на таблицы базы данных сервера отчетов и разрешения на выполнение хранимых процедур.
- Запустите программу настройки служб Reporting Services и подключитесь к серверу отчетов.
- На странице «Настройка базы данных» выберите новый экземпляр SQL Server и нажмите кнопку Подключиться.
- Выберите вновь перемещенную базу данных сервера отчетов и нажмите кнопку Применить.
- Перезапустите службу Windows и веб-службу сервера отчетов.
Резервное копирование и восстановление из копии баз данных сервера отчетов
Если сервер отчетов нельзя перевести в автономный режим, для перемещения его баз данных можно использовать резервное копирование и восстановление. Для резервного копирования и восстановления следует использовать инструкции Transact-SQL. Среда SQL Server Management Studio не поддерживает резервные копии только для копирования. После восстановления баз данных следует настроить сервер отчетов, чтобы он использовал базу данных на новом экземпляре сервера. Дополнительные сведения см. в инструкциях, приведенных в конце этого подраздела.
Использование для резервного копирования баз данных сервера отчетов инструкций BACKUP и COPY_ALL
При резервном копировании баз данных установите аргумент COPY_ALL. Убедитесь, что осуществляется резервное копирование как баз данных, так и файлов журналов.
-- To permit log backups, before the full database backup, alter the database
-- to use the full recovery model.
USE master;
GO
ALTER DATABASE ReportServer
SET RECOVERY FULL
-- If the ReportServerData device does not exist yet, create it.
USE master
GO
EXEC sp_addumpdevice 'disk', 'ReportServerData',
'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BACKUP\ReportServerData.bak'
-- Create a logical backup device, ReportServerLog.
USE master
GO
EXEC sp_addumpdevice 'disk', 'ReportServerLog',
'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BACKUP\ReportServerLog.bak'
-- Back up the full ReportServer database.
BACKUP DATABASE ReportServer
TO ReportServerData
WITH COPY_ONLY
-- Back up the ReportServer log.
BACKUP LOG ReportServer
TO ReportServerLog
WITH COPY_ONLY
-- To permit log backups, before the full database backup, alter the database
-- to use the full recovery model.
USE master;
GO
ALTER DATABASE ReportServerTempdb
SET RECOVERY FULL
-- If the ReportServerTempDBData device does not exist yet, create it.
USE master
GO
EXEC sp_addumpdevice 'disk', 'ReportServerTempDBData',
'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BACKUP\ReportServerTempDBData.bak'
-- Create a logical backup device, ReportServerTempDBLog.
USE master
GO
EXEC sp_addumpdevice 'disk', 'ReportServerTempDBLog',
'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BACKUP\ReportServerTempDBLog.bak'
-- Back up the full ReportServerTempDB database.
BACKUP DATABASE ReportServerTempDB
TO ReportServerTempDBData
WITH COPY_ONLY
-- Back up the ReportServerTempDB log.
BACKUP LOG ReportServerTempDB
TO ReportServerTempDBLog
WITH COPY_ONLY
Использование для перемещения баз данных сервера отчетов инструкций RESTORE и MOVE
При восстановлении баз данных из копии обязательно включите аргумент MOVE, чтобы можно было указать путь. Используйте аргумент NORECOVERY, чтобы выполнить первоначальное восстановление; это позволит сохранить базу данных в состоянии RESTORING и даст время для просмотра резервных копий журналов, чтобы определить, какой из них следует восстанавливать. В качестве последнего шага следует повторить операцию RESTORE с аргументом RECOVERY.
В аргументе MOVE используется логическое имя файла данных. Чтобы определить логическое имя, выполните следующую инструкцию: RESTORE FILELISTONLY FROM DISK='C:\ReportServerData.bak';
Следующие примеры включают аргумент FILE, что позволяет указать позицию файла журнала, который требуется восстановить. Чтобы определить позицию файла, выполните следующую инструкцию: RESTORE HEADERONLY FROM DISK='C:\ReportServerData.bak';
При восстановлении из копии файлов базы данных и журнала каждую операцию RESTORE следует выполнять отдельно.
-- Restore the report server database and move to new instance folder
RESTORE DATABASE ReportServer
FROM DISK='C:\ReportServerData.bak'
WITH NORECOVERY,
MOVE 'ReportServer' TO
'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\ReportServer.mdf',
MOVE 'ReportServer_log' TO
'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\ReportServer_Log.ldf';
GO
-- Restore the report server log file to new instance folder
RESTORE LOG ReportServer
FROM DISK='C:\ReportServerData.bak'
WITH NORECOVERY, FILE=2
MOVE 'ReportServer' TO
'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\ReportServer.mdf',
MOVE 'ReportServer_log' TO
'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\ReportServer_Log.ldf';
GO
-- Restore and move the report server temporary database
RESTORE DATABASE ReportServerTempdb
FROM DISK='C:\ReportServerTempDBData.bak'
WITH NORECOVERY,
MOVE 'ReportServerTempDB' TO
'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\ReportServerTempDB.mdf',
MOVE 'ReportServerTempDB_log' TO
'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\REportServerTempDB_Log.ldf';
GO
-- Restore the temporary database log file to new instance folder
RESTORE LOG ReportServerTempdb
FROM DISK='C:\ReportServerTempDBData.bak'
WITH NORECOVERY, FILE=2
MOVE 'ReportServerTempDB' TO
'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\ReportServerTempDB.mdf',
MOVE 'ReportServerTempDB_log' TO
'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\REportServerTempDB_Log.ldf';
GO
-- Perform final restore
RESTORE DATABASE ReportServer
WITH RECOVERY
GO
-- Perform final restore
RESTORE DATABASE ReportServerTempDB
WITH RECOVERY
GO
Настройка соединения с базой данных сервера отчетов
- Запустите программу настройки служб Reporting Services и подключитесь к серверу отчетов.
- На странице «Настройка базы данных» выберите экземпляр SQL Server, на котором в данное время расположена база данных сервера отчетов, и нажмите кнопку Подключиться.
- В поле «Имя базы данных» выберите базу данных сервера отчета, которую хотите использовать, и нажмите кнопку Применить.
Примечание. |
---|
Для установки служб Reporting Services требуется, чтобы экземпляр компонента SQL Server Database Engine включал роль RSExecRole. Создание роли, регистрация имени входа и назначения ролей происходят, когда с помощью программы настройки служб Reporting Services устанавливается соединение сервера отчетов с базой данных. При использовании для настройки соединения иных подходов (особенно если используется программа командной строки rsconfig.exe) сервер отчетов окажется в неработоспособном состоянии. Чтобы сделать его доступным, может понадобиться выполнение других сценариев. Дополнительные сведения см. в разделе Написание сценариев для задач развертывания и администрирования. |
См. также
Основные понятия
Запуск и остановка службы Windows сервера отчетов
Настройка учетной записи для автоматической обработки отчетов
Программа конфигурации служб Reporting Services
Управление ключами шифрования
База данных сервера отчетов
Другие ресурсы
Обзор резервного копирования (SQL Server)
Резервные копии только для копирования
Программа rsconfig
Справка и поддержка
Получение помощи по SQL Server 2005
Журнал изменений
Версия | Журнал |
---|---|
14 апреля 2006 г. |
|