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.
Bu makalede SQL Server Management Studio veya Transact-SQL ile SQL Server'da bir veritabanının nasıl ekleneceği açıklanmaktadır. Sql Server veritabanını kopyalamak, taşımak veya yükseltmek için bu özelliği kullanabilirsiniz.
Sınırlamalar ve kısıtlamalar
Sınırlamaların ve kısıtlamaların listesi için bkz. Veritabanı Ayırma ve Ekleme (SQL Server).
Önkoşullar
Devam etmeden önce aşağıdaki önkoşulların tümünü gözden geçirin:
Bir veritabanını bir örnekten diğerine taşıdığınız durumlarda, veritabanının önce var olan herhangi bir SQL örneğinden ayrılması gerekir. Ayrılmamış bir veritabanı eklemeye çalışırsanız bir hata döndürür. Daha fazla bilgi için bkz. Veritabanını Ayırma.
Bir veritabanı eklediğinizde, veritabanı için tüm veri dosyalarının kullanılabilir olması gerekir. Bu dosyalar genellikle .mdf veya .ndf (veri dosyaları için) ve .ldf (işlem günlüğü dosyaları için) uzantılarına sahiptir. Ayrıca, FILESTREAM verileri için tüm dosya gruplarının mevcut ve kullanılabilir olması gerekir. FILESTREAM özellikli veritabanı ekleme hakkında daha fazla bilgi için bkz. FILESTREAM-Enabled Veritabanını Taşıma.
Herhangi bir veri dosyasının, veritabanının ilk oluşturulduğu veya son eklendiği durumdan farklı bir yolu varsa, dosyanın geçerli yolunu belirtmeniz gerekir.
Veritabanı Altyapısı hizmet hesabının yeni konumundaki dosyaları okuma izinleri olmalıdır.
MDF ve LDF dosyaları farklı dizinlerdeyse ve yollardan biri öğesini içeriyorsa
\\?\GlobalRoot, bir veritabanı eklediğinizde işlem başarısız olur.
Ekle en iyi seçenek mi?
Veritabanı dosyalarını aynı örnekte taşırken ayırma ve ekleme yerine planlı yeniden konumlandırma yordamıyla ALTER DATABASE bir örnekteki veritabanlarını taşımanızı öneririz. Daha fazla bilgi için bkz. Kullanıcı Veritabanlarını Taşıma.
Yedekleme ve Kurtarma amacıyla ayırma ve ekleme işlemlerinin kullanılması önerilmez. SQL Server'dan harici olarak yedeklenecek dosyaları ayırırken işlem günlüğü yedeklemeleri veya zaman noktasına göre kurtarma mevcut değildir.
Security
Dosya erişim izinleri, veritabanı ayrılıp eklendiğinde de dahil olmak üzere birçok veritabanı işlemi sırasında ayarlanır. Veritabanı ayrılıp eklendiğinde, Veritabanı Altyapısı hesabın veritabanına ve günlük dosyalarına erişim iznine sahip olduğunu garanti etmek için işlemi gerçekleştiren bağlantının Windows hesabının kimliğine bürünmeye çalışır. SQL Server oturum açma bilgilerini kullanan karma güvenlik hesapları için kimliğe bürünme başarısız olabilir.
Aşağıdaki tabloda, bir ekleme veya ayırma işlemi tamamlandıktan sonra veritabanında ve günlük dosyalarında ayarlanan izinler ve bağlantı hesabının Veritabanı Altyapısı tarafından kimliğine bürünülebilir olup olmadığı gösterilmektedir.
| Operation | Bağlanan hesap taklit edilebilir | Dosya izinleri şuradaki kişilere verilir: |
|---|---|---|
| Detach | Yes | Yalnızca işlemi gerçekleştiren hesap. Veritabanı ayrıldıktan sonra gerekliyse, bir işletim sistemi yöneticisi tarafından ek hesaplar eklenebilir. |
| Detach | Hayı | SQL Server (MSSQLSERVER) hizmet hesabı ve yerel Windows Administrators grubunun üyeleri. |
| Eklemek | Yes | SQL Server (MSSQLSERVER) hizmet hesabı ve yerel Windows Administrators grubunun üyeleri. |
| Eklemek | Hayı | SQL Server (MSSQLSERVER) hizmet hesabı. |
SQL Server hizmeti için hizmet başına SID'lere verilen dosya sistemi izinleri hakkında daha fazla bilgi için bkz. Veritabanı Altyapısı Erişimi için Dosya Sistemi İzinlerini Yapılandırma.
Dikkat
Bilinmeyen veya güvenilmeyen kaynaklardan veritabanları eklememenizi veya geri yüklememenizi ö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, veritabanında üretim dışı bir sunucuda DBCC CHECKDB'yi çalıştırın ve ayrıca veritabanında saklı yordamlar veya diğer kullanıcı tanımlı kodlar gibi kodu inceleyin. Veritabanı ekleme hakkında daha fazla bilgi ve veritabanı eklerken meta verilerde yapılan değişiklikler hakkında daha fazla bilgi için bkz. Veritabanı Ayırma ve Ekleme (SQL Server).
Permissions
CREATE DATABASE, CREATE ANY DATABASEveya ALTER ANY DATABASE izni gerektirir.
SQL Server Management Studio'yu (SSMS) kullanma
Veritabanını taşımadan önce
Veritabanını taşıyorsanız, veritabanını mevcut SQL Server örneğinden ayırmadan önce Veritabanı özellikleri sayfasını kullanarak veritabanıyla ilişkili dosyaları ve geçerli konumlarını gözden geçirin.
SQL Server Management Studio Nesne Gezgini'nde SQL Server Veritabanı Altyapısı örneğine bağlanın ve örneği genişletin.
Veritabanları'nı genişletin ve ayırmak istediğiniz kullanıcı veritabanının adını seçin.
Veritabanı adına sağ tıklayın, Özellikler'i seçin. Dosyalar sayfasını seçin ve Veritabanı dosyaları: tablosundaki girdileri gözden geçirin.
Ayırmadan, taşımadan ve eklemeden önce veritabanıyla ilişkili tüm dosyaları hesaba eklediğinizden emin olun. Ardından, sonraki bölümdeki ayırma, dosya kopyalama ve veritabanı ekleme adımlarıyla devam edin. Daha fazla bilgi için bkz. Veritabanını Ayırma.
Veritabanı ekleme
SQL Server Management Studio Nesne Gezgini'nde, SQL Server Veritabanı Altyapısı örneğine bağlanın ve ardından SSMS'de bu örnek görünümünü genişletmek için öğesini seçin.
Veritabanları'ya sağ tıklayın ve Ekle'yi seçin.
Veritabanı Ekle iletişim kutusunda, eklenecek veritabanını belirtmek için Ekle'yi seçin. Veritabanı Dosyalarını Bul iletişim kutusunda veritabanının bulunduğu konumu seçin ve veritabanının .mdf dosyasını bulmak ve seçmek için dizin ağacını genişletin; mesela:
C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\AdventureWorks2022_Data.mdfÖnemli
Zaten eklenmiş bir veritabanını seçmeye çalışmak hataya neden olur.
Eklenecek veritabanları
Seçili veritabanları hakkındaki bilgileri görüntüler.<sütun başlığı yok>
Ekleme işleminin durumunu gösteren bir simge görüntüler. Olası simgeler Durum açıklamasında açıklanmıştır.MDF Dosya Konumu
Seçili MDF dosyasının yolunu ve dosya adını görüntüler.Veritabanı Adı
Veritabanının adını görüntüler.Farklı Ekle
İsteğe bağlı olarak, veritabanı olarak eklenecek farklı bir ad belirtir.Owner
İsteğe bağlı olarak farklı bir sahip seçebileceğiniz olası veritabanı sahiplerinin açılan listesini sağlar.Statü
Veritabanının durumunu aşağıdaki tabloya göre görüntüler:İkon Durum metni Description (Simge yok) (Metin yok) Bağlama işlemi başlatılmamış veya bu nesne için beklemede olabilir. İletişim kutusu açıldığında varsayılan değer budur. Yeşil, sağa işaret eden üçgen Devam ediyor Ekleme işlemi başlatıldı ancak tamamlanmadı. Yeşil onay işareti Success Nesne başarıyla eklendi. Beyaz çarpı içeren kırmızı daire Hata Ekleme işlemi bir hatayla karşılaştı ve başarıyla tamamlanamadı. İki siyah çeyrek (solda ve sağda) ve iki beyaz çeyrek (üstte ve altta) içeren daire Durduruldu İşlemi durdurduğunuz için ekleme işlemi başarıyla tamamlanmadı. Saat yönünün tersine işaret eden eğri ok içeren daire Geri Alma Ekleme işlemi başarılı oldu, ancak başka bir nesnenin eklendiği sırada oluşan bir hata nedeniyle geri alındı. Message
Boş bir ileti veya "Dosya bulunamadı" köprüsü görüntüler.Add
Gerekli ana veritabanı dosyalarını bulun. Bir .mdf dosyası seçtiğinizde, eklenecek veritabanları kılavuzunun ilgili alanları otomatik olarak doldurulur.Remove
Kılavuz eklemek için seçili dosyayı Veritabanlarından kaldırır."<database_name>" veritabanı ayrıntıları
Eklenecek dosyaların adlarını görüntüler. Dosyanın yol adını doğrulamak veya değiştirmek için Gözat düğmesini (...) seçin.Uyarı
Dosya yoksa İleti sütununda "Bulunamadı" ifadesi görüntülenir. Günlük dosyası bulunamazsa, başka bir dizinde bulunur veya silinmiştir. Veritabanı ayrıntıları kılavuzundaki dosya yolunu doğru konuma işaret etmek için güncelleştirmeniz veya günlük dosyasını kılavuzdan kaldırmanız gerekir. Bir .ndf veri dosyası bulunamazsa, kılavuzdaki yolunu doğru konuma işaret eden şekilde güncelleştirmeniz gerekir.
Özgün Dosya Adı
Veritabanına ait ekli dosyanın adını görüntüler.Dosya Türü
Dosya, Veri veya Günlük türünü gösterir.Geçerli Dosya Yolu
Seçili veritabanı dosyasının yolunu görüntüler. Yol el ile düzenlenebilir.Message
Boş bir ileti veya "Dosya bulunamadı" köprüsü görüntüler.
Transact-SQL kullanma
Veritabanını taşımadan önce
Veritabanını mevcut SQL Server örneğinden ayrılmadan önce taşıyorsanız, veritabanıyla ilişkili dosyaları ve geçerli konumlarını gözden geçirmek için sistem kataloğu görünümünü kullanın sys.database_files . Daha fazla bilgi için bkz. sys.database_files (Transact-SQL).
SQL Server Management Studio'da Yeni Sorgu'yu seçerek Sorgu Düzenleyicisi'ni açın.
Aşağıdaki Transact-SQL betiğini Sorgu Düzenleyicisi'ne kopyalayıp Yürüt'e tıklayın. Bu betik, fiziksel veritabanı dosyalarının konumunu görüntüler. Veritabanını ayırma/ekleme yoluyla taşırken tüm dosyaları hesaba eklediğinizden emin olun.
USE [database_name] GO SELECT type_desc, name, physical_name from sys.database_files;
Ayırmadan, taşımadan ve eklemeden önce veritabanıyla ilişkili tüm dosyaları hesaba eklediğinizden emin olun. Ardından, sonraki bölümdeki ayırma, dosya kopyalama ve veritabanı ekleme adımlarıyla devam edin. Daha fazla bilgi için bkz. Veritabanını Ayırma.
Veritabanı eklemek için
Veritabanı Altyapısı'na bağlanın.
Standart çubuğundan Yeni Sorgu'yu seçin.
CREATE DATABASE deyimini
FOR ATTACHkoşuluyla kullanın.Aşağıdaki örneği kopyalayıp sorgu penceresine yapıştırın ve Yürüt'e tıklayın. Bu örnek AdventureWorks2025 veritabanının tüm dosyalarını ekler ve veritabanını olarak
MyAdventureWorksyeniden adlandırır.CREATE DATABASE MyAdventureWorks ON (FILENAME = 'C:\MySQLServer\AdventureWorks_Data.mdf'), (FILENAME = 'C:\MySQLServer\AdventureWorks_Log.ldf') FOR ATTACH;Veritabanınızda ek veri dosyaları (genellikle .mdf veya .ndf) olabilir ve deyimine
CREATE DATABASE ... FOR ATTACHek dosyalar eklenmesi gerekebilir. Ayrıca, FILESTREAM verilerine yönelik tüm dosya gruplarının da deyimine eklenmesi gerekir. FILESTREAM özellikli veritabanı ekleme hakkında daha fazla bilgi için bkz. FILESTREAM-Enabled Veritabanını taşıma.Uyarı
Alternatif olarak, sp_attach_db veya sp_attach_single_file_db saklı yordamını kullanabilirsiniz. Ancak, bu yordamlar Microsoft SQL Server'ın gelecekteki bir sürümünde kaldırılacaktır. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın. Bunun yerine kullanmanızı
CREATE DATABASE ... FOR ATTACHöneririz.
SQL Server veritabanını yükselttikten sonra
Veritabanı uyumluluk düzeyi
Ekleme yöntemini kullanarak bir veritabanını yükseltdikten sonra veritabanı kullanılabilir duruma gelir. Veritabanı otomatik olarak yeni örneğin iç sürüm düzeyine yükseltilir. Veritabanında tam metin dizinleri varsa, yükseltme işlemiFull-Text Yükseltme Seçeneği sunucu özelliğinin ayarına bağlı olarak bunları içeri aktarır, sıfırlar veya yeniden oluşturur. Yükseltme seçeneği İçeri Aktar veya Yeniden Oluştur olarak ayarlandıysa, yükseltme sırasında tam metin dizinleri kullanılamaz. Dizine alınan veri miktarına bağlı olarak içeri aktarma işlemi birkaç saat sürebilir ve yeniden oluşturma işlemi 10 kat daha uzun sürebilir. Ayrıca, yükseltme seçeneği İçeri Aktar olarak ayarlandığında, tam metin kataloğu kullanılamıyorsa, ilişkili tam metin dizinlerinin yeniden derlendiğini unutmayın.
Yükseltmeden sonra, önceki uyumluluk düzeyi yeni sürümde desteklenmediği sürece, veritabanı uyumluluk düzeyi yükseltmeden önceki uyumluluk düzeyinde kalır. Bu durumda, yükseltilen veritabanı uyumluluk düzeyi desteklenen en düşük uyumluluk düzeyine ayarlanır. Örneğin, bir SQL Server 2019 (15.x) örneğine eklemeden önce uyumluluk düzeyi 90 olan bir veritabanı eklerseniz, yükseltmeden sonra uyumluluk düzeyi 100 olarak ayarlanır ve bu, SQL Server 2019'da desteklenen en düşük uyumluluk düzeyidir (15.x). Daha fazla bilgi için bkz. ALTER DATABASE Uyumluluk Düzeyi (Transact-SQL)
Değişiklik Veri Yakalama (CDC)
Veri Yakalamayı Değiştir (CDC) özelliğinin etkinleştirildiği SQL Server 2014 (12.x) veya önceki bir örneğinden veritabanı ekliyorsanız, Değişiklik Veri Yakalama (CDC) meta verilerini yükseltmek için aşağıdaki komutu yürütmeniz gerekir:
USE <database name>
EXEC sys.sp_cdc_vupgrade
Daha fazla bilgi için bkz. Windows üzerinde SQL Server 2016 veya SQL Server 2017 örneğine CDC özellikli bir veritabanı eklerken oluşan hata.
Ayrıca bakınız
- Veritabanı Ayırma ve Ekleme (SQL Server)
- Veritabanını Ayırma
- CREATE DATABASE (SQL Server Transact-SQL)
- Veritabanı Altyapısı Erişimi için Dosya Sistemi İzinlerini Yapılandırma
Sonraki Adımlar
- Veritabanını başka bir sunucuda kullanılabilir hale getirirken meta verileri yönetme
- VERİTABANINI DEĞİŞTİR Uyumluluk Düzeyi (Transact-SQL)