Bu konu, SQL Server 2012 veya sonraki bir sürümü çalıştıran ApsaraDB RDS for SQL Server örnekleri için kullanılabilen saklı yordamları listeler.
Kullanım
Bu konudaki komutlar SSMS içindir ve toplu iş komutu ayırıcısı olarak GO kullanır. Saklı yordam komutlarını DMS'de çalıştırıyorsanız GO anahtar sözcüğünü dahil etmeyin. Aksi takdirde hata oluşur.
Veritabanı istatistiklerini güncelleme
T-SQL komutu
sp_rds_update_db_stats
Açıklama
Veritabanı istatistiklerini esnek ve verimli bir şekilde günceller. Örnekleme oranı, paralellik derecesi, zaman aşımı ve değişiklik eşiği gibi parametreleri yapılandırabilirsiniz.
Kullanım
-- This is a comprehensive example that includes multiple parameters.
-- Update database statistics for the test_db database. Set the sampling rate to 50%, the degree of parallelism to 4, the timeout to 7,200 seconds, and the modification threshold to 3.
EXEC sp_rds_update_db_stats
@db_name = 'test_db', -- Database name (required)
@sample_percent = 50, -- Sampling rate (optional)
@max_dop = 4, -- Degree of parallelism (optional, not supported in SQL Server 2012 and earlier)
@timeout_seconds = 7200, -- Timeout in seconds (optional)
@modification_threshold = 3; -- Modification threshold (optional)
Yalnızca @db_name parametresini belirtirseniz veya SQL Server 2008 kullanıyorsanız sistem varsayılan olarak sp_updatestats saklı yordamını yürütür. Daha fazla bilgi için bkz. Microsoft resmi belgeleri.
|
Parametre |
Gerekli |
Açıklama |
|
@db_name |
Evet |
İstatistiklerin güncelleneceği veritabanını belirtir. Örnek:
|
|
@sample_percent |
Hayır |
İstatistikler için örneklenecek tablo yüzdesini belirtir. Veri türü Atlanırsa sistem varsayılan örnekleme oranını kullanır. Daha fazla bilgi için bkz. Microsoft resmi belgeleri. Örnek:
|
|
@max_dop |
Hayır |
Paralellik derecesini (DOP) belirtir. Veri türü
|
|
@timeout_seconds |
Hayır |
İstatistik güncellemesi için saniye (s) cinsinden zaman aşımını belirtir. Varsayılan değer
|
|
@modification_threshold |
Hayır |
İstatistikleri güncellemek için yüzde olarak değişiklik eşiğini belirtir. Veri türü
|
Bir örnek içinde veritabanı kopyalama
T-SQL komutu
sp_rds_copy_database
Desteklenen sürümler
Temel Sürüm ve Yüksek Kullanılabilirlik Sürümü
Açıklama
Aynı örnek içinde bir veritabanının kopyasını oluşturur.
Örnekteki kullanılabilir depolama alanı, kaynak veritabanının boyutunun en az 1,3 katı olmalıdır.
Bu işlemi ApsaraDB MyBase for SQL Server örneklerinde kullanamazsınız.
Kullanım
USE db
GO
EXEC sp_rds_copy_database 'db','db_copy'
GO
İlk parametre kaynak veritabanının adıdır.
İkinci parametre hedef veritabanının adıdır.
Veritabanını çevrimiçi duruma getirme
T-SQL komutu
sp_rds_set_db_online
Desteklenen sürümler
RDS Temel Sürüm ve RDS Yüksek Kullanılabilirlik Sürümü
Açıklama
Bir veritabanını OFFLINE durumuna ayarladıktan sonra onu tekrar çevrimiçi duruma getirmek için ALTER DATABASE ifadesini kullanamazsınız. Bunun yerine bu saklı yordamı kullanın.
Kullanım
USE master
GO
EXEC sp_rds_set_db_online 'db'
GO
Çevrimiçi duruma getirilecek veritabanının adı.
Genel veritabanı izinleri
T-SQL komutu
sp_rds_set_all_db_privileges
Desteklenen örnek sürümleri
Temel Sürüm, Yüksek Kullanılabilirlik Sürümü
Açıklama
Bir kullanıcıya tüm veya birden çok kullanıcı veritabanında izinler verir.
Mevcut kullanıcının hedef veritabanlarındaki izinleri, verilen izinlerden büyük veya ona eşit olmalıdır.
Kullanım
sp_rds_set_all_db_privileges 'user','db_owner','db1,db2...'
İlk parametre izinleri alacak kullanıcıyı belirtir.
İkinci parametre kullanıcıya verilecek veritabanı rolünü belirtir.
Üçüncü parametre virgülle ayrılmış bir veya daha fazla hedef veritabanını belirtir. Bu parametre isteğe bağlıdır. Atlanırsa tüm kullanıcı veritabanlarında izinler verilir.
Veritabanı silme
T-SQL komutu
sp_rds_drop_database
Desteklenen sürümler
Yüksek Kullanılabilirlik Sürümü
Bu saklı yordam Temel Sürüm örneklerinde desteklenmez. Bunun yerine
DROP DATABASE dbkomutunu kullanın.Bu komutu, hedef veritabanı dışındaki bir veritabanına bağlıyken bir yetkili hesap ile çalıştırın. Hesabın hedef veritabanında gerekli izinlere sahip olduğundan emin olun. Daha fazla bilgi için bkz. Bir hesabın izinlerini değiştirme.
Açıklama
Bir örnekten bir veritabanı siler. Bu işlem ilişkili tüm nesneleri kaldırır. Yüksek Kullanılabilirlik Sürümü örnekleri için bu işlem ayrıca veritabanı yansımasını kaldırır ve veritabanına yönelik tüm bağlantıları sonlandırır.
Kullanım
USE master
GO
EXEC sp_rds_drop_database 'db'
GO
Parametre silinecek veritabanının adını belirtir.
Değişiklik izlemeyi yapılandırma
T-SQL komutu
sp_rds_change_tracking
Desteklenen örnek serileri
Yüksek Kullanılabilirlik Sürümü
Açıklama
Bir veritabanı için değişiklik izlemeyi etkinleştirir veya devre dışı bırakır.
Kullanım
USE db
GO
EXEC sp_rds_change_tracking 'db',1
GO
İlk parametre veritabanı adıdır.
-
İkinci parametre değişiklik izlemenin etkinleştirilip etkinleştirilmeyeceğini belirtir. Geçerli değerler:
1: Değişiklik izlemeyi etkinleştirir.
0: Değişiklik izlemeyi devre dışı bırakır.
Değişiklik verisi yakalamayı etkinleştirme
T-SQL komutu
sp_rds_cdc_enable_db
Desteklenen örnek serileri
Yüksek Kullanılabilirlik Sürümü ve Küme Sürümü
Açıklama
Bir veritabanı için değişiklik verisi yakalamayı (CDC) etkinleştirir.
Kullanım
USE db
GO
-- Enable CDC for a database.
EXEC sp_rds_cdc_enable_db
GO
-- Enable CDC for a table.
EXEC sys.sp_cdc_enable_table
@source_schema = '<schema name>',
@source_name = '<table name>',
@role_name = '<CDC role name>'
Değişiklik verisi yakalamayı devre dışı bırakma
T-SQL komutu
sp_rds_cdc_disable_db
Desteklenen örnek serileri
Yüksek Kullanılabilirlik Sürümü, Küme Sürümü
Açıklama
Bir veritabanı için değişiklik verisi yakalamayı (CDC) devre dışı bırakır.
Kullanım
USE db
GO
-- Disable change data capture (CDC) at the database level.
EXEC sp_rds_cdc_disable_db
GO
-- Disable CDC for a specific table.
EXEC sys.sp_cdc_disable_table
@source_schema = '<schema_name>',
@source_name = '<table_name>',
@capture_instance = '<capture_instance_name>'
-- Get the capture instance name for a specific table.
SELECT capture_instance
FROM cdc.change_tables
WHERE source_schema = '<schema_name>'
AND source_name = '<table_name>'
RDS örnek parametreleri
T-SQL komutu
sp_rds_configure
Desteklenen örnek aileleri
Basic Edition ve High-availability Edition
Açıklama
Aşağıdaki örnek parametrelerini yapılandırın. Birincil/ikincil örnekler için ayarlar otomatik olarak senkronize edilir. Daha fazla bilgi için bkz. Microsoft belgeleri.
|
Parametre |
Açıklama |
Örnek |
|
fill factor (%) |
Bir dizin sayfası için doluluk oranı yüzdesini belirtir. |
|
|
max worker threads |
Sorguları çalıştırmak ve istekleri paralel işlemek için kullanılacak maksimum iş parçacığı sayısını belirtir. |
|
|
cost threshold for parallelism |
Paralellik için maliyet eşiğini belirtir. |
|
|
max degree of parallelism |
Bir sorgu için maksimum paralellik derecesini belirtir. |
|
|
min server memory (MB) |
RDS örneği tarafından kullanılan minimum bellek miktarını megabayt (MB) cinsinden belirtir. |
|
|
max server memory (MB) |
RDS örneği tarafından kullanılan maksimum bellek miktarını megabayt (MB) cinsinden belirtir. |
|
|
blocked process threshold (s) |
Engellenen işlemlerin raporlanması için eşik değerini saniye cinsinden belirtir. |
|
|
nested triggers |
İç içe tetikleyicileri etkinleştirir veya devre dışı bırakır. Geçerli değerler:
|
|
|
Ad Hoc Distributed Queries |
Ad Hoc Dağıtılmış Sorguları etkinleştirir veya devre dışı bırakır. Geçerli değerler:
|
|
|
clr enabled |
Kullanıcı tarafından oluşturulan Common Language Runtime (CLR) derlemelerinin çalıştırılmasını etkinleştirir veya devre dışı bırakır. Geçerli değerler:
|
|
|
default full-text language |
Tam metin araması için varsayılan dili belirtir. Yaygın değerler şunlardır:
|
|
|
default language |
Örnek için varsayılan dili belirtir. Yaygın değerler şunlardır:
|
|
|
max text repl size (B) |
Bir çoğaltma işlemindeki metin verilerinin maksimum boyutunu bayt cinsinden belirtir. |
Maksimum metin çoğaltma boyutunu 100 MB olarak ayarlayın:
|
|
optimize for ad hoc workloads |
Ad hoc iş yükleri için plan önbelleği optimizasyonunun etkinleştirilip etkinleştirilmeyeceğini belirtir. Geçerli değerler:
|
|
|
query governor cost limit |
Bir sorgu için tahmini maliyet üst sınırını belirtir. 0 değeri sorgu yöneticisini devre dışı bırakır. |
|
|
recovery interval (min) |
Bir veritabanının kurtarılması için gereken maksimum süreyi dakika cinsinden belirtir. |
|
|
remote login timeout (s) |
Uzaktan oturum açma denemesi için zaman aşımı süresini saniye cinsinden belirtir. |
|
|
remote query timeout (s) |
Uzak bir sorgu için zaman aşımı süresini saniye cinsinden belirtir. |
|
|
query wait (s) |
Bir sorgunun zaman aşımına uğramadan önce bellek kaynakları için beklediği süreyi saniye cinsinden belirtir. |
|
|
min memory per query (KB) |
Bir sorgunun yürütülmesi için ayrılan minimum bellek miktarını kilobayt (KB) cinsinden belirtir. |
|
|
in-doubt xact resolution |
Sistemin kararsız durumdaki dağıtılmış işlemleri nasıl çözdüğünü belirtir. Geçerli değerler:
|
|
Kullanım
EXEC sp_rds_configure '<parameter>',<parameter value>
İlk parametre, hangi örnek yapılandırma parametresinin ayarlanacağını belirtir.
İkinci parametre ise bu parametrenin değeridir.
Bağlantılı sunucu ekleme
T-SQL komutu
sp_rds_add_linked_server
Desteklenen örnekler
Örnek sürümü: Cluster Edition ve High-availability Edition. Basic Edition desteklenmez.
Örnek türü: genel amaçlı ve özel. shared örnekler desteklenmez.
Faturalama yöntemi: abonelik ve kullandıkça öde. serverless instances desteklenmez.
Açıklama
Bu komut, bir örneğe bağlantılı sunucu ekler ve dağıtılmış işlemleri destekler. Birincil örnekte oluşturulan bağlantılı sunucu, ikincil örneğe otomatik olarak eşitlenir. Birincil/ikincil geçiş işleminden sonra bağlantılı sunucuyu yeniden yapılandırmanız gerekmez. Ancak, birincil örnekteki mevcut bağlantılı sunucularda yapılan değişiklikler ikincil örneğe eşitlenmez. Daha fazla bilgi için bkz. Otomatik veya manuel birincil/ikincil geçişi.
Kullanım
DECLARE
@linked_server_name sysname = N'yangzhao_slb', --The name of the linked server.
@data_source sysname = N'****.sqlserver.rds.aliyuncs.com,3888', --The IP address and port number of the destination SQL Server instance. Format: IP,Port
@user_name sysname = N'ay15' , --The username for the destination SQL Server instance.
@password nvarchar(128) = N'******', --The password for the destination user.
@source_user_name sysname = N'test', --The username on the source instance.
@source_password nvarchar(128) = N'******', --The password for the source user.
--Server options for the linked server in XML format. This example sets permissions for data access, rpc, and 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_options
İzleme işaretini yapılandırma
T-SQL komutu
sp_rds_dbcc_trace
Desteklenen sürümler
Basic Edition, High-availability Edition
Açıklama
Bu saklı yordam, bir RDS örneği için izleme işaretini ayarlar. Şu anda yalnızca belirli izleme işaretlerini destekler. Birincil/ikincil örnekler için platform bu ayarı otomatik olarak eşitler.
Kullanım
EXEC sp_rds_dbcc_trace '1222',1/0
İlk parametre izleme işaretidir.
-
İkinci parametre, izleme işaretinin etkinleştirilip etkinleştirilmeyeceğini belirtir. Geçerli değerler şunlardır:
1: İzleme işaretini etkinleştirir.
0: Devre dışı bırakır.
Veritabanını yeniden adlandırma
T-SQL komutu
sp_rds_modify_db_name
Desteklenen örnek sürümleri
Basic Edition, High-availability Edition ve Cluster Edition
Açıklama
Bir veritabanını yeniden adlandırır. Bağlanan hesabın hedef veritabanı üzerinde gerekli izinlere sahip olduğundan ve veritabanının çevrimiçi durumda olduğundan emin olun.
High-availability Edition veya Cluster Edition örneklerinde, bir veritabanını yeniden adlandırmak birincil/ikincil ilişkisini otomatik olarak yeniden oluşturur. Bu süreçte yedekleme ve geri yükleme yapılır. Veritabanı büyükse, örneğin yeterli kullanılabilir depolama alanına sahip olduğundan emin olun. Gerekirse örneği yükseltebilirsiniz.
Kullanım
USE master
GO
EXEC sp_rds_modify_db_name 'db','new_db'
GO
İlk parametre özgün veritabanı adıdır.
İkinci parametre yeni veritabanı adıdır.
Sunucu rollerini verme
T-SQL komutu
sp_rds_set_server_role
Desteklenen sürümler
Basic Edition
Açıklama
Bir oturum açma adına sunucu rolü verir. Kullanılabilen roller setupadmin ve processadmin rolleridir. Diğer izinlere sahip hesaplar oluşturmak veya hesap izinleri hakkında daha fazla bilgi edinmek için bkz. SA izinlerine sahip bir hesap oluşturma ve Hesap izinleri.
Kullanım
EXEC sp_rds_set_server_role @login_name='test_login',@server_role='setupadmin'
Oturum açma adını belirtir.
Rol adını belirtir. Geçerli değerler setupadmin ve processadmin değerleridir.
SSS
S: Standart bir hesapla EXEC sp_rds_drop_database 'dbtest'; komutunu çalıştırırken neden Cannot use KILL to kill your own process. hatası alıyorum?
C: Komutu, farklı bir veritabanına bağlı olan bir komut penceresinden ayrıcalıklı bir hesap kullanarak çalıştırın. Hesabın hedef veritabanı üzerinde gerekli izinlere sahip olduğundan emin olun. Daha fazla bilgi için bkz. Hesap izinlerini değiştirme.