Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Varsayılan olarak, sıkıştırma kullanarak yedekleme, CPU kullanımını önemli ölçüde artırır ve sıkıştırma işlemi tarafından kullanılan ek CPU eşzamanlı işlemleri olumsuz etkileyebilir. Bu nedenle, CPU çekişmesi oluştuğunda CPU kullanımı Resource Governor ile sınırlı olan bir oturumda düşük öncelikli sıkıştırılmış bir yedekleme oluşturmak isteyebilirsiniz. Bu konu, belirli bir SQL Server kullanıcısının oturumlarını bu gibi durumlarda CPU kullanımını sınırlayan bir Resource Governor iş yükü grubuyla eşleyerek sınıflandırır.
Önemli
Belirli bir Resource Governor senaryosunda oturum sınıflandırması bir kullanıcı adını, bir uygulama adını veya bağlantıyı ayırt edecek başka herhangi bir şeyi temel alabilir. Daha fazla bilgi için bkz. Resource Governor Sınıflandırıcı İşlevi ve Resource Governor İş Yükü Grubu.
Bu konu, sırayla sunulan aşağıdaki senaryo kümesini içerir:
Düşük Öncelikli İşlemler için Kullanıcı ve Oturum Açma Ayarları
Bu konudaki senaryo düşük öncelikli bir SQL Server oturum açma ve kullanıcı gerektirir. Kullanıcı adı, oturum açmada çalışan oturumları sınıflandırmak ve bunları CPU kullanımını sınırlayan bir Resource Governor iş yükü grubuna yönlendirmek için kullanılır.
Aşağıdaki yordamda, bu amaçla oturum açma ve kullanıcı ayarlama adımları ve ardından "Örnek A: Oturum Açma ve Kullanıcı Ayarlama (Transact-SQL)" Transact-SQL bir örnek açıklanmaktadır.
Oturumları sınıflandırmak üzere bir oturum açma ve veritabanı kullanıcısı ayarlamak için
Düşük öncelikli sıkıştırılmış yedeklemeler oluşturmak için bir SQL Server oturum açma bilgisi oluşturun.
Oturum açmak için
İsteğe bağlı olarak, bu girişe VIEW SERVER STATE izni verin.
Daha fazla bilgi için bkz . GRANT Veritabanı Asıl İzinleri (Transact-SQL).
Bu oturum açma için bir SQL Server kullanıcısı oluşturun.
Kullanıcı oluşturmak için
veritabanı kullanıcısı oluşturma
Bu oturum açma oturumlarının ve kullanıcının belirli bir veritabanını yedeklemesini sağlamak için kullanıcıyı bu veritabanının db_backupoperator veritabanı rolüne ekleyin. Bu kullanıcının yedekleyeceği her veritabanı için bunu yapın. İsteğe bağlı olarak, kullanıcıyı diğer sabit veritabanı rollerine ekleyin.
Sabit veritabanı rolüne kullanıcı eklemek için
Daha fazla bilgi için bkz . GRANT Veritabanı Asıl İzinleri (Transact-SQL).
Örnek A: Oturum Açma ve Kullanıcı Ayarlama (Transact-SQL)
Aşağıdaki örnek yalnızca düşük öncelikli yedeklemeler için yeni bir SQL Server oturum açma ve kullanıcı oluşturmayı seçerseniz geçerlidir. Alternatif olarak, uygun bir kullanıcı varsa mevcut bir oturum açma bilgisi ve kullanıcıyı kullanabilirsiniz.
Önemli
Aşağıdaki örnekte domain_name örnek bir oturum açma ve kullanıcı adı olarak \MAX_CPUyer alır. Bunları, düşük öncelikli sıkıştırılmış yedeklemelerinizi oluştururken kullanmayı planladığınız SQL Server oturum açma bilgileri ve kullanıcı adları ile değiştirin.
Bu örnek, domain_name\MAX_CPU Windows hesabı için bir oturum açma oluşturur ve bu oturum açmaya VIEW SERVER STATE izni verir. Bu izin, oturum açma oturumlarının Resource Governor sınıflandırmasını doğrulamanızı sağlar. Örnek daha sonra domain_name\MAX_CPU için bir kullanıcı oluşturur ve bunu AdventureWorks2025 örnek veritabanı için db_backupoperator sabit veritabanı rolüne ekler. Bu kullanıcı adı Resource Governor sınıflandırıcı işlevi tarafından kullanılır.
-- Create a SQL Server login for low-priority operations
USE master;
CREATE LOGIN [domain_name\MAX_CPU] FROM WINDOWS;
GRANT VIEW SERVER STATE TO [domain_name\MAX_CPU];
GO
-- Create a SQL Server user in AdventureWorks2022 for this login
USE AdventureWorks2022;
CREATE USER [domain_name\MAX_CPU] FOR LOGIN [domain_name\MAX_CPU];
EXEC sp_addrolemember 'db_backupoperator', 'domain_name\MAX_CPU';
GO
RESOURCE Governor'ı CPU Kullanımını Sınırlandıracak Şekilde Yapılandırma
Uyarı
Resource Governor'ın etkinleştirildiğinden emin olun. Daha fazla bilgi için bkz . Resource Governor'ı etkinleştirme.
Bu Resource Governor senaryosunda yapılandırma aşağıdaki temel adımları içerir:
CPU çekişmesi oluştuğunda kaynak havuzundaki isteklere verilecek maksimum ortalama CPU bant genişliğini sınırlayan bir Resource Governor kaynak havuzu oluşturun ve yapılandırın.
Bu havuzu kullanan bir Resource Governor iş yükü grubu oluşturun ve yapılandırın.
Kullanıcı tanımlı bir fonksiyon (UDF) olan ve dönüş değerleri Resource Governor tarafından oturumları uygun iş yükü grubuna yönlendirecek şekilde sınıflandırmak için kullanılan bir sınıflandırıcı fonksiyonu oluşturun.
Sınıflandırıcı işlevini Resource Governor'a kaydedin.
Değişiklikleri Resource Governor bellek içi yapılandırmasına uygulayın.
Uyarı
Resource Governor kaynak havuzları, iş yükü grupları ve sınıflandırma hakkında bilgi için bkz. Resource Governor.
Bu adımların Transact-SQL deyimleri, "Resource Governor'ı CPU kullanımını sınırlamak üzere yapılandırmak için" yordamında açıklanmıştır; ardından yordamın Transact-SQL örneği verilmiştir.
Resource Governor'ı (SQL Server Management Studio) yapılandırmak için
Resource Governor'ı CPU kullanımını sınırlamak üzere yapılandırmak için (Transact-SQL)
Kaynak havuzu oluşturmak için CREATE RESOURCE POOL deyimi oluşturun. Bu yordam örneği aşağıdaki söz dizimini kullanır:
CREATE RESOURCE POOL [<pool_name>] WITH ( MAX_CPU_PERCENT = /*replace 10 with the actual value*/10 );Değer , maksimum ortalama CPU bant genişliği yüzdesini gösteren 1 ile 100 aralığındaki bir tamsayıdır. Uygun değer ortamınıza bağlıdır. Çizim amacıyla, bu konudaki örnekte yüzde 20% (MAX_CPU_PERCENT = 20) kullanılır.
CPU kullanımını yönetmek istediğiniz düşük öncelikli işlemler için bir iş yükü grubu oluşturmak için CREATE WORKLOAD GROUP deyimini verin. Bu yordam örneği aşağıdaki söz dizimini kullanır:
CREATE WORKLOAD GROUP [<group_name>] USING [<pool_name>];Önceki adımda oluşturulan iş yükü grubunu düşük öncelikli oturum açma kullanıcısına eşleyen bir sınıflandırıcı işlevi oluşturmak için CREATE FUNCTION deyimi oluşturun. Bu yordam örneği aşağıdaki söz dizimini kullanır:
CREATE FUNCTION [<schema_name>].[<function_name>]() RETURNS sysname WITH SCHEMABINDING AS BEGIN DECLARE @workload_group_name AS [<sysname>] IF (SUSER_NAME() = '<user_of_low_priority_login>') SET @workload_group_name = '<workload_group_name>' RETURN @workload_group_name END;Bu
CREATE FUNCTIONdeyimin bileşenleri hakkında bilgi için bkz:-
Önemli
SUSER_NAME, sınıflandırıcı işlevinde kullanılabilecek birkaç sistem işlevinden yalnızca biridir. Daha fazla bilgi için bkz. Sınıflandırıcı Kullanıcı Tanımlı Fonksiyon Oluşturma ve Test Et.
Sınıflandırıcı işlevini Resource Governor'a kaydetmek için bir ALTER RESOURCE GOVERNOR deyimi oluşturun. Bu yordam örneği aşağıdaki söz dizimini kullanır:
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = [<schema_name>].[<function_name>]);Değişiklikleri Resource Governor bellek içi yapılandırmasına uygulamak için aşağıdaki gibi ikinci bir ALTER RESOURCE GOVERNOR deyimi oluşturun:
ALTER RESOURCE GOVERNOR RECONFIGURE;
Örnek B: Resource Governor'ı Yapılandırma (Transact-SQL)
Aşağıdaki örnek, tek bir işlem içinde aşağıdaki adımları gerçekleştirir:
pMAX_CPU_PERCENT_20Kaynak havuzunu oluşturur.gMAX_CPU_PERCENT_20İş yükü grubunu oluşturur.rgclassifier_MAX_CPU()Önceki örnekte oluşturulan kullanıcı adını kullanan sınıflandırıcı işlevini oluşturur.Sınıflandırıcı işlevini Resource Governor'a kaydeder.
İşlem işlendikten sonra örnek, ALTER WORKLOAD GROUP veya ALTER RESOURCE POOL deyimlerinde istenen yapılandırma değişikliklerini uygular.
Önemli
Aşağıdaki örnek, "Örnek A: Oturum Açma ve Kullanıcı Ayarlama (Transact-SQL)," domain_name\MAX_CPU oluşturulan örnek SQL Server kullanıcı adını kullanır. Bunu, düşük öncelikli sıkıştırılmış yedeklemeler oluşturmak için kullanmayı planladığınız oturum açma kullanıcısının adıyla değiştirin.
-- Configure Resource Governor.
USE master;
-- Create a resource pool that sets the MAX_CPU_PERCENT to 20%.
CREATE RESOURCE POOL pMAX_CPU_PERCENT_20
WITH
(MAX_CPU_PERCENT = 20);
GO
-- Create a workload group to use this pool.
CREATE WORKLOAD GROUP gMAX_CPU_PERCENT_20
USING pMAX_CPU_PERCENT_20;
GO
-- Create a classification function.
-- Note that any request that does not get classified goes into
-- the 'Default' group.
CREATE FUNCTION dbo.rgclassifier_MAX_CPU() RETURNS sysname
WITH SCHEMABINDING
AS
BEGIN
DECLARE @workload_group_name AS sysname
IF (SUSER_NAME() = 'domain_name\MAX_CPU')
SET @workload_group_name = 'gMAX_CPU_PERCENT_20'
RETURN @workload_group_name
END;
GO
-- Register the classifier function with Resource Governor.
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION= dbo.rgclassifier_MAX_CPU);
COMMIT TRAN;
GO
-- Start Resource Governor
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO
Geçerli Oturumun Sınıflandırmasını Doğrulama (Transact-SQL)
İsteğe bağlı olarak, sınıflandırıcı işlevinizde belirttiğiniz kullanıcı olarak oturum açın ve Nesne Gezgini'nde aşağıdaki SELECT deyimini vererek oturum sınıflandırmasını doğrulayın:
USE master;
SELECT sess.session_id, sess.login_name, sess.group_id, grps.name
FROM sys.dm_exec_sessions AS sess
JOIN sys.dm_resource_governor_workload_groups AS grps
ON sess.group_id = grps.group_id
WHERE session_id > 50;
GO
Sonuçlar bölmesinde , ad sütunu sınıflandırıcı işlevinizde belirttiğiniz iş yükü grubu adı için bir veya daha fazla oturumu listelemelidir.
Uyarı
Bu SELECT deyimi tarafından çağrılan dinamik yönetim görünümleri hakkında bilgi için bkz. sys.dm_exec_sessions (Transact-SQL) ve sys.dm_resource_governor_workload_groups (Transact-SQL).
Sınırlı CPU ile Oturum Kullanarak Yedeklemeleri Sıkıştırma
Sınırlı cpu ile bir oturumda sıkıştırılmış yedekleme oluşturmak için sınıflandırıcı işlevinizde belirtilen kullanıcı olarak oturum açın. Yedekleme komutunuzda, WITH COMPRESSION ( Transact-SQL) belirtin veya Yedeklemeyi sıkıştır ( SQL Server Management Studio) seçeneğini belirleyin. Sıkıştırılmış veritabanı yedeklemesi oluşturmak için bkz. Tam Veritabanı Yedeklemesi (SQL Server) oluşturma.
Örnek C: Sıkıştırılmış Yedekleme Oluşturma (Transact-SQL)
Aşağıdaki BACKUP örneği, AdventureWorks2025 veritabanının sıkıştırılmış tam yedeklemesini yeni biçimlendirilmiş bir yedekleme dosyasında Z:\SQLServerBackups\AdvWorksData.bakoluşturur.
--Run backup statement in the gBackup session.
BACKUP DATABASE AdventureWorks2022 TO DISK='Z:\SQLServerBackups\AdvWorksData.bak'
WITH
FORMAT,
MEDIADESCRIPTION='AdventureWorks2022 Compressed Data Backups',
DESCRIPTION='First database backup on AdventureWorks2022 Compressed Data Backups media set',
COMPRESSION;
GO
Ayrıca Bkz.
Kullanıcı Tanımlı Sınıflandırıcı İşlevi Oluşturma ve Test Etme
Kaynak Valisi