Aracılığıyla paylaş


Ayırma ve ekleme kullanarak veritabanını taşıma (Transact-SQL)

Şunlar için geçerlidir: SQL Server

Bu konuda, ayrılmış bir veritabanını başka bir konuma taşıma ve SQL Server'da aynı veya farklı bir sunucu örneğine yeniden ekleme açıklanmaktadır. Ancak, ayırma ve ekleme yerine ALTER DATABASE planlı yeniden konumlandırma yordamını kullanarak veritabanlarını taşımanızı öneririz. Daha fazla bilgi için bkz. Kullanıcı Veritabanlarını Taşıma.

Önemli

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.

Procedure

Veritabanını ayırma ve ekleme yöntemlerini kullanarak taşımak için

  1. Veritabanını ayırma. Daha fazla bilgi için bkz. Veritabanını Ayırma.

  2. Windows Gezgini veya Windows Komut İstemi penceresinde, ayrılmış veritabanı dosyasını veya dosyalarını ve günlük dosyasını ya da dosyaları yeni konuma taşıyın.

    Yeni log dosyaları oluşturmayı amaçlasanız bile log dosyalarını taşımalısınız. Bazı durumlarda veritabanının yeniden bağlanması için mevcut günlük dosyaları gerekir. Bu nedenle, veritabanı bunlar olmadan başarıyla eklenene kadar tüm ayrılmış günlük dosyalarını her zaman saklayın.

    Uyarı

    Günlük dosyasını belirtmeden veritabanını eklemeye kalkarsanız, ekleme işlemi günlük dosyasını orijinal konumunda arar. Günlüğün bir kopyası özgün konumda hala varsa, bu kopya eklenir. Özgün günlük dosyasını kullanmaktan kaçınmak için, yeni günlük dosyasının yolunu belirtin veya günlük dosyasının özgün kopyasını kaldırın (yeni konuma kopyaladıktan sonra).

  3. Kopyalanan dosyaları ekleyin. Daha fazla bilgi için bkz. Veritabanı Ekleme.

Example

Aşağıdaki örnek, AdventureWorks2025 veritabanının adlı MyAdventureWorksbir kopyasını oluşturur. Transact-SQL deyimleri, bağlı olduğu sunucu örneğine bağlı bir Sorgu Düzenleyicisi penceresinde yürütülür.

  1. Aşağıdaki Transact-SQL deyimlerini yürüterek AdventureWorks2025 veritabanını ayırın:

    USE master;  
    GO  
    EXEC sp_detach_db @dbname = N'AdventureWorks2022';  
    GO  
    
  2. Seçtiğiniz yöntemi kullanarak veritabanı dosyalarını (AdventureWorks208R2_Data.mdf ve AdventureWorks208R2_log) C:\MySQLServer\AdventureWorks208R2_Data.mdf ve C:\MySQLServer\AdventureWorks208R2_Log.ldf konumuna kopyalayın.

    Önemli

    Üretim veritabanı için veritabanını ve işlem günlüğünü ayrı disklere yerleştirin.

    Ağ üzerinden uzak bilgisayardaki bir diske dosya kopyalamak için uzak konumun evrensel adlandırma kuralı (UNC) adını kullanın. UNC adı\\\\\ biçimindedir. Yerel sabit diske dosya yazarken olduğu gibi, uzak disk üzerindeki bir dosyayı okumak veya yazmak için gereken uygun izinler SQL Server örneği tarafından kullanılan kullanıcı hesabına verilmelidir.

  3. Aşağıdaki Transact-SQL deyimlerini yürüterek taşınan veritabanını ve isteğe bağlı olarak günlüğünü ekleyin:

    USE master;  
    GO  
    CREATE DATABASE MyAdventureWorks   
        ON (FILENAME = 'C:\MySQLServer\AdventureWorks2022_Data.mdf'),  
        (FILENAME = 'C:\MySQLServer\AdventureWorks2022_Log.ldf')  
        FOR ATTACH;  
    GO  
    

    SQL Server Management Studio'da, yeni eklenen bir veritabanı Nesne Gezgini'nde hemen görünmez. Veritabanını görüntülemek için Nesne Gezgini'nde Görünüm'e ve ardından Yenile'ye tıklayın. Veritabanları düğümü Nesne Gezgini'nde genişletildiğinde, yeni eklenen veritabanı artık veritabanları listesinde görünür.

Ayrıca Bkz.

Veritabanı Ayırma ve Ekleme (SQL Server)