Bagikan melalui


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

  1. Buka Manajer Konfigurasi Server Laporan.

  2. Gunakan halaman Kunci Enkripsi untuk mencadangkan kunci enkripsi untuk database server laporan yang ingin Anda pindahkan.

  3. Gunakan halaman Status Server Laporan untuk menghentikan layanan server laporan.

  4. Buka SQL Server Management Studio dan sambungkan ke instans SQL Server yang menghosting database server laporan.

  5. Klik kanan database server laporan, pilih Tugas, lalu pilih Lepaskan. Ulangi langkah ini untuk database sementara server laporan.

Melampirkan database

  1. Temukan file .mdf dan .ldf untuk instans SQL Server Anda saat ini. Mereka terletak di folder Data.

    Cuplikan layar File Explorer. Di folder Data, file .mdf dan .ldf disorot untuk database server laporan dan database sementara.

  2. 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.

  3. Di SQL Server Management Studio, buka koneksi ke instans SQL Server baru yang menghosting database server laporan.

  4. Klik kanan simpul Database , lalu pilih Lampirkan.

  5. 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

  1. 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.

  2. Mulai Manajer Konfigurasi Server Laporan dan buka koneksi ke server laporan.

  3. Pada halaman Database, pilih instans SQL Server baru, lalu pilih Sambungkan.

  4. Pilih database server laporan yang baru saja Anda pindahkan, lalu pilih Terapkan.

  5. Pada halaman Kunci Enkripsi, pilih Pulihkan. Tentukan file yang berisi salinan cadangan kunci dan kata sandi untuk membuka kunci file.

  6. 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, seperti C:\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.

    Cuplikan layar pernyataan RESTORE FILELISTONLY di jendela kueri SQL Server Management Studio. Dalam output, kolom LogicalName disorot.

    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, seperti C:\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.

    Cuplikan layar pernyataan RESTORE HEADERONLY di jendela kueri SQL Server Management Studio. Dalam output, kolom Posisi disorot.

    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 status RESTORING , yang memberi Anda waktu untuk meninjau cadangan log untuk menentukan mana yang akan dipulihkan.

  • Langkah terakhir mengulangi RESTORE operasi dengan RECOVERY 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

  1. Mulai Manajer Konfigurasi Server Laporan dan buka koneksi ke server laporan.

  2. Pada halaman Database, pilih Ubah Database.

  3. Pada halaman Ubah Database, pilih Pilih database server laporan yang sudah ada, lalu pilih Berikutnya.

  4. Untuk Nama Server, masukkan instans SQL Server yang sekarang menghosting database server laporan, lalu pilih Uji Koneksi.

  5. Setelah Anda menguji koneksi, pilih Berikutnya.

  6. Untuk Database Server Laporan, pilih database server laporan yang ingin Anda gunakan, lalu pilih Berikutnya.

  7. Di bawah Kredensial, tentukan kredensial yang digunakan server laporan untuk menyambungkan ke database server laporan, lalu pilih Berikutnya.

  8. 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.