Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Ve výchozím nastavení zálohování pomocí komprese výrazně zvyšuje využití procesoru a další procesor spotřebovaný procesem komprese může nepříznivě ovlivnit souběžné operace. Proto můžete chtít vytvořit komprimovanou zálohu s nízkou prioritou v relaci, jejíž využití procesoru je omezeno, když dojde k zatížení procesoru Správcem prostředků. Toto téma představuje scénář, který klasifikuje relace konkrétního uživatele SQL Serveru tím, že je namapuje na skupinu úloh Správce prostředků, která v takových případech omezuje využití procesoru.
Důležitý
V daném scénáři správce prostředků může být klasifikace relací založená na uživatelském jménu, názvu aplikace nebo na čemkoli jiném, co může rozlišovat připojení. Další informace najdete v tématu funkce klasifikátoru prostředků a skupiny úloh správce prostředků.
Toto téma obsahuje následující sadu scénářů, které jsou uvedeny v posloupnosti:
Nastavení přihlášení a uživatele pro operace Low-Priority
Scénář v tomto tématu vyžaduje přihlášení a uživatele SQL Serveru s nízkou prioritou. Uživatelské jméno se použije ke klasifikaci relací spuštěných v přihlášení a jejich směrování do skupiny úloh Správce prostředků, která omezuje využití procesoru.
Následující postup popisuje postup nastavení přihlášení a uživatele pro tento účel a následuje Transact-SQL příklad Příklad A: Nastavení přihlášení a uživatele (Transact-SQL)."
Nastavení přihlašovacího uživatele a uživatele databáze pro klasifikaci relací
Vytvořte přihlášení k SQL Serveru pro vytváření komprimovaných záloh s nízkou prioritou.
Vytvořit přihlašovací účet
Volitelně lze k tomuto přihlášení přiřadit oprávnění VIEW SERVER STATE.
Další informace naleznete v tématu GRANT Database Principal Permissions (Transact-SQL).
Vytvořte uživatele SQL Serveru pro toto přihlášení.
Vytvoření uživatele
Chcete-li povolit sezení tohoto přihlášení a uživatele pro zálohování dané databáze, přidejte uživatele do role db_backupoperator v této databázi. Proveďte to pro každou databázi, kterou bude tento uživatel zálohovat. Volitelně můžete uživatele přidat do dalších pevných databázových rolí.
Přidání uživatele do pevné databázové role
Další informace naleznete v tématu GRANT Database Principal Permissions (Transact-SQL).
Příklad A: Nastavení přihlášení a uživatele (Transact-SQL)
Následující příklad je relevantní pouze v případě, že se rozhodnete vytvořit nové přihlášení k SQL Serveru a uživatele pro zálohy s nízkou prioritou. Případně můžete použít existující přihlášení a uživatele, pokud existuje odpovídající.
Důležitý
Následující příklad používá ukázkové přihlašovací jméno a uživatelské jméno domain_name\MAX_CPU
. Nahraďte je názvy přihlášení a uživatele SQL Serveru, kterého chcete použít při vytváření komprimovaných záloh s nízkou prioritou.
Tento příklad vytvoří přihlášení pro účet domain_name\MAX_CPU
Windows a pak udělí oprávnění ZOBRAZIT STAV SERVERU pro přihlášení. Toto oprávnění vám umožňuje ověřit klasifikaci relací přihlášení pomocí Resource Governor. Příklad pak vytvoří uživatele pro domain_name\MAX_CPU
a přidá ho do db_backupoperator pevné databázové role pro ukázkovou databázi AdventureWorks2022. Toto uživatelské jméno bude používat funkce klasifikátoru správce prostředků.
-- 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
Konfigurace správce prostředků pro omezení využití procesoru
Poznámka
Ujistěte se, že je správce prostředků aktivní. Další informace najdete v tématu Povolit správce prostředků.
V tomto scénáři správce prostředků se konfigurace skládá z následujících základních kroků:
Vytvořte a nakonfigurujte fond zdrojů Správce prostředků, který omezuje maximální průměrnou šířku pásma procesoru, která se bude při výskytu kolize procesoru udělovat žádostem ve fondu zdrojů.
Vytvořte a nakonfigurujte skupinu úloh Správce prostředků, která tento fond používá.
Vytvořte funkci klasifikátoru , což je uživatelsky definovaná funkce (UDF), jejíž návratové hodnoty Resource Governor používá pro klasifikaci relací, aby byly směrovány do příslušné skupiny úloh.
Zaregistrujte funkci klasifikátoru ve správci prostředků.
Použijte změny v konfiguraci správce prostředků v paměti.
Poznámka
Informace o fondech zdrojů Správce prostředků, skupinách úloh a klasifikaci najdete v tématu Správce prostředků.
Příkazy Transact-SQL pro tyto kroky jsou popsány v postupu Konfigurace správce prostředků pro omezení využití procesoru, za kterým následuje Transact-SQL příkladu postupu.
Jak konfigurovat správce prostředků (SQL Server Management Studio)
Konfigurace Správce prostředků pro omezení využití procesoru (Transact-SQL)
Vydat příkaz CREATE RESOURCE POOL k vytvoření fondu zdrojů. Příklad pro tento postup používá následující syntaxi:
CREATE RESOURCE POOL [<pool_name>] WITH ( MAX_CPU_PERCENT = /*replace 10 with the actual value*/10 );
hodnota je celé číslo od 1 do 100, které označuje procento maximální průměrné šířky pásma procesoru. Odpovídající hodnota závisí na vašem prostředí. Pro ilustraci tento příklad používá 20% procent (MAX_CPU_PERCENT = 20.)
Vytvořte příkaz CREATE WORKLOAD GROUP a vytvořte skupinu úloh pro operace s nízkou prioritou, jejichž využití procesoru chcete řídit. Příklad pro tento postup používá následující syntaxi:
CREATE WORKLOAD GROUP [<group_name>] USING [<pool_name>];
Vydat příkaz CREATE FUNCTION k vytvoření funkce klasifikátoru, která mapuje skupinu úloh vytvořenou v předchozím kroku na uživatele s nízkou prioritou přihlášení. Příklad pro tento postup používá následující syntaxi:
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;
Informace o komponentách tohoto příkazu
CREATE FUNCTION
najdete tady:-
Důležitý
SUSER_NAME je jen jednou z několika systémových funkcí, které lze použít ve funkci klasifikátoru. Další informace najdete v tématu Vytvoření a otestování klasifikátoru User-Defined funkce.
Vydat příkaz ALTER RESOURCE GOVERNOR pro registraci funkce klasifikátoru u Správce prostředků. Příklad pro tento postup používá následující syntaxi:
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = [<schema_name>].[<function_name>]);
Zadejte druhý příkaz ALTER RESOURCE GOVERNOR, který použije změny konfigurace správce prostředků v paměti, a to následujícím způsobem:
ALTER RESOURCE GOVERNOR RECONFIGURE;
Příklad B: Konfigurace správce prostředků (Transact-SQL)
Následující příklad provádí následující kroky v rámci jedné transakce:
Vytvoří fond zdrojů
pMAX_CPU_PERCENT_20
.Vytvoří skupinu úloh
gMAX_CPU_PERCENT_20
.Vytvoří funkci klasifikátoru
rgclassifier_MAX_CPU()
, která používá uživatelské jméno vytvořené v předchozím příkladu.Zaregistruje funkci klasifikátoru ve správci prostředků.
Po potvrzení transakce příklad použije změny konfigurace požadované v příkazech ALTER WORKLOAD GROUP nebo ALTER RESOURCE POOL.
Důležitý
Následující příklad používá uživatelské jméno ukázkového uživatele SQL Serveru vytvořeného v části Příklad A: Nastavení přihlášení a uživatele (Transact-SQL)," domain_name\MAX_CPU
. Nahraďte ho jménem uživatele přihlášení, které chcete použít k vytváření komprimovaných záloh s nízkou prioritou.
-- 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
Ověření klasifikace aktuální relace (Transact-SQL)
Volitelně se přihlaste jako uživatel, kterého jste zadali ve funkci klasifikátoru, a ověřte klasifikaci relace zadáním následujícího příkazu SELECT v Průzkumníku objektů:
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
V podokně výsledků by měl sloupec název obsahovat jednu nebo více relací pro název skupiny zatížení, který jste zadali ve funkci klasifikátoru.
Poznámka
Informace o zobrazeních dynamické správy volaných tímto příkazem SELECT najdete v tématu sys.dm_exec_sessions (Transact-SQL) a sys.dm_resource_governor_workload_groups (Transact-SQL).
Komprese záloh pomocí relace s omezeným procesorem
Pokud chcete vytvořit komprimovanou zálohu v relaci s omezeným maximálním využitím CPU, přihlaste se jako uživatel zadaný ve vaší klasifikační funkci. V příkazu zálohování zadejte buď WITH COMPRESSION (Transact-SQL), nebo v SQL Server Management Studio vyberte možnost Komprimovat zálohování. Pokud chcete vytvořit komprimovanou zálohu databáze, přečtěte si téma Vytvoření úplné zálohy databáze (SQL Server).
Příklad C: Vytvoření komprimované zálohy (Transact-SQL)
Následující BACKUP příklad vytvoří komprimovanou úplnou zálohu databáze AdventureWorks2022 v nově formátovaném záložním souboru Z:\SQLServerBackups\AdvWorksData.bak
.
--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
Viz také
Vytvoření a otestování klasifikátoru User-Defined funkce
Správce prostředků