Aracılığıyla paylaş


VERITABANı OLUŞTURMA

Yeni bir veritabanı oluşturur.

Üzerinde çalıştığınız belirli bir SQL sürümü için söz dizimi, bağımsız değişkenler, açıklamalar, izinler ve örnekler için aşağıdaki sekmelerden birini seçin.

Ü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

 

SQL Server

Genel bakış

SQL Server'da bu deyim yeni bir veritabanı ve kullanılan dosyaları ve bunların dosya gruplarını oluşturur. Ayrıca veritabanı anlık görüntüsü oluşturmak veya başka bir veritabanının ayrılmış dosyalarından veritabanı oluşturmak için veritabanı dosyaları eklemek için de kullanılabilir.

Sözdizimi

Veritabanı oluşturma.

Söz dizimi kuralları hakkında daha fazla bilgi için bkz.Transact-SQL söz dizimi kuralları.

CREATE DATABASE database_name
[ CONTAINMENT = { NONE | PARTIAL } ]
[ ON
      [ PRIMARY ] <filespec> [ ,...n ]
      [ , <filegroup> [ ,...n ] ]
      [ LOG ON <filespec> [ ,...n ] ]
]
[ COLLATE collation_name ]
[ WITH <option> [,...n ] ]
[;]

<option> ::=
{
      FILESTREAM ( <filestream_option> [,...n ] )
    | DEFAULT_FULLTEXT_LANGUAGE = { lcid | language_name | language_alias }
    | DEFAULT_LANGUAGE = { lcid | language_name | language_alias }
    | NESTED_TRIGGERS = { OFF | ON }
    | TRANSFORM_NOISE_WORDS = { OFF | ON }
    | TWO_DIGIT_YEAR_CUTOFF = <two_digit_year_cutoff>
    | DB_CHAINING { OFF | ON }
    | TRUSTWORTHY { OFF | ON }
    | PERSISTENT_LOG_BUFFER=ON ( DIRECTORY_NAME='path-to-directory-on-a-DAX-volume' )
    | LEDGER = {ON | OFF }
}

<filestream_option> ::=
{
      NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL }
    | DIRECTORY_NAME = 'directory_name'
}

<filespec> ::=
{
(
    NAME = logical_file_name ,
    FILENAME = { 'os_file_name' | 'filestream_path' }
    [ , SIZE = size [ KB | MB | GB | TB ] ]
    [ , MAXSIZE = { max_size [ KB | MB | GB | TB ] | UNLIMITED } ]
    [ , FILEGROWTH = growth_increment [ KB | MB | GB | TB | % ] ]
)
}

<filegroup> ::=
{
FILEGROUP filegroup name [ [ CONTAINS FILESTREAM ] [ DEFAULT ] | CONTAINS MEMORY_OPTIMIZED_DATA ]
    <filespec> [ ,...n ]
}

Veritabanı ekleme

CREATE DATABASE database_name
    ON <filespec> [ ,...n ]
    FOR { { ATTACH [ WITH <attach_database_option> [ , ...n ] ] }
        | ATTACH_REBUILD_LOG }
[;]

<attach_database_option> ::=
{
      <service_broker_option>
    | RESTRICTED_USER
    | FILESTREAM ( DIRECTORY_NAME = { 'directory_name' | NULL } )
}

<service_broker_option> ::=
{
    ENABLE_BROKER
  | NEW_BROKER
  | ERROR_BROKER_CONVERSATIONS
}

Veritabanı anlık görüntüsü oluşturma

CREATE DATABASE database_snapshot_name
    ON
    (
        NAME = logical_file_name,
        FILENAME = 'os_file_name'
    ) [ ,...n ]
    AS SNAPSHOT OF
[;]

Bağımsız değişken

database_name

Bu, yeni veritabanının adıdır. Veritabanı adları SQL Server örneğinde benzersiz olmalı vetanımlayıcıları için kurallarla uyumlu olmalıdır.

database_name, günlük dosyası için mantıksal bir ad belirtilmediği sürece en fazla 128 karakter olabilir. Mantıksal günlük dosyası adı belirtilmezse, SQL Server database_name'e bir sonek ekleyerek günlük için logical_file_name ve os_file_name oluşturur. Bu, oluşturulan mantıksal dosya adının 128 karakterden fazla olmaması için database_name 123 karakterle sınırlar.

Veri dosyası adı belirtilmezse, SQL Server hem logical_file_name hem de os_file_nameolarak database_name kullanır. Varsayılan yol kayıt defterinden alınır. Varsayılan yol, Management Studio'daki Sunucu Özellikleri (Veritabanı Ayarları Sayfası) değiştirilebilir. Varsayılan yolu değiştirmek için SQL Server'ın yeniden başlatılması gerekir.

KAPSAMA = { YOK | PARTIAL }

için geçerlidir: SQL Server 2012 (11.x) ve üzeri

Veritabanının kapsama durumunu belirtir. NONE = bağımsız veritabanı. PARTIAL = kısmen kapsanan veritabanı.

ÜZERİNDE

Veritabanının veri bölümlerini (veri dosyaları) depolamak için kullanılan disk dosyalarının açıkça tanımlandığını belirtir. BIRINCIL dosya grubu için veri dosyalarını tanımlayan< öğeleri >dosyalarının virgülle ayrılmış bir listesi tarafından izlendiğinde ON gereklidir. Birincil dosya grubundaki dosyaların listesi, kullanıcı dosya gruplarını ve dosyalarını tanımlayan isteğe bağlı, virgülle ayrılmış <dosya grubu> öğelerinin listesiyle takip edilebilir.

BİRİNCİL

İlişkili <filespec> listesinin birincil dosyayı tanımladığını belirtir. birincil dosya grubundaki <filespec> girdisinde belirtilen ilk dosya birincil dosya olur. Bir veritabanında yalnızca bir birincil dosya olabilir. Daha fazla bilgi için bkz. Veritabanı Dosyaları ve Dosya Grupları.

BİRİnCİl belirtilmezse, CREATE DATABASE deyiminde listelenen ilk dosya birincil dosya olur.

OTURUM AÇ

Veritabanı günlüğünü, günlük dosyalarını depolamak için kullanılan disk dosyalarının açıkça tanımlandığını belirtir. OTURUM AÇ'ın ardından, günlük dosyalarını tanımlayan< öğeleri >>dosyalarının virgülle ayrılmış bir listesi bulunur. OTURUM AÇ belirtilmezse, otomatik olarak bir günlük dosyası oluşturulur ve bu dosya veritabanı için tüm veri dosyalarının boyutlarının toplamının yüzde 25'i kadar bir boyuta veya 512 KB'ye (hangisi daha büyükse) sahip olur. Bu dosya varsayılan günlük dosyası konumuna yerleştirilir. Bu konum hakkında bilgi için bkz. SSMSVeri ve Günlük Dosyaları için Varsayılan Konumları Görüntüleme veya Değiştirme.

OTURUM AÇ veritabanı anlık görüntüsünde belirtilemez.

HARMANLAMA collation_name

Veritabanı için varsayılan harmanlamayı belirtir. Harmanlama adı bir Windows harmanlama adı veya SQL harmanlama adı olabilir. Belirtilmezse, veritabanına SQL Server örneğinin varsayılan harmanlaması atanır. Harmanlama adı veritabanı anlık görüntüsünde belirtilemez.

FOR ATTACH veya FOR ATTACH_REBUILD_LOG yan tümceleriyle harmanlama adı belirtilemez. Ekli veritabanının harmanlamasını değiştirme hakkında bilgi için bu Microsoft Web sitesiniziyaret edin.

Windows ve SQL harmanlama adları hakkında daha fazla bilgi için bkz. COLLATE.

Not

Kapsanan veritabanları, içerilmeyen veritabanlarından farklı bir şekilde harmanlanır. Daha fazla bilgi için bkz. Kapsanan Veritabanı Harmanlamaları.

WITH <seçeneği>

<filestream_option>

NON_TRANSACTED_ACCESS = { KAPALI | READ_ONLY | FULL }

için geçerlidir: SQL Server 2012 (11.x) ve üzeri.

Veritabanına işlemsel olmayan FILESTREAM erişimi düzeyini belirtir.

Değer Açıklama
OFF İşlem dışı erişim devre dışı bırakıldı.
READONLY Bu veritabanındaki FILESTREAM verileri işlem dışı işlemler tarafından okunabilir.
FULL FILESTREAM FileTables'a işlem dışı tam erişim etkinleştirilir.

DIRECTORY_NAME = <directory_name>

için geçerlidir: SQL Server 2012 (11.x) ve üzeri

Windows ile uyumlu bir dizin adı. Bu ad, SQL Server örneğindeki tüm Database_Directory adları arasında benzersiz olmalıdır. Benzersizlik karşılaştırması, SQL Server harmanlama ayarlarından bağımsız olarak büyük/küçük harfe duyarlı değildir. Bu seçenek, bu veritabanında bir FileTable oluşturmadan önce ayarlanmalıdır.



Aşağıdaki seçeneklere yalnızca CONTAINMENT PARTIAL olarak ayarlandığında izin verilebilir. KAPSAMA YOK olarak ayarlanırsa hatalar oluşur.

DEFAULT_FULLTEXT_LANGUAGE = <lcid> | <dil adı> | <dil diğer adı>

için geçerlidir: SQL Server 2012 (11.x) ve üzeri

Bu seçeneğin tam açıklaması için bkz. Varsayılan tam metin dilini yapılandırma Sunucu Yapılandırma Seçeneği.

DEFAULT_LANGUAGE = <lcid> | <dil adı> | <dil diğer adı>

için geçerlidir: SQL Server 2012 (11.x) ve üzeri

Bu seçeneğin tam açıklaması için bkz. Varsayılan dili yapılandırma Sunucu Yapılandırma Seçeneği.

NESTED_TRIGGERS = { KAPALI | ON }

için geçerlidir: SQL Server 2012 (11.x) ve üzeri

Bu seçeneğin tam açıklaması için bkz. İç içe tetikleyicileri yapılandırma Sunucu Yapılandırma Seçeneği.

TRANSFORM_NOISE_WORDS = { KAPALI | ON }

için geçerlidir: SQL Server 2012 (11.x) ve üzeri

Bu seçeneğin tam açıklaması için bkz. dönüştürme kirlilik sözcükleri Sunucu Yapılandırma Seçeneği.

TWO_DIGIT_YEAR_CUTOFF = { 2049 | 1753 ile 9999 arasında herhangi bir yıl <> }

Bir yılı temsil eden dört basamak. Varsayılan değer 2049'dur. Bu seçeneğin tam açıklaması için bkz. İki basamaklı yıl kesme Sunucusu Yapılandırma Seçeneği yapılandırma.

DB_CHAINING { KAPALI | ON }

ON belirtildiğinde veritabanı, veritabanları arası sahiplik zincirinin kaynağı veya hedefi olabilir.

KAPALI olduğunda veritabanı, veritabanları arası sahiplik zincirine katılamaz. Varsayılan değer KAPALI'dır.

Önemli

Veritabanları arası sahiplik zincirleme sunucusu seçeneği 0 (KAPALI) olduğunda SQL Server örneği bu ayarı tanır. Veritabanları arası sahiplik zinciri 1 (ON) olduğunda, tüm kullanıcı veritabanları bu seçeneğin değerinden bağımsız olarak veritabanları arası sahiplik zincirlerine katılabilir. Bu seçenek sp_configurekullanılarak ayarlanır.

Bu seçeneği ayarlamak için sysadmin sabit sunucu rolüne üyelik gerekir. DB_CHAINING seçeneği şu sistem veritabanlarında ayarlanamaz: master, modeltempdb.

GÜVENILIR { KAPALI | ON }

AÇI belirtildiğinde, kimliğe bürünme bağlamı kullanan veritabanı modülleri (görünümler, kullanıcı tanımlı işlevler veya saklı yordamlar) veritabanı dışındaki kaynaklara erişebilir.

KAPALI olduğunda, kimliğe bürünme bağlamındaki veritabanı modülleri veritabanının dışındaki kaynaklara erişemez. Varsayılan değer KAPALI'dır.

TRUSTWORTHY, veritabanı her eklendiğinde KAPALI olarak ayarlanır.

Varsayılan olarak, msdb veritabanı dışındaki tüm sistem veritabanlarıNDA TRUSTWORTHY ayarı KAPALI olarak ayarlanmıştır. model ve tempdb veritabanları için değer değiştirilemez. master veritabanı için GÜVENİlİR seçeneğini asla AÇI olarak ayarlamamanızı öneririz.

PERSISTENT_LOG_BUFFER=ON ( DIRECTORY_NAME='' )

için geçerlidir: SQL Server 2017 (14.x) ve üzeri.

Bu seçenek belirtildiğinde, işlem günlüğü arabelleği, kalıcı günlük arabelleği olarak da bilinen Depolama Sınıfı Belleği (NVDIMM-N geçici olmayan depolama) tarafından yedeklenen bir disk cihazında bulunan bir birimde oluşturulur. Daha fazla bilgi için bkz. Depolama Sınıfı Bellek kullanarak İşlem İşleme gecikmesi hızlandırmasını ve Veritabanıkalıcı günlük arabelleği ekleme.

LEDGER = {ON | KAPALI }

ONolarak ayarlandığında, tüm kullanıcı verilerinin bütünlüğünün korunduğu bir kayıt defteri veritabanı oluşturur. Bir kayıt defteri veritabanında yalnızca kayıt defteri tabloları oluşturulabilir. Varsayılan değer OFF. veritabanı oluşturulduktan sonra LEDGER seçeneğinin değeri değiştirilemez. Daha fazla bilgi için bkz. Kayıt defteri veritabanı yapılandırma.

VERITABANı OLUŞTUR... FOR ATTACH [ WITH < attach_database_option > ]

Veritabanının, var olan bir işletim sistemi dosyaları kümesi eklenerek oluşturulduğunu belirtir. Birincil dosyayı belirten bir <filespec> girdisi olmalıdır. Gereken diğer tek <filespec> girdileri, veritabanının ilk oluşturulduğu veya son eklendiği zamandaki farklı bir yola sahip olan dosyalar içindir. Bu dosyalar için bir <filespec> girdisi belirtilmelidir.

FOR ATTACH aşağıdakileri gerektirir:

  • Tüm veri dosyaları (MDF ve NDF) kullanılabilir olmalıdır.
  • Birden çok günlük dosyası varsa, bunların tümünün kullanılabilir olması gerekir.

Okuma/yazma veritabanında şu anda kullanılamayan tek bir günlük dosyası varsa ve ATTACH işleminden önce veritabanı hiçbir kullanıcı veya açık işlem olmadan kapatıldıysa, FOR ATTACH günlük dosyasını otomatik olarak yeniden oluşturur ve birincil dosyayı güncelleştirir. Buna karşılık, salt okunur bir veritabanı için, birincil dosya güncelleştirilemediğinden günlük yeniden oluşturulamaz. Bu nedenle, kullanılamayan bir günlük içeren salt okunur bir veritabanı eklediğinizde, günlük dosyalarını veya FOR ATTACH yan tümcesindeki dosyaları sağlamanız gerekir.

Not

SQL Server'ın daha yeni bir sürümü tarafından oluşturulan bir veritabanı önceki sürümlere eklenemez.

SQL Server'da, eklenen veritabanının parçası olan tüm tam metin dosyaları veritabanına eklenir. Tam metin kataloğunun yeni bir yolunu belirtmek için, tam metin işletim sistemi dosya adı olmadan yeni konumu belirtin. Daha fazla bilgi için Örnekler bölümüne bakın.

BIR SQL Server örneğine FILESTREAM seçeneği "Dizin adı" içeren bir veritabanı eklemek, SQL Server'ın Database_Directory adının benzersiz olduğunu doğrulamasını ister. Değilse, ATTACH işlemi FILESTREAM Database_Directory name is not unique in this SQL Server instancehatasıyla başarısız olur. Bu hatayı önlemek için, bu işleme directory_nameisteğe bağlı parametresi geçirilmelidir.

FOR ATTACH veritabanı anlık görüntüsünde belirtilemez.

FOR ATTACH, RESTRICTED_USER seçeneğini belirtebilir. RESTRICTED_USER yalnızca db_owner sabit veritabanı rolünün ve dbcreator ve sysadmin sabit sunucu rollerinin üyelerine veritabanına bağlanma izni verir, ancak bunların sayısını sınırlamaz. Nitelenmemiş kullanıcıların denemeleri reddedilir.

<service_broker_option>

Veritabanı Hizmet Aracısı kullanıyorsa FOR ATTACH yan tümcenizde WITH <service_broker_option> kullanın:

Veritabanı için Hizmet Aracısı ileti teslimini ve Hizmet Aracısı tanımlayıcısını denetler. Hizmet Aracısı seçenekleri yalnızca FOR ATTACH yan tümcesi kullanıldığında belirtilebilir.

ENABLE_BROKER

Hizmet Aracısı'nın belirtilen veritabanı için etkinleştirildiğini belirtir. Başka bir ifadeyle, ileti teslimi başlatılır ve is_broker_enabledsys.databases katalog görünümünde true olarak ayarlanır. Veritabanı mevcut Hizmet Aracısı tanımlayıcısını korur.

NEW_BROKER

Hem service_broker_guid hem de geri yüklenen veritabanında yeni bir sys.databases değeri oluşturur. Tüm konuşma uç noktalarını temizleme ile sonlandırır. Aracı etkinleştirilir, ancak uzak konuşma uç noktalarına ileti gönderilmez. Eski Hizmet Aracısı tanımlayıcıya başvuran tüm yollar yeni tanımlayıcıyla yeniden oluşturulmalıdır.

ERROR_BROKER_CONVERSATIONS

Veritabanının eklendiğini veya geri yüklendiğini belirten bir hatayla tüm konuşmaları sonlandırır. Bu işlem tamamlanana ve sonra etkinleştirilene kadar aracı devre dışı bırakılır. Veritabanı mevcut Hizmet Aracısı tanımlayıcısını korur.

Ayrılmak yerine kopyalanan çoğaltılmış bir veritabanı eklediğinizde şunları göz önünde bulundurun:

  • Veritabanını özgün veritabanıyla aynı sunucu örneğine ve sürümüne eklerseniz ek adım gerekmez.
  • Veritabanını aynı sunucu örneğine ekli ancak yükseltilmiş bir sürüme sahipseniz, ekleme işlemi tamamlandıktan sonra çoğaltmayı yükseltmek için sp_vupgrade_replication yürütmeniz gerekir.
  • Veritabanını sürümden bağımsız olarak farklı bir sunucu örneğine eklerseniz, ekleme işlemi tamamlandıktan sonra çoğaltmayı kaldırmak için sp_removedbreplication yürütmeniz gerekir.

Not

Ekleme, vardecimal depolama biçimiyle çalışır, ancak SQL Server Veritabanı Altyapısı en az SQL Server 2005 (9.x) SP2'ye yükseltilmelidir. Sql Server'ın önceki bir sürümüne vardecimal depolama biçimi kullanarak veritabanı ekleyemezsiniz. değişken depolama biçimi hakkında daha fazla bilgi için bkz. Veri Sıkıştırma.

Bir veritabanı sql server'ın yeni bir örneğine ilk kez eklendiğinde veya geri yüklendiğinde, veritabanı ana anahtarının bir kopyası (hizmet ana anahtarı tarafından şifrelenir) henüz sunucuda depolanmaz. Veritabanı ana anahtarının (DMK) şifresini çözmek için OPEN MASTER KEY deyimini kullanmanız gerekir. DMK'nin şifresi çözüldükten sonra, sunucuya hizmet ana anahtarı (SMK) ile şifrelenmiş bir DMK kopyası sağlamak için ALTER MASTER KEY REGENERATE deyimini kullanarak gelecekte otomatik şifre çözmeyi etkinleştirme seçeneğiniz vardır. Bir veritabanı önceki bir sürümden yükseltildiğinde, DMK daha yeni AES algoritmasını kullanacak şekilde yeniden oluşturulmalıdır. DMK'yi yeniden oluşturma hakkında daha fazla bilgi için bkz. ALTER MASTER KEY. AES'ye yükseltmek için DMK anahtarını yeniden oluşturmak için gereken süre, DMK tarafından korunan nesne sayısına bağlıdır. AES'ye yükseltmek için DMK anahtarını yeniden oluşturmak yalnızca bir kez gereklidir ve anahtar döndürme stratejisinin bir parçası olarak gelecekteki yenilemeler üzerinde hiçbir etkisi yoktur. Ekleme kullanarak veritabanını yükseltme hakkında bilgi için bkz. ayırma ve eklemekullanarak veritabanını yükseltme .

Önemli

Bilinmeyen veya güvenilmeyen kaynaklardan veritabanları eklememenizi öneririz. Bu tür veritabanları, istenmeyen Transact-SQL kodu yürütebilecek veya şemayı veya fiziksel veritabanı yapısını değiştirerek hatalara neden olabilecek kötü amaçlı kod içerebilir. Bilinmeyen veya güvenilmeyen bir kaynaktan veritabanı kullanmadan önce, DBCC CHECKDB üretim dışı bir sunucudaki veritabanında çalıştırın ve ayrıca veritabanında saklı yordamlar veya diğer kullanıcı tanımlı kodlar gibi kodu inceleyin.

Not

GÜVENILIR ve DB_CHAINING seçeneklerinin veritabanı eklerken hiçbir etkisi yoktur.

FOR ATTACH_REBUILD_LOG

Veritabanının mevcut bir işletim sistemi dosyaları kümesi eklenerek oluşturulduğunu belirtir. Bu seçenek okuma/yazma veritabanlarıyla sınırlıdır. Birincil dosyayı belirten bir <filespec> girdisi olmalıdır. Bir veya daha fazla işlem günlüğü dosyası eksikse, günlük dosyası yeniden oluşturulur. ATTACH_REBUILD_LOG otomatik olarak yeni bir 1 MB günlük dosyası oluşturur. Bu dosya varsayılan günlük dosyası konumuna yerleştirilir. Bu konum hakkında bilgi için bkz. SSMSVeri ve Günlük Dosyaları için Varsayılan Konumları Görüntüleme veya Değiştirme.

Not

Günlük dosyaları kullanılabilir durumdaysa, Veritabanı Altyapısı günlük dosyalarını yeniden oluşturmak yerine bu dosyaları kullanır.

FOR ATTACH_REBUILD_LOG aşağıdaki koşulları gerektirir:

  • Veritabanının temiz bir şekilde kapatılması.
  • Tüm veri dosyaları (MDF ve NDF) kullanılabilir olmalıdır.

Önemli

Bu işlem günlük yedekleme zincirini kırar. İşlem tamamlandıktan sonra tam veritabanı yedeklemesi gerçekleştirmenizi öneririz. Daha fazla bilgi için bkz. backup.

FOR ATTACH_REBUILD_LOG genellikle büyük bir günlük içeren bir okuma/yazma veritabanını, kopyanın çoğunlukla veya yalnızca okuma işlemleri için kullanılacağı ve bu nedenle özgün veritabanından daha az günlük alanı gerektiren başka bir sunucuya kopyaladığınızda kullanılır.

FOR ATTACH_REBUILD_LOG veritabanı anlık görüntüsünde belirtilemez.

Veritabanlarını ekleme ve ayırma hakkında daha fazla bilgi için bkz. veritabanı ayırma ve ekleme.

<filespec>

Dosya özelliklerini denetler.

AD logical_file_name

Dosyanın mantıksal adını belirtir. AD, FOR ATTACH yan tümcelerinden birini belirtme dışında FILENAME belirtildiğinde gereklidir. FILESTREAM dosya grubu BİRİnCİl olarak adlandırılamaz.

logical_file_name

Dosyaya başvururken SQL Server'da kullanılan mantıksal addır. Logical_file_name veritabanında benzersiz olmalıdır vetanımlayıcılarının kurallarına uymalıdır. Ad bir karakter veya Unicode sabiti ya da normal veya sınırlandırılmış tanımlayıcı olabilir.

FILENAME { 'os_file_name' | 'filestream_path' }

İşletim sistemi (fiziksel) dosya adını belirtir.

'os_file_name'

Dosyayı oluştururken işletim sistemi tarafından kullanılan yol ve dosya adıdır. Dosya şu cihazlardan birinde bulunmalıdır: SQL Server'ın yüklü olduğu yerel sunucu, [SAN] Depolama Alanı Ağı veya iSCSI tabanlı bir ağ. CREATE DATABASE deyimi yürütülmeden önce belirtilen yol mevcut olmalıdır. Daha fazla bilgi için bu makalenin devamında Veritabanı Dosyaları ve Dosya Grupları bakın.

SIZE, MAXSIZE ve FILEGROWTH parametreleri, dosya için bir UNC yolu belirtildiğinde ayarlanabilir.

Dosya bir ham bölümdeyse, os_file_name yalnızca mevcut bir ham bölümün sürücü harfini belirtmelidir. Her ham bölümde yalnızca bir veri dosyası oluşturulabilir.

Not

Ham bölümler SQL Server 2014 ve sonraki sürümlerde desteklenmez.

Dosyalar salt okunur ikincil dosyalar veya veritabanı salt okunur olmadığı sürece veri dosyaları sıkıştırılmış dosya sistemlerine yerleştirilmemelidir. Günlük dosyaları hiçbir zaman sıkıştırılmış dosya sistemlerine yerleştirilmemelidir.

'filestream_path'

FILESTREAM dosya grubu için FILENAME, FILESTREAM verilerinin depolanacağı bir yola başvurur. Son klasöre kadar olan yol mevcut olmalı ve son klasör mevcut olmamalıdır. Örneğin, C:\MyFiles\MyFilestreamDatayolunu belirtirseniz, ALTER DATABASE'i çalıştırmadan önce C:\MyFiles mevcut olmalıdır, ancak MyFilestreamData klasörü mevcut olmamalıdır.

Dosya grubu ve dosya (<filespec>) aynı deyimde oluşturulmalıdır.

SIZE ve FILEGROWTH özellikleri bir FILESTREAM dosya grubu için geçerli değildir.

BOYUT boyutu

Dosyanın boyutunu belirtir.

os_file_name UNC yolu olarak belirtildiğinde BOYUT belirtilemez. BOYUT, FILESTREAM dosya grubu için geçerli değildir.

boyutu

Dosyanın ilk boyutudur.

Birincil dosya için boyut sağlanmadığında, Veritabanı Altyapısı model veritabanındaki birincil dosyanın boyutunu kullanır. model veritabanının varsayılan boyutu 8 MB (SQL Server 2016 (13.x) ile başlayarak) veya 1 MB 'tır (önceki sürümler için). İkincil veri dosyası veya günlük dosyası belirtildiğinde, ancak dosya için boyut belirtilmediğinde, Veritabanı Altyapısı dosyayı 8 MB (SQL Server 2016 (13.x) ile başlayarak) veya 1 MB (önceki sürümler için) yapar. Birincil dosya için belirtilen boyut en az model veritabanının birincil dosyası kadar büyük olmalıdır.

Kilobayt (KB), megabayt (MB), gigabayt (GB) veya terabayt (TB) sonekleri kullanılabilir. Varsayılan değer MB'tır. Tamsayı belirtin. Ondalık eklemeyin. Boyut bir tamsayı değeridir. 2147483647'den büyük değerler için daha büyük birimler kullanın.

MAXSIZE max_size

Dosyanın büyüyebileceği en büyük boyutu belirtir. os_file_name UNC yolu olarak belirtildiğinde MAXSIZE belirtilemez.

max_size

En büyük dosya boyutudur. KB, MB, GB ve TB sonekleri kullanılabilir. Varsayılan değer MB'tır. Tamsayı belirtin. Ondalık eklemeyin. max_size belirtilmezse, disk dolana kadar dosya büyür. Max_size bir tamsayı değeridir. 2147483647'den büyük değerler için daha büyük birimler kullanın.

SINIRSIZ

Disk dolana kadar dosyanın büyüdüğünü belirtir. SQL Server'da sınırsız büyümeyle belirtilen bir günlük dosyasının boyutu en fazla 2 TB ve veri dosyasının boyutu en fazla 16 TB'dir.

Not

Bir FILESTREAM kapsayıcısı için bu seçenek belirtildiğinde boyut üst sınırı yoktur. Disk dolana kadar büyümeye devam eder.

FILEGROWTH growth_increment

Dosyanın otomatik büyüme artışını belirtir. Bir dosyanın FILEGROWTH ayarı MAXSIZE ayarını aşamaz. os_file_name UNC yolu olarak belirtildiğinde FILEGROWTH belirtilemez. FILEGROWTH bir FILESTREAM dosya grubu için geçerli değildir.

growth_increment

Her yeni alan gerektiğinde dosyaya eklenen alan miktarıdır.

Değer MB, KB, GB, TB veya yüzde (%) olarak belirtilebilir. Bir sayı MB, KB veya % soneki olmadan belirtilirse, varsayılan değer MB'tır. % belirtildiğinde, büyüme artışı boyutu, artış gerçekleştiğinde dosyanın boyutunun belirtilen yüzdesidir. Belirtilen boyut en yakın 64 KB'a yuvarlandı ve en düşük değer 64 KB'tır.

0 değeri, otomatik büyümenin kapalı olduğunu ve ek alan olmadığını gösterir.

FILEGROWTH belirtilmezse, varsayılan değerler şunlardır:

Sürüm Varsayılan değerler
SQL Server 2016'nın başlangıcı (13.x) Veri 64 MB. Günlük dosyaları 64 MB.
SQL Server 2005'i (9.x) başlangıcı Veri 1 MB. Günlük dosyaları 10%.
SQL Server 2005'in (9.x) öncesinde Veri 10%. Günlük dosyaları 10%.

<dosya grubu>

Dosya grubu özelliklerini denetler. Dosya grubu veritabanı anlık görüntüsünde belirtilemez.

FILEGROUP filegroup_name

Dosya grubunun mantıksal adıdır.

filegroup_name

filegroup_name veritabanında benzersiz olmalıdır ve sistem tarafından sağlanan PRIMARY ve PRIMARY_LOG adları olamaz. Ad bir karakter veya Unicode sabiti ya da normal veya sınırlandırılmış tanımlayıcı olabilir. Ad,tanımlayıcıları için kurallarla uyumlu olmalıdır.

DOSYA AKıŞıNı IÇERIR

Dosya grubunun dosya sisteminde FILESTREAM ikili büyük nesnelerinin (BLOB'lar) depolandığını belirtir.

TEMERRÜT

Adlandırılmış dosya grubunun veritabanındaki varsayılan dosya grubu olduğunu belirtir.

CONTAINS MEMORY_OPTIMIZED_DATA

için geçerlidir: SQL Server 2014 (12.x) ve üzeri

Dosya grubunun memory_optimized verileri dosya sisteminde depoladığını belirtir. Daha fazla bilgi için bkz. In-Memory İyileştirmeye Genel Bakış ve Kullanım Senaryoları. Veritabanı başına yalnızca bir MEMORY_OPTIMIZED_DATA dosya grubuna izin verilir. Bellek için iyileştirilmiş verileri depolamak için dosya grubu oluşturan kod örnekleri için bkz. Memory-Optimized Tablosu oluşturma ve Yerel Olarak Derlenmiş Saklı Yordam.

database_snapshot_name

Yeni veritabanı anlık görüntüsünün adıdır. Veritabanı anlık görüntü adları SQL Server örneğinde benzersiz olmalı ve tanımlayıcıların kurallarına uymalıdır. database_snapshot_name en fazla 128 karakter olabilir.

ON ( NAME =logical_file_name, FILENAME ='os_file_name') [ ,... n ]

Veritabanı anlık görüntüsü oluşturmak için kaynak veritabanındaki dosyaların listesini belirtir. Anlık görüntünün çalışması için tüm veri dosyalarının ayrı ayrı belirtilmesi gerekir. Ancak veritabanı anlık görüntüleri için günlük dosyalarına izin verilmez. FILESTREAM dosya grupları veritabanı anlık görüntüleri tarafından desteklenmez. FILESTREAM veri dosyası CREATE DATABASE ON yan tümcesine dahil edilirse, deyimi başarısız olur ve bir hata oluşur.

NAME ve FILENAME ve değerlerinin açıklamaları için, eşdeğer <dosyalarının açıklamalarına bakın> değerleri belirtin.

Not

Veritabanı anlık görüntüsü oluşturduğunuzda, diğer <dosyalara> seçenekleri ve PRIMARY anahtar sözcüğüne izin verilmez.

SOURCE_DATABASE_NAME ANLıK GÖRÜNTÜSÜ OLARAK

Oluşturulan veritabanının, source_database_nametarafından belirtilen kaynak veritabanının veritabanı anlık görüntüsü olduğunu belirtir. Anlık görüntü ve kaynak veritabanı aynı örnekte olmalıdır.

SQL Server 2019'un öncesinde, veritabanı anlık görüntüsü için kaynak veritabanı MEMORY_OPTIMIZED_DATA bir dosya grubu içeremedi. SQL Server 2019'da bellek içi veritabanı anlık görüntüleri desteği eklendi.

Daha fazla bilgi için bkz. Veritabanı Anlık Görüntüleri.

Açıklamalar

ana veritabanı bir kullanıcı veritabanı oluşturulduğunda, değiştirildiğinde veya bırakıldığında yedeklenmelidir.

CREATE DATABASE deyiminin otomatik komut modunda (varsayılan işlem yönetimi modu) çalışması gerekir ve açık veya örtük bir işlemde izin verilmez.

Veritabanını ve veritabanını depolayan dosyaları oluşturmak için bir CREATE DATABASE deyimi kullanabilirsiniz. SQL Server, aşağıdaki adımları kullanarak CREATE DATABASE deyimini uygular:

  1. SQL Server, veritabanını ve meta verilerini başlatmak için model veritabanının bir kopyasını kullanır.
  2. Veritabanına bir hizmet aracısı GUID'i atanır.
  3. Daha sonra Veritabanı Altyapısı, alanın veritabanında nasıl kullanıldığını kaydeden iç verileri olan sayfalar dışında veritabanının geri kalanını boş sayfalarla doldurur.

SQL Server örneğinde en fazla 32.767 veritabanı belirtilebilir.

Her veritabanının, veritabanında özel etkinlikler gerçekleştirebilen bir sahibi vardır. Sahip, veritabanını oluşturan kullanıcıdır. Veritabanı sahibi, ALTER AUTHORIZATIONkullanılarak değiştirilebilir.

Bazı veritabanı özellikleri, bir veritabanının tam işlevselliği için dosya sisteminde bulunan özelliklere veya özelliklere bağlıdır. Dosya sistemi özellik kümesine bağlı özelliklere bazı örnekler şunlardır:

  • DBCC CHECKDB
  • FileStream
  • VSS ve dosya anlık görüntülerini kullanarak çevrimiçi yedeklemeler
  • Veritabanı anlık görüntüsü oluşturma
  • Bellek için İyileştirilmiş Veri dosya grubu

Veritabanı Dosyaları ve Dosya Grupları

Her veritabanında en az iki dosya vardır: birincil dosya ve işlem günlüğü dosyasıve en az bir dosya grubu. Her veritabanı için en fazla 32.767 dosya ve 32.767 dosya grubu belirtilebilir.

Veritabanı oluşturduğunuzda, veritabanında beklediğiniz maksimum veri miktarına göre veri dosyalarını mümkün olduğunca büyük hale getirin.

Bu yapılandırma SQL Server performansını ve güvenilirliğini iyileştirdiğinden, SQL Server veritabanı dosyalarınızın depolanması için Depolama Alanı Ağı (SAN), iSCSI tabanlı ağ veya yerel olarak bağlı bir disk kullanmanızı öneririz.

Veritabanı Anlık Görüntüleri

CREATE DATABASEsalt okunur, statik bir görünüm, veritabanı anlık görüntüsü oluşturmak için deyimini kullanabilirsiniz. Veritabanı anlık görüntüsü, anlık görüntü oluşturulduğu sırada mevcut olduğu için kaynak veritabanıyla işlemsel olarak tutarlıdır. Kaynak veritabanında birden çok anlık görüntü olabilir.

Not

Veritabanı anlık görüntüsü oluşturduğunuzda, CREATE DATABASE deyimi günlük dosyalarına, çevrimdışı dosyalara, dosyaları geri yüklemeye ve dosyaları geçersiz hale getiremez.

Veritabanı anlık görüntüsü oluşturma işlemi başarısız olursa, anlık görüntü şüpheli hale gelir ve silinmesi gerekir. Daha fazla bilgi için bkz. DROP DATABASE.

Her anlık görüntü, DROP DATABASEkullanılarak silinene kadar kalır.

Daha fazla bilgi için bkz. veritabanı anlık görüntüleri ve Veritabanı anlık görüntüsü oluşturma (Transact-SQL).

Veritabanı seçenekleri

Bir veritabanı oluşturduğunuzda çeşitli veritabanı seçenekleri otomatik olarak ayarlanır. Bu seçeneklerin listesi için bkz. ALTER DATABASE SET Options.

Model veritabanı ve yeni veritabanları oluşturma

model veritabanındaki tüm kullanıcı tanımlı nesneler yeni oluşturulan tüm veritabanlarına kopyalanır. Yeni oluşturulan tüm veritabanlarına dahil edilecek model veritabanına tablolar, görünümler, saklı yordamlar, veri türleri vb. gibi nesneleri ekleyebilirsiniz.

Ek boyut parametreleri olmadan bir CREATE DATABASE <database_name> deyimi belirtildiğinde, birincil veri dosyası model veritabanındaki birincil dosyayla aynı boyutta yapılır.

FOR ATTACH belirtilmediği sürece, her yeni veritabanı veritabanı seçeneği ayarlarını model veritabanından devralır. Örneğin, otomatik küçültme veritabanı seçeneği, ve oluşturduğunuz tüm yeni veritabanlarında doğru olarak ayarlanır. model veritabanındaki seçenekleri değiştirirseniz, bu yeni seçenek ayarları oluşturduğunuz tüm yeni veritabanlarında kullanılır. model veritabanındaki işlemlerin değiştirilmesi mevcut veritabanlarını etkilemez. CREATE DATABASE deyiminde FOR ATTACH belirtilirse, yeni veritabanı özgün veritabanının veritabanı seçeneği ayarlarını devralı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. Daha fazla bilgi için bkz. Sistem Görünümleri.

İzinler

CREATE DATABASE, CREATE ANY DATABASEveya ALTER ANY DATABASE izni gerektirir.

SQL Server örneğinde disk kullanımı üzerinde denetim sahibi olmak için veritabanı oluşturma izni genellikle birkaç oturum açma işlemiyle sınırlıdır.

Aşağıdaki örnek, Fayveritabanı kullanıcısına veritabanı oluşturma iznini sağlar.

USE master;
GO
GRANT CREATE DATABASE TO [Fay];
GO

Veri ve Günlük Dosyaları İzinleri

SQL Server'da, her veritabanının veri ve günlük dosyalarında belirli izinler ayarlanır. Veritabanına aşağıdaki işlemler uygulandığında aşağıdaki izinler ayarlanır:

  • Bağlı
  • Yedekle
  • Oluşturulan
  • Müstakil
  • Yeni dosya eklemek için değiştirildi
  • Geri

İzinler, açık izinlere sahip bir dizinde yer alan dosyaların yanlışlıkla kurcalanmasını engeller.

Not

Microsoft SQL Server 2005 Express sürümü veri ve günlük dosyası izinlerini ayarlamaz.

Örnekler

A. Dosyaları belirtmeden veritabanı oluşturma

Aşağıdaki örnek veritabanı mytest oluşturur ve karşılık gelen bir birincil ve işlem günlüğü dosyası oluşturur. Deyiminde <dosya türü> öğe olmadığından, birincil veritabanı dosyası model veritabanı birincil dosyasının boyutudur. İşlem günlüğü şu değerlerden daha büyük bir değere ayarlanır: birincil veri dosyasının boyutunu% 512 KB veya 25. MAXSIZE belirtilmediğinden dosyalar tüm kullanılabilir disk alanını dolduracak şekilde büyüyebilir. Bu örnek ayrıca, mytest veritabanını oluşturmadan önce mytest adlı veritabanının varsa nasıl bırakılıp bırakılamadığını da gösterir.

USE master;
GO
IF DB_ID (N'mytest') IS NOT NULL
DROP DATABASE mytest;
GO
CREATE DATABASE mytest;
GO
-- Verify the database files and sizes
SELECT name, size, size*1.0/128 AS [Size in MBs]
FROM sys.master_files
WHERE name = N'mytest';
GO

B. Veri ve işlem günlüğü dosyalarını belirten bir veritabanı oluşturma

Aşağıdaki örnek Salesveritabanını oluşturur. BİRİnCİl anahtar sözcüğü kullanılmadığından, ilk dosya (Sales_dat) birincil dosya olur. Sales_dat dosyasının SIZE parametresinde MB veya KB belirtilmediğinden MB kullanır ve megabayt olarak ayrılır. Sales_log son eki MB parametresinde açıkça belirtildiğinden SIZE dosyası megabayt olarak ayrılır.

USE master;
GO
CREATE DATABASE Sales
ON
( NAME = Sales_dat,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\saledat.mdf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 )
LOG ON
( NAME = Sales_log,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\salelog.ldf',
    SIZE = 5MB,
    MAXSIZE = 25MB,
    FILEGROWTH = 5MB ) ;
GO

C. Birden çok veri ve işlem günlüğü dosyası belirterek veritabanı oluşturma

Aşağıdaki örnek, üç Archive veri dosyası ve iki 100-MB işlem günlüğü dosyası içeren veritabanı 100-MB oluşturur. Birincil dosya listedeki ilk dosyadır ve PRIMARY anahtar sözcüğüyle açıkça belirtilir. İşlem günlüğü dosyaları LOG ON anahtar sözcüklerine göre belirtilir. FILENAME seçeneğindeki dosyalar için kullanılan uzantılara dikkat edin: .mdf birincil veri dosyaları için kullanılır, .ndf ikincil veri dosyaları için kullanılır ve .ldf işlem günlüğü dosyaları için kullanılır. Bu örnek, veritabanını D: veritabanı yerine master sürücüsüne yerleştirir.

USE master;
GO
CREATE DATABASE Archive
ON
PRIMARY
    (NAME = Arch1,
    FILENAME = 'D:\SalesData\archdat1.mdf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20),
    ( NAME = Arch2,
    FILENAME = 'D:\SalesData\archdat2.ndf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20),
    ( NAME = Arch3,
    FILENAME = 'D:\SalesData\archdat3.ndf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20)
LOG ON
  (NAME = Archlog1,
    FILENAME = 'D:\SalesData\archlog1.ldf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20),
  (NAME = Archlog2,
    FILENAME = 'D:\SalesData\archlog2.ldf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20) ;
GO

D. Dosya grupları içeren bir veritabanı oluşturma

Aşağıdaki örnek, aşağıdaki dosya gruplarına sahip veritabanı Sales oluşturur:

  • Spri1_dat ve Spri2_datdosyalarıyla birincil dosya grubu. Bu dosyalar için FILEGROWTH artışları 15%olarak belirtilir.
  • SalesGroup1 ve SGrp1Fi1dosyalarıyla SGrp1Fi2 adlı bir dosya grubu.
  • SalesGroup2 ve SGrp2Fi1dosyalarıyla SGrp2Fi2 adlı bir dosya grubu.

Bu örnek, performansı artırmak için verileri ve günlük dosyalarını farklı disklere yerleştirir.

USE master;
GO
CREATE DATABASE Sales
ON PRIMARY
( NAME = SPri1_dat,
    FILENAME = 'D:\SalesData\SPri1dat.mdf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 15% ),
( NAME = SPri2_dat,
    FILENAME = 'D:\SalesData\SPri2dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 15% ),
FILEGROUP SalesGroup1
( NAME = SGrp1Fi1_dat,
    FILENAME = 'D:\SalesData\SG1Fi1dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 ),
( NAME = SGrp1Fi2_dat,
    FILENAME = 'D:\SalesData\SG1Fi2dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 ),
FILEGROUP SalesGroup2
( NAME = SGrp2Fi1_dat,
    FILENAME = 'D:\SalesData\SG2Fi1dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 ),
( NAME = SGrp2Fi2_dat,
    FILENAME = 'D:\SalesData\SG2Fi2dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 )
LOG ON
( NAME = Sales_log,
    FILENAME = 'E:\SalesLog\salelog.ldf',
    SIZE = 5MB,
    MAXSIZE = 25MB,
    FILEGROWTH = 5MB ) ;
GO

E. Veritabanı ekleme

Aşağıdaki örnek, D örneğinde oluşturulan veritabanı Archive ayırır ve ardından FOR ATTACH yan tümcesini kullanarak ekler. Archive birden çok veri ve günlük dosyası olacak şekilde tanımlanmıştır. Ancak, dosyaların konumu oluşturulduktan sonra değişmediğinden, FOR ATTACH yan tümcesinde yalnızca birincil dosyanın belirtilmesi gerekir. SQL Server 2005(9.x) sürümünden başlayarak, eklenen veritabanının parçası olan tüm tam metin dosyaları veritabanına eklenir.

USE master;
GO
sp_detach_db Archive;
GO
CREATE DATABASE Archive
  ON (FILENAME = 'D:\SalesData\archdat1.mdf')
  FOR ATTACH ;
GO

F. Veritabanı anlık görüntüsü oluşturma

Aşağıdaki örnek, sales_snapshot0600veritabanı anlık görüntüsünü oluşturur. Veritabanı anlık görüntüsü salt okunur olduğundan günlük dosyası belirtilemez. Söz dizimine uygun olarak, kaynak veritabanındaki her dosya belirtilir ve dosya grupları belirtilmez.

Bu örneğin kaynak veritabanı, D örneğinde oluşturulan Sales veritabanıdır.

USE master;
GO
CREATE DATABASE sales_snapshot0600 ON
    ( NAME = SPri1_dat, FILENAME = 'D:\SalesData\SPri1dat_0600.ss'),
    ( NAME = SPri2_dat, FILENAME = 'D:\SalesData\SPri2dt_0600.ss'),
    ( NAME = SGrp1Fi1_dat, FILENAME = 'D:\SalesData\SG1Fi1dt_0600.ss'),
    ( NAME = SGrp1Fi2_dat, FILENAME = 'D:\SalesData\SG1Fi2dt_0600.ss'),
    ( NAME = SGrp2Fi1_dat, FILENAME = 'D:\SalesData\SG2Fi1dt_0600.ss'),
    ( NAME = SGrp2Fi2_dat, FILENAME = 'D:\SalesData\SG2Fi2dt_0600.ss')
AS SNAPSHOT OF Sales ;
GO

G. Veritabanı oluşturma ve harmanlama adı ve seçenekleri belirtme

Aşağıdaki örnek MyOptionsTestveritabanını oluşturur. Harmanlama adı belirtilir ve TRUSTYWORTHY ve DB_CHAINING seçenekleri ONolarak ayarlanır.

USE master;
GO
IF DB_ID (N'MyOptionsTest') IS NOT NULL
DROP DATABASE MyOptionsTest;
GO
CREATE DATABASE MyOptionsTest
COLLATE French_CI_AI
WITH TRUSTWORTHY ON, DB_CHAINING ON;
GO
--Verifying collation and option settings.
SELECT name, collation_name, is_trustworthy_on, is_db_chaining_on
FROM sys.databases
WHERE name = N'MyOptionsTest';
GO

H. Taşınan bir tam metin kataloğu ekleme

Aşağıdaki örnek, AdvWksFtCat verileri ve günlük dosyalarıyla birlikte tam metin kataloğu AdventureWorks2022 ekler. Bu örnekte, tam metin kataloğu varsayılan konumundan c:\myFTCatalogsyeni bir konuma taşınır. Veri ve günlük dosyaları varsayılan konumlarında kalır.

USE master;
GO
--Detach the AdventureWorks2022 database
sp_detach_db AdventureWorks2022;
GO
-- Physically move the full text catalog to the new location.
--Attach the AdventureWorks2022 database and specify the new location of the full-text catalog.
CREATE DATABASE AdventureWorks2022 ON
    (FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\AdventureWorks2022_data.mdf'),
    (FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\AdventureWorks2022_log.ldf'),
    (FILENAME = 'c:\myFTCatalogs\AdvWksFtCat')
FOR ATTACH;
GO

Ben. Satır dosya grubunu ve iki FILESTREAM dosya grubunu belirten bir veritabanı oluşturma

Aşağıdaki örnek, FileStreamDB veritabanını oluşturur. Veritabanı bir satır dosya grubu ve iki FILESTREAM dosya grubuyla oluşturulur. Her dosya grubu bir dosya içerir:

  • FileStreamDB_data satır verilerini içerir. Varsayılan yola sahip FileStreamDB_data.mdf tek bir dosya içerir.
  • FileStreamPhotos FILESTREAM verilerini içerir. FSPhotos ve C:\MyFSfolder\Photoskonumunda bulunan FSPhotos2, D:\MyFSfolder\Photoskonumunda bulunan iki FILESTREAM veri kapsayıcısı içerir. Varsayılan FILESTREAM dosya grubu olarak işaretlenir.
  • FileStreamResumes FILESTREAM verilerini içerir. FSResumeskonumunda bulunan C:\MyFSfolder\Resumesbir FILESTREAM veri kapsayıcısı içerir.
USE master;
GO
-- Get the SQL Server data path.
DECLARE @data_path nvarchar(256);
SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1)
      FROM master.sys.master_files
      WHERE database_id = 1 AND file_id = 1);

 -- Execute the CREATE DATABASE statement.
EXECUTE ('CREATE DATABASE FileStreamDB
ON PRIMARY
    (
    NAME = FileStreamDB_data
    ,FILENAME = ''' + @data_path + 'FileStreamDB_data.mdf''
    ,SIZE = 10MB
    ,MAXSIZE = 50MB
    ,FILEGROWTH = 15%
    ),
FILEGROUP FileStreamPhotos CONTAINS FILESTREAM DEFAULT
    (
    NAME = FSPhotos
    ,FILENAME = ''C:\MyFSfolder\Photos''
-- SIZE and FILEGROWTH should not be specified here.
-- If they are specified an error will be raised.
, MAXSIZE = 5000 MB
    ),
    (
      NAME = FSPhotos2
      , FILENAME = ''D:\MyFSfolder\Photos''
      , MAXSIZE = 10000 MB
     ),
FILEGROUP FileStreamResumes CONTAINS FILESTREAM
    (
    NAME = FileStreamResumes
    ,FILENAME = ''C:\MyFSfolder\Resumes''
    )
LOG ON
    (
    NAME = FileStream_log
    ,FILENAME = ''' + @data_path + 'FileStreamDB_log.ldf''
    ,SIZE = 5MB
    ,MAXSIZE = 25MB
    ,FILEGROWTH = 5MB
    )'
);
GO

J. Birden çok dosya içeren FILESTREAM dosya grubuna sahip bir veritabanı oluşturma

Aşağıdaki örnek, BlobStore1 veritabanını oluşturur. Veritabanı, FSbir satır dosya grubu ve bir FILESTREAM dosya grubu ile oluşturulur. FILESTREAM dosya grubu, FS1 ve FS2adlı iki dosya içerir. Ardından, FILESTREAM dosya grubuna üçüncü bir dosya (FS3) eklenerek veritabanı değiştirilir.

USE master;
GO

CREATE DATABASE [BlobStore1]
CONTAINMENT = NONE
ON PRIMARY
(
    NAME = N'BlobStore1',
    FILENAME = N'C:\BlobStore\BlobStore1.mdf',
    SIZE = 100MB,
    MAXSIZE = UNLIMITED,
    FILEGROWTH = 1MB
),
FILEGROUP [FS] CONTAINS FILESTREAM DEFAULT
(  
    NAME = N'FS1',
    FILENAME = N'C:\BlobStore\FS1',
    MAXSIZE = UNLIMITED
),
(
    NAME = N'FS2',
    FILENAME = N'C:\BlobStore\FS2',
    MAXSIZE = 100MB
)
LOG ON
(
    NAME = N'BlobStore1_log',
    FILENAME = N'C:\BlobStore\BlobStore1_log.ldf',
    SIZE = 100MB,
    MAXSIZE = 1GB,
    FILEGROWTH = 1MB
);
GO

ALTER DATABASE [BlobStore1]
ADD FILE
(
    NAME = N'FS3',
    FILENAME = N'C:\BlobStore\FS3',
    MAXSIZE = 100MB
)
TO FILEGROUP [FS];
GO

SQL Server

* SQL Veritabanı *

SQL Yönetilen Örneği

Azure Synapse'i
Analiz

 

SQL Veritabanı

Genel bakış

Azure SQL Veritabanı'nda bu deyim, elastik havuzda tek bir veritabanı veya veritabanı oluşturmak için bir Azure SQL sunucusuyla kullanılabilir. Bu deyimle veritabanı adını, harmanlamayı, en büyük boyutu, sürümü, hizmet hedefini ve varsa yeni veritabanı için elastik havuzu belirtirsiniz. Elastik havuzda veritabanı oluşturmak için de kullanılabilir. Ayrıca, veritabanının bir kopyasını başka bir SQL Veritabanı sunucusunda oluşturmak için kullanılabilir.

Sözdizimi

Veritabanı oluşturma

Söz dizimi kuralları hakkında daha fazla bilgi için bkz.Transact-SQL söz dizimi kuralları.

CREATE DATABASE database_name [ COLLATE collation_name ]
{
  (<edition_options> [, ...n])
}
[ WITH <with_options> [,..n]]
[;]

<with_options> ::=
{
    CATALOG_COLLATION = { DATABASE_DEFAULT | SQL_Latin1_General_CP1_CI_AS }
  | BACKUP_STORAGE_REDUNDANCY = { 'LOCAL' | 'ZONE' | 'GEO' | 'GEOZONE' }
  | LEDGER = {ON | OFF }
}

<edition_options> ::=
{

  MAXSIZE = { 100 MB | 500 MB | 1 ... 1024 ... 4096 GB }
  | ( EDITION = { 'Basic' | 'Standard' | 'Premium' | 'GeneralPurpose' | 'BusinessCritical' | 'Hyperscale' }
  | 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>) } })
}

Veritabanını kopyalama

CREATE DATABASE database_name
    AS COPY OF [source_server_name.] source_database_name
    [ ( SERVICE_OBJECTIVE =
      { 'Basic' |'S0' | 'S1' | 'S2' | 'S3'| 'S4'| 'S6'| 'S7'| 'S9'| 'S12'
      | 'P1' | 'P2' | 'P4'| 'P6' | 'P11' | 'P15'
      | 'GP_Gen5_n'
      | 'GP_Fsv2_n'
      | 'GP_S_Gen5_n'
      | 'BC_Gen5_n'
      | 'BC_M_n'
      | 'HS_Gen5_n'
      | 'HS_S_Gen5_n'
      | 'HS_PRMS_n'
      | 'HS_MOPRMS_n'
      | { ELASTIC_POOL(name = <elastic_pool_name>) } })
   ]
   [ WITH ( BACKUP_STORAGE_REDUNDANCY = { 'LOCAL' | 'ZONE' | 'GEO' } ) ]
[;]

Bağımsız değişken

database_name

Yeni veritabanının adı. Bu ad SQL Server'da benzersiz olmalı ve tanımlayıcılar için SQL Server kurallarına uymalıdır. Daha fazla bilgi için bkz. Tanımlayıcılar.

Collation_name

Veritabanı verileri için varsayılan harmanlamayı belirtir. Nesne tanımlayıcıları gibi sistem meta verileri için CATALOG_COLLATION belirtin.

Harmanlama adı bir Windows harmanlama adı veya SQL harmanlama adı olabilir. Belirtilmezse, veritabanına SQL_Latin1_General_CP1_CI_AS varsayılan harmanlama atanır.

Windows ve SQL harmanlama adları hakkında daha fazla bilgi için COLLATE (Transact-SQL).

CATALOG_COLLATION

Meta veri kataloğu için varsayılan harmanlamayı belirtir. CATALOG_COLLATION bağımsız değişkeni yalnızca veritabanı oluşturma sırasında kullanılabilir ve oluşturulduktan sonra değiştirilemez.

Varsayılan olarak, sistem nesne adlarının meta veri kataloğu SQL_Latin1_General_CP1_CI_AS harmanlama olarak harmanlanır. bu, CATALOG_COLLATION belirtilmemişse Azure SQL Veritabanı'nda varsayılan ayardır.

DATABASE_DEFAULT, sistem görünümleri ve sistem tabloları için kullanılan meta veri kataloğunun veritabanı harmanlaması ile eşleşecek şekilde harmanlanması gerektiğini belirtir. Sistem meta verilerindeki nesne tanımlayıcılarının verilerle aynı harmanlamayı izlemesini istiyorsanız, veritabanı WITH CATALOG_COLLATION = DATABASE_DEFAULToluşturmanız gerekir.

  • Veri ve nesne tanımlayıcıları için farklı harmanlamalar isteyebilirsiniz. Aşağıdaki örnek, veritabanını satır verileri için büyük/küçük harfe duyarlı bir harmanlamayla oluşturur, ancak nesne tanımlayıcıları için büyük/küçük harfe duyarlı olmayan harmanlama SQL_Latin1_General_CP1_CI_AS varsayılan olarak kullanır.

    CREATE DATABASE [different-collations] COLLATE SQL_Latin1_General_CP1_CS_AS
    
  • Hem veri hem de sistem meta verilerinin aynı harmanlamayı kullanmasını istiyorsanız WITH CATALOG_COLLATION = DATABASE_DEFAULTbelirtin. Aşağıdaki örnek, nesne tanımlayıcıları için kullanılacak büyük/küçük harfe duyarlı harmanlama ile veritabanını oluşturur.

    CREATE DATABASE [same-collations] COLLATE SQL_Latin1_General_CP1_CS_AS
    WITH CATALOG_COLLATION = DATABASE_DEFAULT
    

BACKUP_STORAGE_REDUNDANCY = {'LOCAL' | 'ZONE' | 'GEO'}

Bir veritabanı için belirli bir noktaya geri yükleme ve uzun süreli saklama yedeklemelerinin nasıl çoğaltıldığını belirtir. Coğrafi geri yükleme veya bölgesel kesintiden kurtarma özelliği yalnızca veritabanı GEO yedekleme depolama yedekliliğiyle oluşturulduğunda kullanılabilir. Açıkça belirtilmediği sürece, T-SQL ile oluşturulan veritabanları coğrafi olarak yedekli yedekleme depolama alanı kullanır.

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.

AS COPY OFile başka bir veritabanının kopyası olarak veritabanı oluştururken seçeneklerin belirtilmesi desteklenir ve parantez içinde sarmalanmalıdır. Örneğin, WITH (BACKUP_STORAGE_REDUNDANCY = 'LOCAL');.

LEDGER = {ON | KAPALI }

ONolarak ayarlandığında, tüm kullanıcı verilerinin bütünlüğünün korunduğu bir kayıt defteri veritabanı oluşturur. Bir kayıt defteri veritabanında yalnızca kayıt defteri tabloları oluşturulabilir. Varsayılan değer OFF. veritabanı oluşturulduktan sonra LEDGER seçeneğinin değeri değiştirilemez. Daha fazla bilgi için bkz. Kayıt defteri veritabanı yapılandırma.

MAXSIZE

Veritabanının en büyük boyutunu belirtir. MAXSIZE, belirtilen SÜRÜM (hizmet katmanı) için geçerli olmalıdır.

Aşağıda, hizmet katmanları için desteklenen MAXSIZE değerleri ve varsayılan değerler (D) yer alır.

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 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.

SQL Veritabanı sunucusundaki tek ve havuza alınan veritabanları için DTU modeli

MAXSIZE Temel S0-S2 S3-S12 P1-P6 P11-P15
100 MB
500 MB
1 GB
2GB √ (D)
5 GB YOK
10 GB YOK
20 GB YOK
30 GB YOK
40 GB YOK
50 GB YOK
100 GB YOK
150 GB YOK
200 GB YOK
250 GB YOK √ (D) √ (D)
300 GB YOK YOK
400 GB YOK YOK
500 GB YOK YOK √ (D)
750 GB YOK YOK
1.024 GB YOK YOK √ (D)
1.024 GB'tan 256 GB'lık artışlarla 4.096 GB'a kadar* YOK YOK YOK YOK

* P11 ve P15, varsayılan boyut olan 1.024 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ı hakkında 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 MAXSIZE değeri ayarlı değilse, varsayılan değer 32 GB'tır. Sanal çekirdek modelinin kaynak sınırlamaları hakkında daha fazla bilgi için bkz.sanal çekirdek kaynak sınırları .

BASKI

Veritabanının hizmet katmanını belirtir.

Tek ve havuza alınan veritabanları. Kullanılabilir değerler şunlardır: 'Basic', 'Standard', 'Premium', 'GeneralPurpose', 'BusinessCritical' ve 'Hiper Ölçek'.

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, EDITION Standart olarak ayarlanırsa ve MAXSIZE belirtilmezse, MAXSIZE otomatik olarak 250 MB olarak ayarlanır.
  • MAXSIZE veya EDITION belirtilmezse, EDITION GeneralPurposeve MAXSIZE 32 GB olarak ayarlanır.

SERVICE_OBJECTIVE

İşlem boyutunu ve hizmet hedefini belirtir.

  • DTU satın alma modeli için: S0, S1, S2, S3, S4, S6, S7, S9, S12, P1, P2, P4, P6, P11, P15
  • En son 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. tek veritabanları için kaynak sınırlarına veyaelastik havuzlar 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.

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ı Hizmet Katmanları. Belirtilen SERVICE_OBJECTIVE EDITION tarafından desteklenmiyorsa bir hata alırsınız. SERVICE_OBJECTIVE değerini bir katmandan diğerine (örneğin S1'den P1'e) değiştirmek için EDITION değerini de değiştirmeniz gerekir. PRS hizmet hedefleri desteği kaldırıldı.

ELASTIC_POOL (ad = <elastic_pool_name>)

Şunlar için geçerlidir: Yalnızca tek ve havuza alınan veritabanlarını. Hiper Ölçek hizmet katmanındaki veritabanları için geçerli değildir. Elastik veritabanı havuzunda yeni bir veritabanı oluşturmak için veritabanının SERVICE_OBJECTIVE ELASTIC_POOL olarak ayarlayın ve havuzun adını belirtin. Daha fazla bilgi için bkz. SQL Veritabanı elastik havuzu oluşturma ve yönetme.

KOPYASI OLARAK [source_server_name.]source_database_name

Şunlar için geçerlidir: Yalnızca tek ve havuza alınan veritabanlarını.

Veritabanını aynı veya farklı bir SQL Veritabanı sunucusuna kopyalamak için AS COPY OF kullanın.

AS COPY OFile başka bir veritabanının kopyası olarak veritabanı oluştururken seçeneklerin belirtilmesi desteklenir ve parantez içinde sarmalanmalıdır. Örneğin, WITH (BACKUP_STORAGE_REDUNDANCY = 'LOCAL');.

source_server_name Kaynak veritabanının bulunduğu SQL Veritabanı sunucusunun adı. Bu parametre, kaynak veritabanı ve hedef veritabanı aynı SQL Veritabanı sunucusunda bulunacağı zaman isteğe bağlıdır.

Not

AS COPY OF bağımsız değişkeni tam benzersiz etki alanı adlarını desteklemez. Başka bir deyişle, sunucunuzun tam etki alanı adı serverName.database.windows.netise, veritabanı kopyası sırasında yalnızca serverName kullanın.

source_database_name

Kopyalanacak veritabanının adı.

Açıklamalar

Azure SQL Veritabanı'ndaki veritabanları, veritabanı oluşturulduğunda ayarlanan birkaç varsayılan ayara sahiptir. Bu varsayılan ayarlar hakkında daha fazla bilgi için DATABASEPROPERTYEXiçindeki değerlerin listesine bakın.

MAXSIZE, veritabanının boyutunu sınırlama olanağı sağlar. Veritabanının boyutu MAXSIZEulaşırsa 40544 hata kodunu alırsınız. Bu durumda, veri ekleyemez veya güncelleştiremez ya da yeni nesneler (tablolar, saklı yordamlar, görünümler ve işlevler gibi) oluşturamazsınız. Ancak yine de verileri okuyup silebilir, tabloları kesebilir, tabloları ve dizinleri bırakabilir ve dizinleri yeniden oluşturabilirsiniz. Daha sonra MAXSIZE geçerli veritabanı boyutunuzdan daha büyük bir değere güncelleştirebilir veya depolama alanı açmak için bazı verileri silebilirsiniz. Yeni veri ekleyebilmeniz için on beş dakika kadar gecikme olabilir.

Boyut, sürüm veya hizmet hedefi değerlerini daha sonra değiştirmek için ALTER DATABASE (Azure SQL Veritabanı)kullanın.

Veritabanı Kopyaları

Şunlar için geçerlidir: Yalnızca tek ve havuza alınan veritabanlarını.

CREATE DATABASE deyimini kullanarak veritabanını kopyalamak zaman uyumsuz bir işlemdir. Bu nedenle, kopyalama işleminin tam süresi boyunca SQL Veritabanı sunucusuna bağlantı gerekmez. CREATE DATABASE deyimi, sys.databases girdi oluşturulduktan sonra ancak veritabanı kopyalama işlemi tamamlanmadan önce denetimi kullanıcıya döndürür. Başka bir deyişle, veritabanı kopyası devam ederken CREATE DATABASE deyimi başarıyla döndürülüyor.

  • SQL Veritabanı sunucusunda kopyalama işlemini izleme: percentage_complete görünümünde replication_state_desc veya sütunundaki state veya sütunlarını sorgulayabilirsiniz. sys.dm_operation_status görünümü kullanılabilir ve veritabanı kopyası da dahil olmak üzere veritabanı işlemlerinin durumunu döndürür.

Kopyalama işlemi başarıyla tamamlandığında hedef veritabanı işlemsel olarak kaynak veritabanıyla tutarlıdır.

Aşağıdaki söz dizimi ve anlam kuralları, AS COPY OF bağımsız değişkenini kullanımınız için geçerlidir:

  • Kaynak sunucu adı ve kopyalama hedefinin sunucu adı aynı veya farklı olabilir. Bunlar aynı olduğunda, bu parametre isteğe bağlıdır ve geçerli oturumun sunucu bağlamı varsayılan olarak kullanılır.
  • Kaynak ve hedef veritabanı adları belirtilmeli, benzersiz olmalı ve tanımlayıcılar için SQL Server kurallarıyla uyumlu olmalıdır. Daha fazla bilgi için bkz. Tanımlayıcılar.
  • CREATE DATABASE deyimi, yeni veritabanının oluşturulacağı SQL Veritabanı sunucusunun master veritabanı bağlamında yürütülmelidir.
  • Kopyalama tamamlandıktan sonra, hedef veritabanı bağımsız bir veritabanı olarak yönetilmelidir. yeni veritabanındaki ALTER DATABASE ve DROP DATABASE deyimlerini kaynak veritabanından bağımsız olarak yürütebilirsiniz. Yeni veritabanını başka bir yeni veritabanına da kopyalayabilirsiniz.
  • Veritabanı kopyası devam ederken kaynak veritabanına erişmeye devam edebilir.

Daha fazla bilgi için bkz. Transact-SQLkullanarak Azure SQL veritabanının kopyasını oluşturma.

Önemli

Varsayılan olarak, veritabanı kopyası kaynak veritabanıyla aynı yedekleme depolama yedekliliğiyle oluşturulur.

İzinler

Veritabanı oluşturmak için oturum açma bilgileri aşağıdaki sorumlulardan biri olmalıdır:

  • Sunucu düzeyinde asıl oturum açma
  • Azure mantıksal sunucusunun Microsoft Entra yöneticisi
  • dbmanager veritabanı rolünün üyesi olan oturum açma bilgileri

CREATE DATABASE ... AS COPY OF söz dizimini kullanmak için ek gereksinimler: Yerel sunucuda deyimini yürüten oturum açma bilgisi de en azından kaynak sunucudaki db_owner olmalıdır. Oturum açma işlemi SQL Server kimlik doğrulamasını temel alıyorsa, yerel sunucuda deyimini yürüten oturum açma bilgilerinin kaynak SQL Veritabanı sunucusunda aynı ad ve parolayla eşleşen bir oturum açma bilgisi olmalıdır.

Örnekler

Basit örnek

Veritabanı oluşturmak için basit bir örnek.

CREATE DATABASE TestDB1;

Sürümle ilgili basit örnek

Genel amaçlı veritabanı oluşturmaya yönelik basit bir örnek.

CREATE DATABASE TestDB2
( EDITION = 'GeneralPurpose' );

Ek seçenekler içeren örnek

Birden çok seçeneğin kullanıldığı bir örnek.

CREATE DATABASE hito
COLLATE Japanese_Bushu_Kakusu_100_CS_AS_KS_WS
( MAXSIZE = 500 MB, EDITION = 'GeneralPurpose', SERVICE_OBJECTIVE = 'GP_Gen5_8' ) ;

Veritabanı kopyası oluşturma

Veritabanının kopyasını oluşturma örneği.

Şunlar için geçerlidir: Yalnızca tek ve havuza alınan veritabanlarını.

CREATE DATABASE escuela
AS COPY OF school;

Elastik havuzda veritabanı oluşturma

Havuzda S3M100 adlı yeni veritabanı oluşturur:

Şunlar için geçerlidir: Yalnızca tek ve havuza alınan veritabanlarını.

CREATE DATABASE db1 ( SERVICE_OBJECTIVE = ELASTIC_POOL ( name = S3M100 ) ) ;

Başka bir mantıksal sunucuda veritabanının kopyasını oluşturma

Aşağıdaki örnek, tek bir veritabanı için Genel Amaçlı hizmet hedefinde db_original adlı db_copy veritabanının bir kopyasını oluşturur. Bu, db_original elastik havuzda mı yoksa tek bir veritabanı için işlem boyutunda mı (hizmet hedefi) olduğundan bağımsız olarak geçerlidir.

Şunlar için geçerlidir: Yalnızca tek ve havuza alınan veritabanlarını.

CREATE DATABASE db_copy
  AS COPY OF ozabzw7545.db_original ( EDITION = 'GeneralPurpose', SERVICE_OBJECTIVE = 'GP_Gen5_8' );

Aşağıdaki örnek, db_originaladlı elastik havuzda db_copy adlı ep1 veritabanının bir kopyasını oluşturur. Bu, db_original elastik havuzda mı yoksa tek bir veritabanı için işlem boyutunda mı (hizmet hedefi) olduğundan bağımsız olarak geçerlidir. db_original farklı bir ada sahip bir elastik havuzdaysa, db_copyep1içinde oluşturulmaya devam edilir.

Şunlar için geçerlidir: Yalnızca tek ve havuza alınan veritabanlarını.

CREATE DATABASE db_copy
  AS COPY OF ozabzw7545.db_original
  (SERVICE_OBJECTIVE = ELASTIC_POOL( name = ep1 ) ) ;

Belirtilen katalog harmanlama değeriyle veritabanı oluşturma

Aşağıdaki örnek, veritabanı oluşturma sırasında katalog harmanlamasını DATABASE_DEFAULT olarak ayarlar ve bu da katalog harmanlamasını veritabanı harmanlaması ile aynı olacak şekilde ayarlar.

CREATE DATABASE TestDB3 COLLATE Japanese_XJIS_140 (MAXSIZE = 100 MB, EDITION = 'Basic')
  WITH CATALOG_COLLATION = DATABASE_DEFAULT;

Yedeklemeler için alanlar arası yedeklilik kullanarak veritabanı oluşturma

Aşağıdaki örnek, veritabanı yedeklemeleri için alanlar arası yedekliliği ayarlar. Hem belirli bir noktaya geri yükleme yedeklemeleri hem de uzun süreli saklama yedekleri (yapılandırıldıysa) aynı yedekleme depolama yedekliliğini kullanır.

CREATE DATABASE test_zone_redundancy 
  WITH BACKUP_STORAGE_REDUNDANCY = 'ZONE';

Kayıt defteri veritabanı oluşturma

CREATE DATABASE MyLedgerDB ( EDITION = 'GeneralPurpose' ) WITH LEDGER = ON;

Seçenekleri değiştirirken veritabanının kopyası olarak oluşturma

Aşağıdaki örnek, veritabanının yeni kopyası için farklı hizmet katmanı ve yedekleme depolama yedekliliği ayarları dahil olmak üzere farklı seçenekler ayarlar. Varsayılan olarak, veritabanı kopyası kaynak veritabanıyla aynı ayarlarla oluşturulur.

CREATE DATABASE copy_testdb
AS COPY OF [test_db]
  (EDITION = 'GeneralPurpose', SERVICE_OBJECTIVE = 'GP_Gen5_8')
  WITH (BACKUP_STORAGE_REDUNDANCY = 'LOCAL');

SQL Server

SQL Veritabanı

* SQL Yönetilen Örneği *

Azure Synapse'i
Analiz

 

Azure SQL Yönetilen Örneği

Genel bakış

Azure SQL Yönetilen Örneği'nde bu deyim veritabanı oluşturmak için kullanılır. Yönetilen örnekte veritabanı oluştururken, veritabanı adını ve harmanlamayı belirtirsiniz.

Sözdizimi

Söz dizimi kuralları hakkında daha fazla bilgi için bkz.Transact-SQL söz dizimi kuralları.

CREATE DATABASE database_name [ COLLATE collation_name ]
[ WITH <with_options> [,..n]]
[;]

<with_options> ::=
{
  LEDGER = { ON | OFF }
}

Önemli

Yönetilen örnekteki bir veritabanına dosya eklemek veya veritabanının kapsamasını ayarlamak için ALTER DATABASE deyimini kullanın.

SQL yönetilen örnekleri için, ilk MAXSIZE örtük olarak geçerli disk boyutuna ayarlanır ve Azure portalından disk boyutunu genişlettiğiniz zaman otomatik olarak değişmez. Diski genişlettikten sonra, veritabanı dosyasının tam hatalarını önlemek için MAXSIZE ALTER DATABASE ile de genişletmeniz gerekir.

Bağımsız değişken

database_name

Yeni veritabanının adı. Bu ad SQL sunucusunda benzersiz olmalı ve tanımlayıcılar için SQL Server kurallarına uymalıdır. Daha fazla bilgi için bkz. Tanımlayıcılar.

Collation_name

Veritabanı için varsayılan harmanlamayı belirtir. Harmanlama adı bir Windows harmanlama adı veya SQL harmanlama adı olabilir. Belirtilmezse, veritabanına SQL_Latin1_General_CP1_CI_AS varsayılan harmanlama atanır.

Windows ve SQL harmanlama adları hakkında daha fazla bilgi için COLLATE (Transact-SQL).

LEDGER = {ON | OFF }

ONolarak ayarlandığında, tüm kullanıcı verilerinin bütünlüğünün korunduğu bir kayıt defteri veritabanı oluşturur. Bir kayıt defteri veritabanında yalnızca kayıt defteri tabloları oluşturulabilir. Varsayılan değer OFF. veritabanı oluşturulduktan sonra LEDGER seçeneğinin değeri değiştirilemez. Daha fazla bilgi için bkz. Kayıt defteri veritabanı yapılandırma.

Açıklamalar

Azure SQL Veritabanı'ndaki veritabanları, veritabanı oluşturulduğunda ayarlanan birkaç varsayılan ayara sahiptir. Bu varsayılan ayarlar hakkında daha fazla bilgi için DATABASEPROPERTYEXiçindeki değerlerin listesine bakın.

Önemli

CREATE DATABASE deyimi, Transact-SQL toplu işlemindeki tek deyim olmalıdır.

CREATE DATABASE sınırlamaları şunlardır:

  • Dosyalar ve dosya grupları tanımlanamaz.

  • WITHdışında WITH LEDGERseçenekleri desteklenmez.

    Bahşiş

    Geçici çözüm olarak, ALTER DATABASEkullanın. veritabanı seçeneklerini ayarlamak ve dosya eklemek için CREATE DATABASE.

İzinler

Veritabanı oluşturmak için oturum açma bilgileri aşağıdakilerden biri olmalıdır:

  • Sunucu düzeyinde asıl oturum açma
  • Azure mantıksal sunucusunun Microsoft Entra yöneticisi
  • dbcreator veritabanı rolünün üyesi olan oturum açma bilgileri

Örnekler

Basit Örnek

Veritabanı oluşturmak için basit bir örnek.

CREATE DATABASE TestDB1;

Kayıt defteri veritabanı oluşturma

CREATE DATABASE MyLedgerDB WITH LEDGER = ON;
  • ALTER DATABASE

SQL Server

SQL Veritabanı

SQL Yönetilen Örneği

* Azure Synapse
Analiz *

 

Azure Synapse Analytics

Genel bakış

Azure Synapse'te bu deyim, ayrılmış bir SQL havuzu oluşturmak için bir Azure SQL Veritabanı sunucusuyla birlikte kullanılabilir. Bu deyimle veritabanı adı, harmanlama, maksimum boyut, sürüm ve hizmet hedefini belirtirsiniz.

  • CREATE DATABASE, 2. Nesil hizmet düzeyleri kullanılarak tek başına ayrılmış SQL havuzları (eski adı SQL DW) için desteklenir.
  • CREATE DATABASE, Azure Synapse Analytics çalışma alanında ayrılmış SQL havuzları için desteklenmez. Bunun yerine Azure portalını kullanın.
  • CREATE DATABASE, Azure Synapse Analytics'teki sunucusuz SQL havuzları için desteklenir.

Sözdizimi

Söz dizimi kuralları hakkında daha fazla bilgi için bkz.Transact-SQL söz dizimi kuralları.

  • ayrılmış SQL havuzu
  • sunucusuz SQL havuzu
CREATE DATABASE database_name [ COLLATE collation_name ]
(
    [ MAXSIZE = {
          250 | 500 | 750 | 1024 | 5120 | 10240 | 20480 | 30720
        | 40960 | 51200 | 61440 | 71680 | 81920 | 92160 | 102400
        | 153600 | 204800 | 245760
      } GB ,
    ]
    EDITION = 'datawarehouse',
    SERVICE_OBJECTIVE = {
          'DW100c' | 'DW200c' | 'DW300c' | 'DW400c' | 'DW500c'
        | 'DW1000c' | 'DW1500c' | 'DW2000c' | 'DW2500c' | 'DW3000c' | 'DW5000c'
        | 'DW6000c' | 'DW7500c' | 'DW10000c' | 'DW15000c' | 'DW30000c'
    }
)
[;]

Bağımsız değişken

database_name

Yeni veritabanının adı. Bu ad, azure SQL Veritabanı ve Azure Synapse Analytics veritabanlarında her iki veritabanını da barındırabilen ve tanımlayıcılar için SQL Server kurallarıyla uyumlu olabilecek SQL sunucusunda benzersiz olmalıdır. Daha fazla bilgi için bkz. Tanımlayıcılar.

collation_name

Veritabanı için varsayılan harmanlamayı belirtir. Harmanlama adı bir Windows harmanlama adı veya SQL harmanlama adı olabilir. Belirtilmezse, veritabanına SQL_Latin1_General_CP1_CI_AS varsayılan harmanlama atanır.

Windows ve SQL harmanlama adları hakkında daha fazla bilgi için bkz. COLLATE (Transact-SQL).

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. Satır deposu tablolarında, columnstore dizininin deltastore'sunda 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ıtlanmaz.

EDITION

Veritabanının hizmet katmanını belirtir. Azure Synapse Analytics için datawarehousekullanın.

SERVICE_OBJECTIVE

İşlem boyutunu (hizmet hedefi) belirtir. 2. Nesil hizmet düzeyleri, işlem veri ambarı birimlerinde (cDWU) ölçülür, örneğin DW2000c. 1. Nesil hizmet düzeyleri DWU cinsinden ölçülür, örneğin DW2000. Azure Synapse'in hizmet hedefleri hakkında daha fazla bilgi için bkz. Veri Ambarı Birimleri (DWU). 1. Nesil hizmet hedefleri (artık listelenmiyor) artık desteklenmiyor, bir hata alabilirsiniz: Azure SQL Data Warehouse Gen1 has been deprecated in this region. Please use SQL Analytics in Azure Synapse.

Açıklamalar

Veritabanı özelliklerini görmek için DATABASEPROPERTYEX kullanın.

En büyük boyutu veya hizmet hedefi değerlerini daha sonra değiştirmek için ALTER DATABASE - Azure Synapse Analytics kullanın.

Azure Synapse COMPATIBILITY_LEVEL 130 olarak ayarlanmıştır ve değiştirilemez. Daha fazla bilgi için bkz. Azure SQL VeritabanıUyumluluk Düzeyi 130 ile Geliştirilmiş Sorgu Performansı.

İzinler

Gerekli izinler:

  • Sunucu düzeyinde asıl oturum açma, sağlama işlemi tarafından oluşturulan veya
  • dbmanager veritabanı rolünün üyesi.

Hata işleme

Veritabanının boyutu MAXSIZE'a ulaşırsa 40544 hata kodunu alırsınız. Bu durumda, veri ekleyip güncelleştiremez veya yeni nesneler (tablolar, saklı yordamlar, görünümler ve işlevler gibi) oluşturamazsınız. Yine de verileri okuyup silebilir, tabloları kesebilir, tabloları ve dizinleri bırakabilir ve dizinleri yeniden oluşturabilirsiniz. Daha sonra MAXSIZE'ı geçerli veritabanınızın boyutundan daha büyük bir değere güncelleştirebilir veya depolama alanı açmak için bazı verileri silebilirsiniz. Yeni veri ekleyebilmeniz için on beş dakika kadar gecikme olabilir.

Sınırlama

Yeni bir veritabanı oluşturmak için master veritabanına bağlı olmanız gerekir.

CREATE DATABASE deyimi, Transact-SQL toplu işlemindeki tek deyim olmalıdır.

Veritabanı oluşturulduktan sonra veritabanı harmanlamasını değiştiremezsiniz.

Örnekler: Azure Synapse Analytics

A. Basit örnek

Tek başına ayrılmış SQL havuzu (eski adıYLA SQL DW) oluşturmak için basit bir örnek. Bu, veritabanını en küçük maksimum boyut (10.240 GB), varsayılan harmanlama (SQL_Latin1_General_CP1_CI_AS) ve en küçük 2. Nesil hizmet hedefi (DW100c) ile oluşturur.

CREATE DATABASE TestDW
(EDITION = 'datawarehouse', SERVICE_OBJECTIVE='DW100c');

B. Tüm seçeneklerle veri ambarı veritabanı oluşturma

10 terabaytlık tek başına ayrılmış SQL havuzu (eski adıYLA SQL DW) oluşturma örneği.

CREATE DATABASE TestDW COLLATE Latin1_General_100_CI_AS_KS_WS
(MAXSIZE = 10240 GB, EDITION = 'datawarehouse', SERVICE_OBJECTIVE = 'DW1000c');

C. Synapse Analytics sunucusuz SQL havuzunda basit örnek

Bu, veritabanını sunucusuz havuzda oluşturur ve bir harmanlama (Latin1_General_100_CI_AS_KS_WS) belirtir.

CREATE DATABASE TestDW COLLATE Latin1_General_100_CI_AS_KS_WS
  • ALTER DATABASE (Azure Synapse Analytics)
  • CREATE TABLE (Azure Synapse Analytics)
  • DROP DATABASE

SQL Server

SQL Veritabanı

SQL Yönetilen Örneği

Azure Synapse'i
Analiz

* Analiz Platformu
Sistem (PDW) *

 

Analiz Platformu Sistemi

Genel bakış

Analytics Platform Sistemi'nde bu deyim, Analytics Platform Sistemi aletinde yeni bir veritabanı oluşturmak için kullanılır. Alet veritabanıyla ilişkili tüm dosyaları oluşturmak ve veritabanı tabloları ve işlem günlüğü için en büyük boyut ve otomatik büyüme seçeneklerini ayarlamak için bu deyimi kullanın.

Sözdizimi

Söz dizimi kuralları hakkında daha fazla bilgi için bkz.Transact-SQL söz dizimi kuralları.

CREATE DATABASE database_name
WITH (
    [ AUTOGROW = ON | OFF , ]
    REPLICATED_SIZE = replicated_size [ GB ] ,
    DISTRIBUTED_SIZE = distributed_size [ GB ] ,
    LOG_SIZE = log_size [ GB ] )
[;]

Bağımsız değişken

database_name

Yeni veritabanının adı. İzin verilen veritabanı adları hakkında daha fazla bilgi içinAnalytics Platform Sistemi (PDW) ürün belgelerinde "Nesne Adlandırma Kuralları" ve "Ayrılmış Veritabanı Adları" bölümüne bakın.

AUTOGROW = ON | KAPALI

Bu veritabanı için replicated_size, distributed_sizeve log_size parametrelerinin, belirtilen boyutları aşacak şekilde otomatik olarak büyüyeceğini belirtir. Varsayılan değer OFFdeğeridir.

AUTOGROW ON ise, replicated_size, distributed_sizeve log_size her veri ekleme, güncelleştirme veya daha fazla depolama gerektiren diğer eylemlerde (belirtilen ilk boyutun bloklarında değil) gerektiği gibi büyür.

AUTOGROW KAPALI ise, boyutlar otomatik olarak büyümez. Analiz Platformu Sistemi (PDW), replicated_size, distributed_sizeveya log_size belirtilen değerin ötesine geçmelerini gerektiren bir eylemi denerken hata döndürür.

AUTOGROW tüm boyutlar için ON veya tüm boyutlar için KAPALI'dır. Örneğin, log_sizeiçin AUTOGROW ON ayarlanmaz, ancak replicated_sizeiçin ayarlanmaz.

replicated_size [ GB ]

Pozitif bir sayı. Çoğaltılan tablolara ayrılan toplam alanın boyutunu (tamsayı veya ondalık gigabayt cinsinden) veher İşlem düğümünde ilgili verileri ayarlar. En düşük ve en yüksek replicated_size gereksinimleri için Analytics Platform Sistemi (PDW) ürün belgeleri"Minimum ve Maksimum Değerler" bölümüne bakın.

AUTOGROW ON ise, çoğaltılan tabloların bu sınırın üzerine çıkmasına izin verilir.

AUTOGROW KAPALI ise, kullanıcı yeni bir çoğaltılmış tablo oluşturmaya, varolan çoğaltılmış tabloya veri eklemeye veya varolan çoğaltılmış tabloyu replicated_sizeboyutunu artıracak şekilde güncelleştirmeye çalışırsa bir hata döndürülür.

distributed_size [ GB ]

Pozitif bir sayı. alet genelinde dağıtılmış tablolara (ve karşılık gelen verilere) ayrılan toplam alan için tamsayı veya ondalık gigabayt cinsinden boyut . En düşük ve en yüksek distributed_size gereksinimleri için Analytics Platform Sistemi (PDW) ürün belgeleri"Minimum ve Maksimum Değerler" bölümüne bakın.

AUTOGROW ON ise, dağıtılmış tabloların bu sınırın üzerinde büyümesine izin verilir.

AUTOGROW KAPALI ise, kullanıcı yeni bir dağıtılmış tablo oluşturmaya, mevcut dağıtılmış tabloya veri eklemeye veya mevcut dağıtılmış tabloyu distributed_sizeboyutunun ötesine çıkacak şekilde güncelleştirmeye çalışırsa bir hata döndürülür.

log_size [ GB ]

Pozitif bir sayı. İşlem günlüğünün boyutu (tamsayı veya ondalık gigabayt cinsinden)alet genelinde .

Minimum ve maksimum log_size gereksinimleri içinAnalytics Platform Sistemi (PDW) ürün belgelerinde "Minimum ve Maksimum Değerler" bölümüne bakın.

AUTOGROW AÇILDIysa, günlük dosyasının bu sınırın ötesine büyümesine izin verilir. Günlük dosyalarının boyutunu özgün boyutlarına küçültmek için DBCC SHRINKLOG (Azure Synapse Analytics) deyimini kullanın.

AUTOGROW KAPALI ise, tek bir İşlem düğümündeki günlük boyutunu log_sizeötesinde artıracak herhangi bir eylem için kullanıcıya bir hata döndürülür.

İzinler

CREATE ANY DATABASE veritabanında master izni veya sysadmin sabit sunucu rolü üyeliği gerektirir.

Aşağıdaki örnek, Fay veritabanı kullanıcısı için veritabanı oluşturma izni sağlar.

USE master;
GO
GRANT CREATE ANY DATABASE TO [Fay];
GO

Açıklamalar

Veritabanları, SQL Server 2014 (12.x) için uyumluluk düzeyi olan veritabanı uyumluluk düzeyi 120 ile oluşturulur. Bu, veritabanının PDW'nin kullandığı tüm SQL Server 2014 (12.x) işlevlerini kullanabilmesini sağlar.

Sınırlamalar ve Kısıtlamalar

Create DATABASE deyimine açık bir işlemde izin verilmez. Daha fazla bilgi için bkz. Deyimleri.

Veritabanlarındaki en düşük ve en yüksek kısıtlamalar hakkında bilgi için Analytics Platform Sistemi (PDW) ürün belgeleri"Minimum ve Maksimum Değerler" bölümüne bakın.

Veritabanı oluşturulduğunda, aşağıdaki boyutların birleşik toplamını ayırmak için her İşlem düğümünde yeterli boş alan yeterli boş alan olmalıdır:

  • replicated_table_sizeboyutunda tablolar içeren SQL Server veritabanı.
  • Boyutu (distributed_table_size / İşlem düğümleri sayısı) olan tablolar içeren SQL Server veritabanı.
  • SQL Server boyutunu günlüğe kaydeder (log_size / İşlem düğümlerinin sayısı).

Kilitleme

DATABASE nesnesinde paylaşılan bir kilit alır.

Meta veriler

Bu işlem başarılı olduktan sonra, bu veritabanı için bir girdi sys.databases ve sys.objects meta veri görünümlerinde görünür.

Örnekler: Analiz Platformu Sistemi (PDW)

A. Temel veritabanı oluşturma örnekleri

Aşağıdaki örnek, çoğaltılan tablolar için işlem düğümü başına 100 GB, dağıtılmış tablolar için alet başına 500 GB ve işlem günlüğü için alet başına 100 GB depolama ayırması ile veritabanı mytest oluşturur. Bu örnekte AUTOGROW varsayılan olarak kapalıdır.

CREATE DATABASE mytest
  WITH
    (REPLICATED_SIZE = 100 GB,
    DISTRIBUTED_SIZE = 500 GB,
    LOG_SIZE = 100 GB );

Aşağıdaki örnek, AUTOGROW özelliğinin açık olması dışında veritabanı mytest yukarıdakilerle aynı parametrelerle oluşturur. Bu, veritabanının belirtilen boyut parametrelerinin dışında büyümesine olanak tanır.

CREATE DATABASE mytest
  WITH
    (AUTOGROW = ON,
    REPLICATED_SIZE = 100 GB,
    DISTRIBUTED_SIZE = 500 GB,
    LOG_SIZE = 100 GB);

B. Kısmi gigabayt boyutlarıyla veritabanı oluşturma

Aşağıdaki örnek, autogrow kapalı, çoğaltılan tablolar için İşlem düğümü başına 1,5 GB, dağıtılmış tablolar için alet başına 5,25 GB ve işlem günlüğü için alet başına 10 GB depolama ayırması ile mytestveritabanını oluşturur.

CREATE DATABASE mytest
  WITH
    (REPLICATED_SIZE = 1.5 GB,
    DISTRIBUTED_SIZE = 5.25 GB,
    LOG_SIZE = 10 GB);
  • ALTER DATABASE (Analiz Platformu Sistemi)
  • DROP DATABASE