Zdarzenia
31 mar, 23 - 2 kwi, 23
Największe wydarzenie szkoleniowe sql, sieci szkieletowej i usługi Power BI. 31 marca – 2 kwietnia. Użyj kodu FABINSIDER, aby zaoszczędzić $400.
Zarejestruj się już dziśTa przeglądarka nie jest już obsługiwana.
Przejdź na przeglądarkę Microsoft Edge, aby korzystać z najnowszych funkcji, aktualizacji zabezpieczeń i pomocy technicznej.
Dotyczy:programu SQL Server
Domyślnie tworzenie kopii zapasowej przy użyciu kompresji znacznie zwiększa użycie procesora CPU, a dodatkowe użycie procesora CPU przez proces kompresji może mieć negatywny wpływ na operacje współbieżne. W związku z tym możesz utworzyć skompresowaną kopię zapasową o niskim priorytecie w sesji, której użycie procesora jest ograniczone przez Zarządcę zasobów, gdy wystąpi konflikt w użyciu CPU. W tym temacie przedstawiono scenariusz, który klasyfikuje sesje określonego użytkownika programu SQL Server, mapując je na grupę obciążeń Zarządca zasobów, która ogranicza użycie procesora CPU w takich przypadkach.
Ważne
W danym scenariuszu zarządcy zasobów klasyfikacja sesji może być oparta na nazwie użytkownika, nazwie aplikacji lub innych elementach, które mogą rozróżniać połączenie. Aby uzyskać więcej informacji, zobacz Funkcja klasyfikatora zarządcy zasobów i Grupa obciążenia zarządcy zasobów.
Ten temat zawiera następujący zestaw scenariuszy, które są prezentowane w sekwencji:
konfigurowanie logowania i użytkownika na potrzeby operacji Low-Priority
Konfigurowanie zarządcy zasobów w celu ograniczenia użycia procesora CPU
Kompresowanie kopii zapasowych przy użyciu sesji z ograniczonym użyciem CPU
Scenariusz w tym temacie wymaga logowania i użytkownika SQL Server o niskim priorytecie. Nazwa użytkownika będzie używana do klasyfikowania sesji uruchomionych podczas logowania i kierowania ich do grupy obciążenia Zarządca zasobów, która ogranicza użycie procesora CPU.
W poniższej procedurze opisano kroki konfigurowania logowania i użytkownika w tym celu, a następnie przykład Transact-SQL "Przykład A: Konfigurowanie logowania i użytkownika (Transact-SQL)".
Utwórz identyfikator logowania programu SQL Server do tworzenia skompresowanych kopii zapasowych o niskim priorytecie.
Aby utworzyć login
Utworzenie logowania
Opcjonalnie przyznaj uprawnienia VIEW SERVER STATE (WYŚWIETL STAN SERWERA) do tego konta logowania.
Aby uzyskać więcej informacji, zobacz GRANT Database Principal Permissions (Transact-SQL).
Utwórz użytkownika programu SQL Server dla tego loginu.
Aby utworzyć użytkownika
Aby umożliwić sesje logowania i użytkownika do tworzenia kopii zapasowej danej bazy danych, dodaj użytkownika do roli db_backupoperator tej bazy danych. Wykonaj tę czynność dla każdej bazy danych, którą ten użytkownik będzie tworzył kopię zapasową. Opcjonalnie dodaj użytkownika do innych stałych ról bazy danych.
Aby dodać użytkownika do stałej roli bazy danych
Aby uzyskać więcej informacji, zobacz GRANT Database Principal Permissions (Transact-SQL).
Poniższy przykład jest istotny tylko wtedy, gdy zdecydujesz się utworzyć nowe dane logowania programu SQL Server i użytkownika do tworzenia kopii zapasowych o niskim priorytcie. Alternatywnie możesz użyć istniejącego identyfikatora logowania i użytkownika, jeśli istnieje odpowiedni.
Ważne
W poniższym przykładzie użyto przykładowej nazwy logowania i nazwy użytkownika domain_name\MAX_CPU
. Zastąp je nazwą logowania do programu SQL Server oraz użytkownika, którego planujesz użyć podczas tworzenia skompresowanych kopii zapasowych o niskim priorytecie.
W tym przykładzie utworzono identyfikator logowania dla konta domain_name\MAX_CPU
Windows, a następnie nadano logowaniu uprawnienia VIEW SERVER STATE. To uprawnienie umożliwia zweryfikowanie klasyfikacji sesji logowania przez Zarządcę Zasobów. Następnie przykład tworzy użytkownika dla domain_name\MAX_CPU
i dodaje go do stałej roli bazy danych db_backupoperator dla przykładowej bazy danych AdventureWorks2022. Ta nazwa użytkownika będzie używana przez funkcję klasyfikatora zarządcy zasobów.
-- 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
Uwaga
Upewnij się, że zarządca zasobów jest włączony. Aby uzyskać więcej informacji, zobacz „Enable Resource Governor”.
W tym scenariuszu zarządcy zasobów konfiguracja obejmuje następujące podstawowe kroki:
Utwórz i skonfiguruj pulę zasobów Zarządzanie zasobami, która ogranicza maksymalną średnią przepustowość CPU, która zostanie przekazana żądaniom w puli zasobów, gdy wystąpi obciążenie procesora.
Utwórz i skonfiguruj grupę obciążeń Zarządcy zasobów, która używa tej puli.
Utwórz funkcję klasyfikatora , która jest funkcją zdefiniowaną przez użytkownika (UDF), której wartości zwracane są używane przez zarządcę zasobów do klasyfikowania sesji, aby były kierowane do odpowiedniej grupy obciążeń.
Zarejestruj funkcję klasyfikatora za pomocą zarządcy zasobów.
Zastosuj zmiany w konfiguracji zarządcy zasobów w pamięci.
Uwaga
Aby uzyskać informacje o pulach zasobów, grupach obciążeń i klasyfikacji zarządcy zasobów, zobacz Zarządca zasobów.
Instrukcje Transact-SQL dla tych kroków opisano w procedurze "Konfigurowanie Resource Governor w celu ograniczenia użycia CPU", po której przedstawiono Transact-SQL przykład procedury.
Aby skonfigurować zarządcę zasobów (SQL Server Management Studio)
Wydaj instrukcję CREATE RESOURCE POOL, aby utworzyć pulę zasobów. W przykładzie tej procedury użyto następującej składni:
CREATE RESOURCE POOL [<pool_name>] WITH ( MAX_CPU_PERCENT = /*replace 10 with the actual value*/10 );
wartość jest liczbą całkowitą z zakresu od 1 do 100, która wskazuje wartość procentową maksymalnej średniej przepustowości procesora CPU. Odpowiednia wartość zależy od środowiska. Dla zaprezentowania przykładu ten temat używa 20% procent (MAX_CPU_PERCENT = 20).
Wydaj instrukcję CREATE WORKLOAD GROUP, aby utworzyć grupę obciążeń dla operacji o niskim priorytecie, w których użycie procesora CPU ma być kontrolowane. W przykładzie tej procedury użyto następującej składni:
CREATE WORKLOAD GROUP [<group_name>] USING [<pool_name>];
Wydaj instrukcję CREATE FUNCTION, aby utworzyć funkcję klasyfikatora, która mapuje grupę obciążeń utworzoną w poprzednim kroku na użytkownika logowania o niskim priorytcie. W przykładzie tej procedury użyto następującej składni:
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;
Aby uzyskać informacje o składnikach tej instrukcji CREATE FUNCTION
, zobacz:
Ważne
SUSER_NAME jest tylko jedną z kilku funkcji systemowych, które mogą być używane w funkcji klasyfikatora. Aby uzyskać więcej informacji, zobacz Utwórz i przetestuj klasyfikator User-Defined Funkcja.
Wydaj instrukcję ALTER RESOURCE GOVERNOR, aby zarejestrować funkcję klasyfikatora za pomocą zarządcy zasobów. W przykładzie tej procedury użyto następującej składni:
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = [<schema_name>].[<function_name>]);
Wydaj drugą instrukcję ALTER RESOURCE GOVERNOR, aby zastosować zmiany w pamięciowej konfiguracji Resource Governor w następujący sposób:
ALTER RESOURCE GOVERNOR RECONFIGURE;
Poniższy przykład wykonuje następujące kroki w ramach jednej transakcji:
Tworzy pulę zasobów pMAX_CPU_PERCENT_20
.
Tworzy grupę obciążeń gMAX_CPU_PERCENT_20
.
Tworzy funkcję klasyfikatora rgclassifier_MAX_CPU()
, która używa nazwy użytkownika utworzonej w poprzednim przykładzie.
Rejestruje funkcję klasyfikatora za pomocą zarządcy zasobów.
Po zatwierdzeniu transakcji przykład wdraża zmiany w konfiguracji, które są wymagane w instrukcjach ALTER WORKLOAD GROUP lub ALTER RESOURCE POOL.
Ważne
W poniższym przykładzie użyto nazwy użytkownika przykładowego programu SQL Server utworzonego w sekcji "Przykład A: Konfigurowanie identyfikatora logowania i użytkownika (Transact-SQL)" domain_name\MAX_CPU
. Zastąp to nazwą użytkownika logowania, którego planujesz użyć do tworzenia skompresowanych kopii zapasowych o niskim priorytetu.
-- 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
Opcjonalnie zaloguj się jako użytkownik określony w funkcji klasyfikatora i sprawdź klasyfikację sesji, wydając następującą instrukcję SELECT w Eksploratorze obiektów:
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
W okienku wyników kolumna nazwa powinna zawierać co najmniej jedną sesję dla nazwy grupy roboczej, którą określiłeś w funkcji klasyfikującej.
Uwaga
Aby uzyskać informacje na temat dynamicznych widoków zarządzania wywoływanych przez tę instrukcję SELECT, zobacz sys.dm_exec_sessions (Transact-SQL) i sys.dm_resource_governor_workload_groups (Transact-SQL).
Aby utworzyć skompresowaną kopię zapasową w sesji z ograniczonym maksymalnym procesorem CPU, zaloguj się jako użytkownik określony w funkcji klasyfikatora. W poleceniu kopii zapasowej określ opcję WITH COMPRESSION (Transact-SQL) lub wybierz opcję Kompresuj kopię zapasową (SQL Server Management Studio). Aby utworzyć skompresowaną kopię zapasową bazy danych, zobacz Tworzenie pełnej kopii zapasowej bazy danych (SQL Server).
Poniższy przykład BACKUP tworzy skompresowaną pełną kopię zapasową bazy danych AdventureWorks2022 w nowo sformatowanym pliku kopii zapasowej, 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
Tworzenie i testowanie klasyfikatora User-Defined funkcja
Zarządca zasobów
Zdarzenia
31 mar, 23 - 2 kwi, 23
Największe wydarzenie szkoleniowe sql, sieci szkieletowej i usługi Power BI. 31 marca – 2 kwietnia. Użyj kodu FABINSIDER, aby zaoszczędzić $400.
Zarejestruj się już dziśSzkolenie
Moduł
Tworzenie kopii zapasowych i przywracanie baz danych - Training
Tworzenie kopii zapasowych i przywracanie baz danych
Certyfikacja
Certyfikat Microsoft: Administrator bazy danych platformy Azure, poziom Associate - Certifications
Administrowanie infrastrukturą bazy danych programu SQL Server dla chmurowych, lokalnych i hybrydowych relacyjnych baz danych przy użyciu ofert relacyjnych baz danych PaaS firmy Microsoft.
Dokumentacja
Rozwiązywanie problemów z wysokim użyciem procesora CPU w programie SQL Server - SQL Server
Ten artykuł zawiera procedurę ułatwiającą rozwiązywanie problemów z wysokim użyciem procesora na serwerze z uruchomionym programem SQL Server.
Zawsze włączone bazy danych w stanie oczekiwania na odzyskiwanie lub podejrzanego - SQL Server
W tym artykule opisano błędy i ograniczenia bazy danych dostępności w programie Microsoft SQL Server, które są w stanie Oczekiwanie na odzyskiwanie lub Podejrzane, oraz sposób przywracania bazy danych do pełnej funkcjonalności w grupie dostępności.
Zachowanie skompresowanych kopii zapasowych - SQL Server
W tym artykule opisano zachowanie skompresowanych kopii zapasowych podczas dołączania kopii zapasowych do istniejącego zestawu multimediów.