Memindahkan database server laporan ke komputer lain (mode asli SSRS)
Berlaku untuk: Mode asli SQL Server Reporting Services (SSRS)
Anda dapat memindahkan database server laporan yang Anda gunakan dalam penginstalan SQL Server ke instans yang ada di komputer lain.
SQL Server menyediakan beberapa pendekatan untuk memindahkan database:
- Lepaskan dan lampirkan. Pendekatan ini menawarkan cara term mudah untuk memindahkan database server laporan, tetapi Anda perlu membuat server laporan offline saat database dilepaskan.
- Cadangkan dan pulihkan. Pendekatan ini meminimalkan gangguan layanan, tetapi Anda harus menjalankan perintah Transact-SQL (T-SQL) untuk melakukan operasi.
- Menyalin. Menyalin database tidak disarankan jika Anda menggunakan Wizard Salin Database. Ini tidak mempertahankan pengaturan izin dalam database.
Artikel ini memperlihatkan kepada Anda cara menggunakan pendekatan lepaskan dan lampirkan serta pendekatan pencadangan dan pemulihan.
Prasyarat
- Server laporan mode asli yang dikonfigurasi yang digunakan dalam penginstalan SQL Server.
- Instans SQL Server di komputer lain.
Bersiap untuk memindahkan database
Ingatlah poin-poin berikut saat Anda memindahkan database server laporan:
- Anda harus memindahkan atau menyalin database reportserver dan reportservertempdb bersama-sama. Penginstalan SSRS memerlukan kedua database.
- Nama database sementara harus sama dengan nama database server laporan utama tetapi dengan akhiran tempdb .
- Memindahkan database tidak mengubah operasi terjadwal yang saat ini ditentukan untuk item server laporan.
- Jadwal dibuat ulang saat Pertama kali Anda memulai ulang layanan server laporan.
- Pekerjaan agen SQL Server yang digunakan untuk memicu jadwal dibuat ulang pada instans database baru. Anda tidak perlu memindahkan pekerjaan ke komputer baru, tetapi Anda mungkin ingin menghapus pekerjaan yang tidak lagi digunakan pada komputer saat ini.
- Langganan, laporan yang di-cache, dan rekam jepret dipertahankan dalam database yang dipindahkan. Jika rekam jepret tidak mengambil data yang disegarkan setelah Anda memindahkan database, hapus opsi rekam jepret. Lalu pilih Terapkan untuk menyimpan perubahan Anda, buat ulang jadwal, dan pilih Terapkan lagi untuk menyimpan perubahan Anda.
- Laporan sementara dan data sesi pengguna yang disimpan dalam database sementara tetap ada saat Anda memindahkan database tersebut.
Penting
Langkah-langkah dalam artikel ini direkomendasikan saat relokasi database server laporan adalah satu-satunya perubahan yang Anda lakukan pada penginstalan yang ada. Saat Memigrasikan seluruh penginstalan SSRS, Anda perlu mengonfigurasi ulang koneksi dan mengatur ulang kunci enkripsi. Misalnya, langkah-langkah ini diperlukan saat Anda memindahkan database dan mengubah identitas layanan Windows server laporan yang menggunakan database.
Melepas dan melampirkan database server laporan
Jika Anda dapat membuat server laporan offline, Anda dapat menggunakan pendekatan lepaskan dan lampirkan. Secara khusus, Anda melepaskan database dari instans SQL Server Anda saat ini. Kemudian Anda memindahkannya dan melampirkannya ke instans yang ingin Anda gunakan. Pendekatan ini mempertahankan izin dalam database.
Setelah memindahkan database, Anda harus mengonfigurasi ulang koneksi server laporan ke database server laporan. Jika Anda menjalankan penyebaran peluasan skala, Anda harus mengonfigurasi ulang koneksi database server laporan untuk setiap server laporan dalam penyebaran.
Untuk menggunakan pendekatan lepaskan dan lampirkan, lakukan langkah-langkah di bagian berikut.
Melepas database
Buka Manajer Konfigurasi Server Laporan.
Gunakan halaman Kunci Enkripsi untuk mencadangkan kunci enkripsi untuk database server laporan yang ingin Anda pindahkan.
Gunakan halaman Status Server Laporan untuk menghentikan layanan server laporan.
Buka SQL Server Management Studio dan sambungkan ke instans SQL Server yang menghosting database server laporan.
Klik kanan database server laporan, pilih Tugas, lalu pilih Lepaskan. Ulangi langkah ini untuk database sementara server laporan.
Melampirkan database
Temukan file .mdf dan .ldf untuk instans SQL Server Anda saat ini. Mereka terletak di folder Data.
Salin atau pindahkan file .mdf dan .ldf ke folder Data instans SQL Server yang ingin Anda gunakan. Karena Anda memindahkan dua database, pastikan Anda memindahkan atau menyalin keempat file.
Di SQL Server Management Studio, buka koneksi ke instans SQL Server baru yang menghosting database server laporan.
Klik kanan simpul Database , lalu pilih Lampirkan.
Pilih Tambahkan untuk memilih database server laporan .mdf dan file .ldf yang ingin Anda lampirkan. Ulangi langkah ini untuk database sementara server laporan.
Menyelesaikan konfigurasi
Verifikasi bahwa database yang Anda lampirkan memiliki peran RSExecRole . Anda harus mengonfigurasi RSExecRole untuk memilih, menyisipkan, memperbarui, menghapus, dan mereferensikan izin pada tabel database server laporan, dan menjalankan izin pada prosedur tersimpan. Untuk informasi selengkapnya, lihat Membuat RSExecRole.
Mulai Manajer Konfigurasi Server Laporan dan buka koneksi ke server laporan.
Pada halaman Database, pilih instans SQL Server baru, lalu pilih Sambungkan.
Pilih database server laporan yang baru saja Anda pindahkan, lalu pilih Terapkan.
Pada halaman Kunci Enkripsi, pilih Pulihkan. Tentukan file yang berisi salinan cadangan kunci dan kata sandi untuk membuka kunci file.
Mulai ulang layanan server laporan.
Mencadangkan dan memulihkan database server laporan
Jika Anda tidak dapat membuat server laporan offline, Anda dapat menggunakan pendekatan pencadangan dan pemulihan untuk merelokasi database server laporan. Dengan pendekatan ini, Anda harus menggunakan pernyataan T-SQL.
Langkah-langkah di bagian berikut menunjukkan kepada Anda cara mencadangkan dan memulihkan database dan juga cara mengonfigurasi server laporan untuk menggunakan database pada instans server baru.
Menggunakan BACKUP dan COPY_ONLY untuk mencadangkan database server laporan
Untuk mencadangkan database, buka SQL Server Management Studio, lalu jalankan pernyataan berikut di jendela kueri. Pernyataan ini menggunakan COPY_ONLY
argumen , dan mereka mencadangkan database dan file log.
Sebelum Anda menjalankan pernyataan ini, ganti <tempat penampung path-to-backup-folder> dengan jalur ke folder Backup instans Anda saat ini, seperti C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\BACKUP
.
-- To permit log backups, alter the database to use the full recovery model
-- before you run the full database backup.
USE master;
GO
ALTER DATABASE ReportServer
SET RECOVERY FULL
-- First back up the database without using the COPY_ONLY argument.
-- This step is needed after you change the recovery model to full.
-- It prevents a 4214 error from occurring.
USE master;
GO
BACKUP DATABASE ReportServer
TO DISK = '<path-to-backup-folder>\ReportServerExtraBackup.bak'
GO
-- If the ReportServerData device doesn't exist yet, create it.
USE master
GO
EXEC sp_addumpdevice 'disk', 'ReportServerData',
'<path-to-backup-folder>\ReportServerData.bak'
-- Create a logical backup device, ReportServerLog.
USE master
GO
EXEC sp_addumpdevice 'disk', 'ReportServerLog',
'<path-to-backup-folder>\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, alter the database to use the full recovery model
-- before you run the full database backup.
USE master;
GO
ALTER DATABASE ReportServerTempdb
SET RECOVERY FULL
-- First back up the database without using the COPY_ONLY argument.
-- This step is needed after you change the recovery model to full.
-- It prevents a 4214 error from occurring.
USE master;
GO
BACKUP DATABASE ReportServerTempdb
TO DISK = '<path-to-backup-folder>\ReportServerTempdbExtraBackup.bak'
GO
-- If the ReportServerTempDBData device doesn't exist yet, create it.
USE master
GO
EXEC sp_addumpdevice 'disk', 'ReportServerTempDBData',
'<path-to-backup-folder>\ReportServerTempDBData.bak'
-- Create a logical backup device, ReportServerTempDBLog.
USE master
GO
EXEC sp_addumpdevice 'disk', 'ReportServerTempDBLog',
'<path-to-backup-folder>\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
Gunakan RESTORE dan MOVE untuk merelokasi database server laporan
Untuk memulihkan database, buka SQL Server Management Studio, lalu jalankan pernyataan berikut di jendela kueri.
Dalam pernyataan ini:
RESTORE
Operasi untuk database dan file log berjalan secara terpisah.Argumen
MOVE
menyediakan cara bagi Anda untuk menentukan jalur. Argumen ini menggunakan nama logis file data. Untuk menemukan nama logis, jalankan pernyataan berikut. <Pertama ganti tempat penampung path-to-report-server-database-backup-file> dengan jalur ke file cadangan database server laporan Anda, sepertiC:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup\ReportServerData.bak
.RESTORE FILELISTONLY FROM DISK='<path-to-report-server-database-backup-file>';
Anda dapat menemukan nama logis di kolom LogicalName output.
Anda bisa menjalankan pernyataan serupa untuk menemukan nama logis database sementara Anda:
RESTORE FILELISTONLY FROM DISK='<path-to-temporary-database-backup-file>';
Argumen
FILE
menyediakan cara bagi Anda untuk menentukan posisi file file log yang akan dipulihkan. Untuk menemukan posisi file, jalankan pernyataan berikut. <Pertama ganti tempat penampung path-to-report-server-database-backup-file> dengan jalur ke file cadangan database server laporan Anda, sepertiC:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup\ReportServerData.bak
.RESTORE HEADERONLY FROM DISK='<path-to-report-server-database-backup-file>';
Anda dapat menemukan posisi file di kolom Posisi output.
Anda dapat menjalankan pernyataan serupa untuk menemukan posisi file database sementara Anda:
RESTORE HEADERONLY FROM DISK='<path-to-temporary-database-backup-file>';
Argumen
NORECOVERY
melakukan pemulihan awal. Argumen ini menyimpan database dalam statusRESTORING
, yang memberi Anda waktu untuk meninjau cadangan log untuk menentukan mana yang akan dipulihkan.Langkah terakhir mengulangi
RESTORE
operasi denganRECOVERY
argumen .
Sebelum Anda menjalankan pernyataan ini, ganti tempat penampung berikut dengan nilai yang sesuai:
Placeholder | Deskripsi | Contoh |
---|---|---|
<path-to-backup-folder> | Jalur ke folder Cadangan instans Anda saat ini | C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\BACKUP |
<path-to-new-data-folder> | Jalur ke folder Data instans baru Anda | C:\Program Files\Microsoft SQL Server\MSSQL16.NEWINSTANCE\MSSQL\DATA |
<report-server-database-logical-name> | Nama logis database server laporan Anda | ReportServer |
<report-server-database-log-logical-name> | Nama logis log database server laporan Anda | ReportServer_log |
<report-server-database-log-file-position> | Posisi file file log database server laporan | 2 |
<temporary-database-logical-name> | Nama logis database sementara Anda | ReportServerTempDB |
<temporary-database-log-logical-name> | Nama logis log database sementara Anda | ReportServerTempDB_log |
<temporary-database-log-file-position> | Posisi file file log database sementara | 2 |
-- Restore the report server database and move it to the new instance folder.
RESTORE DATABASE ReportServer
FROM DISK='<path-to-backup-folder>\ReportServerData.bak'
WITH NORECOVERY,
MOVE '<report-server-database-logical-name>' TO
'<path-to-new-data-folder>\ReportServer.mdf',
MOVE '<report-server-database-log-logical-name>' TO
'<path-to-new-data-folder>\ReportServer_Log.ldf';
GO
-- Restore the report server log file to the new instance folder.
RESTORE LOG ReportServer
FROM DISK='<path-to-backup-folder>\ReportServerData.bak'
WITH NORECOVERY, FILE=<report-server-database-log-file-position>,
MOVE '<report-server-database-logical-name>' TO
'<path-to-new-data-folder>\ReportServer.mdf',
MOVE '<report-server-database-log-logical-name>' TO
'<path-to-new-data-folder>\ReportServer_Log.ldf';
GO
-- Restore and move the report server temporary database.
RESTORE DATABASE ReportServerTempdb
FROM DISK='<path-to-backup-folder>\ReportServerTempDBData.bak'
WITH NORECOVERY,
MOVE '<temporary-database-logical-name>' TO
'<path-to-new-data-folder>\ReportServerTempDB.mdf',
MOVE '<temporary-database-log-logical-name>' TO
'<path-to-new-data-folder>\ReportServerTempDB_Log.ldf';
GO
-- Restore the temporary database log file to the new instance folder.
RESTORE LOG ReportServerTempdb
FROM DISK='<path-to-backup-folder>\ReportServerTempDBData.bak'
WITH NORECOVERY, FILE=<temporary-database-log-file-position>,
MOVE '<temporary-database-logical-name>' TO
'<path-to-new-data-folder>\ReportServerTempDB.mdf',
MOVE '<temporary-database-log-logical-name>' TO
'<path-to-new-data-folder>\ReportServerTempDB_Log.ldf';
GO
-- Perform the final restore operation on the report database.
RESTORE DATABASE ReportServer
WITH RECOVERY
GO
-- Perform the final restore operation on the temporary database.
RESTORE DATABASE ReportServerTempDB
WITH RECOVERY
GO
Mengonfigurasi koneksi database server laporan
Mulai Manajer Konfigurasi Server Laporan dan buka koneksi ke server laporan.
Pada halaman Database, pilih Ubah Database.
Pada halaman Ubah Database, pilih Pilih database server laporan yang sudah ada, lalu pilih Berikutnya.
Untuk Nama Server, masukkan instans SQL Server yang sekarang menghosting database server laporan, lalu pilih Uji Koneksi.
Setelah Anda menguji koneksi, pilih Berikutnya.
Untuk Database Server Laporan, pilih database server laporan yang ingin Anda gunakan, lalu pilih Berikutnya.
Di bawah Kredensial, tentukan kredensial yang digunakan server laporan untuk menyambungkan ke database server laporan, lalu pilih Berikutnya.
Pilih Selanjutnya, lalu pilih Selesai.
Catatan
Dalam penginstalan SSRS, instans Mesin Database SQL Server harus menyertakan peran RSExecRole . Pembuatan peran, pendaftaran masuk, dan penetapan peran terjadi saat Anda menggunakan Manajer Konfigurasi Server Laporan untuk mengatur koneksi database server laporan. Jika Anda menggunakan pendekatan alternatif, seperti utilitas perintah-prompt rsconfig.exe, server laporan tidak dalam status berfungsi. Dalam hal ini, Anda mungkin harus menulis kode Windows Management Instrumentation (WMI) untuk membuat server laporan tersedia. Untuk informasi selengkapnya, lihat Mengakses penyedia WMI Reporting Services.