ALTER DATABASE (Transact-SQL)
Veritabanının belirli yapılandırma seçeneklerini değiştirir.
Bu makalede, seçtiğiniz SQL ürünü için söz dizimi, bağımsız değişkenler, açıklamalar, izinler ve örnekler sağlanır.
Söz dizimi kuralları hakkında daha fazla bilgi için bkz.
Ürün seçin
Aşağıdaki satırda, ilgilendiğiniz ürün adını seçin ve yalnızca bu ürünün bilgileri görüntülenir.
* SQL Server *
SQL Veritabanı
SQL Yönetilen Örneği
Azure Synapse'i
Analiz
Microsoft Fabric
Genel Bakış: SQL Server
SQL Server'da bu deyim bir veritabanını veya veritabanıyla ilişkili dosyaları ve dosya gruplarını değiştirir. ALTER DATABASE bir veritabanından dosya ve dosya grubu ekler veya kaldırır, veritabanının veya dosyalarının ve dosya gruplarının özniteliklerini değiştirir, veritabanı harmanlamasını değiştirir ve veritabanı seçeneklerini ayarlar. Veritabanı anlık görüntüleri değiştirilemez. Çoğaltmayla ilişkili veritabanı seçeneklerini değiştirmek için sp_replicationdboptionkullanın.
Uzunluğu nedeniyle, ALTER DATABASE
söz dizimi birden çok makaleye ayrılır.
Makale | Açıklama |
---|---|
ALTER DATABASE |
Geçerli makalede, veritabanının adını ve harmanlamasını değiştirmek için söz dizimi ve ilgili bilgiler sağlanır. |
ALTER DATABASE Dosya ve Dosya Grubu Seçenekleri |
Bir veritabanından dosya ve dosya grubu ekleme ve kaldırma ile dosyaların ve dosya gruplarının özniteliklerini değiştirmeye yönelik söz dizimini ve ilgili bilgileri sağlar. |
ALTER DATABASE SET seçenekleri |
ALTER DATABASE'in SET seçeneklerini kullanarak veritabanının özniteliklerini değiştirmek için söz dizimini ve ilgili bilgileri sağlar. |
ALTER DATABASE Veritabanı Yansıtma |
ALTER DATABASE'in veritabanı yansıtması ile ilgili SET seçenekleri için söz dizimini ve ilgili bilgileri sağlar. |
ALTER DATABASE SET HADR |
Always On kullanılabilirlik grubunun ikincil çoğaltması üzerinde ikincil veritabanı yapılandırmak için ALTER DATABASE'in Always On kullanılabilirlik grupları seçenekleri için söz dizimini ve ilgili bilgileri sağlar. |
ALTER DATABASE uyumluluk düzeyi |
ALTER DATABASE'in veritabanı uyumluluk düzeyleriyle ilgili SET seçenekleri için söz dizimini ve ilgili bilgileri sağlar. |
ALTER DATABASE SCOPED CONFIGURATION |
Sorgu iyileştirme ve sorgu yürütmeyle ilgili davranışlar gibi tek tek veritabanı düzeyi ayarları için kullanılan veritabanı kapsamlı yapılandırmalarla ilgili söz dizimini sağlar. |
Sözdizimi
-- 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 }
}
Bağımsız değişken
database_name
Değiştirilecek veritabanının adıdır.
Not
Bu seçenek, Kapsanan Veritabanında kullanılamaz.
GEÇERLİ
için geçerlidir: SQL Server 2012 (11.x) ve üzeri.
Kullanımdaki geçerli veritabanının değiştirilmesi gerektiğini gösterir.
MODIFY NAME = new_database_name
veritabanını new_database_nameolarak belirtilen adla yeniden adlandırır.
HARMANLAMA collation_name
Veritabanı için harmanlamayı belirtir. collation_name bir Windows harmanlama adı veya SQL harmanlama adı olabilir. Belirtilmezse, veritabanına SQL Server örneğinin harmanlaması atanır.
Not
Azure SQL Veritabanı'nda veritabanı oluşturulduktan sonra harmanlama değiştirilemez.
Varsayılan harmanlama dışında veritabanları oluştururken, veritabanındaki veriler her zaman belirtilen harmanlamayı dikkate alır. SQL Server için, kapsanan veritabanı oluştururken iç katalog bilgileri SQL Server varsayılan harmanlaması Latin1_General_100_CI_AS_WS_KS_SCkullanılarak korunur.
Windows ve SQL harmanlama adları hakkında daha fazla bilgi için bkz. COLLATE
<delayed_durability_option> ::=
için geçerlidir: SQL Server 2014 (12.x) ve üzeri.
Daha fazla bilgi için bkz. ALTER DATABASE SET seçenekleri ve Denetim İşlemi Dayanıklılığı.
<file_and_filegroup_options>::=
Daha fazla bilgi için bkz. ALTER DATABASE Dosya ve Dosya Grubu Seçenekleri
Açıklamalar
Veritabanını kaldırmak için DROP DATABASEkullanın.
Veritabanının boyutunu küçültmek için dbcc SHRINKDATABASE
ALTER DATABASE
deyiminin otomatik işleme modunda (varsayılan işlem yönetim modu) çalışması gerekir ve açık veya örtük bir işlemde izin verilmez.
Veritabanı dosyasının durumu (örneğin, çevrimiçi veya çevrimdışı), veritabanının durumundan bağımsız olarak korunur. Daha fazla bilgi için bkz. Dosya Durumları. Dosya grubu içindeki dosyaların durumu, tüm dosya grubunun kullanılabilirliğini belirler. Bir dosya grubunun kullanılabilir olması için dosya grubundaki tüm dosyaların çevrimiçi olması gerekir. Bir dosya grubu çevrimdışıysa, SQL deyimiyle dosya grubuna erişme girişimi hatayla başarısız olur. SELECT deyimleri için sorgu planları oluşturduğunuzda, sorgu iyileştirici çevrimdışı dosya gruplarında bulunan kümelenmemiş dizinleri ve dizine alınan görünümleri önler. Bu, bu deyimlerin başarılı olmasını sağlar. Ancak çevrimdışı dosya grubu hedef tablonun yığın veya kümelenmiş dizinini içeriyorsa SELECT deyimleri başarısız olur. Ayrıca, çevrimdışı dosya grubundaki herhangi bir dizine sahip bir tabloyu değiştiren INSERT
, UPDATE
veya DELETE
deyimleri başarısız olur.
Bir veritabanı RESTOREING durumundayken çoğu ALTER DATABASE
deyimi başarısız olur. Özel durum, veritabanı yansıtma seçeneklerini ayarlamaktır. Veritabanı, etkin bir geri yükleme işlemi sırasında veya veritabanının veya günlük dosyasının geri yükleme işlemi bozuk bir yedekleme dosyası nedeniyle başarısız olduğunda GERI YÜKLEME durumunda olabilir.
SQL Server örneğinin plan önbelleği, aşağıdaki seçeneklerden biri ayarlanarak temizlenir.
- HARMANLAMAK
- FILEGROUP DEFAULT'I DEĞIŞTIRME
- FILEGROUP READ_ONLY DEĞIŞTIRME
- FILEGROUP READ_WRITE DEĞIŞTIRME
- MODIFY_NAME
- ÇEVRİMDIŞI
- ÇEVRİMİÇİ
- PAGE_VERIFY
- READ_ONLY
- READ_WRITE
Plan önbelleğinin temizlenmesi, sonraki tüm yürütme planlarının yeniden derlenmesine neden olur ve sorgu performansında ani, geçici bir düşüşe neden olabilir. Plan önbelleğindeki temizlenen her önbellek deposu için SQL Server hata günlüğü şu bilgi iletisini içerir: 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
. Bu ileti, önbellek bu zaman aralığında temizlendiği sürece beş dakikada bir günlüğe kaydedilir.
Plan önbelleği aşağıdaki senaryolarda da boşaltılır:
- Veritabanında
AUTO_CLOSE
veritabanı seçeneği ON olarak ayarlanmıştır. Kullanıcı bağlantısı başvurusu olmadığında veya veritabanını kullanmadığında, arka plan görevi veritabanını otomatik olarak kapatıp kapatmaya çalışır. - Varsayılan seçenekleri olan bir veritabanında birkaç sorgu çalıştırırsınız. Ardından veritabanı bırakılır.
- Kaynak veritabanı için veritabanı anlık görüntüsü bırakılır.
- Veritabanı için işlem günlüğünü başarıyla yeniden oluşturursunuz.
- Veritabanı yedeğini geri yüklersiniz.
- Bir veritabanını ayırırsınız.
Veritabanı harmanlamasını değiştirme
Veritabanına farklı bir harmanlama uygulamadan önce aşağıdaki koşulların uygulandığından emin olun:
- Şu anda veritabanını kullanan tek kişi sizsiniz.
- Hiçbir şemaya bağlı nesne, veritabanının harmanlama işlemine bağımlı değildir.
Veritabanı harmanlama bağlı aşağıdaki nesneler veritabanında varsa, ALTER DATABASE database_name COLLATE
deyimi başarısız olur. SQL Server, ALTER
eylemini engelleyen her nesne için bir hata iletisi döndürür:
- SCHEMABINDING ile oluşturulan kullanıcı tanımlı işlevler ve görünümler
- Hesaplanan sütunlar
- CHECK kısıtlamaları
- Varsayılan veritabanı harmanlamasından devralınan harmanlamalarla karakter sütunları içeren tablolar döndüren tablo değerli işlevler
Şemaya bağlı olmayan varlıklar için bağımlılık bilgileri, veritabanı harmanlaması değiştirildiğinde otomatik olarak güncelleştirilir.
Veritabanı harmanlamasını değiştirmek, veritabanı nesneleri için herhangi bir sistem adı arasında yineleme oluşturmaz. Yinelenen adlar değiştirilen harmanlamadan kaynaklanıyorsa, aşağıdaki ad alanları veritabanı harmanlama değişikliğinin başarısız olmasına neden olabilir:
- Yordam, tablo, tetikleyici veya görünüm gibi nesne adları
- Şema adları
- Grup, rol veya kullanıcı gibi sorumlular
- Sistem ve kullanıcı tanımlı türler gibi skaler tür adları
- Tam metin katalog adları
- Nesne içindeki sütun veya parametre adları
- Tablo içindeki dizin adları
Yeni harmanlamadan kaynaklanan yinelenen adlar, değişiklik eyleminin başarısız olmasına neden olur ve SQL Server yinelenenin bulunduğu ad alanını belirten bir hata iletisi döndürür.
Veritabanı bilgilerini görüntüleme
Veritabanları, dosyalar ve dosya grupları hakkında bilgi döndürmek için katalog görünümlerini, sistem işlevlerini ve sistem saklı yordamlarını kullanabilirsiniz.
İzinler
Veritabanında ALTER
izin gerektirir.
Örnekler
A. Veritabanının adını değiştirme
Aşağıdaki örnek, AdventureWorks2022
veritabanının adını Northwind
olarak değiştirir.
USE master;
GO
ALTER DATABASE AdventureWorks2022
Modify Name = Northwind ;
GO
B. Veritabanının harmanlamasını değiştirme
Aşağıdaki örnek, SQL_Latin1_General_CP1_CI_AS
harmanlaması ile testdb
adlı bir veritabanı oluşturur ve testdb
veritabanının harmanlamasını COLLATE French_CI_AI
olarak değiştirir.
için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri.
USE master;
GO
CREATE DATABASE testdb
COLLATE SQL_Latin1_General_CP1_CI_AS ;
GO
ALTER DATABASE testDB
COLLATE French_CI_AI ;
GO
İlgili içerik
- CREATE DATABASE
- DATABASEPROPERTYEX
- DROP DATABASE
- İŞLEM YALıTıM DÜZEYI AYARLAMA
- EVENTDATA
- sp_configure
- sp_spaceused
- sys.databases
- sys.database_files
- sys.data_spaces
- sys.filegroups
- sys.master_files
- Sistem Veritabanları
SQL Server
* SQL Veritabanı *
SQL Yönetilen Örneği
Azure Synapse'i
Analiz
Microsoft Fabric
Genel Bakış: SQL Veritabanı
Azure SQL Veritabanı'nda, veritabanını değiştirmek için bu deyimi kullanın. Veritabanının adını değiştirmek, veritabanının sürüm ve hizmet hedefini değiştirmek, elastik havuza veya elastik havuzdan veritabanını birleştirmek veya kaldırmak, veritabanı seçeneklerini ayarlamak, coğrafi çoğaltma ilişkisinde veritabanını ikincil olarak eklemek veya kaldırmak ve veritabanı uyumluluk düzeyini ayarlamak için bu deyimi kullanın.
Uzunluğu nedeniyle, ALTER DATABASE
söz dizimi birden çok makaleye ayrılır.
ALTER DATABASE
Geçerli makalede, veritabanının adını ve diğer ayarlarını değiştirmek için söz dizimi ve ilgili bilgiler sağlanır.
ALTER DATABASE SET Seçenekleri
ALTER DATABASE'in SET seçeneklerini kullanarak veritabanının özniteliklerini değiştirmek için söz dizimini ve ilgili bilgileri sağlar.
ALTER DATABASE Uyumluluk Düzeyi
ALTER DATABASE'in veritabanı uyumluluk düzeyleriyle ilgili SET seçenekleri için söz dizimini ve ilgili bilgileri sağlar.
Sözdizimi
-- 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 }
}
Bağımsız değişken
database_name
Değiştirilecek veritabanının adıdır.
GEÇERLİ
Kullanımdaki geçerli veritabanının değiştirilmesi gerektiğini gösterir.
MODIFY NAME = new_database_name
veritabanını new_database_nameolarak belirtilen adla yeniden adlandırır. Aşağıdaki örnek, veritabanı db1
adını db2
olarak değiştirir:
ALTER DATABASE db1
MODIFY Name = db2 ;
MODIFY (EDITION = ['Basic' | 'Standart' | 'Premium' |' GeneralPurpose' | 'BusinessCritical' | 'Hiper Ölçek'])
Veritabanının hizmet katmanını değiştirir.
Aşağıdaki örnek sürümü Premium
olarak değiştirir:
ALTER DATABASE current
MODIFY (EDITION = 'Premium');
Önemli
Veritabanı için MAXSIZE özelliği bu sürüm tarafından desteklenen geçerli aralığın dışında bir değere ayarlanırsa sürüm değişikliği başarısız olur.
MODIFY BACKUP_STORAGE_REDUNDANCY = ['LOCAL' | 'ZONE' | 'GEO']
Belirli bir noktaya geri yükleme yedeklemelerinin ve veritabanının uzun süreli saklama yedeklerinin (yapılandırıldıysa) depolama yedekliliğini değiştirir. Değişiklikler, daha sonra alınan tüm yedeklemelere uygulanır. Mevcut yedeklemeler önceki ayarı kullanmaya devam eder.
T-SQL kullanarak veritabanı oluştururken veri yerleşimini zorunlu kılmak için BACKUP_STORAGE_REDUNDANCY parametresine giriş olarak LOCAL
veya ZONE
kullanın.
MODIFY (MAXSIZE = [100 MB | 500 MB | 1 | 1024...4096] GB)
Veritabanının en büyük boyutunu belirtir. En büyük boyut, veritabanının EDITION özelliği için geçerli değer kümesiyle uyumlu olmalıdır. Veritabanının en büyük boyutunu değiştirmek, veritabanı SÜRÜMÜNÜn değiştirilmesine neden olabilir.
Not
MAXSIZE bağımsız değişkeni Hiper Ölçek hizmet katmanındaki tek veritabanları için geçerli değildir. Tek Hiper Ölçek hizmet katmanı veritabanları gerektiğinde 128 TB'a kadar büyür. SQL Veritabanı hizmeti otomatik olarak depolama alanı ekler; en büyük boyutu ayarlamanız gerekmez.
DTU modeli
MAXSIZE |
Temel | S0-S2 | S3-S12 | P1-P6 |
P11-P15 |
---|---|---|---|---|---|
100 MB | Evet | Evet | Evet | Evet | Evet |
250 MB | Evet | Evet | Evet | Evet | Evet |
500 MB | Evet | Evet | Evet | Evet | Evet |
1 GB | Evet | Evet | Evet | Evet | Evet |
2GB | Evet (D) | Evet | Evet | Evet | Evet |
5 GB | YOK | Evet | Evet | Evet | Evet |
10 GB | YOK | Evet | Evet | Evet | Evet |
20 GB | YOK | Evet | Evet | Evet | Evet |
30 GB | YOK | Evet | Evet | Evet | Evet |
40 GB | YOK | Evet | Evet | Evet | Evet |
50 GB | YOK | Evet | Evet | Evet | Evet |
100 GB | YOK | Evet | Evet | Evet | Evet |
150 GB | YOK | Evet | Evet | Evet | Evet |
200 GB | YOK | Evet | Evet | Evet | Evet |
250 GB | YOK | Evet (D) | Evet (D) | Evet | Evet |
300 GB | YOK | Evet | Evet | Evet | Evet |
400 GB | YOK | Evet | Evet | Evet | Evet |
500 GB | YOK | Evet | Evet | Evet (D) | Evet |
750 GB | YOK | Evet | Evet | Evet | Evet |
1024 GB | YOK | Evet | Evet | Evet | Evet (D) |
1024 GB'tan 256 GB'lık artışlarla 4096 GB'a kadar 1 | YOK | YOK | YOK | YOK | Evet |
1 P11 ve P15, varsayılan boyut olan 1024 GB ile 4 TB'a kadar MAXSIZE'a izin verir. P11 ve P15, ek ücret ödemeden 4 TB'a kadar dahili depolama alanı kullanabilir. Premium katmanında 1 TB'den büyük MAXSIZE şu bölgelerde kullanılabilir: ABD Doğu2, Batı ABD, ABD Gov Virginia, Batı Avrupa, Orta Almanya, Güneydoğu Asya, Doğu Japonya, Doğu Avustralya, Orta Kanada ve Doğu Kanada. DTU modelinin kaynak sınırlamalarıyla ilgili daha fazla bilgi için bkz.DTU kaynak sınırları
Belirtilmişse, DTU modelinin MAXSIZE değerinin, belirtilen hizmet katmanı için önceki tabloda gösterilen geçerli bir değer olması gerekir.
Sanal çekirdek satın alma modelinde maksimum veri boyutu ve
Sanal çekirdek modeli kullanılırken MAXSIZE
değeri ayarlanmadıysa varsayılan değer 32 GB'tır. Sanal çekirdek modelinin kaynak sınırlamalarıyla ilgili daha fazla ayrıntı için bkz.sanal çekirdek kaynak sınırlarını
MaxSIZE ve EDITION bağımsız değişkenleri için aşağıdaki kurallar geçerlidir:
- SÜRÜM belirtilirse ancak MAXSIZE belirtilmezse, sürüm için varsayılan değer kullanılır. Örneğin, SÜRÜM Standart olarak ayarlanıp MAXSIZE belirtilmemişse, MAXSIZE otomatik olarak 250 MB olarak ayarlanır.
- MAXSIZE veya EDITION belirtilmezse, SÜRÜM Genel Amaçlı ve MAXSIZE 32 GB olarak ayarlanır.
MODIFY (SERVICE_OBJECTIVE = <hizmet hedefi>)
İşlem boyutunu ve hizmet hedefini belirtir.
SERVICE_OBJECTIVE
İşlem boyutunu belirtir (hizmet düzeyi hedefi veya SLO olarak da bilinir).
- DTU satın alma modeli için:
S0
,S1
,S2
,S3
,S4
,S6
,S7
,S9
,S12
,P1
,P2
,P4
,P6
,P11
,P15
. Her işlem boyutuna atanan DTU sayısını bulmak DTU elastik havuzları için veyaDTU tek veritabanları için kaynak sınırlarına bakın. - Sanal çekirdek satın alma modeli için katmanı seçin ve sanal çekirdek sayısının
n
olduğu önceden ayarlanmış bir değer listesinden sanal çekirdek sayısını sağlayın. sanal çekirdek elastik havuzları için sanal çekirdek tek veritabanları veyakaynak sınırları için kaynak sınırlarına bakın. - Mesela:
- Genel Amaçlı, sağlanan işlem, Standart seri (5. Nesil), 8 sanal çekirdek için
GP_Gen5_8
. - Genel Amaçlı, sunucusuz işlem, Standart seri (5. Nesil), 8 sanal çekirdek için
GP_S_Gen5_8
. - Hiper Ölçek, sağlanan işlem, Standart seri (5. Nesil), 8 sanal çekirdek için
HS_Gen5_8
. - Hiper Ölçek, sunucusuz işlem, Standart seri (5. Nesil), 8 sanal çekirdek için
HS_S_Gen5_8
.
Örneğin aşağıdaki örnek, DTU satın alma modelindeki premium katman veritabanının hizmet hedefini P6
olarak değiştirir:
ALTER DATABASE <database_name>
MODIFY (SERVICE_OBJECTIVE = 'P6');
Örneğin, aşağıdaki örnek sanal çekirdek satın alma modelinde sağlanan işlem veritabanının hizmet hedefini GP_Gen5_8
olarak değiştirir:
ALTER DATABASE <database_name>
MODIFY (SERVICE_OBJECTIVE = 'GP_Gen5_8');
DATABASE_NAME
Yalnızca Azure SQL Veritabanı Hiper Ölçeği için. Oluşturulacak veritabanı adı. Yalnızca SECONDARY_TYPE
= NAMED olduğunda Azure SQL Veritabanı Hiper Ölçek tarafından çoğaltmalar olarak adlandırılır. Daha fazla bilgi için bkz. Hiper Ölçek ikincil çoğaltmaları.
SECONDARY_TYPE
Yalnızca Azure SQL Veritabanı Hiper Ölçeği için. GEO bir coğrafi çoğaltma belirtir, NAMED adlandırılmış çoğaltmayı belirtir. Varsayılan olarak GEOdeğeridir. Daha fazla bilgi için bkz. Hiper Ölçek ikincil çoğaltmaları.
Hizmet hedefi açıklamaları ve boyut, sürümler ve hizmet hedefleri birleşimleri hakkında daha fazla bilgi için bkz. Azure SQL Veritabanı sanal çekirdek ve DTU tabanlı satın alma modellerini karşılaştırma, DTU kaynak sınırları ve sanal çekirdek kaynak sınırları. PRS hizmet hedefleri desteği kaldırıldı.
SERVICE_OBJECTIVE belirtilmediğinde, ikincil veritabanı birincil veritabanıyla aynı hizmet düzeyinde oluşturulur. SERVICE_OBJECTIVE belirtildiğinde, ikincil veritabanı belirtilen düzeyde oluşturulur. Belirtilen SERVICE_OBJECTIVE kaynakla aynı sürümde olmalıdır. Örneğin, sürüm premium ise S0 belirtemezsiniz.
MODIFY (SERVICE_OBJECTIVE = ELASTIC_POOL (ad = <elastic_pool_name>)
Var olan bir veritabanını elastik havuza eklemek için veritabanının SERVICE_OBJECTIVE ELASTIC_POOL olarak ayarlayın ve elastik havuzun adını belirtin. Veritabanını aynı sunucu içinde farklı bir elastik havuza dönüştürmek için de bu seçeneği kullanabilirsiniz. Daha fazla bilgi için bkz. Elastik havuzlar, Azure SQL Veritabanı'nde birden çok veritabanını yönetmenize ve ölçeklendirmenize yardımcı olur. Elastik havuzdan veritabanını kaldırmak için ALTER DATABASE kullanarak SERVICE_OBJECTIVE tek bir veritabanı işlem boyutuna (hizmet hedefi) ayarlayın.
Not
Hiper Ölçek hizmet katmanındaki veritabanları elastik havuza eklenemez.
SUNUCU <PARTNER_SERVER_NAME> İKINCIL EKLEME
İş ortağı sunucusunda aynı ada sahip bir coğrafi çoğaltma ikincil veritabanı oluşturarak yerel veritabanını coğrafi çoğaltma birinciline dönüştürerek verileri birincil sunucudan yeni ikincil sunucuya zaman uyumsuz olarak çoğaltmaya başlar. İkincilde aynı ada sahip bir veritabanı zaten varsa, komut başarısız olur. Komut, birincil olan yerel veritabanını barındıran sunucudaki master
veritabanında yürütülür.
Önemli
Varsayılan olarak, ikincil veritabanı birincil veya kaynak veritabanıyla aynı yedekleme depolama yedekliliği ile oluşturulur. İkincil oluşturulurken yedekleme depolama yedekliliğini değiştirmek T-SQL aracılığıyla desteklenmez.
WITH ALLOW_CONNECTIONS { ALL | HAYIR }
ALLOW_CONNECTIONS belirtilmediğinde, varsayılan olarak TÜMÜ olarak ayarlanır. ALL olarak ayarlanırsa, uygun izinlere sahip tüm oturum açma bilgilerinin bağlanmasına izin veren salt okunur bir veritabanıdır.
ELASTIC_POOL (ad = <elastic_pool_name>)
ELASTIC_POOL belirtilmediğinde, ikincil veritabanı elastik havuzda oluşturulmaz. ELASTIC_POOL belirtildiğinde, ikincil veritabanı belirtilen havuzda oluşturulur.
Önemli
ADD SECONDARY komutunu yürüten kullanıcının birincil sunucuda DBManager, yerel veritabanında db_owner üyeliği ve ikincil sunucuda DBManager olması gerekir. İstemci IP adresi, hem birincil hem de ikincil sunucular için güvenlik duvarı kuralları altında izin verilenler listesine eklenmelidir. Farklı istemci IP adresleri söz konusu olduğunda, birincil sunucuya eklenen istemci IP adresi ikincil sunucuya da eklenmelidir. Bu, coğrafi çoğaltmayı başlatmak için ADD SECONDARY komutunu çalıştırmadan önce yapılması gereken bir adımdır.
SUNUCU <PARTNER_SERVER_NAME> İKINCIL'I KALDıRMA
Belirtilen sunucuda belirtilen coğrafi çoğaltmalı ikincil veritabanını kaldırır. Komut, birincil veritabanını barındıran sunucudaki master
veritabanında yürütülür.
Önemli
REMOVE SECONDARY
komutunu yürüten kullanıcının birincil sunucuda DBManager olması gerekir.
YÜK DEVRETME
Komutun birincil olması için yürütülürken coğrafi çoğaltma ortaklığında ikincil veritabanını yükselter ve geçerli birincil veritabanını yeni ikincil olacak şekilde indirger. Bu işlemin bir parçası olarak, coğrafi çoğaltma modu geçici olarak zaman uyumsuz moddan zaman uyumlu moda geçirilir. Yük devretme işlemi sırasında:
- Birincil, yeni işlemleri almayı durdurur.
- Kalan tüm işlemler ikincil değere boşaltılır.
- İkincil birincil olur ve eski birincil / yeni ikincil ile zaman uyumsuz coğrafi çoğaltmaya başlar.
Bu dizi, veri kaybı olmamasını sağlar. Her iki veritabanının da kullanılamadığı süre, roller değiştirilirken 0-25 saniye sıralanır. Toplam işlem yaklaşık bir dakikadan uzun sürmemelidir. Bu komut verildiğinde birincil veritabanı kullanılamıyorsa, komut birincil veritabanının kullanılamadığını belirten bir hata iletisiyle başarısız olur. Yük devretme işlemi tamamlanmaz ve takılmış olarak görünürse, zorla yük devretme komutunu kullanabilir ve veri kaybını kabul edebilirsiniz. Ardından kayıp verileri kurtarmanız gerekiyorsa kayıp verileri kurtarmak için devops 'u (CSS) çağırın.
Önemli
YÜK DEVRETME komutunu yürüten kullanıcının hem birincil sunucuda hem de ikincil sunucuda DBManager olması gerekir.
FORCE_FAILOVER_ALLOW_DATA_LOSS
Komutun birincil olması için yürütülürken coğrafi çoğaltma ortaklığında ikincil veritabanını yükselter ve geçerli birincil veritabanını yeni ikincil olacak şekilde indirger. Bu komutu yalnızca geçerli birincil artık kullanılabilir olmadığında kullanın. Yalnızca olağanüstü durum kurtarma için tasarlanmıştır; kullanılabilirliği geri yüklemek kritik önem taşır ve bazı veri kayıpları kabul edilebilir.
Zorlamalı yük devretme sırasında:
- Belirtilen ikincil veritabanı hemen birincil veritabanı olur ve yeni işlemleri kabul eder.
- Özgün birincil yeni birincil ile yeniden bağlanabildiğinde, özgün birincilde artımlı yedekleme alınır ve özgün birincil yeni bir ikincil olur.
- Eski birincilde bu artımlı yedeklemeden verileri kurtarmak için kullanıcı devops/CSS ile etkileşim kurar.
- Başka ikincil öğeler varsa, bunlar otomatik olarak yeni birincil birincilin ikincilleri olacak şekilde yeniden yapılandırılır. Bu işlem zaman uyumsuzdur ve bu işlem tamamlanana kadar bir gecikme olabilir. Yeniden yapılandırma tamamlanana kadar, ikinciller eski birincilin ikincilleri olmaya devam ediyor.
Önemli
FORCE_FAILOVER_ALLOW_DATA_LOSS
komutunu yürüten kullanıcının hem birincil sunucuda hem de ikincil sunucuda dbmanager
rolüne ait olması gerekir.
Açıklamalar
Veritabanını kaldırmak için DROP DATABASEkullanın.
Veritabanının boyutunu küçültmek için dbcc SHRINKDATABASE
ALTER DATABASE
deyiminin otomatik işleme modunda (varsayılan işlem yönetim modu) çalışması gerekir ve açık veya örtük bir işlemde izin verilmez.
Plan önbelleğinin temizlenmesi, sonraki tüm yürütme planlarının yeniden derlenmesine neden olur ve sorgu performansında ani, geçici bir düşüşe neden olabilir. Plan önbelleğindeki temizlenen her önbellek deposu için SQL Server hata günlüğü şu bilgi iletisini içerir: 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
. Bu ileti, önbellek bu zaman aralığında temizlendiği sürece beş dakikada bir günlüğe kaydedilir.
Yordam önbelleği aşağıdaki senaryoda da temizlenmiştir: Varsayılan seçenekleri olan bir veritabanında birkaç sorgu çalıştırırsınız. Ardından veritabanı bırakılır.
Veritabanı bilgilerini görüntüleme
Veritabanları, dosyalar ve dosya grupları hakkında bilgi döndürmek için katalog görünümlerini, sistem işlevlerini ve sistem saklı yordamlarını kullanabilirsiniz.
İzinler
Veritabanını değiştirmek için, oturum açma bilgileri sunucu yöneticisi oturum açma bilgileri (Azure SQL Veritabanı mantıksal sunucusu sağlandığında oluşturulur), sunucunun Microsoft Entra yöneticisi, master
'daki dbmanager veritabanı rolünün bir üyesi, geçerli veritabanındaki db_owner veritabanı rolünün üyesi veya veritabanının dbo
olmalıdır. Microsoft Entra Id is (eski adıyla Azure Active Directory).
Veritabanlarını T-SQL aracılığıyla ölçeklendirmek için ALTER DATABASE izinleri gereklidir. Veritabanlarını Azure portalı, PowerShell, Azure CLI veya REST API aracılığıyla ölçeklendirmek için, Azure RBAC izinleri( özellikle Katkıda Bulunan, SQL DB Katkıda Bulunanı rolü veya SQL Server Katkıda Bulunanı Azure RBAC rolleri) gereklidir. Daha fazla bilgi için Azure yerleşik rolleriadresini ziyaret edin.
Örnekler
A. Sürüm seçeneklerini denetleyin ve değiştirin
Veritabanı db1
için bir sürüm ve maksimum boyut ayarlar:
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. Veritabanını farklı bir elastik havuza taşıma
Mevcut veritabanını pool1
adlı bir havuza taşır:
ALTER DATABASE db1
MODIFY ( SERVICE_OBJECTIVE = ELASTIC_POOL ( name = pool1 ) ) ;
C. İkincil Geo-Replication ekleme
Yerel sunucudaki db1
secondaryserver
sunucuda okunabilir bir ikincil veritabanı db1
oluşturur.
ALTER DATABASE db1
ADD SECONDARY ON SERVER secondaryserver
WITH ( ALLOW_CONNECTIONS = ALL );
D. Geo-Replication İkincil'i kaldırma
sunucu secondaryserver
ikincil veritabanı db1
kaldırır.
ALTER DATABASE db1
REMOVE SECONDARY ON SERVER testsecondaryserver;
E. Geo-Replication İkincil'e yük devretme
sunucu secondaryserver
üzerinde yürütürken sunucu secondaryserver
ikincil veritabanı db1
yeni birincil veritabanı olacak şekilde yükselter.
ALTER DATABASE db1 FAILOVER;
Not
Daha fazla bilgi için bkz. Olağanüstü durum kurtarma kılavuzu - Azure SQL Veritabanı ve Azure SQL Veritabanı yüksek kullanılabilirlik ve olağanüstü durum kurtarma denetim listesi.
F. Veri kaybıyla Geo-Replication İkincil'e yük devretmeyi zorlama
sunucu secondaryserver
üzerindeki ikincil bir veritabanı db1
, birincil sunucunun kullanılamaz duruma gelmesi durumunda secondaryserver
sunucusunda yürütürken yeni birincil veritabanı olmaya zorlar. Bu seçenek veri kaybına neden olabilir.
ALTER DATABASE db1 FORCE_FAILOVER_ALLOW_DATA_LOSS;
G. Tek bir veritabanını hizmet katmanı S0'a güncelleştirme (Standart sürüm, performans düzeyi 0)
Tek bir veritabanını S0 işlem boyutu (hizmet hedefi) ve en büyük boyutu 250 GB olan Standart sürüme (hizmet katmanı) güncelleştirir.
ALTER DATABASE [db1] MODIFY (EDITION = 'Standard', MAXSIZE = 250 GB, SERVICE_OBJECTIVE = 'S0');
H. Veritabanının yedekleme depolama yedekliliğini güncelleştirme
Veritabanının yedekleme depolama yedekliliğini alanlar arası yedekli olarak güncelleştirir. Bu veritabanının gelecekteki tüm yedeklemeleri yeni ayarı kullanır. Bu, belirli bir noktaya geri yükleme yedeklemelerini ve uzun süreli saklama yedeklemelerini (yapılandırıldıysa) içerir.
ALTER DATABASE db1 MODIFY BACKUP_STORAGE_REDUNDANCY = 'ZONE';
İlgili içerik
- CREATE DATABASE - Azure SQL Veritabanı
- DATABASEPROPERTYEX
- DROP DATABASE
- İŞLEM YALıTıM DÜZEYI AYARLAMA
- EVENTDATA
- sp_spaceused
- sys.databases
- sys.database_files
- sys.filegroups
- sys.master_files
- Sistem Veritabanları
- Olağanüstü durum kurtarma kılavuzu - Azure SQL Veritabanı
- Azure SQL Veritabanı yüksek kullanılabilirlik ve olağanüstü durum kurtarma denetim listesini
- DTU kaynak sınırları
- Tek veritabanları için sanal çekirdek kaynak sınırlarını
- Elastik havuzlar için sanal çekirdek kaynak sınırlarını
SQL Server
SQL Veritabanı
* SQL Yönetilen Örneği *
Azure Synapse'i
Analiz
Microsoft Fabric
Genel Bakış: Azure SQL Yönetilen Örneği
Azure SQL Yönetilen Örneği'nde veritabanı seçeneklerini ayarlamak için bu deyimi kullanın.
Uzunluğu nedeniyle, ALTER DATABASE
söz dizimi birden çok makaleye ayrılır.
Makale | Açıklama |
---|---|
ALTER DATABASE |
|
Geçerli makalede dosya ve dosya grubu seçeneklerini ayarlamaya, veritabanı seçeneklerini ayarlamaya ve veritabanı uyumluluk düzeyini ayarlamaya yönelik söz dizimi ve ilgili bilgiler sağlanır. | |
ALTER DATABASE Dosya ve Dosya Grubu Seçenekleri |
|
Bir veritabanından dosya ve dosya grubu ekleme ve kaldırma ile dosyaların ve dosya gruplarının özniteliklerini değiştirmeye yönelik söz dizimini ve ilgili bilgileri sağlar. | |
ALTER DATABASE SET Seçenekleri |
|
ALTER DATABASE'in SET seçeneklerini kullanarak veritabanının özniteliklerini değiştirmek için söz dizimini ve ilgili bilgileri sağlar. | |
ALTER DATABASE Uyumluluk Düzeyi |
|
ALTER DATABASE'in veritabanı uyumluluk düzeyleriyle ilgili SET seçenekleri için söz dizimini ve ilgili bilgileri sağlar. |
Sözdizimi
-- 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 }
}
Bağımsız değişken
database_name
Değiştirilecek veritabanının adıdır.
GEÇERLİ
Kullanımdaki geçerli veritabanının değiştirilmesi gerektiğini gösterir.
Açıklamalar
Veritabanını kaldırmak için DROP DATABASEkullanın.
Veritabanının boyutunu küçültmek için dbcc SHRINKDATABASE
kullanın. ALTER DATABASE
deyiminin otomatik işleme modunda (varsayılan işlem yönetim modu) çalışması gerekir ve açık veya örtük bir işlemde izin verilmez.Azure SQL Yönetilen Örneği için plan önbelleği, aşağıdaki seçeneklerden biri ayarlanarak temizlenir.
HARMANLAMAK
FILEGROUP DEFAULT'I DEĞIŞTIRME
FILEGROUP READ_ONLY DEĞIŞTIRME
FILEGROUP READ_WRITE DEĞIŞTIRME
ADı DEĞIŞTIR
Plan önbelleğinin temizlenmesi, sonraki tüm yürütme planlarının yeniden derlenmesine neden olur ve sorgu performansında ani, geçici bir düşüşe neden olabilir. Plan önbelleğindeki temizlenen her önbellek deposu için SQL Server hata günlüğü şu bilgi iletisini içerir:
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
. Bu ileti, önbellek bu zaman aralığında temizlendiği sürece beş dakikada bir günlüğe kaydedilir. Plan önbelleği, varsayılan seçenekleri olan bir veritabanında birkaç sorgu yürütülürken de temizlenir. Ardından veritabanı bırakılır.
Bazı
ALTER DATABASE
deyimleri, bir veritabanında yürütülecek özel kilit gerektirir. Bu nedenle, başka bir etkin işlem veritabanında kilit tuttuğunda başarısız olabilir. Böyle bir durumda bildirilen hata,ALTER DATABASE failed because a lock could not be placed on database '<database name>'. Try again later
iletisiyleMsg 5061, Level 16, State 1, Line 38
. Bu genellikle geçici bir hatadır ve bunu çözmek için veritabanındaki tüm kilitler serbest bırakıldıktan sonra başarısız olanALTER DATABASE
deyimini yeniden deneyin. Sistem görünümüsys.dm_tran_locks
etkin kilitlerle ilgili bilgileri tutar. Veritabanında paylaşılan veya özel kilit olup olmadığını denetlemek için aşağıdaki sorguyu kullanın.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');
Veritabanı bilgilerini görüntüleme
Veritabanları, dosyalar ve dosya grupları hakkında bilgi döndürmek için katalog görünümlerini, sistem işlevlerini ve sistem saklı yordamlarını kullanabilirsiniz.
İzinler
Yalnızca sunucu düzeyinde asıl oturum açma bilgileri (sağlama işlemi tarafından oluşturulur) veya dbcreator
veritabanı rolünün üyeleri veritabanını değiştirebilir.
Önemli
Veritabanının sahibi, dbcreator
rolüne üye olmadığı sürece veritabanını değiştiremez.
Örnekler
Aşağıdaki örneklerde, otomatik ayarlamanın nasıl ayarlanacağı ve Azure SQL Yönetilen Örneği'ndeki bir veritabanına nasıl dosya ekleneceği gösterilmektedir.
ALTER DATABASE WideWorldImporters
SET AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = ON);
ALTER DATABASE WideWorldImporters
ADD FILE (NAME = 'data_17');
İlgili içerik
- CREATE DATABASE - Azure SQL Veritabanı
- DATABASEPROPERTYEX
- DROP DATABASE
- İŞLEM YALıTıM DÜZEYI AYARLAMA
- EVENTDATA
- sp_configure
- sp_spaceused
- sys.databases
- sys.database_files
- sys.data_spaces
- sys.filegroups
- sys.master_files
- Sistem Veritabanları
SQL Server
SQL Veritabanı
SQL Yönetilen Örneği
* Azure Synapse
Analiz *
Microsoft Fabric
Genel Bakış: Azure Synapse Analytics
Azure Synapse'te ALTER DATABASE
ayrılmış sql havuzunun belirli yapılandırma seçeneklerini değiştirir.
Uzunluğu nedeniyle, ALTER DATABASE
söz dizimi birden çok makaleye ayrılır.
ALTER DATABASE SET seçenekleri
Sözdizimi
-
ayrılmış SQL havuzu
-
sunucusuz SQL havuzu
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'
}
Bağımsız değişken
database_name
Değiştirilecek veritabanının adını belirtir.
MODIFY NAME = new_database_name
veritabanını new_database_nameolarak belirtilen adla yeniden adlandırır.
Azure Synapse'te 'MODIFY NAME' seçeneğinin bazı destek sınırlamaları vardır:
- Azure Synapse sunucusuz havuzlarla desteklenmez
- Azure Synapse Çalışma Alanınızda oluşturulan ayrılmış SQL havuzlarıyla desteklenmez
- Azure portalaracılığıyla oluşturulan ayrılmış SQL havuzlarıyla (eski adı SQL DW) desteklenir ve bağlı çalışma alanı
MAXSIZE
Varsayılan değer 245.760 GB 'tır (240 TB).
Şunlar için geçerlidir: İşlem 1. Nesil için İyileştirilmiş
Veritabanı için izin verilen en büyük boyut. Veritabanı MAXSIZE'ın ötesine geçemez.
Şunlar için geçerlidir: İşlem 2. Nesil için İyileştirilmiş
Veritabanındaki satır deposu verileri için izin verilen en büyük boyut. Rowstore tablolarında, columnstore dizininde deltastore'da veya kümelenmiş columnstore dizininde kümelenmemiş dizinde depolanan veriler MAXSIZE'ın ötesine geçemez. Columnstore biçiminde sıkıştırılmış verilerin boyut sınırı yoktur ve MAXSIZE ile kısıtlanmamıştır.
SERVICE_OBJECTIVE
İşlem boyutunu (hizmet hedefi) belirtir. Azure Synapse'in hizmet hedefleri hakkında daha fazla bilgi için bkz. Veri Ambarı Birimleri (DWU).
İzinler
Şu izinleri gerektirir:
- Sunucu düzeyinde asıl oturum açma (sağlama işlemi tarafından oluşturulan oturum açma) veya
-
dbmanager
veritabanı rolünün üyesi.
Veritabanı sahibi, dbmanager
rolünün üyesi olmadığı sürece veritabanını değiştiremez.
Açıklamalar
Geçerli veritabanı, değiştirdiğiniz veritabanından farklı bir veritabanı olmalıdır, bu nedenle ALTER master
veritabanına bağlıyken çalıştırılmalıdır.
SQL Analytics'teki COMPATIBILITY_LEVEL varsayılan olarak 130 olarak ayarlanır ve değiştirilemez. Daha fazla bilgi için bkz. alter database uyumluluk düzeyi
Not
COMPATIBILITY_LEVEL yalnızca sağlanan kaynaklara (havuzlar) uygulanır.
Sınırlama
ALTER DATABASE
çalıştırmak için veritabanı çevrimiçi olmalıdır ve duraklatılmış durumda olamaz.
ALTER DATABASE
deyimi, varsayılan işlem yönetimi modu olan otomatik işleme modunda çalıştırılmalıdır. Bu, bağlantı ayarlarında ayarlanır.
ALTER DATABASE
deyimi kullanıcı tanımlı bir işlemin parçası olamaz.
Veritabanı harmanlamasını değiştiremezsiniz.
Örnekler
Bu örnekleri çalıştırmadan önce, değiştirdiğiniz veritabanının geçerli veritabanı olmadığından emin olun. Geçerli veritabanı, değiştirdiğiniz veritabanından farklı bir veritabanı olmalıdır, bu nedenle ALTER master
veritabanına bağlıyken çalıştırılmalıdır.
A. Veritabanının adını değiştirme
ALTER DATABASE AdventureWorks2022
MODIFY NAME = Northwind;
B. Veritabanı için en büyük boyutu değiştirme
ALTER DATABASE dw1 MODIFY ( MAXSIZE=10240 GB );
C. İşlem boyutunu değiştirme (hizmet hedefi)
ALTER DATABASE dw1 MODIFY ( SERVICE_OBJECTIVE= 'DW1200' );
D. En büyük boyutu ve işlem boyutunu değiştirme (hizmet hedefi)
ALTER DATABASE dw1 MODIFY ( MAXSIZE=10240 GB, SERVICE_OBJECTIVE= 'DW1200' );
İlgili içerik
- CREATE DATABASE (Azure Synapse Analytics)
- Azure Synapse Analytics ayrılmış SQL havuzu için T-SQL dil öğelerini
SQL Server
SQL Veritabanı
SQL Yönetilen Örneği
Azure Synapse'i
Analiz
* Analiz
Platform Sistemi (PDW) *
Microsoft Fabric
Genel Bakış: Analiz Platformu Sistemi
Analiz Platformu Sistemi'nde (PDW), ALTER DATABASE çoğaltılan tablolar, dağıtılmış tablolar ve işlem günlüğü için maksimum veritabanı boyutu seçeneklerini değiştirir. Boyutu büyüdükçe veya küçülürken veritabanı için disk alanı ayırmalarını yönetmek için bu deyimi kullanın. Bu makalede, Analiz Platformu Sistemi'nde (PDW) veritabanı seçeneklerini ayarlamayla ilgili söz dizimi de açıklanmaktadır.
Sözdizimi
-- 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 }
Bağımsız değişken
database_name
Değiştirilecek veritabanının adı. Alette veritabanlarının listesini görüntülemek için
AUTOGROW = { ON | KAPALI }
AUTOGROW seçeneğini güncelleştirir. AUTOGROW ON olduğunda Analiz Platformu Sistemi (PDW), depolama gereksinimlerindeki büyümeyi karşılamak için çoğaltılan tablolar, dağıtılmış tablolar ve işlem günlüğü için ayrılan alanı otomatik olarak artırır. AUTOGROW KAPALI olduğunda, çoğaltılan tablolar, dağıtılmış tablolar veya işlem günlüğü boyut üst sınırı ayarını aşarsa Analiz Platformu Sistemi (PDW) bir hata döndürür.
REPLICATED_SIZE = boyut [GB]
Çoğaltılan tabloların tümünü değiştirilmekte olan veritabanında depolamak için İşlem düğümü başına yeni maksimum gigabayt sayısını belirtir. Alet depolama alanı planlıyorsanız, REPLICATED_SIZE aletteki İşlem düğümlerinin sayısıyla çarpmanız gerekir.
DISTRIBUTED_SIZE = boyut [GB]
Değiştirilen veritabanındaki tüm dağıtılmış tabloları depolamak için veritabanı başına yeni maksimum gigabayt sayısını belirtir. Boyut, aletteki tüm İşlem düğümlerine dağıtılır.
LOG_SIZE = boyut [GB]
Değiştirilen veritabanında tüm işlem günlüklerini depolamak için veritabanı başına yeni maksimum gigabayt sayısını belirtir. Boyut, aletteki tüm İşlem düğümlerine dağıtılır.
ŞIFRELEME { ON | KAPALI }
Veritabanını şifrelenecek (ON) veya şifrelenmez (KAPALI) olarak ayarlar. Şifreleme yalnızca sp_pdw_database_encryption1olarak ayarlandığında Analiz Platformu Sistemi (PDW) için yapılandırılabilir. Saydam veri şifrelemesi yapılandırılmadan önce bir veritabanı şifreleme anahtarı oluşturulmalıdır. Veritabanı şifrelemesi hakkında daha fazla bilgi için bkz. saydam veri şifrelemesi (TDE)
SET AUTO_CREATE_STATISTICS { ON | KAPALI }
AUTO_CREATE_STATISTICS otomatik istatistik oluşturma seçeneği AÇILDI olduğunda, Sorgu İyileştiricisi sorgu planı için kardinalite tahminlerini geliştirmek için gerektiğinde sorgu koşulundaki tek tek sütunlar üzerinde istatistikler oluşturur. Bu tek sütunlu istatistikler, mevcut istatistik nesnesinde histogramı olmayan sütunlarda oluşturulur.
AU7'ye yükselttikten sonra oluşturulan yeni veritabanları için varsayılan ayar ON'dır. Yükseltmeden önce oluşturulan veritabanları için varsayılan ayar KAPALI'dır.
İstatistikler hakkında daha fazla bilgi için bkz. İstatistikler
SET AUTO_UPDATE_STATISTICS { ON | KAPALI }
AUTO_UPDATE_STATISTICS otomatik güncelleştirme istatistikleri seçeneği ON olduğunda, sorgu iyileştiricisi istatistiklerin ne zaman güncel olabileceğini belirler ve sorgu tarafından kullanıldığında bunları güncelleştirir. tablo veya dizinli görünümdeki veri dağıtımını ekleme, güncelleştirme, silme veya birleştirme işlemleri değiştirildikten sonra istatistikler güncel değildir. Sorgu iyileştiricisi, son istatistik güncelleştirmelerinden bu yana yapılan veri değişikliklerinin sayısını sayarak ve değişikliklerin sayısını bir eşikle karşılaştırarak istatistiklerin güncel olmayabileceğini belirler. Eşik, tablodaki veya dizinli görünümdeki satır sayısını temel alır.
AU7'ye yükselttikten sonra oluşturulan yeni veritabanları için varsayılan ayar ON'dır. Yükseltmeden önce oluşturulan veritabanları için varsayılan ayar KAPALI'dır.
İstatistikler hakkında daha fazla bilgi için bkz. İstatistikler.
SET AUTO_UPDATE_STATISTICS_ASYNC { ON | KAPALI }
AUTO_UPDATE_STATISTICS_ASYNC zaman uyumsuz istatistik güncelleştirme seçeneği, Sorgu İyileştiricisi'nin zaman uyumlu veya zaman uyumsuz istatistik güncelleştirmeleri kullanıp kullanmadığını belirler. AUTO_UPDATE_STATISTICS_ASYNC seçeneği dizinler için oluşturulan istatistik nesneleri, sorgu koşulundaki tek sütunlar ve CREATE STATISTICS
deyimiyle oluşturulan istatistikler için geçerlidir.
AU7'ye yükselttikten sonra oluşturulan yeni veritabanları için varsayılan ayar ON'dır. Yükseltmeden önce oluşturulan veritabanları için varsayılan ayar KAPALI'dır.
İstatistikler hakkında daha fazla bilgi için bkz. İstatistikler.
İzinler
Veritabanında ALTER
izni gerektirir.
Hata İletileri
Otomatik istatistikler devre dışı bırakılırsa ve istatistik ayarlarını değiştirmeye çalışırsanız, PDW hatasını This option isn't supported in PDW
. Sistem yöneticisi, AutoStatsEnabled
Açıklamalar
REPLICATED_SIZE
, DISTRIBUTED_SIZE
ve LOG_SIZE
değerleri veritabanı için geçerli değerlerden büyük, buna eşit veya daha küçük olabilir.
Sınırlama
Büyüme ve küçültme işlemleri yaklaşıktır. Sonuçta elde edilen gerçek boyutlar boyut parametrelerinden farklılık gösterebilir.
Analiz Platformu Sistemi (PDW), atomik işlem olarak ALTER DATABASE
deyimini gerçekleştirmez. Deyimi yürütme sırasında durdurulduysa, zaten gerçekleşen değişiklikler kalır.
İstatistik ayarları yalnızca yönetici otomatik istatistikleri etkinleştirmişse çalışır. Yöneticiyseniz otomatik istatistikleri etkinleştirmek veya devre dışı bırakmak için AutoStatsEnabled
Kilitleme davranışı
DATABASE nesnesinde paylaşılan bir kilit alır. Başka bir kullanıcı tarafından okuma veya yazma için kullanılan bir veritabanını değiştiremezsiniz. Bu, veritabanında bir USE deyimi veren oturumları içerir.
Performans
Veritabanını küçültmek, veritabanındaki gerçek verilerin boyutuna ve disk üzerindeki parçalanma miktarına bağlı olarak büyük miktarda zaman ve sistem kaynağı alabilir. Örneğin, veritabanını küçültmek birkaç saat veya daha fazla sürebilir.
Şifreleme İlerleme Durumunu Belirleme
Veritabanı saydam veri şifrelemesinin ilerleme durumunu yüzde olarak belirlemek için aşağıdaki sorguyu kullanın:
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';
TDE uygulamayla ilgili tüm adımları gösteren kapsamlı bir örnek için bkz. saydam veri şifrelemesi (TDE)
Örnekler: Analiz Platformu Sistemi (PDW)
A. AUTOGROW ayarını değiştirme
veritabanı CustomerSales
için AUTOGROW ayarını ON olarak ayarlayın.
ALTER DATABASE CustomerSales
SET ( AUTOGROW = ON );
B. Çoğaltılan tablolar için maksimum depolama alanını değiştirme
Aşağıdaki örnek, CustomerSales
veritabanı için çoğaltılmış tablo depolama sınırını 1 GB olarak ayarlar. İşlem düğümü başına depolama sınırı budur.
ALTER DATABASE CustomerSales
SET ( REPLICATED_SIZE = 1 GB );
C. Dağıtılmış tablolar için en yüksek depolama alanını değiştirme
Aşağıdaki örnek, veritabanı CustomerSales
için dağıtılmış tablo depolama sınırını 1000 GB (bir terabayt) olarak ayarlar. Bu, İşlem düğümü başına depolama sınırı değil, tüm İşlem düğümleri için alet genelinde birleştirilmiş depolama sınırıdır.
ALTER DATABASE CustomerSales
SET ( DISTRIBUTED_SIZE = 1000 GB );
D. İşlem günlüğü için maksimum depolama alanını değiştirme
Aşağıdaki örnek, veritabanı CustomerSales
alet için en fazla 10 GB SQL Server işlem günlüğü boyutuna sahip olacak şekilde güncelleştirir.
ALTER DATABASE CustomerSales
SET ( LOG_SIZE = 10 GB );
E. Geçerli istatistik değerlerini denetleme
Aşağıdaki sorgu, tüm veritabanları için geçerli istatistik değerlerini döndürür.
1
değeri özelliğin açık olduğu ve 0
özelliğin kapalı olduğu anlamına gelir.
SELECT NAME,
is_auto_create_stats_on,
is_auto_update_stats_on,
is_auto_update_stats_async_on
FROM sys.databases;
F. Veritabanı için otomatik oluşturma ve otomatik güncelleştirme istatistiklerini etkinleştirme
CustomerSales veritabanı için istatistiklerin otomatik ve zaman uyumsuz olarak oluşturulmasını ve güncelleştirilebilmesini sağlamak için aşağıdaki deyimi kullanın. Bu, yüksek kaliteli sorgu planları oluşturmak için gereken tek sütunlu istatistikleri oluşturur ve güncelleştirir.
ALTER DATABASE CustomerSales
SET AUTO_CREATE_STATISTICS ON;
ALTER DATABASE CustomerSales
SET AUTO_UPDATE_STATISTICS ON;
ALTER DATABASE
SET AUTO_UPDATE_STATISTICS_ASYNC ON;
İlgili içerik
- CREATE DATABASE - Analiz Platformu Sistemi
- DROP DATABASE
Genel Bakış: Microsoft Fabric
SQL Server
SQL Veritabanı
SQL Yönetilen Örneği
Azure Synapse'i
Analiz
Microsoft Fabric
Microsoft Fabric Warehouse'da bu deyim bir ambarı değiştirir.
Uzunluğu nedeniyle, ALTER DATABASE
söz dizimi birden çok makaleye ayrılır.
Makale | Açıklama |
---|---|
ALTER DATABASE |
Geçerli makalede, veritabanının adını ve harmanlamasını değiştirmek için söz dizimi ve ilgili bilgiler sağlanır. |
ALTER DATABASE SET seçenekleri |
ALTER DATABASE'in SET seçeneklerini kullanarak veritabanının özniteliklerini değiştirmek için söz dizimini ve ilgili bilgileri sağlar. |
Açıklamalar
Şu anda Delta Lake günlüğü yayımlama