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.
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ı ve
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
, model
tempdb
.
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ı
LEDGER = {ON | KAPALI }
ON
olarak 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
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 instance
hatası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_enabled
sys.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
Ö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.
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\MyFilestreamData
yolunu 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,
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:
- SQL Server, veritabanını ve meta verilerini başlatmak için model veritabanının bir kopyasını kullanır.
- Veritabanına bir hizmet aracısı GUID'i atanır.
- 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 DATABASE
salt 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 DATABASE
kullanılarak silinene kadar kalır.
Daha fazla bilgi için bkz. veritabanı anlık görüntüleri
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 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 DATABASE
veya 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, Fay
veritabanı 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 Sales
veritabanı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
veSpri2_dat
dosyalarıyla birincil dosya grubu. Bu dosyalar için FILEGROWTH artışları15%
olarak belirtilir. -
SalesGroup1
veSGrp1Fi1
dosyalarıylaSGrp1Fi2
adlı bir dosya grubu. -
SalesGroup2
veSGrp2Fi1
dosyalarıylaSGrp2Fi2
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_snapshot0600
veritabanı 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 MyOptionsTest
veritabanını oluşturur. Harmanlama adı belirtilir ve TRUSTYWORTHY
ve DB_CHAINING
seçenekleri ON
olarak 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:\myFTCatalogs
yeni 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 sahipFileStreamDB_data.mdf
tek bir dosya içerir. -
FileStreamPhotos
FILESTREAM verilerini içerir.FSPhotos
veC:\MyFSfolder\Photos
konumunda bulunanFSPhotos2
,D:\MyFSfolder\Photos
konumunda bulunan iki FILESTREAM veri kapsayıcısı içerir. Varsayılan FILESTREAM dosya grubu olarak işaretlenir. -
FileStreamResumes
FILESTREAM verilerini içerir.FSResumes
konumunda bulunanC:\MyFSfolder\Resumes
bir 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ı, FS
bir satır dosya grubu ve bir FILESTREAM dosya grubu ile oluşturulur. FILESTREAM dosya grubu, FS1
ve FS2
adlı 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
İlgili içerik
- ALTER DATABASE
- Veritabanı Ayırma ve Ekleme
- DROP DATABASE
- EVENTDATA
- ALTER AUTHORIZATION
- sp_detach_db
- sp_removedbreplication
- Veritabanı Anlık Görüntüleri
- Veritabanı Dosyalarını Taşıma
- Veritabanları
- İkili Büyük Nesne (Blob) Verileri
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.
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_DEFAULT
oluş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_DEFAULT
belirtin. 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 OF
ile 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 }
ON
olarak 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
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
GeneralPurpose
ve 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
n
olduğu önceden ayarlanmış bir değer listesinden sanal çekirdek sayısını sağlayın. tek veritabanları içinkaynak sınırlarına veyaelastik havuzlar içinkaynak 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 OF
ile 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.net
ise, 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 MAXSIZE
ulaşı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ündereplication_state_desc
veya sütunundakistate
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ı sunucusununmaster
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
veDROP 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_original
adlı 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_copy
ep1
iç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');
İlgili içerik
- sys.dm_database_copies - Azure SQL Veritabanı
- ALTER DATABASE (Azure SQL Veritabanı)
- DTU kaynak sınırları
- Tek veritabanları için sanal çekirdek kaynak sınırlarını
- Elastik havuzlar için sanal çekirdek kaynak sınırlarını
SQL Server
SQL Veritabanı
* SQL Yönetilen Örneği *
Azure Synapse'i
Analiz
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.
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 }
ON
olarak 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.
WITH
dışındaWITH LEDGER
seç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;
İlgili içerik
- 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.
-
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 datawarehouse
kullanı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
İlgili içerik
- 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.
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çin
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
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
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
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 mytest
veritabanını oluşturur.
CREATE DATABASE mytest
WITH
(REPLICATED_SIZE = 1.5 GB,
DISTRIBUTED_SIZE = 5.25 GB,
LOG_SIZE = 10 GB);
İlgili içerik
- ALTER DATABASE (Analiz Platformu Sistemi)
- DROP DATABASE