Topik ini menjelaskan prosedur tersimpan yang didukung oleh ApsaraDB RDS for SQL Server 2012 dan versi lebih baru.
Catatan penggunaan
Perintah dalam topik ini dimaksudkan untuk dieksekusi di SQL Server Management Studio (SSMS). Perintah-perintah tersebut mencakup GO sebagai pemisah batch. Jika Anda berencana menjalankan perintah prosedur tersimpan di Data Management Service (DMS), jangan sertakan kata kunci GO. Jika tidak, akan terjadi kesalahan.
Perbarui statistik database
Perintah T-SQL
sp_rds_update_db_stats
Deskripsi
Memperbarui informasi statistik database secara fleksibel dan efisien. Anda dapat mengonfigurasi beberapa dimensi, seperti laju sampel, tingkat paralelisme, periode timeout, dan persentase ambang batas.
Penggunaan
-- Contoh berikut menunjukkan cara menggunakan beberapa parameter.
-- Perbarui informasi statistik untuk database test_db. Atur laju sampel menjadi 50%, tingkat paralelisme menjadi 4, periode timeout menjadi 7200 detik, dan ambang modifikasi menjadi 3.
EXEC sp_rds_update_db_stats
@db_name = 'test_db', -- Nama database (wajib)
@sample_percent = 50, -- Laju sampel (opsional)
@max_dop = 4, -- Tingkat paralelisme (opsional, tidak didukung untuk SQL Server 2012 dan sebelumnya)
@timeout_seconds = 7200, -- Periode timeout dalam detik (opsional)
@modification_threshold = 3; -- Ambang modifikasi (opsional)Jika Anda hanya memberikan parameter @db_name, atau jika versi database SQL Server adalah 2008, sistem akan menjalankan sp_updatestats secara default. Untuk informasi lebih lanjut, lihat dokumentasi resmi Microsoft.
Parameter | Wajib | Deskripsi |
@db_name | Ya | Nama database tujuan yang ingin Anda perbarui informasi statistiknya. Contoh berikut menunjukkan cara menggunakan parameter ini: |
@sample_percent | Tidak | Persentase pengambilan sampel untuk informasi statistik. Tipe datanya adalah Jika Anda tidak menentukan parameter ini, laju sampel default sistem akan digunakan. Untuk informasi lebih lanjut, lihat dokumentasi resmi Microsoft. Contoh berikut menunjukkan cara menggunakan parameter ini: |
@max_dop | Tidak | Tingkat paralelisme (DOP). Tipe datanya adalah |
@timeout_seconds | Tidak | Periode timeout untuk operasi pembaruan informasi statistik, dalam detik. Nilai defaultnya adalah |
@modification_threshold | Tidak | Persentase ambang batas modifikasi untuk memperbarui informasi statistik. Tipe datanya adalah
|
Menyalin database dalam sebuah instans
Perintah T-SQL
sp_rds_copy_database
Edisi Instans yang Didukung
Edisi Dasar, Edisi Ketersediaan Tinggi
Deskripsi
Menyalin sebuah database dalam sebuah instans.
Ruang penyimpanan yang tersedia pada instans harus setidaknya 1,3 kali ukuran database saat ini.
Prosedur ini tidak didukung untuk klaster khusus MyBase untuk SQL Server.
Penggunaan
USE db
GO
EXEC sp_rds_copy_database 'db','db_copy'
GOParameter pertama menentukan database yang akan disalin.
Parameter kedua menentukan database tujuan.
Setel database secara online
Perintah T-SQL
sp_rds_set_db_online
Edisi Instans yang Didukung
Basic Edition, High-availability Edition
Deskripsi
Setelah Anda menyetel database ke OFFLINE, Anda tidak dapat menggunakan ALTER DATABASE untuk menyetelnya kembali ke ONLINE. Anda dapat menggunakan prosedur tersimpan ini untuk menyetel database ke ONLINE.
Penggunaan
USE master
GO
EXEC sp_rds_set_db_online 'db'
GOParameter ini menentukan database yang akan disetel ke ONLINE.
Berikan 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.
Saat Anda memberikan izin, izin pengguna saat ini pada database harus lebih besar dari atau sama dengan izin yang ingin Anda berikan.
Penggunaan
sp_rds_set_all_db_privileges 'user','db_owner','db1,db2...'Parameter pertama menentukan pengguna kepada siapa Anda ingin memberikan izin.
Parameter kedua menentukan peran database yang akan diberikan kepada pengguna.
Parameter ketiga menentukan database. Anda dapat menentukan satu atau lebih database yang dipisahkan oleh koma. Parameter ini opsional. Jika Anda tidak menentukan parameter ini, izin diberikan pada semua database pengguna.
Hapus database
Perintah T-SQL
sp_rds_drop_database
Edisi Instans yang Didukung
Edisi Ketersediaan Tinggi
Instans Edisi Dasar tidak mendukung prosedur tersimpan ini. Anda dapat menggunakan
DROP DATABASE dbsebagai gantinya.Dalam jendela perintah yang tidak terhubung ke database tujuan, Anda dapat menjalankan perintah ini menggunakan akun istimewa. Pastikan akun tersebut memiliki izin yang diperlukan pada database tujuan. Untuk informasi lebih lanjut, lihat Ubah Izin Sebuah Akun.
Deskripsi
Menghapus database dari sebuah instans. Saat database dihapus, objek-objek terkaitnya juga akan dihapus. Untuk instans Edisi Ketersediaan Tinggi, citra database secara otomatis dihapus, dan koneksi ke database dihentikan.
Penggunaan
USE db
GO
EXEC sp_rds_drop_database 'db'
GOParameter ini menentukan database yang akan dihapus.
Atur pelacakan perubahan
Perintah T-SQL
sp_rds_change_tracking
Edisi Instans yang Didukung
High-availability Edition
Deskripsi
Mengatur flag pelacakan perubahan untuk sebuah database.
Penggunaan
USE db
GO
EXEC sp_rds_change_tracking 'db',1
GOParameter pertama menentukan nama database.
Parameter kedua menentukan apakah akan mengaktifkan fitur tersebut.
1: Aktifkan.
0: Nonaktifkan.
Aktifkan penangkapan data perubahan untuk sebuah database
Perintah T-SQL
sp_rds_cdc_enable_db
Edisi Instans yang Didukung
High-availability Edition, Cluster Edition
Deskripsi
Mengaktifkan penangkapan data perubahan (CDC) untuk sebuah database.
Penggunaan
USE db
GO
-- Aktifkan CDC di tingkat database.
EXEC sp_rds_cdc_enable_db
GO
-- Aktifkan CDC untuk tabel tertentu.
EXEC sys.sp_cdc_enable_table
@source_schema = '<schema_name>',
@source_name = '<table_name>',
@role_name = '<CDC_role_name>'Nonaktifkan change data capture untuk sebuah database
Perintah T-SQL
sp_rds_cdc_disable_db
Edisi Instans yang Didukung
High-availability Edition, Cluster Edition
Deskripsi
Menonaktifkan CDC untuk sebuah database.
Penggunaan
USE db
GO
-- Nonaktifkan 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 = '<CDC_capture_instance_name>'
-- Metode untuk mendapatkan nama instans capture CDC untuk tabel tertentu.
SELECT capture_instance
FROM cdc.change_tables
WHERE source_schema = '<schema_name>'
AND source_name = '<table_name>'Konfigurasikan parameter instans
Perintah T-SQL
sp_rds_configure
Famili instans yang didukung
Edisi Dasar, Edisi Ketersediaan Tinggi
Deskripsi
Mengonfigurasi parameter instans. Jika instans memiliki node utama dan sekunder, parameter akan disinkronkan secara otomatis. Parameter berikut didukung. Untuk informasi selengkapnya tentang cara menggunakan parameter ini, lihat dokumentasi resmi Microsoft.
Parameter | Deskripsi | Contoh |
fill factor (%) | Menentukan persentase faktor pengisian untuk halaman indeks. |
|
max worker threads | Menentukan jumlah maksimum thread pekerja untuk eksekusi kueri paralel dan pemrosesan permintaan. |
|
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 memori minimum yang digunakan oleh instans SQL Server. |
|
max server memory (MB) | Menentukan jumlah memori maksimum yang digunakan oleh instans SQL Server. |
|
blocked process threshold (s) | Menentukan threshold untuk proses terblokir. |
|
nested triggers | Menentukan apakah akan mengaktifkan pemicu bersarang. Nilai valid:
|
|
Ad Hoc Distributed Queries | Menentukan apakah akan mengaktifkan kueri terdistribusi ad hoc. Nilai valid:
|
|
clr enabled | Menentukan apakah akan mengaktifkan Common Language Runtime (CLR). Nilai valid:
|
|
default full-text language | Menentukan bahasa pencarian teks lengkap default. Nilai umum:
|
|
default language | Menentukan bahasa default. Nilai umum:
|
|
max text repl size (B) | Menentukan ukuran maksimum teks dalam proses replikasi. | Setel ukuran maksimum replikasi teks menjadi 100 MB:
|
optimize for ad hoc workloads | Menentukan apakah akan mengaktifkan tampilan manajemen dinamis yang dioptimalkan untuk beban kerja ad hoc. Nilai valid:
|
|
query governor cost limit | Menentukan waktu maksimum eksekusi untuk sebuah kueri, dalam detik. Nilai 0 menunjukkan tidak ada batasan waktu. |
|
recovery interval (min) | Menentukan interval pemulihan. |
|
remote login timeout (s) | Menentukan periode timeout untuk login jarak jauh. |
|
remote query timeout (s) | Menentukan periode timeout untuk kueri jarak jauh. |
|
query wait (s) | Menentukan waktu tunggu kueri untuk sumber daya. |
|
min memory per query (KB) | Menentukan jumlah memori minimum yang dialokasikan untuk setiap kueri. |
|
in-doubt xact resolution | Menentukan bagaimana sistem menangani transaksi terdistribusi yang diragukan. Nilai valid:
|
|
Penggunaan
EXEC sp_rds_configure '<parameter>',<nilai>Parameter pertama menentukan parameter konfigurasi instans yang akan diatur.
Parameter kedua menentukan nilai dari parameter instans.
Tambahkan server terhubung
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: tujuan umum dan spesifikasi khusus. Tipe Instans Bersama tidak didukung.
Metode penagihan: Langganan dan Bayar-per-penggunaan. Instans Tanpa Server tidak didukung.
Deskripsi
Menambahkan linked server ke instans. Transaksi terdistribusi didukung. Linked server yang dibuat pada instans secara otomatis disinkronkan antara node primer dan sekunder. Anda tidak perlu mengonfigurasi ulang linked server setelah Alih bencana (HA). Namun, perubahan selanjutnya pada linked server yang sudah ada di database primer tidak disinkronkan ke database sekunder. Untuk informasi selengkapnya, lihat Failover primary/secondary otomatis atau manual.
Penggunaan
DECLARE
@linked_server_name sysname = N'yangzhao_slb', -- Nama server terhubung.
@data_source sysname = N'****.sqlserver.rds.aliyuncs.com,3888', -- Alamat IP dan nomor port dari SQL Server tujuan dalam format IP,Port.
@user_name sysname = N'ay15' , -- Nama pengguna untuk masuk ke SQL Server tujuan.
@password nvarchar(128) = N'******', -- Kata sandi untuk nama pengguna masuk ke SQL Server tujuan.
@source_user_name sysname = N'test', -- Nama pengguna masuk yang digunakan untuk membuat server terhubung pada instans SQL Server saat ini.
@source_password nvarchar(128) = N'******', -- Kata sandi untuk nama pengguna masuk yang digunakan untuk membuat server terhubung pada instans SQL Server saat ini.
-- Pengaturan untuk server terhubung, diteruskan dalam format XML. Contoh ini menunjukkan pengaturan untuk akses data, izin RPC, dan RPC keluar.
@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_optionsAtur flag jejak
Perintah T-SQL
sp_rds_dbcc_trace
Edisi Instans yang Didukung
Edisi Dasar, Edisi Ketersediaan Tinggi
Deskripsi
Menetapkan flag jejak untuk instans. Hanya flag jejak tertentu yang didukung. Jika instans memiliki node primer dan sekunder, flag jejak akan disinkronkan secara otomatis.
Penggunaan
EXEC sp_rds_dbcc_trace '1222',1/0Parameter pertama menentukan flag jejak.
Parameter kedua menentukan apakah akan mengaktifkan atau menonaktifkan flag tersebut.
1: Buka.
0: Nonaktif.
Mengubah nama database
Perintah T-SQL
sp_rds_modify_db_name
Edisi Instans yang Didukung
Edisi Dasar, Edisi Ketersediaan Tinggi, Edisi Kluster
Deskripsi
Mengubah nama sebuah database. Pastikan akun yang digunakan untuk terhubung ke database memiliki izin yang diperlukan pada database tujuan dan bahwa database tujuan dalam status online.
Untuk instans Edisi Ketersediaan Tinggi dan Edisi Kluster, hubungan primer/sekunder akan dibangun ulang secara otomatis setelah nama diubah. Selama proses ini, backup dan pemulihan dilakukan. Jika database berukuran besar, periksa ruang penyimpanan yang tersedia dari instans. Jika ruang tidak mencukupi, Anda dapat memperluas instans.
Penggunaan
USE master
GO
EXEC sp_rds_modify_db_name 'db','new_db'
GOParameter pertama menentukan nama database asli.
Parameter kedua menentukan nama database baru.
Berikan peran tingkat server
Perintah T-SQL
sp_rds_set_server_role
Edisi Instans yang Didukung
Basic Edition
Deskripsi
Memberikan peran tingkat server kepada pengguna logon. Peran yang didukung adalah setupadmin dan processadmin. Untuk membuat izin lain dan mempelajari lebih lanjut tentang izin akun, lihat Buat Akun dengan Izin SA dan Daftar Izin Akun.
Penggunaan
EXEC sp_rds_set_server_role @login_name='test_login',@server_role='setupadmin'Parameter pertama menentukan nama pengguna.
Parameter kedua menentukan nama peran. Peran yang didukung adalah setupadmin dan processadmin.
FAQ
T: Mengapa saya menerima kesalahan Tidak dapat menggunakan KILL untuk membunuh proses Anda sendiri. setelah menjalankan perintah EXEC sp_rds_drop_database 'dbtest'; menggunakan akun dengan izin standar?
J: Anda dapat menjalankan perintah ini menggunakan akun istimewa di jendela perintah yang tidak terhubung ke database tujuan. Pastikan bahwa akun tersebut memiliki izin yang diperlukan pada database tujuan. Untuk informasi lebih lanjut, lihat Ubah Izin Sebuah Akun.