Kelola dan pecahkan masalah Stretch Database

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru - Hanya Windows

Penting

Stretch Database tidak digunakan lagi di SQL Server 2022 (16.x) dan Azure SQL Database. Fitur ini akan dihapus dalam versi Mesin Database di masa mendatang. Hindari menggunakan fitur ini dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakan fitur ini.

Untuk mengelola dan memecahkan masalah Stretch Database, gunakan alat dan metode yang dijelaskan dalam artikel ini.

Mengelola data lokal

Mendapatkan info tentang database dan tabel lokal yang diaktifkan untuk Stretch Database

Buka tampilan sys.databases katalog dan sys.tables untuk melihat info tentang database dan tabel SQL Server dengan dukungan Stretch. Untuk informasi selengkapnya, lihat sys.databases (Transact-SQL) dan sys.tables (Transact-SQL).

Untuk melihat berapa banyak ruang yang digunakan tabel dengan dukungan Stretch di SQL Server, jalankan pernyataan berikut.

USE <Stretch-enabled database name>;
GO
EXEC sp_spaceused '<Stretch-enabled table name>', 'true', 'LOCAL_ONLY';
GO

Mengelola migrasi data

Periksa fungsi filter yang diterapkan ke tabel

Buka tampilan sys.remote_data_archive_tables katalog dan periksa nilai filter_predicate kolom untuk mengidentifikasi fungsi yang digunakan Stretch Database untuk memilih baris yang akan dimigrasikan. Jika nilai null, seluruh tabel memenuhi syarat untuk dimigrasikan. Untuk informasi selengkapnya, lihat sys.remote_data_archive_tables (Transact-SQL) dan Pilih baris untuk dimigrasikan dengan menggunakan fungsi filter.

Memeriksa status migrasi data

Pilih Tugas > Stretch > Monitor untuk database di SQL Server Management Studio untuk memantau migrasi data di Stretch Database Monitor. Untuk informasi selengkapnya, lihat Memantau dan memecahkan masalah migrasi data (Stretch Database).

Atau, buka tampilan sys.dm_db_rda_migration_status manajemen dinamis untuk melihat berapa banyak batch dan baris data yang telah dimigrasikan.

Memecahkan masalah migrasi data

Untuk saran pemecahan masalah, lihat Memantau dan memecahkan masalah migrasi data (Stretch Database).

Mengelola data jarak jauh

Mendapatkan info tentang database jarak jauh dan tabel yang digunakan oleh Stretch Database

Buka tampilan sys.remote_data_archive_databases katalog dan sys.remote_data_archive_tables untuk melihat info tentang database dan tabel jarak jauh tempat data yang dimigrasikan disimpan. Untuk informasi selengkapnya, lihat sys.remote_data_archive_databases (Transact-SQL) dan sys.remote_data_archive_tables (Transact-SQL).

Untuk melihat berapa banyak ruang yang digunakan tabel dengan dukungan Stretch di Azure, jalankan pernyataan berikut.

USE <Stretch-enabled database name>;
GO
EXEC sp_spaceused '<Stretch-enabled table name>', 'true', 'REMOTE_ONLY';
GO

Menghapus data yang dimigrasikan

Jika Anda ingin menghapus data yang telah dimigrasikan ke Azure, ikuti langkah-langkah yang dijelaskan dalam sys.sp_rda_reconcile_batch.

Mengelola skema tabel

Jangan ubah skema tabel jarak jauh

Jangan ubah skema tabel Azure jarak jauh yang terkait dengan tabel SQL Server yang dikonfigurasi untuk Stretch Database. Secara khusus, jangan ubah nama atau tipe data kolom. Fitur Stretch Database membuat berbagai asumsi tentang skema tabel jarak jauh sehubungan dengan skema tabel SQL Server. Jika Anda mengubah skema jarak jauh, Stretch Database berhenti bekerja untuk tabel yang diubah.

Rekonsiliasi kolom tabel

Jika Anda tidak sengaja menghapus kolom dari tabel jarak jauh, jalankan sp_rda_reconcile_columns untuk menambahkan kolom ke tabel jarak jauh yang ada di tabel SQL Server dengan dukungan Stretch tetapi tidak dalam tabel jarak jauh. Untuk informasi selengkapnya, lihat sys.sp_rda_reconcile_columns.

Penting

Saat sp_rda_reconcile_columns membuat ulang kolom yang tidak sengaja Anda hapus dari tabel jarak jauh, kolom tersebut tidak memulihkan data yang sebelumnya ada di kolom yang dihapus.

sp_rda_reconcile_columns tidak menghapus kolom dari tabel jarak jauh yang ada di tabel jarak jauh tetapi tidak dalam tabel SQL Server yang diaktifkan Stretch. Jika ada kolom dalam tabel Azure jarak jauh yang tidak lagi ada di tabel SQL Server dengan dukungan Stretch, kolom tambahan ini tidak mencegah Stretch Database beroperasi secara normal. Anda dapat secara opsional menghapus kolom tambahan secara manual.

Mengelola performa dan biaya

Memecahkan masalah performa kueri

Kueri yang menyertakan tabel berkemampuan Stretch diharapkan berkinerja lebih lambat daripada yang dilakukan sebelum tabel diaktifkan untuk Stretch. Jika performa kueri terdegradasi secara signifikan, tinjau kemungkinan masalah berikut.

  • Apakah server Azure Anda berada di wilayah geografis yang berbeda dari SQL Server Anda? Konfigurasikan server Azure Anda agar berada di wilayah geografis yang sama dengan SQL Server Anda untuk mengurangi latensi jaringan.

  • Kondisi jaringan Anda mungkin telah terdegradasi. Hubungi administrator jaringan Anda untuk informasi tentang masalah atau pemadaman baru-baru ini.

Meningkatkan tingkat performa Azure untuk operasi intensif sumber daya seperti pengindeksan

Saat Anda membangun, membangun kembali, atau mengatur ulang indeks pada tabel besar yang dikonfigurasi untuk Stretch Database, dan Anda mengantisipasi kueri berat data yang dimigrasikan di Azure selama waktu ini, pertimbangkan untuk meningkatkan tingkat performa database Azure jarak jauh yang sesuai selama operasi. Untuk informasi selengkapnya tentang tingkat performa dan harga, lihat Harga SQL Server Stretch Database.

Anda tidak dapat menjeda layanan SQL Server Stretch Database di Azure

Pastikan Anda memilih tingkat performa dan harga yang sesuai. Jika Anda meningkatkan tingkat performa untuk sementara untuk operasi intensif sumber daya, pulihkan ke tingkat sebelumnya setelah operasi selesai. Untuk informasi selengkapnya tentang tingkat performa dan harga, lihat Harga SQL Server Stretch Database.

Mengubah cakupan kueri

Kueri terhadap tabel yang diaktifkan Stretch mengembalikan data lokal dan jarak jauh secara default. Anda dapat mengubah cakupan kueri untuk semua kueri oleh semua pengguna, atau hanya untuk satu kueri oleh administrator.

Mengubah cakupan kueri untuk semua kueri oleh semua pengguna

Untuk mengubah cakupan semua kueri oleh semua pengguna, jalankan prosedur sys.sp_rda_set_query_modetersimpan . Anda dapat mengurangi cakupan untuk mengkueri data lokal saja, menonaktifkan semua kueri, atau memulihkan pengaturan default. Untuk informasi selengkapnya, lihat sys.sp_rda_set_query_mode.

Mengubah cakupan kueri untuk satu kueri oleh administrator

Untuk mengubah cakupan kueri tunggal oleh anggota peran db_owner, tambahkan WITH ( REMOTE_DATA_ARCHIVE_OVERRIDE = *value* ) petunjuk kueri ke pernyataan SELECT. Petunjuk kueri REMOTE_DATA_ARCHIVE_OVERRIDE bisa memiliki nilai berikut.

  • LOCAL_ONLY. Kueri data lokal saja.

  • REMOTE_ONLY. Kueri data jarak jauh saja.

  • STAGE_ONLY. Kueri hanya data dalam tabel tempat baris tahap Stretch Database memenuhi syarat untuk migrasi dan mempertahankan baris yang dimigrasikan untuk periode yang ditentukan setelah migrasi. Petunjuk kueri ini adalah satu-satunya cara untuk mengkueri tabel penahapan.

Misalnya, kueri berikut hanya mengembalikan hasil lokal.

USE [<Stretch-enabled database name>];
GO
SELECT *
FROM [<Stretch_enabled table name>]
WITH (REMOTE_DATA_ARCHIVE_OVERRIDE = LOCAL_ONLY)
WHERE someCol = 1 /* sample predicate only, please replace with an appropriate one */;
GO

Membuat pembaruan dan penghapusan administratif

Secara default Anda tidak dapat MEMPERBARUI atau MENGHAPUS baris yang memenuhi syarat untuk migrasi, atau baris yang telah dimigrasikan, dalam tabel dengan dukungan Stretch. Ketika Anda harus memperbaiki masalah, anggota peran db_owner dapat menjalankan operasi UPDATE atau DELETE dengan menambahkan WITH ( REMOTE_DATA_ARCHIVE_OVERRIDE = *value* ) petunjuk kueri ke pernyataan. Petunjuk kueri REMOTE_DATA_ARCHIVE_OVERRIDE bisa memiliki nilai berikut.

  • LOCAL_ONLY. Perbarui atau hapus data lokal saja.

  • REMOTE_ONLY. Perbarui atau hapus data jarak jauh saja.

  • STAGE_ONLY. Perbarui atau hapus hanya data dalam tabel di mana baris tahap Stretch Database memenuhi syarat untuk migrasi dan mempertahankan baris yang dimigrasikan untuk periode yang ditentukan setelah migrasi.

Baca juga