Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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 Sunucusu
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
Yeni veritabanının adı. 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 bir sonek ekleyerek günlük içinlogical_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_name olarak 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 sonraki sürümler
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.
ON , ardından birincil dosya grubu için veri dosyalarını tanımlayan öğelerin virgülle ayrılmış bir listesi <filespec> eklendiğinde gereklidir. Birincil dosya grubundaki dosya listesinin ardından, kullanıcı dosya gruplarını ve dosyalarını tanımlayan isteğe bağlı, virgülle ayrılmış bir öğe listesi <filegroup> gelebilir.
BİRİNCİL
İlişkili <filespec> listenin birincil dosyayı tanımladığını belirtir. Birincil dosya grubundaki girişte <filespec> 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ı.
Belirtilmezse PRIMARY , deyiminde CREATE DATABASE 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.
LOG ON ardından, günlük dosyalarını tanımlayan öğelerin <filespec> virgülle ayrılmış bir listesi gelir. Belirtilmezse LOG ON , veritabanı için tüm veri dosyalarının toplamının yüzde 25'i kadar bir boyuta veya 512 KB'a (hangisi daha büyükse) sahip olan bir günlük dosyası otomatik olarak oluşturulur. Bu dosya varsayılan günlük dosyası konumuna yerleştirilir. Bu konum hakkında bilgi için bkz. Veri ve günlük dosyalarının varsayılan konumlarını görüntüleme veya değiştirme.
LOG ON veritabanı anlık görüntüsünde belirtilemiyor.
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 belirtilemiyor.
Harmanlama adı veya FOR ATTACH yan tümceleriyle FOR ATTACH_REBUILD_LOG belirtilemiyor. Bağlı bir veritabanının harmanlamasını değiştirme hakkında daha fazla bilgi için bkz: Veritabanı harmanlamasını ayarlama veya değiştirme.
Windows ve SQL harmanlama adları hakkında daha fazla bilgi için bkz. HARMANLAMA.
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 sonraki sürümler
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ı. READONLYBu veritabanındaki FILESTREAM verileri işlem dışı işlemler tarafından okunabilir. FULLFILESTREAM FileTables'a işlem dışı tam erişim etkinleştirilir. DIRECTORY_NAME = <directory_name>
için geçerlidir: SQL Server 2012 (11.x) ve sonraki sürümler
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
CONTAINMENTolarak ayarlandığındaPARTIALizin verilebilir. olarak ayarlanırsaCONTAINMENTNONEhatalar oluşur.
DEFAULT_FULLTEXT_LANGUAGE = <lcid> | <dil adı> | <dil diğer adı>
için geçerlidir: SQL Server 2012 (11.x) ve sonraki sürümler
Bu seçeneğin tam açıklaması için bkz . Sunucu yapılandırması: varsayılan tam metin dili .
DEFAULT_LANGUAGE = <lcid> | <dil adı> | <dil diğer adı>
için geçerlidir: SQL Server 2012 (11.x) ve sonraki sürümler
Bu seçeneğin tam açıklaması için bkz . Sunucu yapılandırması: varsayılan dil .
NESTED_TRIGGERS = { KAPALI | ON }
için geçerlidir: SQL Server 2012 (11.x) ve sonraki sürümler
Bu seçeneğin tam açıklaması için bkz . Sunucu yapılandırması: iç içe tetikleyiciler .
TRANSFORM_NOISE_WORDS = { KAPALI | ON }
için geçerlidir: SQL Server 2012 (11.x) ve sonraki sürümler
Bu seçeneğin tam açıklaması için bkz . Sunucu yapılandırması: kirlilik sözcüklerini dönüştürme .
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 . Sunucu yapılandırması: iki basamaklı yıl sonu .
DB_CHAINING { KAPALI | ON }
Belirtildiğinde ON veritabanı, veritabanları arası sahiplik zincirinin kaynağı veya hedefi olabilir.
olduğunda OFFveritabanı, veritabanları arası sahiplik zincirine katılamaz. Varsayılan değer OFF.
Önemli
VERITABANLARı arası sahiplik zincirleme sunucusu seçeneği 0 (OFF) 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. Bu DB_CHAINING seçenek şu sistem veritabanlarında ayarlanamaz: master, model, tempdb.
GÜVENILIR { KAPALI | ON }
Belirtildiğinde ON , kimliğe bürünme bağlamı kullanan veritabanı modülleri (görünümler, kullanıcı tanımlı işlevler veya saklı yordamlar gibi) veritabanı dışındaki kaynaklara erişebilir.
olduğunda OFF, kimliğe bürünme bağlamındaki veritabanı modülleri veritabanının dışındaki kaynaklara erişemez. Varsayılan değer OFF.
TRUSTWORTHY , veritabanı her eklendiğinde olarak ayarlanır OFF .
Varsayılan olarak, veritabanı dışındaki msdb tüm sistem veritabanları olarak ayarlanmıştır TRUSTWORTHYOFF. ve model veritabanları için tempdb değer değiştirilemez. Veritabanı için TRUSTWORTHY seçeneğini ON hiçbir zaman olarak ayarlamamanızı master öneririz.
PERSISTENT_LOG_BUFFER = AÇIK ( DIRECTORY_NAME = 'directory_name' )
Şunlar için geçerlidir: SQL Server 2017 (14.x) ve sonraki sürümler
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 }
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 seçeneğin değeri LEDGER 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 <filespec> giriş olmalıdır. Gerekli olan diğer <filespec> girişler yalnızca, veritabanının ilk oluşturulduğu veya en son eklendiği zamandan farklı bir yola sahip olan dosyalar için olanlardır. Bu dosyalar için bir <filespec> giriş belirtilmelidir.
FOR ATTACH 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 yan tümcesindeki FOR ATTACH 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 bkz. Örnekler.
"Dizin adı" FILESTREAM seçeneğini içeren bir veritabanı eklemek, SQL Server'dan adın benzersiz olduğunu doğrulamasını Database_Directory ister. Değilse, ATTACH işlem şu hatayla başarısız olur: FILESTREAM Database_Directory name is not unique in this SQL Server instance. 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 belirtilemiyor.
FOR ATTACH seçeneğini belirtebilir RESTRICTED_USER .
RESTRICTED_USER yalnızca db_owner sabit veritabanı rolünün üyelerine ve veritabanı oluşturucu ve sysadmin sabit sunucu rollerinin veritabanına bağlanmasına izin 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, yan tümcenizde WITH <service_broker_option> şunu FOR ATTACH 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 yan tümce kullanıldığında belirtilebilir FOR ATTACH .
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.
Veritabanı yeni bir SQL Server örneğine ilk kez eklendiğinde veya geri yüklendiğinde, veritabanı ana anahtarının bir kopyası (hizmet ana anahtarıyla ş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
ve TRUSTWORTHY seçeneklerinin DB_CHAINING veritabanı eklerken hiçbir etkisi yoktur.
ATTACH_REBUILD_LOG IÇIN
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> giriş 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. Veri ve günlük dosyalarının varsayılan konumlarını 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 hemen sonra tam bir veritabanı yedeği almanızı öneririz. Daha fazla bilgi için bkz. backup
Genellikle, büyük bir günlük içeren bir okuma/yazma veritabanını, FOR ATTACH_REBUILD_LOG kopyanın çoğunlukla veya yalnızca okuma işlemleri için kullanılacağı başka bir sunucuya kopyaladığınızda kullanılır ve bu nedenle özgün veritabanından daha az günlük alanı gerektirir.
FOR ATTACH_REBUILD_LOG veritabanı anlık görüntüsünde belirtilemiyor.
Veritabanlarını ekleme ve ayırma hakkında daha fazla bilgi için bkz. Veritabanı ayırma ve ekleme (SQL Server).
<Filespec>
Dosya özelliklerini denetler.
AD logical_file_name
Dosyanın mantıksal adını belirtir.
NAME belirtildiğinde FILENAME , yan tümcelerden birinin belirtilmesi FOR ATTACH dışında gereklidir. Dosya FILESTREAM grubu olarak adlandırılamaz PRIMARY.
logical_file_name
Dosyaya başvururken SQL Server'da kullanılan mantıksal ad.
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.
DOSYAADI { '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ı. 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ğ. Deyimi yürütülmeden
CREATE DATABASEönce belirtilen yol mevcut olmalıdır. Daha fazla bilgi için bu makalenin devamında Veritabanı Dosyaları ve Dosya Grupları bakın.SIZE,MAXSIZEveFILEGROWTHparametreler 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 (12.x) ve sonraki sürümlerde desteklenmez.
Dosyalar salt okunur ikincil dosyalar olmadığı 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,
FILENAMEFILESTREAM verilerinin depolanacağı yolu ifade eder. Son klasöre kadar olan yol mevcut olmalı ve son klasör mevcut olmamalıdır. Örneğin, yolunuC:\MyFiles\MyFilestreamDatabelirtirseniz ,C:\MyFilesçalıştırmadanALTER DATABASEönce mevcut olmalıdır, ancakMyFilestreamDataklasör mevcut olmamalıdır.Dosya grubu ve dosya (
<filespec>) aynı deyimde oluşturulmalıdır.SIZEveFILEGROWTHözellikleri FILESTREAM dosya grubu için geçerli değildir.
BOYUT boyutu
Dosyanın boyutunu belirtir.
SIZE
os_file_name UNC yolu olarak belirtildiğinde belirtilemez.
SIZE fileSTREAM dosya grubu için geçerli değildir.
boyutu
Dosyanın ilk boyutu.
Birincil dosya için boyut sağlanmıyorsa, Veritabanı Altyapısı veritabanındaki birincil dosyanın
modelboyutunu kullanır.modelveritabanı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 azmodelveritabanı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. 2.147.483.647'den büyük değerler için daha büyük birimler kullanın.
MAKSIMUM BOY max_size
Dosyanın büyüyebileceği en büyük boyutu belirtir.
MAXSIZE
os_file_name UNC yolu olarak belirtildiğinde belirtilemez.
max_size
En büyük dosya boyutu. 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.
DOSYA BÜYÜTME growth_increment
Dosyanın otomatik büyüme artışını belirtir. Bir FILEGROWTH dosyanın ayarı ayarı aşamaz MAXSIZE .
FILEGROWTH
os_file_name UNC yolu olarak belirtildiğinde belirtilemez.
FILEGROWTH fileSTREAM dosya grubu için geçerli değildir.
growth_increment
Her yeni alan gerektiğinde dosyaya eklenen alan miktarı.
Değer , ,
KB,MBGBveya yüzde (TB) içinde%belirtilebilir. Bir sayı ,KBveyaMBsoneki olmadan%belirtilirse, varsayılan değer olurMB. Belirtildiğinde%, büyüme artışı boyutu, artış gerçekleştiği sırada 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.
Belirtilmezse
FILEGROWTH, 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 belirtilemiyor.
DOSYA GRUBU filegroup_name
Dosya grubunun mantıksal adı.
filegroup_name
filegroup_name veritabanında benzersiz olmalıdır ve sistem tarafından sağlanan adlar
PRIMARYvePRIMARY_LOGolamaz. 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.
MEMORY_OPTIMIZED_DATA IÇERIR
için geçerlidir: SQL Server 2014 (12.x) ve sonraki sürümler
Dosya grubunun memory_optimized verileri dosya sisteminde depoladığını belirtir. Daha fazla bilgi için bkz. OLTP'ye genel bakış ve kullanım senaryolarıIn-Memory. Veritabanı başına yalnızca bir
MEMORY_OPTIMIZED_DATAdosya 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ı. 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ı yan CREATE DATABASE ON tümcesine dahil edilirse, deyimi başarısız olur ve bir hata oluşur.
ve NAME değerlerinin FILENAME açıklamaları için eşdeğer <filespec> değerlerin açıklamalarına bakın.
Not
Veritabanı anlık görüntüsü oluşturduğunuzda, diğer <filespec> seçeneklere ve anahtar sözcüklere PRIMARY 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 2017 (14.x) ve önceki sürümlerinde, veritabanı anlık görüntüsü için kaynak veritabanı dosya MEMORY_OPTIMIZED_DATA grubu içeremedi. SQL Server 2019'da (15.x) 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.
Deyimin CREATE DATABASE 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 deyimini uygular CREATE DATABASE :
- 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- Dosya Akışı
- 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, deyimi günlük dosyalarına CREATE DATABASE , ç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ü kullanılarak DROP DATABASEsilinene kadar kalır.
Daha fazla bilgi için bkz . Veritabanı anlık görüntüleri (SQL Server) ve Veritabanı anlık görüntüsü oluşturma.
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. Veritabanındaki işlemlerin model değiştirilmesi mevcut veritabanlarını etkilemez. FOR ATTACH deyiminde CREATE DATABASE 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ı üzerindeki izinler
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. Deyimde öğe olmadığından <filespec> , birincil veritabanı dosyası, veritabanı birincil dosyasının boyutudur model . İş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. Belirtilmediğinden MAXSIZE , 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. Anahtar sözcük PRIMARY kullanılmadığından, ilk dosya (Sales_dat) birincil dosya olur. Dosyanın parametresinde SIZE MB veya KB belirtilmediğinden Sales_dat kullanır MB ve megabayt cinsinden 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 = 5 MB,
MAXSIZE = 25 MB,
FILEGROWTH = 5 MB
);
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 = 100 MB,
MAXSIZE = 200,
FILEGROWTH = 20
), (
NAME = Arch2,
FILENAME = 'D:\SalesData\archdat2.ndf',
SIZE = 100 MB,
MAXSIZE = 200,
FILEGROWTH = 20
), (
NAME = Arch3,
FILENAME = 'D:\SalesData\archdat3.ndf',
SIZE = 100 MB, MAXSIZE = 200,
FILEGROWTH = 20
)
LOG ON (
NAME = Archlog1,
FILENAME = 'D:\SalesData\archlog1.ldf',
SIZE = 100 MB,
MAXSIZE = 200,
FILEGROWTH = 20
), (
NAME = Archlog2,
FILENAME = 'D:\SalesData\archlog2.ldf',
SIZE = 100 MB,
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_datveSpri2_datdosyalarıyla birincil dosya grubu.FILEGROWTHBu dosyalar için artımlar olarak15%belirtilir. -
SalesGroup1veSGrp1Fi1dosyalarıylaSGrp1Fi2adlı bir dosya grubu. -
SalesGroup2veSGrp2Fi1dosyalarıylaSGrp2Fi2adlı 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 = 5 MB,
MAXSIZE = 25 MB,
FILEGROWTH = 5 MB
);
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 yan tümcesinde FOR ATTACH yalnızca birincil dosyanın belirtilmesi gerekir. SQL Server 2005 (9.x) sürümünden başlayarak, eklenmekte olan veritabanının parçası olan tüm tam metin dosyaları veritabanına eklenir.
USE master;
GO
EXECUTE 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ı belirtilemiyor. 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 AdventureWorks2025 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
EXECUTE 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_datasatır verilerini içerir. Varsayılan yola sahipFileStreamDB_data.mdftek bir dosya içerir.FileStreamPhotosFILESTREAM verilerini içerir.FSPhotosveC:\MyFSfolder\Photoskonumunda bulunanFSPhotos2,D:\MyFSfolder\Photoskonumunda bulunan iki FILESTREAM veri kapsayıcısı içerir. Varsayılan FILESTREAM dosya grubu olarak işaretlenir.FileStreamResumesFILESTREAM verilerini içerir.FSResumeskonumunda bulunanC:\MyFSfolder\Resumesbir FILESTREAM veri kapsayıcısı içerir.
USE master;
GO
-- Get the SQL Server data path.
DECLARE @data_path AS 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 = 10 MB,
MAXSIZE = 50 MB,
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 is 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 = 5 MB,
MAXSIZE = 25 MB,
FILEGROWTH = 5 MB
);');
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 = 100 MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 1 MB
),
FILEGROUP [FS] CONTAINS FILESTREAM DEFAULT
(NAME = N'FS1', FILENAME = N'C:\BlobStore\FS1', MAXSIZE = UNLIMITED),
(NAME = N'FS2', FILENAME = N'C:\BlobStore\FS2', MAXSIZE = 100 MB)
LOG ON (
NAME = N'BlobStore1_log',
FILENAME = N'C:\BlobStore\BlobStore1_log.ldf',
SIZE = 100 MB,
MAXSIZE = 1 GB,
FILEGROWTH = 1 MB
);
GO
ALTER DATABASE [BlobStore1]
ADD FILE (
NAME = N'FS3',
FILENAME = N'C:\BlobStore\FS3',
MAXSIZE = 100 MB
) TO FILEGROUP [FS];
GO
İlgili içerik
- VERİ TABANINI DEĞİŞTİR (Transact-SQL)
- Veritabanı ayırma ve ekleme (SQL Server)
- DROP DATABASE (Transact-SQL)
- OLAY VERILERI (Transact-SQL)
- YETKILENDIRME DEĞIŞIKLIĞI (Transact-SQL)
- sp_detach_db
- sp_removedbreplication
- Veritabanı anlık görüntüleri (SQL Server)
- Veritabanı dosyalarını taşıma
- Veritabanları
- İkili Büyük Nesne (Blob) Verileri (SQL Server)
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' | 'GEOZONE' } ) ]
[ ; ]
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 . Veritabanı 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 varsayılan harmanlama (olan SQL_Latin1_General_CP1_CI_AS) atanır.
Windows ve SQL harmanlama adları hakkında daha fazla bilgi için COLLATE.
CATALOG_COLLATION
Meta veri kataloğu için varsayılan harmanlamayı belirtir. Bağımsız CATALOG_COLLATION değişken yalnızca veritabanı oluşturma sırasında kullanılabilir ve oluşturulduktan sonra değiştirilemez.
Varsayılan olarak, sistem nesne adları için meta veri kataloğu harmanlama olarak SQL_Latin1_General_CP1_CI_AS harmanlanır. Belirtilmemişse CATALOG_COLLATION Bu, 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 harmanlandığını 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, satır verileri için büyük/küçük harfe duyarlı harmanlama ile veritabanını oluşturur, ancak nesne tanımlayıcıları için varsayılan
SQL_Latin1_General_CP1_CI_ASbüyük/küçük harfe duyarlı olmayan harmanlamayı 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ılan 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' | 'GEOZONE' }
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.
Coğrafi alanlar arası yedekli depolama için kullanın GEOZONE . Coğrafi alanlar arası yedekli depolama (GZRS), bölgesel kesintilerin yanı sıra herhangi bir iş yükü için bölgesel kesintilere karşı en yüksek düzeyde koruma sunar.
T-SQL kullanarak veritabanı oluştururken veri yerleşimini zorunlu kılmak için parametresine LOCAL giriş olarak veya ZONE kullanınBACKUP_STORAGE_REDUNDANCY.
ile başka bir veritabanının AS COPY OFkopyası olarak bir veritabanı oluşturduğunuzda, seçeneklerin belirtilmesi desteklenir ve parantez içine alınmalı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 seçeneğin değeri LEDGER değiştirilemez. Daha fazla bilgi için bkz. Kayıt defteri veritabanı yapılandırma.
MAKSİMUM BOYUT
Veritabanının en büyük boyutunu belirtir.
MAXSIZE belirtilen EDITION (hizmet katmanı) için geçerli olmalıdır.
Hizmet katmanları için desteklenen MAXSIZE değerler ve varsayılan değerler (D) aşağıdadır.
Not
MAXSIZE Bağımsız değişken 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 1 |
|---|---|---|---|---|---|
| 100 MB | Yes | Yes | Yes | Yes | Yes |
| 500 MB | Yes | Yes | Yes | Yes | Yes |
| 1 GB | Yes | Yes | Yes | Yes | Yes |
| 2GB | Evet (D) | Yes | Yes | Yes | Yes |
| 5 GB depolama alanı | YOK | Yes | Yes | Yes | Yes |
| 10 GB | YOK | Yes | Yes | Yes | Yes |
| 20 GB depolama alanı | YOK | Yes | Yes | Yes | Yes |
| 30 GB | YOK | Yes | Yes | Yes | Yes |
| 40 GB depolama alanı | YOK | Yes | Yes | Yes | Yes |
| 50 GB | YOK | Yes | Yes | Yes | Yes |
| 100 GB | YOK | Yes | Yes | Yes | Yes |
| 150 GB depolama alanı | YOK | Yes | Yes | Yes | Yes |
| 200 GB | YOK | Yes | Yes | Yes | Yes |
| 250 GB depolama alanı | YOK | Evet (D) | Evet (D) | Yes | Yes |
| 300 GB | YOK | YOK | Yes | Yes | Yes |
| 400 GB | YOK | YOK | Yes | Yes | Yes |
| 500 GB depolama alanı | YOK | YOK | Yes | Evet (D) | Yes |
| 750 GB | YOK | YOK | Yes | Yes | Yes |
| 1.024 GB | YOK | YOK | Yes | Yes | Evet (D) |
| 1.024 GB'tan 256 GB'lık artışlarla 4.096 GB'a kadar | YOK | YOK | YOK | YOK | Yes |
1 P11 ve P15, varsayılan boyut olan 1.024 GB ile 4 TB'a kadar izin verir MAXSIZE . P11 ve P15, ek ücret ödemeden 4 TB'a kadar dahili depolama alanı kullanabilir. Premium katmanında şu MAXSIZE anda şu bölgelerde 1 TB'den büyük kullanılabilir: ABD Doğu2, Batı ABD, US Gov Virginia, Batı Avrupa, Orta Almanya, Güney Doğ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 satın alma modelini kullanan tek veritabanları için kaynak sınırları - Azure SQL Veritabanı.
MAXSIZE DTU modelinin değeri belirtilirse, belirtilen hizmet katmanı için önceki tabloda gösterilen geçerli bir değer olmalıdır.
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'.
ve bağımsız değişkenleri için MAXSIZEEDITION aşağıdaki kurallar geçerlidir:
Belirtilirse ancak
EDITIONbelirtilmezseMAXSIZE, sürüm için varsayılan değer kullanılır. Örneğin, değeri Standart olarak ayarlanmışsa veEDITIONbelirtilmemişseMAXSIZE, MAX'SIZE otomatik olarak 250 MB olarak ayarlanır.Belirtilmezse
MAXSIZEveyaEDITIONbelirtilmezse ,EDITION'GeneralPurpose' olarak ayarlanır veMAXSIZE32 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,P15En 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çinkaynak sınırlarına veyaelastik havuzlar içinkaynak sınırlarına bakın. - Örneğin:
- 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.
- Genel Amaçlı, sağlanan işlem, Standart seri (5. Nesil), 8 sanal çekirdek için
- Örneğin:
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 değeri tarafından EDITIONdesteklenmiyorsa bir hata alırsınız. Değeri bir katmandan diğerine (örneğin S1'den P1'e) değiştirmek SERVICE_OBJECTIVE için, değeri de değiştirmeniz EDITION 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_OBJECTIVEELASTIC_POOL adını olarak ayarlayın ve havuzun adını belirtin. Daha fazla bilgi için bkz. Elastik havuzlar, Azure SQL Veritabanı'da birden çok veritabanını yönetmenize ve ölçeklendirmenize yardımcı olur.
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
Bağımsız
AS COPY OFdeğişken, 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ızcaserverNamekullanı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 15 dakika kadar bir 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_completeveya sütunlarını veyareplication_state_descgörünümdeki sütunu sorgulayınstatesys.databases. 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ı kaynak veritabanıyla işlemsel olarak 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 . Veritabanı tanımlayıcıları.
-
CREATE DATABASEdeyimi, yeni veritabanının oluşturulacağı SQL Veritabanı sunucusununmasterveritabanı 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 DATABASEveDROP DATABASEdeyimlerini 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. Azure SQL Veritabanıveritabanının işlem açısından tutarlı bir kopyasını kopyalama.
Ö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 -
dbmanagerveritabanı 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
Temel örnek
Veritabanı oluşturmak için temel bir örnek.
CREATE DATABASE TestDB1;
Sürümle ilgili temel örnek
Genel amaçlı veritabanı oluşturmaya yönelik temel 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 <database>.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 <database>.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 satın alma modelini kullanan tek veritabanları için kaynak sınırları - Azure SQL Veritabanı
- 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, ilki 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şletdikten sonra, veritabanı dosyasının tam hatalarını önlemek için MAXSIZE 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 . Veritabanı 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 varsayılan harmanlama (olan SQL_Latin1_General_CP1_CI_AS) atanır.
Windows ve SQL harmanlama adları hakkında daha fazla bilgi için COLLATE.
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 seçeneğin değeri LEDGER 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.
WITHseçenekleri desteklenmez, dışındaWITH LEDGER.Bahşiş
Geçici çözüm olarak, ALTER DATABASEkullanın. veritabanı seçeneklerini ayarlamak ve dosya eklemek için
CREATE DATABASE.
İzinler
Bir veritabanı oluşturmak için, oturum açma aşağıdaki güvenlik ilkesi türlerinden 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
Temel örnek
Veritabanı oluşturmak için temel 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 DATABASEAzure Synapse Analytics çalışma alanında ayrılmış SQL havuzları için desteklenmez. Bunun yerine Azure portalını kullanın. -
CREATE DATABASEAzure 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 . Veritabanı 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 varsayılan harmanlama (olan SQL_Latin1_General_CP1_CI_AS) atanır.
Windows ve SQL harmanlama adları hakkında daha fazla bilgi için bkz. HARMANLAMA.
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ı' nın ötesine MAXSIZEgeçemez.
Şunlar için geçerlidir: İşlem 2. Nesil için İyileştirilmiş
Veritabanındaki satır deposu verileri için izin verilen en büyük boyut. Rowstore tablolarında, columnstore dizininin deltastore'sunda veya kümelenmiş columnstore dizininde kümelenmemiş dizinde depolanan veriler değerinin ötesine MAXSIZEgeçemez. Columnstore biçiminde sıkıştırılmış verilerin boyut sınırı yoktur ve ile MAXSIZEkısıtlanmamıştır.
BASKI
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 olarak ayarlanır COMPATIBILITY_LEVEL 130 ve değiştirilemez. Daha fazla bilgi için bkz. ALTER DATABASE uyumluluk düzeyi.
İ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 öğesine ulaşırsa MAXSIZE, SQL Server hata kodu 40544'e yükseltir. 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ı 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.
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. Temel örnek
Tek başına ayrılmış SQL havuzu (eski adıYLA SQL DW) oluşturmak için temel 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 havuzundaki temel ö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)
- TABLO OLUŞTUR
- DROP DATABASE (Transact-SQL)
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 }
replicated_size, distributed_size ve log_size parametrelerinin belirtilen boyutlarının ötesine gerektiği gibi otomatik olarak büyüyüp büyümeyeceğini belirtir. Varsayılan değer OFF olarak belirlenmiştir.
ise AUTOGROWON, replicated_size, distributed_size ve log_size , önceden ayrılmış olandan daha fazla depolama alanı gerektiren her veri ekleme, güncelleştirme veya diğer eylemde gerektiği gibi büyür.
ise AUTOGROWOFF, boyutlar otomatik olarak büyümez. Analiz Platformu Sistemi (PDW), replicated_size, distributed_sizeveyalog_size belirtilen değerin üzerine çıkmalarını gerektiren bir eylem denenirken bir hata döndürür.
AUTOGROW
ON tüm boyutlar için veya OFF tüm boyutlar içindir. Örneğin, AUTOGROW ON için ayarlamak mümkün değildir, ancak replicated_size iç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
ise AUTOGROWON, çoğaltılan tablolar bu sınırı aşabilir.
ise AUTOGROWOFF, kullanıcı yeni bir çoğaltılmış tablo oluşturmaya, varolan çoğaltılmış tabloya veri eklemeye veya varolan çoğaltılmış tabloyu replicated_size boyutunu 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
ise AUTOGROWON, dağıtılmış tabloların bu sınırın üzerinde büyümesine izin verilir.
ise AUTOGROWOFF, kullanıcı yeni bir dağıtılmış tablo oluşturmayı, mevcut bir dağıtılmış tabloya veri eklemeyi veya mevcut dağıtılmış tabloyu distributed_size boyutunu artıracak şekilde güncelleştirmeyi denerse 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
ise AUTOGROWON, günlük dosyasının bu sınırın ötesinde büyümesine izin verilir. Günlük dosyalarının boyutunu özgün boyutlarına küçültmek için DBCC SHRINKLOG - Analytics Platform Sistemi (PDW) deyimini kullanın.
ise AUTOGROWOFF, 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ırlama
Açık CREATE DATABASE bir işlemde deyimine izin verilmez. Daha fazla bilgi için bkz. Transact-SQL 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
Nesne üzerinde DATABASE paylaşılan bir kilit alır.
Meta veriler
Bu işlem başarılı olduktan sonra sys.databases ve sys.objects meta veri görünümlerinde bu veritabanı için bir girdi görüntülenir.
Ö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, açık olması mytest dışında aynı parametrelerle veritabanını AUTOGROW 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 örnekte, veritabanı kapalı olarakmytest, ç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ı oluşturulurAUTOGROW.
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 (Transact-SQL)