ALTER DATABASE (Transact-SQL)
Modyfikuje niektóre opcje konfiguracji bazy danych.
Ten artykuł zawiera składnię, argumenty, uwagi, uprawnienia i przykłady dla wybranego produktu SQL.
Aby uzyskać więcej informacji na temat konwencji składni, zobacz Transact-SQL konwencje składni.
Wybieranie produktu
W poniższym wierszu wybierz nazwę produktu, którą cię interesuje, i zostanie wyświetlona tylko informacja o tym produkcie.
* SQL Server *
usługi
usługi
Azure Synapse
analizy
Omówienie: SQL Server
W programie SQL Server ta instrukcja modyfikuje bazę danych lub pliki i grupy plików skojarzone z bazą danych. ALTER DATABASE dodaje lub usuwa pliki i grupy plików z bazy danych, zmienia atrybuty bazy danych lub jej plików i grup plików, zmienia sortowanie bazy danych i ustawia opcje bazy danych. Nie można modyfikować migawek bazy danych. Aby zmodyfikować opcje bazy danych skojarzone z replikacją, użyj sp_replicationdboption.
Ze względu na jego długość składnia ALTER DATABASE
jest oddzielona od wielu artykułów.
Artykuł | Opis |
---|---|
ALTER DATABASE |
Bieżący artykuł zawiera składnię i powiązane informacje dotyczące zmiany nazwy i sortowania bazy danych. |
opcje pliku i grupy plików ALTER DATABASE | Zawiera składnię i powiązane informacje dotyczące dodawania i usuwania plików i grup plików z bazy danych oraz zmiany atrybutów plików i grup plików. |
opcje ALTER DATABASE SET | Zawiera składnię i powiązane informacje dotyczące zmieniania atrybutów bazy danych przy użyciu opcji SET alter DATABASE. |
dublowania bazy danych ALTER DATABASE | Zawiera składnię i powiązane informacje dotyczące opcji SET ALTER DATABASE, które są związane z dublowaniem bazy danych. |
ALTER DATABASE SET HADR | Zawiera składnię i powiązane informacje dotyczące opcji Zawsze włączone grupy dostępności ALTER DATABASE do konfigurowania pomocniczej bazy danych w pomocniczej repliki zawsze włączonej grupy dostępności. |
Zawiera składnię i powiązane informacje dotyczące opcji SET ALTER DATABASE, które są powiązane z poziomami zgodności bazy danych. | |
ALTER DATABASE SCOPED CONFIGURATION | Udostępnia składnię powiązaną z konfiguracjami w zakresie bazy danych używanymi dla poszczególnych ustawień na poziomie bazy danych, takich jak optymalizacja zapytań i zachowania związane z wykonywaniem zapytań. |
Składnia
-- SQL Server Syntax
ALTER DATABASE { database_name | CURRENT }
{
MODIFY NAME = new_database_name
| COLLATE collation_name
| <file_and_filegroup_options>
| SET <option_spec> [ ,...n ] [ WITH <termination> ]
}
[;]
<file_and_filegroup_options>::=
<add_or_modify_files>::=
<filespec>::=
<add_or_modify_filegroups>::=
<filegroup_updatability_option>::=
<option_spec>::=
{
| <auto_option>
| <change_tracking_option>
| <cursor_option>
| <database_mirroring_option>
| <date_correlation_optimization_option>
| <db_encryption_option>
| <db_state_option>
| <db_update_option>
| <db_user_access_option>
| <delayed_durability_option>
| <external_access_option>
| <FILESTREAM_options>
| <HADR_options>
| <parameterization_option>
| <query_store_options>
| <recovery_option>
| <service_broker_option>
| <snapshot_option>
| <sql_option>
| <termination>
| <temporal_history_retention>
| <data_retention_policy>
| <compatibility_level>
{ 160 | 150 | 140 | 130 | 120 | 110 | 100 | 90 }
}
Argumenty
database_name
To nazwa bazy danych, która ma zostać zmodyfikowana.
Nuta
Ta opcja nie jest dostępna w zawartej bazie danych.
AKTUALNY
Dotyczy: SQL Server 2012 (11.x) i nowsze.
Określa, że bieżąca baza danych w użyciu powinna zostać zmieniona.
MODYFIKUJ NAZWĘ = new_database_name
Zmienia nazwę bazy danych na nazwę określoną jako new_database_name.
SORTOWANIE collation_name
Określa sortowanie bazy danych. collation_name może być nazwą sortowania systemu Windows lub nazwą sortowania SQL. Jeśli nie zostanie określona, baza danych zostanie przypisana do sortowania wystąpienia programu SQL Server.
Nuta
Sortowanie nie można zmienić po utworzeniu bazy danych w usłudze Azure SQL Database.
Podczas tworzenia baz danych z innym niż sortowanie domyślne dane w bazie danych zawsze są zgodne z określonym sortowaniem. W przypadku programu SQL Server podczas tworzenia zawartej bazy danych informacje o wykazie wewnętrznym są przechowywane przy użyciu domyślnego sortowania programu SQL Server, Latin1_General_100_CI_AS_WS_KS_SC.
Aby uzyskać więcej informacji na temat nazw sortowania systemu Windows i SQL, zobacz COLLATE.
<delayed_durability_option> ::=
Dotyczy: SQL Server 2014 (12.x) i nowszych.
Aby uzyskać więcej informacji, zobacz ALTER DATABASE SET options and Control Transaction Durability.
<file_and_filegroup_options>::=
Aby uzyskać więcej informacji, zobacz ALTER DATABASE File and Filegroup Options.
Uwagi
Aby usunąć bazę danych, użyj DROP DATABASE.
Aby zmniejszyć rozmiar bazy danych, użyj DBCC SHRINKDATABASE.
Instrukcja ALTER DATABASE
musi działać w trybie automatycznego zatwierdzania (domyślny tryb zarządzania transakcjami) i nie jest dozwolona w jawnej lub niejawnej transakcji.
Stan pliku bazy danych (na przykład w trybie online lub offline) jest utrzymywany niezależnie od stanu bazy danych. Aby uzyskać więcej informacji, zobacz File States. Stan plików w grupie plików określa dostępność całej grupy plików. Aby grupa plików był dostępna, wszystkie pliki w grupie plików muszą być w trybie online. Jeśli grupa plików jest w trybie offline, próba uzyskania dostępu do grupy plików według instrukcji SQL kończy się niepowodzeniem z powodu błędu. Podczas tworzenia planów zapytań dla instrukcji SELECT optymalizator zapytań unika indeksów nieklastrowanych i indeksowanych widoków znajdujących się w grupach plików trybu offline. Dzięki temu te instrukcje mogą zakończyć się powodzeniem. Jeśli jednak grupa plików offline zawiera stos lub indeks klastrowany tabeli docelowej, instrukcje SELECT kończą się niepowodzeniem. Ponadto wszystkie instrukcje INSERT
, UPDATE
lub DELETE
modyfikujące tabelę z dowolnym indeksem w grupie plików trybu offline kończą się niepowodzeniem.
Gdy baza danych jest w stanie PRZYWRACANIA, większość instrukcji ALTER DATABASE
kończy się niepowodzeniem. Wyjątkiem jest ustawienie opcji dublowania bazy danych. Baza danych może być w stanie PRZYWRACANIE podczas aktywnej operacji przywracania lub gdy operacja przywracania bazy danych lub pliku dziennika kończy się niepowodzeniem z powodu uszkodzonego pliku kopii zapasowej.
Pamięć podręczna planu dla wystąpienia programu SQL Server jest czyszczone, ustawiając jedną z następujących opcji.
- COLLATE
- MODYFIKOWANIE DOMYŚLNEJ GRUPY PLIKÓW
- MODYFIKOWANIE READ_ONLY FILEGROUP
- MODYFIKOWANIE READ_WRITE FILEGROUP
- MODIFY_NAME
- OFFLINE
- ONLINE
- PAGE_VERIFY
- READ_ONLY
- READ_WRITE
Wyczyszczenie pamięci podręcznej planu powoduje ponowne skompilowanie wszystkich kolejnych planów wykonywania i może spowodować nagłe, tymczasowe obniżenie wydajności zapytań. Dla każdego wyczyszczonego magazynu pamięci podręcznej w pamięci podręcznej planu dziennik błędów programu SQL Server zawiera następujący komunikat informacyjny: SQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to some database maintenance or reconfigure operations
. Ten komunikat jest rejestrowany co pięć minut, o ile pamięć podręczna jest opróżniona w tym przedziale czasu.
Pamięć podręczna planu jest również opróżniona w następujących scenariuszach:
- Baza danych ma opcję bazy danych
AUTO_CLOSE
ustawioną na WARTOŚĆ WŁĄCZONE. Jeśli żadne połączenie użytkownika nie odwołuje się do bazy danych ani nie korzysta z bazy danych, zadanie w tle próbuje zamknąć i zamknąć bazę danych automatycznie. - Uruchamiasz kilka zapytań względem bazy danych, która ma opcje domyślne. Następnie baza danych zostanie porzucona.
- Migawka bazy danych źródłowej bazy danych została porzucona.
- Pomyślnie ponownie skompilujesz dziennik transakcji dla bazy danych.
- Przywracasz kopię zapasową bazy danych.
- Odłączasz bazę danych.
Zmienianie sortowania bazy danych
Przed zastosowaniem innego sortowania do bazy danych upewnij się, że obowiązują następujące warunki:
- Obecnie używasz tylko bazy danych.
- Żaden obiekt powiązany ze schematem nie zależy od sortowania bazy danych.
Jeśli następujące obiekty, które zależą od sortowania bazy danych, istnieją w bazie danych, instrukcja ALTER DATABASE database_name COLLATE
kończy się niepowodzeniem. Program SQL Server zwraca komunikat o błędzie dla każdego obiektu blokującego akcję ALTER
:
- Funkcje i widoki zdefiniowane przez użytkownika utworzone za pomocą funkcji SCHEMABINDING
- Obliczone kolumny
- SPRAWDZANIE ograniczeń
- Funkcje wartości tabeli zwracające tabele z kolumnami znaków z sortowaniami dziedziczone z domyślnego sortowania bazy danych
Informacje o zależnościach dla jednostek niezwiązanych ze schematem są automatycznie aktualizowane po zmianie sortowania bazy danych.
Zmiana sortowania bazy danych nie powoduje tworzenia duplikatów między nazwami systemu obiektów bazy danych. Jeśli zduplikowane nazwy wynikają ze zmienionego sortowania, następujące przestrzenie nazw mogą spowodować niepowodzenie zmiany sortowania bazy danych:
- Nazwy obiektów, takie jak procedura, tabela, wyzwalacz lub widok
- Nazwy schematów
- Podmioty zabezpieczeń, takie jak grupa, rola lub użytkownik
- Nazwy typów skalarnych, takie jak typy systemowe i zdefiniowane przez użytkownika
- Nazwy wykazu pełnotekstowego
- Nazwy kolumn lub parametrów w obiekcie
- Nazwy indeksów w tabeli
Zduplikowane nazwy wynikające z nowego sortowania powodują niepowodzenie akcji zmiany, a program SQL Server zwraca komunikat o błędzie określający przestrzeń nazw, w której znaleziono duplikat.
Wyświetlanie informacji o bazie danych
Widoki wykazu, funkcje systemowe i procedury składowane systemu umożliwiają zwracanie informacji o bazach danych, plikach i grupach plików.
Uprawnienia
Wymaga ALTER
uprawnienia do bazy danych.
Przykłady
A. Zmienianie nazwy bazy danych
Poniższy przykład zmienia nazwę bazy danych AdventureWorks2022
na Northwind
.
USE master;
GO
ALTER DATABASE AdventureWorks2022
Modify Name = Northwind ;
GO
B. Zmienianie sortowania bazy danych
Poniższy przykład tworzy bazę danych o nazwie testdb
z sortowaniem SQL_Latin1_General_CP1_CI_AS
, a następnie zmienia sortowanie bazy danych testdb
na COLLATE French_CI_AI
.
Dotyczy: SQL Server 2008 (10.0.x) i nowszych.
USE master;
GO
CREATE DATABASE testdb
COLLATE SQL_Latin1_General_CP1_CI_AS ;
GO
ALTER DATABASE testDB
COLLATE French_CI_AI ;
GO
Powiązana zawartość
* SQL Database *
usługi
Azure Synapse
analizy
Omówienie: SQL Database
W usłudze Azure SQL Database użyj tej instrukcji, aby zmodyfikować bazę danych. Użyj tej instrukcji, aby zmienić nazwę bazy danych, zmienić wydanie i cel usługi bazy danych, dołączyć lub usunąć bazę danych do lub z elastycznej puli, ustawić opcje bazy danych, dodać lub usunąć bazę danych jako pomocniczą w relacji replikacji geograficznej i ustawić poziom zgodności bazy danych.
Ze względu na jego długość składnia ALTER DATABASE
jest oddzielona od wielu artykułów.
ALTER DATABASE
Bieżący artykuł zawiera składnię i powiązane informacje dotyczące zmiany nazwy i innych ustawień bazy danych.
opcje ALTER DATABASE SET
Zawiera składnię i powiązane informacje dotyczące zmieniania atrybutów bazy danych przy użyciu opcji SET alter DATABASE.
Zawiera składnię i powiązane informacje dotyczące opcji SET ALTER DATABASE, które są powiązane z poziomami zgodności bazy danych.
Składnia
-- Azure SQL Database Syntax
ALTER DATABASE { database_name | CURRENT }
{
MODIFY NAME = new_database_name
| MODIFY ( <edition_options> [, ... n] )
| MODIFY BACKUP_STORAGE_REDUNDANCY = { 'LOCAL' | 'ZONE' | 'GEO' }
| SET { <option_spec> [ ,... n ] WITH <termination>}
| ADD SECONDARY ON SERVER <partner_server_name>
[WITH ( <add-secondary-option>::=[, ... n] ) ]
| REMOVE SECONDARY ON SERVER <partner_server_name>
| FAILOVER
| FORCE_FAILOVER_ALLOW_DATA_LOSS
}
[;]
<edition_options> ::=
{
MAXSIZE = { 100 MB | 250 MB | 500 MB | 1 ... 1024 ... 4096 GB }
| EDITION = { 'Basic' | 'Standard' | 'Premium' | 'GeneralPurpose' | 'BusinessCritical' | 'Hyperscale'}
| SERVICE_OBJECTIVE =
{ <service-objective>
| { ELASTIC_POOL (name = <elastic_pool_name>) }
}
}
<add-secondary-option> ::=
{
ALLOW_CONNECTIONS = { ALL | NO }
| BACKUP_STORAGE_REDUNDANCY = { 'LOCAL' | 'ZONE' | 'GEO' }
| SERVICE_OBJECTIVE =
{ <service-objective>
| { ELASTIC_POOL ( name = <elastic_pool_name>) }
| DATABASE_NAME = <target_database_name>
| SECONDARY_TYPE = { GEO | NAMED }
}
}
<service-objective> ::={ 'Basic' |'S0' | 'S1' | 'S2' | 'S3'| 'S4'| 'S6'| 'S7'| 'S9'| 'S12'
| 'P1' | 'P2' | 'P4'| 'P6' | 'P11' | 'P15'
| 'BC_DC_n'
| 'BC_Gen5_n'
| 'BC_M_n'
| 'GP_DC_n'
| 'GP_Fsv2_n'
| 'GP_Gen5_n'
| 'GP_S_Gen5_n'
| 'HS_DC_n'
| 'HS_Gen5_n'
| 'HS_S_Gen5_n'
| 'HS_MOPRMS_n'
| 'HS_PRMS_n'
| { ELASTIC_POOL(name = <elastic_pool_name>) }
}
<option_spec> ::=
{
<auto_option>
| <change_tracking_option>
| <cursor_option>
| <db_encryption_option>
| <db_update_option>
| <db_user_access_option>
| <delayed_durability_option>
| <parameterization_option>
| <query_store_options>
| <snapshot_option>
| <sql_option>
| <target_recovery_time_option>
| <termination>
| <temporal_history_retention>
| <compatibility_level>
{ 160 | 150 | 140 | 130 | 120 | 110 | 100 | 90 }
}
Argumenty
database_name
To nazwa bazy danych, która ma zostać zmodyfikowana.
AKTUALNY
Określa, że bieżąca baza danych w użyciu powinna zostać zmieniona.
MODYFIKUJ NAZWĘ = new_database_name
Zmienia nazwę bazy danych na nazwę określoną jako new_database_name. Poniższy przykład zmienia nazwę db1
bazy danych na db2
:
ALTER DATABASE db1
MODIFY Name = db2 ;
MODIFY (EDITION = ['Basic' | "Standardowa" | "Premium" |" OgólnePurpose' | "BusinessCritical" | "Hiperskala"])
Zmienia warstwę usługi bazy danych.
Poniższy przykład zmienia edycję na Premium
:
ALTER DATABASE current
MODIFY (EDITION = 'Premium');
Ważny
Zmiana edycji nie powiedzie się, jeśli właściwość MAXSIZE bazy danych jest ustawiona na wartość poza prawidłowym zakresem obsługiwanym przez tę edycję.
MODIFY BACKUP_STORAGE_REDUNDANCY = ['LOCAL' | "ZONE" | 'GEO']
Zmienia nadmiarowość magazynu kopii zapasowych przywracania do punktu w czasie i kopii zapasowych przechowywania długoterminowego (jeśli skonfigurowano) bazy danych. Zmiany są stosowane do wszystkich przyszłych kopii zapasowych. Istniejące kopie zapasowe nadal używają poprzedniego ustawienia.
Aby wymusić miejsce przechowywania danych podczas tworzenia bazy danych przy użyciu języka T-SQL, użyj LOCAL
lub ZONE
jako danych wejściowych dla parametru BACKUP_STORAGE_REDUNDANCY.
MODIFY (MAXSIZE = [100 MB | 500 MB | 1 | 1024...4096] GB)
Określa maksymalny rozmiar bazy danych. Maksymalny rozmiar musi być zgodny z prawidłowym zestawem wartości dla właściwości EDITION bazy danych. Zmiana maksymalnego rozmiaru bazy danych może spowodować zmianę wersji bazy danych.
Nuta
Argument MAXSIZE nie ma zastosowania do pojedynczych baz danych w warstwie usługi Hiperskala. Pojedyncze bazy danych warstwy usług w warstwie Hiperskala rosną zgodnie z potrzebami, do 128 TB. Usługa SQL Database automatycznie dodaje magazyn — nie trzeba ustawiać maksymalnego rozmiaru.
modelu jednostek DTU
MAXSIZE | Podstawowa | |
|
P1-P6 | |
---|---|---|---|---|---|
100 MB | Tak | Tak | Tak | Tak | Tak |
250 MB | Tak | Tak | Tak | Tak | Tak |
500 MB | Tak | Tak | Tak | Tak | Tak |
1 GB | Tak | Tak | Tak | Tak | Tak |
2 GB | Tak (D) | Tak | Tak | Tak | Tak |
5 GB | N/A | Tak | Tak | Tak | Tak |
10 GB | N/A | Tak | Tak | Tak | Tak |
20 GB | N/A | Tak | Tak | Tak | Tak |
30 GB | N/A | Tak | Tak | Tak | Tak |
40 GB | N/A | Tak | Tak | Tak | Tak |
50 GB | N/A | Tak | Tak | Tak | Tak |
100 GB | N/A | Tak | Tak | Tak | Tak |
150 GB | N/A | Tak | Tak | Tak | Tak |
200 GB | N/A | Tak | Tak | Tak | Tak |
250 GB | N/A | Tak (D) | Tak (D) | Tak | Tak |
300 GB | N/A | Tak | Tak | Tak | Tak |
400 GB | N/A | Tak | Tak | Tak | Tak |
500 GB | N/A | Tak | Tak | Tak (D) | Tak |
750 GB | N/A | Tak | Tak | Tak | Tak |
1024 GB | N/A | Tak | Tak | Tak | Tak (D) |
Od 1024 GB do 4096 GB w przyrostach 256 GB 1 | N/A | N/A | N/A | N/A | Tak |
1 P11 i P15 zezwalają maxSIZE do 4 TB, a rozmiar domyślny wynosi 1024 GB. P11 i P15 mogą korzystać z maksymalnie 4 TB dołączonego miejsca do magazynowania bez dodatkowych opłat. W warstwie Premium wartość MAXSIZE większa niż 1 TB jest obecnie dostępna w następujących regionach: Wschodnie stany USA2, Zachodnie stany USA, US Gov Wirginia, Europa Zachodnia, Niemcy Środkowe, Azja Południowo-Wschodnia, Japonia Wschodnia, Australia Wschodnia, Kanada Środkowa i Kanada Wschodnia. Aby uzyskać więcej informacji na temat ograniczeń zasobów dla modelu JEDNOSTEK DTU, zobacz limity zasobów jednostek DTU.
Wartość MAXSIZE dla modelu DTU, jeśli określono, musi być prawidłową wartością pokazaną w poprzedniej tabeli dla określonej warstwy usługi.
W przypadku limitów, takich jak maksymalny rozmiar danych i rozmiar tempdb
w modelu zakupów rdzeni wirtualnych, zapoznaj się z artykułami dotyczącymi limitów zasobów dla pojedynczych baz danych lub limitów zasobów dla pul elastycznych.
Jeśli podczas korzystania z modelu rdzeni wirtualnych nie ustawiono żadnej wartości MAXSIZE
, wartość domyślna to 32 GB. Aby uzyskać więcej informacji na temat ograniczeń zasobów dla modelu rdzeni wirtualnych, zobacz limity zasobów rdzeni wirtualnych.
Następujące reguły dotyczą argumentów MAXSIZE i EDITION:
- Jeśli określono wartość EDITION, ale wartość MAXSIZE nie jest określona, zostanie użyta wartość domyślna dla wersji. Na przykład wartość EDITION jest ustawiona na Standardowa, a wartość MAXSIZE nie jest określona, a wartość MAXSIZE jest ustawiana automatycznie na 250 MB.
- Jeśli nie określono wartości MAXSIZE ani EDITION, wartość EDITION jest ustawiona na Ogólnego przeznaczenia, a wartość MAXSIZE jest ustawiona na 32 GB.
MODIFY (SERVICE_OBJECTIVE = <service-objective>)
Określa rozmiar obliczeniowy i cel usługi.
SERVICE_OBJECTIVE
Określa rozmiar obliczeniowy (znany również jako cel poziomu usługi lub SLO).
- W przypadku modelu zakupów jednostek DTU:
S0
,S1
,S2
,S3
,S4
,S6
,S7
,S9
,S12
,P1
P2
,P4
,P4
,P6
,P11
,P15
. Zapoznaj się z limitami zasobów dla pojedynczych baz danych jednostek DTU lub limitów zasobów dla elastycznych pul DTU, aby znaleźć liczbę jednostek DTU przypisanych do każdego rozmiaru obliczeniowego. - W przypadku modelu zakupów rdzeni wirtualnych wybierz warstwę i podaj liczbę rdzeni wirtualnych z wstępnie ustawionej listy wartości, gdzie liczba rdzeni wirtualnych jest
n
. Zapoznaj się z limitami zasobów dla pojedynczych baz danych z rdzeniami wirtualnymi lub limitami zasobów dla elastycznych pul rdzeni wirtualnych.- Na przykład:
-
GP_Gen5_8
w przypadku warstwy Ogólnego przeznaczenia, aprowizowania zasobów obliczeniowych, standardowej serii (Gen5), 8 rdzeni wirtualnych. -
GP_S_Gen5_8
dla ogólnego przeznaczenia, bezserwerowych obliczeń, serii Standardowej (Gen5), 8 rdzeni wirtualnych. -
HS_Gen5_8
dla warstwy Hiperskala, aprowizowanych zasobów obliczeniowych, serii Standardowej (Gen5), 8 rdzeni wirtualnych. -
HS_S_Gen5_8
dla hiperskala, bezserwerowych obliczeń, serii Standardowej (Gen5), 8 rdzeni wirtualnych.
Na przykład następujące przykładowe zmiany celu usługi bazy danych warstwy Premium w modelu zakupów JEDNOSTEK DTU w celu P6
:
ALTER DATABASE <database_name>
MODIFY (SERVICE_OBJECTIVE = 'P6');
Na przykład następujący przykładowy cel usługi zmienia cel usługi aprowizowanej bazy danych obliczeniowej w modelu zakupów rdzeni wirtualnych w celu GP_Gen5_8
:
ALTER DATABASE <database_name>
MODIFY (SERVICE_OBJECTIVE = 'GP_Gen5_8');
DATABASE_NAME
Tylko w przypadku warstwy Hiperskala usługi Azure SQL Database. Nazwa bazy danych, która zostanie utworzona. Używane tylko przez hiperskala usługi Azure SQL Database nazwane repliki, gdy SECONDARY_TYPE
= NAZWA. Aby uzyskać więcej informacji, zobacz replik pomocniczych w warstwie Hiperskala.
SECONDARY_TYPE
Tylko w przypadku warstwy Hiperskala usługi Azure SQL Database. geo określa replikę geograficzną, NAZWANE określa nazwaną replikę. Wartość domyślna to geo. Aby uzyskać więcej informacji, zobacz replik pomocniczych w warstwie Hiperskala.
Aby uzyskać opisy celów usługi i więcej informacji na temat kombinacji rozmiarów, edycji i celów usługi, zobacz Porównanie modeli zakupów opartych na rdzeniach wirtualnych i jednostkach DTU w usłudze Azure SQL Database, limity zasobów jednostek DTU i limity zasobów rdzeni wirtualnych. Obsługa celów usługi PRS została usunięta.
Jeśli SERVICE_OBJECTIVE nie zostanie określona, pomocnicza baza danych zostanie utworzona na tym samym poziomie usługi co podstawowa baza danych. Po określeniu SERVICE_OBJECTIVE pomocnicza baza danych jest tworzona na określonym poziomie. Określony SERVICE_OBJECTIVE musi znajdować się w tej samej wersji co źródło. Na przykład nie można określić S0, jeśli wersja jest premium.
MODIFY (SERVICE_OBJECTIVE = ELASTIC_POOL (nazwa = <elastic_pool_name>)
Aby dodać istniejącą bazę danych do elastycznej puli, ustaw SERVICE_OBJECTIVE bazy danych na ELASTIC_POOL i podaj nazwę elastycznej puli. Możesz również użyć tej opcji, aby zmienić bazę danych na inną elastyczną pulę na tym samym serwerze. Aby uzyskać więcej informacji, zobacz Elastyczne pule ułatwiają zarządzanie wieloma bazami danych i skalowanie ich w usłudze Azure SQL Database. Aby usunąć bazę danych z puli elastycznej, użyj funkcji ALTER DATABASE, aby ustawić SERVICE_OBJECTIVE na pojedynczy rozmiar obliczeniowy bazy danych (cel usługi).
Nuta
Nie można dodać baz danych w warstwie usługi Hiperskala do elastycznej puli.
DODAWANIE POMOCNICZEJ <PARTNER_SERVER_NAME> SERWERA
Tworzy pomocniczą bazę danych replikacji geograficznej o takiej samej nazwie na serwerze partnerskim, dzięki czemu lokalna baza danych jest podstawowa replikacji geograficznej i rozpoczyna asynchronicznie replikowanie danych z podstawowego do nowej pomocniczej. Jeśli baza danych o tej samej nazwie już istnieje w pomocniczej bazie danych, polecenie zakończy się niepowodzeniem. Polecenie jest wykonywane w bazie danych master
na serwerze hostujący lokalną bazę danych, która staje się podstawową bazą danych.
Ważny
Domyślnie pomocnicza baza danych jest tworzona z tą samą nadmiarowością magazynu kopii zapasowych co podstawowa lub źródłowa baza danych. Zmiana nadmiarowości magazynu kopii zapasowych podczas tworzenia pomocniczej nie jest obsługiwana za pośrednictwem języka T-SQL.
Z ALLOW_CONNECTIONS { ALL | NIE }
Jeśli ALLOW_CONNECTIONS nie jest określona, jest ona domyślnie ustawiona na WARTOŚĆ WSZYSTKIE. Jeśli jest ustawiona wartość ALL, jest to baza danych tylko do odczytu, która zezwala na łączenie wszystkich logowań z odpowiednimi uprawnieniami.
ELASTIC_POOL (nazwa = <elastic_pool_name>)
Jeśli nie określono ELASTIC_POOL, pomocnicza baza danych nie jest tworzona w elastycznej puli. Po określeniu ELASTIC_POOL pomocnicza baza danych jest tworzona w określonej puli.
Ważny
Użytkownik wykonujący polecenie ADD SECONDARY musi być DBManager na serwerze podstawowym, mieć db_owner członkostwo w lokalnej bazie danych i DBManager na serwerze pomocniczym. Adres IP klienta należy dodać do listy dozwolonych w obszarze reguły zapory zarówno dla serwerów podstawowych, jak i pomocniczych. W przypadku różnych adresów IP klienta należy również dodać dokładnie ten sam adres IP klienta, który został dodany na serwerze podstawowym. Jest to wymagany krok, który należy wykonać przed uruchomieniem polecenia ADD SECONDARY w celu zainicjowania replikacji geograficznej.
USUWANIE POMOCNICZEJ <PARTNER_SERVER_NAME> SERWERA
Usuwa określoną pomocniczą bazę danych replikowanej geograficznie na określonym serwerze. Polecenie jest wykonywane w bazie danych master
na serwerze hostowym podstawowej bazy danych.
Ważny
Użytkownik wykonujący polecenie REMOVE SECONDARY
musi być dbManager na serwerze podstawowym.
TRYB FAILOVER
Promuje pomocniczą bazę danych we współpracy replikacji geograficznej, na której polecenie jest wykonywane, aby stać się podstawowym i obniża bieżący podstawowy, aby stać się nowym pomocniczym. W ramach tego procesu tryb replikacji geograficznej jest tymczasowo przełączany z trybu asynchronicznego na tryb synchroniczny. Podczas procesu pracy w trybie failover:
- Podstawowe przestaje przyjmować nowe transakcje.
- Wszystkie zaległe transakcje są opróżniane do pomocniczej.
- Pomocnicza staje się podstawową i rozpoczyna asynchroniczną replikację geograficzną ze starą podstawową /nową pomocniczą.
Ta sekwencja gwarantuje, że żadna utrata danych nie wystąpi. Okres, w którym obie bazy danych są niedostępne, wynosi od 0 do 25 sekund, gdy role są przełączane. Łączna operacja powinna trwać nie dłużej niż około jednej minuty. Jeśli podstawowa baza danych jest niedostępna po wydaniu tego polecenia, polecenie kończy się niepowodzeniem z komunikatem o błędzie wskazującym, że podstawowa baza danych nie jest dostępna. Jeśli proces trybu failover nie zostanie ukończony i pojawi się zablokowany, możesz użyć polecenia force failover i zaakceptować utratę danych — a następnie, jeśli chcesz odzyskać utracone dane, wywołaj metodyki devops (CSS), aby odzyskać utracone dane.
Ważny
Użytkownik wykonujący polecenie FAILOVER musi być DBManager zarówno na serwerze podstawowym, jak i pomocniczym.
FORCE_FAILOVER_ALLOW_DATA_LOSS
Promuje pomocniczą bazę danych we współpracy replikacji geograficznej, na której polecenie jest wykonywane, aby stać się podstawowym i obniża bieżący podstawowy, aby stać się nowym pomocniczym. Użyj tego polecenia tylko wtedy, gdy bieżący element podstawowy nie jest już dostępny. Jest ona przeznaczona tylko do odzyskiwania po awarii, gdy przywracanie dostępności ma krytyczne znaczenie, a niektóre straty danych są akceptowalne.
Podczas wymuszonego przejścia w tryb failover:
- Określona pomocnicza baza danych natychmiast staje się podstawową bazą danych i zaczyna akceptować nowe transakcje.
- Gdy oryginalny podstawowy może ponownie nawiązać połączenie z nowym podstawowym, przyrostowa kopia zapasowa jest wykonywana na oryginalnym podstawowym serwerze podstawowym, a oryginalna baza podstawowa staje się nową pomocniczą.
- Aby odzyskać dane z tej przyrostowej kopii zapasowej na starym podstawowym serwerze podstawowym, użytkownik angażuje metodykę devops/CSS.
- Jeśli istnieją dodatkowe pomocnicze, są one automatycznie ponownie skonfigurowane, aby stać się secondaries nowego podstawowego. Ten proces jest asynchroniczny i może wystąpić opóźnienie do momentu zakończenia tego procesu. Dopóki ponowna konfiguracja nie zostanie ukończona, pomocnicze będą nadal drugimi elementami starego podstawowego elementu podstawowego.
Ważny
Użytkownik wykonujący polecenie FORCE_FAILOVER_ALLOW_DATA_LOSS
musi należeć do roli dbmanager
zarówno na serwerze podstawowym, jak i na serwerze pomocniczym.
Uwagi
Aby usunąć bazę danych, użyj DROP DATABASE. Aby zmniejszyć rozmiar bazy danych, użyj DBCC SHRINKDATABASE.
Instrukcja ALTER DATABASE
musi działać w trybie automatycznego zatwierdzania (domyślny tryb zarządzania transakcjami) i nie jest dozwolona w jawnej lub niejawnej transakcji.
Wyczyszczenie pamięci podręcznej planu powoduje ponowne skompilowanie wszystkich kolejnych planów wykonywania i może spowodować nagłe, tymczasowe obniżenie wydajności zapytań. Dla każdego wyczyszczonego magazynu pamięci podręcznej w pamięci podręcznej planu dziennik błędów programu SQL Server zawiera następujący komunikat informacyjny: SQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to some database maintenance or reconfigure operations
. Ten komunikat jest rejestrowany co pięć minut, o ile pamięć podręczna jest opróżniona w tym przedziale czasu.
Pamięć podręczna procedury jest również opróżniona w następującym scenariuszu: uruchamiasz kilka zapytań względem bazy danych z opcjami domyślnymi. Następnie baza danych zostanie porzucona.
Wyświetlanie informacji o bazie danych
Widoki wykazu, funkcje systemowe i procedury składowane systemu umożliwiają zwracanie informacji o bazach danych, plikach i grupach plików.
Uprawnienia
Aby zmienić bazę danych, identyfikator logowania musi być identyfikatorem logowania administratora serwera (utworzonym podczas aprowizowania serwera logicznego usługi Azure SQL Database), administratorem firmy Microsoft Entra serwera, członkiem roli bazy danych dbmanager w master
, członkiem roli bazy danych db_owner w bieżącej bazie danych lub dbo
bazy danych. Microsoft Entra ID to (wcześniej usługi Azure Active Directory).
Do skalowania baz danych za pomocą języka T-SQL potrzebne są uprawnienia ALTER DATABASE. Aby skalować bazy danych za pośrednictwem witryny Azure Portal, programu PowerShell, interfejsu wiersza polecenia platformy Azure lub interfejsu API REST, wymagane są uprawnienia RBAC platformy Azure, w szczególności role Współautor, Współautor bazy danych SQL lub Współautor RBAC programu SQL Server. Aby uzyskać więcej informacji, odwiedź ról wbudowanych platformy Azure.
Przykłady
A. Sprawdź opcje edycji i zmień je
Ustawia edycję i maksymalny rozmiar bazy danych db1
:
SELECT Edition = DATABASEPROPERTYEX('db1', 'EDITION'),
ServiceObjective = DATABASEPROPERTYEX('db1', 'ServiceObjective'),
MaxSizeInBytes = DATABASEPROPERTYEX('db1', 'MaxSizeInBytes');
ALTER DATABASE [db1] MODIFY (EDITION = 'Premium', MAXSIZE = 1024 GB, SERVICE_OBJECTIVE = 'P15');
B. Przenoszenie bazy danych do innej elastycznej puli
Przenosi istniejącą bazę danych do puli o nazwie pool1
:
ALTER DATABASE db1
MODIFY ( SERVICE_OBJECTIVE = ELASTIC_POOL ( name = pool1 ) ) ;
C. Dodawanie pomocniczej Geo-Replication
Tworzy pomocniczą bazę danych db1
na serwerze secondaryserver
db1
na serwerze lokalnym.
ALTER DATABASE db1
ADD SECONDARY ON SERVER secondaryserver
WITH ( ALLOW_CONNECTIONS = ALL );
D. Usuwanie pomocniczej Geo-Replication
Usuwa pomocnicze db1
bazy danych na serwerze secondaryserver
.
ALTER DATABASE db1
REMOVE SECONDARY ON SERVER testsecondaryserver;
E. Przechodzenie w tryb failover do pomocniczej Geo-Replication
Podwyższa poziom pomocniczej bazy danych db1
na serwerze secondaryserver
, aby stać się nową podstawową bazą danych po wykonaniu na serwerze secondaryserver
.
ALTER DATABASE db1 FAILOVER;
Nuta
Aby uzyskać więcej informacji, zobacz wskazówki dotyczące odzyskiwania po awarii — Usługa Azure SQL Database i lista kontrolna wysokiej dostępności i odzyskiwania po awarii usługi Azure SQL Database .
F. Wymuszanie przejścia w tryb failover do pomocniczej Geo-Replication z utratą danych
Wymusza db1
pomocniczej bazy danych na serwerze secondaryserver
, aby stała się nową podstawową bazą danych wykonywaną na serwerze secondaryserver
, w przypadku niedostępności serwera podstawowego. Ta opcja może spowodować utratę danych.
ALTER DATABASE db1 FORCE_FAILOVER_ALLOW_DATA_LOSS;
G. Aktualizowanie pojedynczej bazy danych do warstwy usługi S0 (wersja Standardowa, poziom wydajności 0)
Aktualizuje pojedynczą bazę danych do wersji Standard (warstwa usługi) z rozmiarem obliczeniowym (celem usługi) S0 i maksymalnym rozmiarem 250 GB.
ALTER DATABASE [db1] MODIFY (EDITION = 'Standard', MAXSIZE = 250 GB, SERVICE_OBJECTIVE = 'S0');
H. Aktualizowanie nadmiarowości magazynu kopii zapasowych bazy danych
Aktualizuje nadmiarowość magazynu kopii zapasowych bazy danych do strefowo nadmiarowej. Wszystkie przyszłe kopie zapasowe tej bazy danych używają nowego ustawienia. Obejmuje to kopie zapasowe przywracania do punktu w czasie i kopie zapasowe przechowywania długoterminowego (jeśli zostały skonfigurowane).
ALTER DATABASE db1 MODIFY BACKUP_STORAGE_REDUNDANCY = 'ZONE';
Powiązana zawartość
- CREATE DATABASE — Azure SQL Database
- DATABASEPROPERTYEX
- DROP DATABASE
- USTAWIANIE POZIOMU IZOLACJI TRANSAKCJI
- EVENTDATA
- sp_spaceused
-
sys.databases - sys.database_files
- sys.filegroups
- sys.master_files
- systemowych baz danych
- wskazówki dotyczące odzyskiwania po awarii — usługa Azure SQL Database
- listy kontrolnej wysokiej dostępności i odzyskiwania po awarii usługi Azure SQL Database
- limity zasobów jednostek DTU
- limity zasobów rdzeni wirtualnych dla pojedynczych baz danych
- limity zasobów rdzeni wirtualnych dla pul elastycznych
usługi
* SQL Managed Instance *
Azure Synapse
analizy
Omówienie: Azure SQL Managed Instance
W usłudze Azure SQL Managed Instance użyj tej instrukcji, aby ustawić opcje bazy danych.
Ze względu na jego długość składnia ALTER DATABASE
jest oddzielona od wielu artykułów.
Artykuł | Opis |
---|---|
ALTER DATABASE |
|
Bieżący artykuł zawiera składnię i powiązane informacje dotyczące ustawiania opcji pliku i grupy plików, ustawiania opcji bazy danych oraz ustawiania poziomu zgodności bazy danych. | |
opcje pliku i grupy plików ALTER DATABASE | |
Zawiera składnię i powiązane informacje dotyczące dodawania i usuwania plików i grup plików z bazy danych oraz zmiany atrybutów plików i grup plików. | |
opcje ALTER DATABASE SET | |
Zawiera składnię i powiązane informacje dotyczące zmieniania atrybutów bazy danych przy użyciu opcji SET alter DATABASE. | |
Zawiera składnię i powiązane informacje dotyczące opcji SET ALTER DATABASE, które są powiązane z poziomami zgodności bazy danych. |
Składnia
-- Azure SQL Managed Instance syntax
ALTER DATABASE { database_name | CURRENT }
{
MODIFY NAME = new_database_name
| COLLATE collation_name
| <file_and_filegroup_options>
| SET <option_spec> [ ,...n ]
}
[;]
<file_and_filegroup_options>::=
<add_or_modify_files>::=
<filespec>::=
<add_or_modify_filegroups>::=
<filegroup_updatability_option>::=
<option_spec> ::=
{
<auto_option>
| <change_tracking_option>
| <cursor_option>
| <db_encryption_option>
| <db_update_option>
| <db_user_access_option>
| <delayed_durability_option>
| <parameterization_option>
| <query_store_options>
| <snapshot_option>
| <sql_option>
| <target_recovery_time_option>
| <temporal_history_retention>
| <compatibility_level>
{ 160 | 150 | 140 | 130 | 120 | 110 | 100 | 90 }
}
Argumenty
database_name
To nazwa bazy danych, która ma zostać zmodyfikowana.
AKTUALNY
Określa, że bieżąca baza danych w użyciu powinna zostać zmieniona.
Uwagi
Aby usunąć bazę danych, użyj DROP DATABASE.
Aby zmniejszyć rozmiar bazy danych, użyj DBCC SHRINKDATABASE.
Instrukcja
ALTER DATABASE
musi działać w trybie automatycznego zatwierdzania (domyślny tryb zarządzania transakcjami) i nie jest dozwolona w jawnej lub niejawnej transakcji.Pamięć podręczna planu dla usługi Azure SQL Managed Instance jest czyszczone, ustawiając jedną z następujących opcji.
COLLATE
MODYFIKOWANIE DOMYŚLNEJ GRUPY PLIKÓW
MODYFIKOWANIE READ_ONLY FILEGROUP
MODYFIKOWANIE READ_WRITE FILEGROUP
MODYFIKUJ NAZWĘ
Wyczyszczenie pamięci podręcznej planu powoduje ponowne skompilowanie wszystkich kolejnych planów wykonywania i może spowodować nagłe, tymczasowe obniżenie wydajności zapytań. Dla każdego wyczyszczonego magazynu pamięci podręcznej w pamięci podręcznej planu dziennik błędów programu SQL Server zawiera następujący komunikat informacyjny:
SQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to some database maintenance or reconfigure operations
. Ten komunikat jest rejestrowany co pięć minut, o ile pamięć podręczna jest opróżniona w tym przedziale czasu. Pamięć podręczna planu jest również opróżniona, gdy kilka zapytań jest wykonywanych względem bazy danych z opcjami domyślnymi. Następnie baza danych zostanie porzucona.
Niektóre instrukcje
ALTER DATABASE
wymagają wyłącznego blokowania bazy danych do wykonania. Dlatego mogą one zakończyć się niepowodzeniem, gdy inny aktywny proces przechowuje blokadę w bazie danych. Błąd zgłaszany w takim przypadku jestMsg 5061, Level 16, State 1, Line 38
z komunikatemALTER DATABASE failed because a lock could not be placed on database '<database name>'. Try again later
. Jest to zazwyczaj błąd przejściowy i rozwiązanie go, gdy wszystkie blokady bazy danych zostaną zwolnione, spróbuj ponownie wykonać instrukcjęALTER DATABASE
, która zakończyła się niepowodzeniem. Widok systemusys.dm_tran_locks
zawiera informacje o aktywnych blokadach. Aby sprawdzić, czy w bazie danych istnieją blokady udostępnione lub wyłączne, użyj następującego zapytania.SELECT resource_type, resource_database_id, request_mode, request_type, request_status, request_session_id FROM sys.dm_tran_locks WHERE resource_database_id = DB_ID('testdb');
Wyświetlanie informacji o bazie danych
Widoki wykazu, funkcje systemowe i procedury składowane systemu umożliwiają zwracanie informacji o bazach danych, plikach i grupach plików.
Uprawnienia
Tylko identyfikator logowania podmiotu zabezpieczeń na poziomie serwera (utworzony przez proces aprowizacji) lub członkowie roli bazy danych dbcreator
mogą zmienić bazę danych.
Ważny
Właściciel bazy danych nie może zmienić bazy danych, chyba że jest członkiem roli dbcreator
.
Przykłady
W poniższych przykładach pokazano, jak ustawić automatyczne dostrajanie i jak dodać plik do bazy danych w usłudze Azure SQL Managed Instance.
ALTER DATABASE WideWorldImporters
SET AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = ON);
ALTER DATABASE WideWorldImporters
ADD FILE (NAME = 'data_17');
Powiązana zawartość
usługi
usługi
* Azure Synapse
Analiza *
Omówienie: Azure Synapse Analytics
W usłudze Azure Synapse ALTER DATABASE
modyfikuje niektóre opcje konfiguracji dedykowanej puli SQL.
Ze względu na jego długość składnia ALTER DATABASE
jest oddzielona od wielu artykułów.
opcje ALTER DATABASE SET udostępnia składnię i powiązane informacje dotyczące zmieniania atrybutów bazy danych przy użyciu opcji SET ALTER DATABASE
.
Składnia
-
dedykowanej puli SQL
- bezserwerowej puli SQL
ALTER DATABASE { database_name | CURRENT }
{
MODIFY NAME = new_database_name
| MODIFY ( <edition_option> [, ... n] )
| SET <option_spec> [ ,...n ] [ WITH <termination> ]
}
[;]
<edition_option> ::=
MAXSIZE = {
250 | 500 | 750 | 1024 | 5120 | 10240 | 20480
| 30720 | 40960 | 51200 | 61440 | 71680 | 81920
| 92160 | 102400 | 153600 | 204800 | 245760
} GB
| SERVICE_OBJECTIVE = {
'DW100' | 'DW200' | 'DW300' | 'DW400' | 'DW500'
| 'DW600' | 'DW1000' | 'DW1200' | 'DW1500' | 'DW2000'
| 'DW3000' | 'DW6000' | 'DW500c' | 'DW1000c' | 'DW1500c'
| 'DW2000c' | 'DW2500c' | 'DW3000c' | 'DW5000c' | 'DW6000c'
| 'DW7500c' | 'DW10000c' | 'DW15000c' | 'DW30000c'
}
Argumenty
database_name
Określa nazwę bazy danych do zmodyfikowania.
MODYFIKUJ NAZWĘ = new_database_name
Zmienia nazwę bazy danych na nazwę określoną jako new_database_name.
Opcja "MODYFIKUJ NAZWĘ" ma pewne ograniczenia obsługi w usłudze Azure Synapse:
- Nieobsługiwane w pulach bezserwerowych usługi Azure Synapse
- Nieobsługiwane dedykowane pule SQL utworzone w obszarze roboczym usługi Azure Synapse
- Obsługiwane w przypadku dedykowanych pul SQL (dawniej SQL DW) utworzonych za pośrednictwem witryny Azure Portal, w tym tych z połączonym obszarem roboczym
MAXSIZE
Wartość domyślna to 245 760 GB (240 TB).
Dotyczy: Zoptymalizowane pod kątem obliczeń Gen1
Maksymalny dozwolony rozmiar bazy danych. Baza danych nie może rosnąć poza maxSIZE.
Dotyczy: Zoptymalizowane pod kątem obliczeń Gen2
Maksymalny dozwolony rozmiar danych magazynu wierszy w bazie danych. Dane przechowywane w tabelach magazynu wierszy, magazynie różnicowym indeksu magazynu kolumn lub indeksie nieklastrowanym w klastrowanym indeksie magazynu kolumn nie mogą rosnąć poza maxSIZE. Dane skompresowane do formatu magazynu kolumn nie mają limitu rozmiaru i nie są ograniczone przez program MAXSIZE.
SERVICE_OBJECTIVE
Określa rozmiar obliczeniowy (cel usługi). Aby uzyskać więcej informacji na temat celów usługi dla usługi Azure Synapse, zobacz Data Warehouse Units (DWU).
Uprawnienia
Wymaga następujących uprawnień:
- Identyfikator logowania podmiotu zabezpieczeń na poziomie serwera (utworzony przez proces aprowizacji) lub
- Członek roli bazy danych
dbmanager
.
Właściciel bazy danych nie może zmienić bazy danych, chyba że właściciel jest członkiem roli dbmanager
.
Uwagi
Bieżąca baza danych musi być inną bazą danych niż zmieniana, dlatego należy uruchomić polecenie ALTER podczas nawiązywania połączenia z bazą danych master
.
COMPATIBILITY_LEVEL w usłudze SQL Analytics jest domyślnie ustawiona na 130 i nie można jej zmienić. Aby uzyskać więcej informacji, zobacz
Nuta
COMPATIBILITY_LEVEL dotyczy tylko aprowizowanych zasobów (pul).
Ograniczenia
Aby uruchomić ALTER DATABASE
, baza danych musi być w trybie online i nie może być w stanie wstrzymania.
Instrukcja ALTER DATABASE
musi działać w trybie automatycznego zatwierdzania, który jest domyślnym trybem zarządzania transakcjami. Jest on ustawiany w ustawieniach połączenia.
Instrukcja ALTER DATABASE
nie może być częścią transakcji zdefiniowanej przez użytkownika.
Nie można zmienić sortowania bazy danych.
Przykłady
Przed uruchomieniem tych przykładów upewnij się, że zmieniana baza danych nie jest bieżącą bazą danych. Bieżąca baza danych musi być inną bazą danych niż zmieniana, dlatego należy uruchomić polecenie ALTER podczas nawiązywania połączenia z bazą danych master
.
A. Zmienianie nazwy bazy danych
ALTER DATABASE AdventureWorks2022
MODIFY NAME = Northwind;
B. Zmienianie maksymalnego rozmiaru bazy danych
ALTER DATABASE dw1 MODIFY ( MAXSIZE=10240 GB );
C. Zmienianie rozmiaru obliczeniowego (celu usługi)
ALTER DATABASE dw1 MODIFY ( SERVICE_OBJECTIVE= 'DW1200' );
D. Zmienianie maksymalnego rozmiaru i rozmiaru obliczeniowego (celu usługi)
ALTER DATABASE dw1 MODIFY ( MAXSIZE=10240 GB, SERVICE_OBJECTIVE= 'DW1200' );
Powiązana zawartość
-
CREATE DATABASE (Azure Synapse Analytics) - elementy języka T-SQL dla dedykowanej puli SQL w usłudze Azure Synapse Analytics
usługi
usługi
Azure Synapse
analizy
* Analiza
System platformy (PDW) *
Omówienie: System platformy analizy
W systemie platformy analizy (PDW) ALTER DATABASE modyfikuje maksymalne opcje rozmiaru bazy danych dla replikowanych tabel, tabel rozproszonych i dziennika transakcji. Ta instrukcja służy do zarządzania alokacjami miejsca na dysku dla bazy danych w miarę wzrostu lub zmniejszania rozmiaru. W tym artykule opisano również składnię związaną z ustawianiem opcji bazy danych w systemie platformy analizy (PDW).
Składnia
-- Analytics Platform System
ALTER DATABASE database_name
SET ( <set_database_options> | <db_encryption_option> )
[;]
<set_database_options> ::=
{
AUTOGROW = { ON | OFF }
| REPLICATED_SIZE = size [GB]
| DISTRIBUTED_SIZE = size [GB]
| LOG_SIZE = size [GB]
| SET AUTO_CREATE_STATISTICS { ON | OFF }
| SET AUTO_UPDATE_STATISTICS { ON | OFF }
| SET AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}
<db_encryption_option> ::=
ENCRYPTION { ON | OFF }
Argumenty
database_name
Nazwa bazy danych, która ma zostać zmodyfikowana. Aby wyświetlić listę baz danych na urządzeniu, użyj sys.databases.
AUTOGROW = { ON | WYŁ. }
Aktualizuje opcję AUTOGROW. Gdy funkcja AUTOGROW jest włączona, system platformy analizy (PDW) automatycznie zwiększa przydzielone miejsce dla replikowanych tabel, tabel rozproszonych i dziennika transakcji zgodnie z potrzebami, aby uwzględnić wzrost wymagań dotyczących magazynu. Gdy funkcja AUTOGROW jest wyłączona, system platformy analizy (PDW) zwraca błąd, jeśli replikowane tabele, tabele rozproszone lub dziennik transakcji przekracza ustawienie maksymalnego rozmiaru.
REPLICATED_SIZE = rozmiar [GB]
Określa nowe maksymalne gigabajty na węzeł obliczeniowy do przechowywania wszystkich replikowanych tabel w zmienionej bazie danych. Jeśli planujesz miejsce do magazynowania urządzenia, należy pomnożyć REPLICATED_SIZE przez liczbę węzłów obliczeniowych w urządzeniu.
DISTRIBUTED_SIZE = rozmiar [GB]
Określa nowe maksymalne gigabajty na bazę danych do przechowywania wszystkich tabel rozproszonych w zmienionej bazie danych. Rozmiar jest dystrybuowany we wszystkich węzłach obliczeniowych w urządzeniu.
LOG_SIZE = rozmiar [GB]
Określa nowe maksymalne gigabajty na bazę danych do przechowywania wszystkich dzienników transakcji w zmienionej bazie danych. Rozmiar jest dystrybuowany we wszystkich węzłach obliczeniowych w urządzeniu.
SZYFROWANIE { WŁĄCZONE | WYŁ. }
Ustawia bazę danych do szyfrowania (WŁ.) lub niezaszyfrowanej (OFF). Szyfrowanie można skonfigurować tylko dla systemu platformy analizy (PDW), gdy sp_pdw_database_encryption została ustawiona na 1. Aby można było skonfigurować przezroczyste szyfrowanie danych, należy utworzyć klucz szyfrowania bazy danych. Aby uzyskać więcej informacji na temat szyfrowania bazy danych, zobacz Transparent Data Encryption (TDE).
SET AUTO_CREATE_STATISTICS { ON | WYŁ. }
Gdy opcja automatycznego tworzenia statystyk, AUTO_CREATE_STATISTICS, jest włączona, Optymalizator zapytań tworzy statystyki dotyczące poszczególnych kolumn w predykacie zapytania, w razie potrzeby, w celu zwiększenia szacunków kardynalności dla planu zapytania. Te statystyki z jedną kolumną są tworzone na kolumnach, które nie mają jeszcze histogramu w istniejącym obiekcie statystyk.
Wartość domyślna to WŁĄCZONE dla nowych baz danych utworzonych po uaktualnieniu do usługi AU7. Wartość domyślna to OFF dla baz danych utworzonych przed uaktualnieniem.
Aby uzyskać więcej informacji na temat statystyk, zobacz Statistics
SET AUTO_UPDATE_STATISTICS { ON | WYŁ. }
Gdy opcja automatycznego aktualizowania statystyk, AUTO_UPDATE_STATISTICS, jest włączona, optymalizator zapytań określa, kiedy statystyki mogą być nieaktualne, a następnie aktualizuje je, gdy są używane przez zapytanie. Statystyki stają się nieaktualne po operacjach wstawiania, aktualizowania, usuwania lub scalania zmiany rozkładu danych w tabeli lub widoku indeksowanym. Optymalizator zapytań określa, kiedy statystyki mogą być nieaktualne, zliczając liczbę modyfikacji danych od ostatniej aktualizacji statystyk i porównując liczbę modyfikacji progu. Próg jest oparty na liczbie wierszy w tabeli lub w widoku indeksowanym.
Wartość domyślna to WŁĄCZONE dla nowych baz danych utworzonych po uaktualnieniu do usługi AU7. Wartość domyślna to OFF dla baz danych utworzonych przed uaktualnieniem.
Aby uzyskać więcej informacji na temat statystyk, zobacz Statistics.
SET AUTO_UPDATE_STATISTICS_ASYNC { ON | WYŁ. }
Opcja aktualizacji statystyk asynchronicznych AUTO_UPDATE_STATISTICS_ASYNC określa, czy optymalizator zapytań używa aktualizacji statystyk synchronicznych lub asynchronicznych. Opcja AUTO_UPDATE_STATISTICS_ASYNC dotyczy obiektów statystyk utworzonych dla indeksów, pojedynczych kolumn w predykatach zapytań i statystyk utworzonych za pomocą instrukcji CREATE STATISTICS
.
Wartość domyślna to WŁĄCZONE dla nowych baz danych utworzonych po uaktualnieniu do usługi AU7. Wartość domyślna to OFF dla baz danych utworzonych przed uaktualnieniem.
Aby uzyskać więcej informacji na temat statystyk, zobacz Statistics.
Uprawnienia
Wymaga uprawnienia ALTER
w bazie danych.
Komunikaty o błędach
Jeśli automatyczne statystyki są wyłączone i próbujesz zmienić ustawienia statystyk, pdW zwraca błąd This option isn't supported in PDW
. Administrator systemu może włączyć automatyczne statystyki, włączając przełącznik funkcji AutoStatsEnabled.
Uwagi
Wartości REPLICATED_SIZE
, DISTRIBUTED_SIZE
i LOG_SIZE
mogą być większe niż, równe lub mniejsze niż bieżące wartości dla bazy danych.
Ograniczenia
Przybliżone są operacje zwiększania i zmniejszania. Wynikowe rozmiary rzeczywiste mogą różnić się od parametrów rozmiaru.
System platformy analizy (PDW) nie wykonuje instrukcji ALTER DATABASE
jako operacji niepodzielnej. Jeśli instrukcja zostanie przerwana podczas wykonywania, zmiany, które już wystąpiły, pozostaną.
Ustawienia statystyk działają tylko wtedy, gdy administrator włączył automatyczne statystyki. Jeśli jesteś administratorem, użyj przełącznika funkcji AutoStatsEnabled, aby włączyć lub wyłączyć automatyczne statystyki.
Zachowanie blokujące
Pobiera udostępnioną blokadę obiektu DATABASE. Nie można zmienić bazy danych, która jest używana przez innego użytkownika do odczytu lub zapisu. Obejmuje to sesje, które wydały instrukcję USE
Wydajność
Zmniejszanie bazy danych może zająć dużo czasu i zasobów systemowych, w zależności od rozmiaru rzeczywistych danych w bazie danych oraz ilości fragmentacji na dysku. Na przykład zmniejszanie bazy danych może potrwać kilka godzin lub dłużej.
Określanie postępu szyfrowania
Użyj następującego zapytania, aby określić postęp przezroczystego szyfrowania danych bazy danych jako procent:
WITH
database_dek AS (
SELECT ISNULL(db_map.database_id, dek.database_id) AS database_id,
dek.encryption_state, dek.percent_complete,
dek.key_algorithm, dek.key_length, dek.encryptor_thumbprint,
type
FROM sys.dm_pdw_nodes_database_encryption_keys AS dek
INNER JOIN sys.pdw_nodes_pdw_physical_databases AS node_db_map
ON dek.database_id = node_db_map.database_id
AND dek.pdw_node_id = node_db_map.pdw_node_id
LEFT JOIN sys.pdw_database_mappings AS db_map
ON node_db_map .physical_name = db_map.physical_name
INNER JOIN sys.dm_pdw_nodes nodes
ON nodes.pdw_node_id = dek.pdw_node_id
WHERE dek.encryptor_thumbprint <> 0x
),
dek_percent_complete AS (
SELECT database_dek.database_id, AVG(database_dek.percent_complete) AS percent_complete
FROM database_dek
WHERE type = 'COMPUTE'
GROUP BY database_dek.database_id
)
SELECT DB_NAME( database_dek.database_id ) AS name,
database_dek.database_id,
ISNULL(
(SELECT TOP 1 dek_encryption_state.encryption_state
FROM database_dek AS dek_encryption_state
WHERE dek_encryption_state.database_id = database_dek.database_id
ORDER BY (CASE encryption_state
WHEN 3 THEN -1
ELSE encryption_state
END) DESC), 0)
AS encryption_state,
dek_percent_complete.percent_complete,
database_dek.key_algorithm, database_dek.key_length, database_dek.encryptor_thumbprint
FROM database_dek
INNER JOIN dek_percent_complete
ON dek_percent_complete.database_id = database_dek.database_id
WHERE type = 'CONTROL';
Aby zapoznać się z kompleksowym przykładem pokazującym wszystkie kroki implementacji funkcji TDE, zobacz Transparent Data Encryption (TDE).
Przykłady: Analytics Platform System (PDW)
A. Zmienianie ustawienia AUTOGROW
Ustaw wartość AUTOGROW na WŁ. dla bazy danych CustomerSales
.
ALTER DATABASE CustomerSales
SET ( AUTOGROW = ON );
B. Zmienianie maksymalnego magazynu dla replikowanych tabel
W poniższym przykładzie ustawiono limit magazynu replikowanej tabeli na 1 GB dla bazy danych CustomerSales
. Jest to limit magazynu na węzeł obliczeniowy.
ALTER DATABASE CustomerSales
SET ( REPLICATED_SIZE = 1 GB );
C. Zmienianie maksymalnego magazynu dla tabel rozproszonych
W poniższym przykładzie ustawiono limit magazynu tabel rozproszonych na 1000 GB (jeden terabajt) dla bazy danych CustomerSales
. Jest to łączny limit magazynu dla wszystkich węzłów obliczeniowych, a nie limit magazynu na węzeł obliczeniowy.
ALTER DATABASE CustomerSales
SET ( DISTRIBUTED_SIZE = 1000 GB );
D. Zmienianie maksymalnego magazynu dziennika transakcji
Poniższy przykład aktualizuje bazę danych CustomerSales
, aby mieć maksymalny rozmiar dziennika transakcji programu SQL Server wynoszący 10 GB dla urządzenia.
ALTER DATABASE CustomerSales
SET ( LOG_SIZE = 10 GB );
E. Sprawdzanie bieżących wartości statystyk
Poniższe zapytanie zwraca bieżące wartości statystyk dla wszystkich baz danych. Wartość 1
oznacza, że funkcja jest włączona, a 0
oznacza, że funkcja jest wyłączona.
SELECT NAME,
is_auto_create_stats_on,
is_auto_update_stats_on,
is_auto_update_stats_async_on
FROM sys.databases;
F. Włączanie automatycznego tworzenia i automatycznego aktualizowania statystyk dla bazy danych
Użyj poniższej instrukcji, aby automatycznie i asynchronicznie włączyć tworzenie i aktualizowanie statystyk dla bazy danych CustomerSales. Spowoduje to utworzenie i zaktualizowanie statystyk z jedną kolumną w razie potrzeby w celu utworzenia planów zapytań wysokiej jakości.
ALTER DATABASE CustomerSales
SET AUTO_CREATE_STATISTICS ON;
ALTER DATABASE CustomerSales
SET AUTO_UPDATE_STATISTICS ON;
ALTER DATABASE
SET AUTO_UPDATE_STATISTICS_ASYNC ON;
Powiązana zawartość
Omówienie: Microsoft Fabric
usługi
usługi
Azure Synapse
analizy
microsoft fabric
W usłudze Microsoft Fabric Warehouse ta instrukcja modyfikuje magazyn.
Ze względu na jego długość składnia ALTER DATABASE
jest oddzielona od wielu artykułów.
Artykuł | Opis |
---|---|
ALTER DATABASE |
Bieżący artykuł zawiera składnię i powiązane informacje dotyczące zmiany nazwy i sortowania bazy danych. |
opcje ALTER DATABASE SET | Zawiera składnię i powiązane informacje dotyczące zmieniania atrybutów bazy danych przy użyciu opcji SET alter DATABASE. |
Uwagi
Obecnie wstrzymując publikowanie dzienników usługi Delta Lake i wyłączanie zachowania orderów wirtualnych w magazynie są jedynymi zastosowaniami ALTER DATABASE ... SET
w usłudze Microsoft Fabric. Zobacz opcje ALTER DATABASE SET.