Topik ini mencantumkan prosedur tersimpan yang tersedia untuk instans ApsaraDB RDS for SQL Server yang menjalankan SQL Server 2012 atau versi yang lebih baru.
Penggunaan
Perintah dalam topik ini ditujukan untuk SSMS dan menggunakan GO sebagai pemisah perintah batch. Jika Anda menjalankan perintah prosedur tersimpan di DMS, jangan sertakan kata kunci GO. Jika tidak, akan terjadi error.
Perbarui statistik database
Perintah T-SQL
sp_rds_update_db_stats
Deskripsi
Memperbarui statistik database secara fleksibel dan efisien. Anda dapat mengonfigurasi parameter seperti laju pengambilan sampel, tingkat paralelisme, timeout, dan ambang batas modifikasi.
Penggunaan
-- Ini adalah contoh komprehensif yang mencakup beberapa parameter.
-- Perbarui statistik database untuk database test_db. Atur laju pengambilan sampel ke 50%, tingkat paralelisme ke 4, timeout ke 7.200 detik, dan ambang batas modifikasi ke 3.
EXEC sp_rds_update_db_stats
@db_name = 'test_db', -- Nama database (wajib)
@sample_percent = 50, -- Laju pengambilan sampel (opsional)
@max_dop = 4, -- Tingkat paralelisme (opsional, tidak didukung di SQL Server 2012 dan sebelumnya)
@timeout_seconds = 7200, -- Timeout dalam detik (opsional)
@modification_threshold = 3; -- Ambang batas modifikasi (opsional)
Jika Anda hanya menentukan parameter @db_name atau menggunakan SQL Server 2008, sistem secara default akan mengeksekusi prosedur tersimpan sp_updatestats. Untuk informasi lebih lanjut, lihat dokumentasi resmi Microsoft.
|
Parameter |
Wajib |
Deskripsi |
|
@db_name |
Ya |
Menentukan database yang statistiknya akan diperbarui. Contoh:
|
|
@sample_percent |
Tidak |
Menentukan persentase tabel yang diambil sampelnya untuk statistik. Tipe data adalah Jika diabaikan, sistem menggunakan laju pengambilan sampel default. Untuk informasi lebih lanjut, lihat dokumentasi resmi Microsoft. Contoh:
|
|
@max_dop |
Tidak |
Menentukan tingkat paralelisme (DOP). Tipe data adalah
|
|
@timeout_seconds |
Tidak |
Menentukan timeout untuk pembaruan statistik, dalam detik (s). Nilai default adalah
|
|
@modification_threshold |
Tidak |
Menentukan ambang batas modifikasi dalam persentase untuk memperbarui statistik. Tipe data adalah
|
Salin database dalam satu instans
Perintah T-SQL
sp_rds_copy_database
Edisi yang didukung
Edisi Dasar dan Edisi Ketersediaan Tinggi
Deskripsi
Membuat salinan database dalam instans yang sama.
-
Penyimpanan yang tersedia pada instans harus minimal 1,3 kali ukuran database sumber.
-
Operasi ini tidak dapat digunakan pada instans ApsaraDB MyBase for SQL Server.
Penggunaan
USE db
GO
EXEC sp_rds_copy_database 'db','db_copy'
GO
-
Parameter pertama adalah nama database sumber.
-
Parameter kedua adalah nama database tujuan.
Bawa database online
Perintah T-SQL
sp_rds_set_db_online
Supported Editions
RDS Edisi Dasar dan RDS Edisi Ketersediaan Tinggi
Deskripsi
Setelah Anda mengatur database ke status OFFLINE, Anda tidak dapat menggunakan pernyataan ALTER DATABASE untuk membawanya kembali online. Gunakan prosedur tersimpan ini sebagai gantinya.
Penggunaan
USE master
GO
EXEC sp_rds_set_db_online 'db'
GO
Nama database yang akan dibawa online.
Izin database global
Perintah T-SQL
sp_rds_set_all_db_privileges
Edisi instans yang didukung
Edisi Dasar, Edisi Ketersediaan Tinggi
Deskripsi
Memberikan izin kepada pengguna pada semua atau beberapa database pengguna.
Izin pengguna saat ini pada database target harus lebih besar dari atau sama dengan izin yang diberikan.
Penggunaan
sp_rds_set_all_db_privileges 'user','db_owner','db1,db2...'
-
Parameter pertama menentukan pengguna yang menerima izin.
-
Parameter kedua menentukan role database yang diberikan kepada pengguna.
-
Parameter ketiga menentukan satu atau beberapa database target, dipisahkan dengan koma. Parameter ini opsional. Jika dihilangkan, izin diberikan pada semua database pengguna.
Hapus database
Perintah T-SQL
sp_rds_drop_database
Edisi yang didukung
Edisi Ketersediaan Tinggi
-
Prosedur tersimpan ini tidak didukung pada instans Edisi Dasar. Gunakan perintah
DROP DATABASE dbsebagai gantinya. -
Jalankan perintah ini menggunakan akun istimewa saat terhubung ke database selain database target. Pastikan akun tersebut memiliki izin yang diperlukan pada database target. Untuk informasi lebih lanjut, lihat Modifikasi izin akun.
Deskripsi
Menghapus database dari instans. Operasi ini menghapus semua objek terkait. Untuk instans Edisi Ketersediaan Tinggi, operasi ini juga menghapus mirror database dan menghentikan semua koneksi ke database tersebut.
Penggunaan
USE master
GO
EXEC sp_rds_drop_database 'db'
GO
Parameter menentukan nama database yang akan dihapus.
Konfigurasi pelacakan perubahan
Perintah T-SQL
sp_rds_change_tracking
Seri instans yang didukung
Edisi Ketersediaan Tinggi
Deskripsi
Mengaktifkan atau menonaktifkan pelacakan perubahan untuk database.
Penggunaan
USE db
GO
EXEC sp_rds_change_tracking 'db',1
GO
-
Parameter pertama adalah nama database.
-
Parameter kedua menentukan apakah akan mengaktifkan atau menonaktifkan pelacakan perubahan. Nilai yang valid:
-
1: Mengaktifkan pelacakan perubahan.
-
0: Menonaktifkan pelacakan perubahan.
-
Aktifkan change data capture
Perintah T-SQL
sp_rds_cdc_enable_db
Seri instans yang didukung
Edisi Ketersediaan Tinggi dan Edisi Kluster
Deskripsi
Mengaktifkan change data capture (CDC) untuk database.
Penggunaan
USE db
GO
-- Aktifkan CDC untuk database.
EXEC sp_rds_cdc_enable_db
GO
-- Aktifkan CDC untuk tabel.
EXEC sys.sp_cdc_enable_table
@source_schema = '<schema name>',
@source_name = '<table name>',
@role_name = '<CDC role name>'
Nonaktifkan change data capture
Perintah T-SQL
sp_rds_cdc_disable_db
Seri instans yang didukung
Edisi Ketersediaan Tinggi, Edisi Kluster
Deskripsi
Menonaktifkan change data capture (CDC) untuk database.
Penggunaan
USE db
GO
-- Nonaktifkan change data capture (CDC) di tingkat database.
EXEC sp_rds_cdc_disable_db
GO
-- Nonaktifkan CDC untuk tabel tertentu.
EXEC sys.sp_cdc_disable_table
@source_schema = '<schema_name>',
@source_name = '<table_name>',
@capture_instance = '<capture_instance_name>'
-- Dapatkan nama capture instance untuk tabel tertentu.
SELECT capture_instance
FROM cdc.change_tables
WHERE source_schema = '<schema_name>'
AND source_name = '<table_name>'
Parameter instans RDS
Perintah T-SQL
sp_rds_configure
Famili instans yang didukung
Edisi Dasar dan Edisi Ketersediaan Tinggi
Deskripsi
Konfigurasi parameter instans berikut. Untuk instans primary/standby, pengaturan disinkronkan secara otomatis. Untuk detail lebih lanjut, lihat dokumentasi Microsoft.
|
Parameter |
Deskripsi |
Contoh |
|
faktor pengisian (%) |
Menentukan persentase fill factor untuk halaman indeks. |
|
|
max worker threads |
Menentukan jumlah maksimum thread pekerja untuk mengeksekusi kueri dan memproses permintaan secara paralel. |
|
|
cost threshold for parallelism |
Menentukan threshold biaya untuk paralelisme. |
|
|
max degree of parallelism |
Menentukan tingkat paralelisme maksimum untuk kueri. |
|
|
min server memory (MB) |
Menentukan jumlah minimum memori, dalam megabyte (MB), yang digunakan oleh instans RDS. |
|
|
max server memory (MB) |
Menentukan jumlah maksimum memori, dalam megabyte (MB), yang digunakan oleh instans RDS. |
|
|
blocked process threshold (s) |
Menentukan ambang batas, dalam detik, untuk melaporkan proses yang diblokir. |
|
|
nested triggers |
Mengaktifkan atau menonaktifkan nested triggers. Nilai yang valid:
|
|
|
Ad Hoc Distributed Queries |
Mengaktifkan atau menonaktifkan Ad Hoc Distributed Queries. Nilai yang valid:
|
|
|
clr enabled |
Mengaktifkan atau menonaktifkan eksekusi assembly Common Language Runtime (CLR) buatan pengguna. Nilai yang valid:
|
|
|
default full-text language |
Menentukan bahasa default untuk pencarian teks lengkap. Nilai umum meliputi:
|
|
|
default language |
Menentukan bahasa default untuk instans. Nilai umum meliputi:
|
|
|
max text repl size (B) |
Menentukan ukuran maksimum data teks, dalam byte, dalam proses replikasi. |
Atur ukuran replikasi teks maksimum ke 100 MB:
|
|
optimize for ad hoc workloads |
Menentukan apakah akan mengaktifkan optimasi cache rencana untuk beban kerja ad hoc. Nilai yang valid:
|
|
|
query governor cost limit |
Menentukan batas atas perkiraan biaya untuk kueri. Nilai 0 menonaktifkan query governor. |
|
|
recovery interval (min) |
Menentukan waktu maksimum, dalam menit, yang dibutuhkan untuk memulihkan database. |
|
|
remote login timeout (s) |
Menentukan periode timeout, dalam detik, untuk upaya login remote. |
|
|
remote query timeout (s) |
Menentukan periode timeout, dalam detik, untuk kueri remote. |
|
|
query wait (s) |
Menentukan waktu, dalam detik, yang ditunggu kueri untuk sumber daya memori sebelum timeout. |
|
|
min memory per query (KB) |
Menentukan jumlah minimum memori, dalam kilobyte (KB), yang dialokasikan untuk mengeksekusi kueri. |
|
|
in-doubt xact resolution |
Menentukan cara sistem menyelesaikan transaksi terdistribusi yang belum pasti. Nilai yang valid:
|
|
Penggunaan
EXEC sp_rds_configure '<parameter>',<nilai parameter>
-
Parameter pertama menentukan parameter konfigurasi instans mana yang akan diatur.
-
Parameter kedua adalah nilainya.
Tambahkan linked server
Perintah T-SQL
sp_rds_add_linked_server
Instans yang didukung
-
Edisi instans: Edisi Kluster dan Edisi Ketersediaan Tinggi. Edisi Dasar tidak didukung.
-
Tipe instans: general-purpose dan dedicated. Instans shared tidak didukung.
-
Metode penagihan: subscription dan pay-as-you-go. Instans serverless tidak didukung.
Deskripsi
Perintah ini menambahkan linked server ke instans dan mendukung transaksi terdistribusi. Linked server yang dibuat pada instans primary secara otomatis disinkronkan ke instans secondary. Anda tidak perlu mengonfigurasi ulang linked server setelah alih bencana primary/secondary. Namun, modifikasi pada linked server yang sudah ada di instans primary tidak disinkronkan ke instans secondary. Untuk informasi lebih lanjut, lihat Alih bencana primary/secondary otomatis atau manual.
Penggunaan
DECLARE
@linked_server_name sysname = N'yangzhao_slb', --Nama linked server.
@data_source sysname = N'****.sqlserver.rds.aliyuncs.com,3888', --Alamat IP dan nomor port instans SQL Server tujuan. Format: IP,Port
@user_name sysname = N'ay15' , --Username untuk instans SQL Server tujuan.
@password nvarchar(128) = N'******', --Password untuk user tujuan.
@source_user_name sysname = N'test', --Username pada instans sumber.
@source_password nvarchar(128) = N'******', --Password untuk user sumber.
--Opsi server untuk linked server dalam format XML. Contoh ini mengatur izin untuk akses data, rpc, dan rpc out.
@link_server_options xml
= N'
<rds_linked_server>
<config option="data access">true</config>
<config option="rpc">true</config>
<config option="rpc out">true</config>
</rds_linked_server>
'
EXEC sp_rds_add_linked_server
@linked_server_name,
@data_source,
@user_name,
@password,
@source_user_name,
@source_password,
@link_server_optionsKonfigurasi trace flag
Perintah T-SQL
sp_rds_dbcc_trace
Edisi yang didukung
Edisi Dasar, Edisi Ketersediaan Tinggi
Deskripsi
Prosedur tersimpan ini mengatur trace flag untuk instans RDS. Saat ini hanya mendukung subset dari trace flag. Untuk instans primary/secondary, platform secara otomatis menyinkronkan pengaturan ini.
Penggunaan
EXEC sp_rds_dbcc_trace '1222',1/0-
Parameter pertama adalah trace flag.
-
Parameter kedua menentukan apakah akan mengaktifkan atau menonaktifkan trace flag. Nilai yang valid:
-
1: Mengaktifkan trace flag.
-
0: Nonaktifkan.
-
Ubah nama database
Perintah T-SQL
sp_rds_modify_db_name
Edisi instans yang didukung
Edisi Dasar, Edisi Ketersediaan Tinggi, dan Edisi Kluster
Deskripsi
Mengubah nama database. Pastikan akun yang terhubung memiliki izin yang diperlukan pada database target dan database berada dalam status online.
Untuk instans Edisi Ketersediaan Tinggi atau Edisi Kluster, mengubah nama database secara otomatis membangun kembali hubungan primary/secondary. Proses ini mencakup backup dan restore. Jika database berukuran besar, pastikan instans memiliki penyimpanan yang cukup. Anda dapat meningkatkan skala instans jika diperlukan.
Penggunaan
USE master
GO
EXEC sp_rds_modify_db_name 'db','new_db'
GO
-
Parameter pertama adalah nama database asli.
-
Parameter kedua adalah nama database baru.
Berikan role server
Perintah T-SQL
sp_rds_set_server_role
Edisi yang didukung
Edisi Dasar
Deskripsi
Memberikan role server kepada login. Role yang tersedia adalah setupadmin dan processadmin. Untuk membuat akun dengan izin lain atau mempelajari lebih lanjut tentang izin akun, lihat Buat akun dengan izin SA dan Izin akun.
Penggunaan
EXEC sp_rds_set_server_role @login_name='test_login',@server_role='setupadmin'
-
Menentukan nama login.
-
Menentukan nama role. Nilai yang valid adalah setupadmin dan processadmin.
FAQ
Q: Mengapa saya mendapatkan error Cannot use KILL to kill your own process. saat menjalankan perintah EXEC sp_rds_drop_database 'dbtest'; dengan akun standar?
A: Jalankan perintah tersebut menggunakan akun istimewa dari jendela perintah yang terhubung ke database lain. Pastikan akun tersebut memiliki izin yang diperlukan pada database target. Untuk informasi lebih lanjut, lihat Modifikasi izin akun.