Udostępnij za pośrednictwem


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 SQL Database

usługi SQL Managed Instance

 

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.
poziomu zgodności z usługą 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.
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, UPDATElub 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

* SQL Database *  

usługi SQL Managed Instance

 

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.

poziomu zgodności z bazą danych 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 S0-S2 S3-S12 P1-P6 P11-P15
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, P1P2, 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:

  1. Podstawowe przestaje przyjmować nowe transakcje.
  2. Wszystkie zaległe transakcje są opróżniane do pomocniczej.
  3. 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:

  1. Określona pomocnicza baza danych natychmiast staje się podstawową bazą danych i zaczyna akceptować nowe transakcje.
  2. 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ą.
  3. Aby odzyskać dane z tej przyrostowej kopii zapasowej na starym podstawowym serwerze podstawowym, użytkownik angażuje metodykę devops/CSS.
  4. 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 secondaryserverdb1 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';

usługi SQL Database

* SQL Managed Instance *  

 

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.
poziomu zgodności z bazą danych 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 jest Msg 5061, Level 16, State 1, Line 38 z komunikatem ALTER 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 systemu sys.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');

usługi SQL Database

usługi SQL Managed Instance

* 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

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 poziom zgodności ALTER DATABASE.

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' );

usługi SQL Database

usługi SQL Managed Instance

* 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_SIZEi 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 w bazie danych.

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;

Omówienie: Microsoft Fabric

usługi SQL Database

usługi SQL Managed Instance

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.