Aracılığıyla paylaş


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.Transact-SQL söz dizimi kuralları.

Ü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 SHRINKDATABASEkullanı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.

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, UPDATEveya 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ı Northwindolarak 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_AIolarak 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

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ı db2olarak 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ü Premiumolarak 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 boyutu gibi sınırlar için tek veritabanları için kaynak sınırları veyaelastik havuzlar için kaynak sınırları makalelerine bakın.

Sanal çekirdek modeli kullanılırken MAXSIZEdeğ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 veya DTU 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 nolduğ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ı veya kaynak 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 P6olarak 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_8olarak 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:

  1. Birincil, yeni işlemleri almayı durdurur.
  2. Kalan tüm işlemler ikincil değere boşaltılır.
  3. İ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:

  1. Belirtilen ikincil veritabanı hemen birincil veritabanı olur ve yeni işlemleri kabul eder.
  2. Ö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.
  3. Eski birincilde bu artımlı yedeklemeden verileri kurtarmak için kullanıcı devops/CSS ile etkileşim kurar.
  4. 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 SHRINKDATABASEkullanı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.

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ı db1iç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ı pool1adlı bir havuza taşır:

ALTER DATABASE db1
MODIFY ( SERVICE_OBJECTIVE = ELASTIC_POOL ( name = pool1 ) ) ;

C. İkincil Geo-Replication ekleme

Yerel sunucudaki db1secondaryserver 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 secondaryserverikincil 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;

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

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 SHRINKDATABASEkullanı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 lateriletisiyle Msg 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 olan ALTER 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');

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 , SET seçeneklerini kullanarak veritabanının özniteliklerini değiştirmek için söz dizimini ve ilgili bilgileri sağlar.

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' );
  • 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çinsys.databases kullanın.

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özellik anahtarını etkinleştirerek otomatik istatistikleri etkinleştirebilir.

Açıklamalar

REPLICATED_SIZE, DISTRIBUTED_SIZEve 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 özellik anahtarını kullanın.

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ı CustomerSalesiç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, CustomerSalesveritabanı 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ı CustomerSalesiç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;

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 duraklatmak ve V Sırası davranışını devre dışı bırakmak Microsoft Fabric'te için tek kullanım alanıdır. ALTER DATABASE SET seçenekleri bakın.