Aracılığıyla paylaş


Kullanıcı veritabanlarını taşıma

De SQL Server, dosyaadı yan tümcesinde yeni dosya konumunu belirterek yeni bir konuma veri, günlük ve bir kullanıcı veritabanı tam metin kataloğu dosyaları taşıyabilirsiniz alter database deyimi. Aynı örneği içinde hareketli veritabanı dosyaları bu yöntemin uygulandığı SQL Server. Bir veritabanı başka bir örneğine gitmek için SQL Serverveya başka bir sunucuya Yedekleme ve geri yükleme veya bağlantısını kesin ve işlemleri iliştirme.

[!NOT]

Bazı özellikleri SQL Server Veritabanı Altyapısışeklini değiştirmek, Veritabanı Altyapısıbilgileri veritabanı dosyalarında saklar. Bu özellikler belirli sürümleri için kısıtlı SQL Server. Bu özellikler içeren bir veritabanı için bir sürümüne taşınamaz SQL Server, bunları desteklemeyen. Kullanım sys.dm_db_persisted_sku_featuresdinamik yönetimi görünüm geçerli veritabanında etkin baskı özgü tüm özellikleri listelemek için.

Bu konudaki yordamlar, veritabanı dosyaları mantıksal adını gerektirir. Sorgu adı almak için namesütununda sys.master_files Katalog görünümü.

[!NOT]

Bir veritabanı başka bir sunucu kopyası üzerine taşıdığınızda, kullanıcılar ve uygulamalar, tutarlı bir deneyim sağlamak için bazı veya tüm veritabanı meta veri yeniden gerekebilir. Daha fazla bilgi için, bkz. Bir veritabanı başka bir sunucu örneği (SQL Server) üzerinde kullanılabilir yapma olduğunda meta veri yönetme.

Planlı yerleştirme prosedürü

Veri taşımak veya planlı yerleştirme bir parçası olarak günlük dosyası için şu adımları izleyin:

  1. Aşağıdaki deyimini çalıştırın.

    ALTER DATABASE database_name SET OFFLINE;
    
  2. Dosya veya dosyaların yeni konuma taşıyın.

  3. Taşınan her dosya için aşağıdaki deyimi çalıştırın.

    ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name, FILENAME = 'new_path\os_file_name' );
    
  4. Aşağıdaki deyimini çalıştırın.

    ALTER DATABASE database_name SET ONLINE;
    
  5. Dosya değişikliği, aşağıdaki sorguyu çalıştırarak doğrulayın.

    SELECT name, physical_name AS CurrentLocation, state_desc
    FROM sys.master_files
    WHERE database_id = DB_ID(N'<database_name>');
    

Zamanlanmış Disk bakım için yerleştirme

Zamanlanmış disk bakım işlemlerinin bir parçası bir dosya konumlarını değiştirin için şu adımları izleyin:

  1. Taşınacak her dosya için aşağıdaki deyimi çalıştırın.

    ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name , FILENAME = 'new_path\os_file_name' );
    
  2. Örneğini durdurmak SQL Serverveya bakım yapmak için sistemi kapatma. Daha fazla bilgi için, bkz. Stopping Services.

  3. Dosya veya dosyaların yeni konuma taşıyın.

  4. Örneğini yeniden SQL Serverya da sunucu. Daha fazla bilgi için, bkz. Starting and Restarting Services.

  5. Dosya değişikliği, aşağıdaki sorguyu çalıştırarak doğrulayın.

    SELECT name, physical_name AS CurrentLocation, state_desc
    FROM sys.master_files
    WHERE database_id = DB_ID(N'<database_name>');
    

Hata kurtarma yordamı

Bir donanım hatası nedeniyle dosya taşınması gerekir, dosyayı yeni bir konuma taşımak için aşağıdaki adımları kullanın.

Önemli notÖnemli

Veritabanı başlatılamıyor, yani şüpheli modunda veya unrecovered bir durum, yalnızca üyesi olduğu sysadminsabit rol dosya taşıyabilirsiniz.

  1. Örneğini durdurmak SQL Servero başlarsa.

  2. Örneğini başlatmak SQL Servergirerek yalnızca ana kurtarma modunda aşağıdakilerden birini komut isteminde komutlar.

    • Varsayılan (mssqlserver) örneği için aşağıdaki komutu çalıştırın.

      NET START MSSQLSERVER /f /T3608
      
    • Adlandırılmış bir örneği için aşağıdaki komutu çalıştırın.

      NET START MSSQL$instancename /f /T3608
      

    Daha fazla bilgi için, bkz. Start an Instance of SQL Server (net Commands).

  3. Taşınacak her dosya için kullanmak sqlcmdkomutları veya SQL Server Management Studioiçin aşağıdaki deyimi çalıştırın.

    ALTER DATABASE database_name MODIFY FILE( NAME = logical_name , FILENAME = 'new_path\os_file_name' );
    

    Nasıl kullanılacağı hakkında daha fazla bilgi için sqlcmdyarar görmek, Sqlcmd yardımcı programını kullanın.

  4. Çıkış sqlcmdyardımcı programını veya SQL Server Management Studio.

  5. Örneğini durdurmak SQL Server.

  6. Dosya veya dosyaların yeni konuma taşıyın.

  7. Örneğini başlatmak SQL Server. Örneğin: NET START MSSQLSERVER.

  8. Dosya değişikliği, aşağıdaki sorguyu çalıştırarak doğrulayın.

    SELECT name, physical_name AS CurrentLocation, state_desc
    FROM sys.master_files
    WHERE database_id = DB_ID(N'<database_name>');
    

Örnekler

Aşağıdaki örnek AdventureWorks2012 günlük dosyası Planlı yerleştirme bir parçası olarak yeni bir konuma.

USE master;
GO
-- Return the logical file name.
SELECT name, physical_name AS CurrentLocation, state_desc
FROM sys.master_files
WHERE database_id = DB_ID(N'AdventureWorks2012')
    AND type_desc = N'LOG';
GO
ALTER DATABASE AdventureWorks2012 SET OFFLINE;
GO
-- Physically move the file to a new location.
-- In the following statement, modify the path specified in FILENAME to
-- the new location of the file on your server.
ALTER DATABASE AdventureWorks2012 
    MODIFY FILE ( NAME = AdventureWorks2012_Log, 
                  FILENAME = 'C:\NewLoc\AdventureWorks2008R2_Log.ldf');
GO
ALTER DATABASE AdventureWorks2012 SET ONLINE;
GO
--Verify the new location.
SELECT name, physical_name AS CurrentLocation, state_desc
FROM sys.master_files
WHERE database_id = DB_ID(N'AdventureWorks2012')
    AND type_desc = N'LOG';

Ayrıca bkz.

Başvuru

alter veritabanı (Transact-sql)

Veritabanı (Transact-sql) oluştur

Yedekleme (Transact-sql)

RESTORE (Transact-SQL)

Kavramlar

Veritabanı bağlantısını kesin ve (SQL Server) iliştirme

Sistem veritabanlarını taşıma

Stopping Services

Diğer Kaynaklar

Modifying a Database

Veritabanı dosyaları taşıma

Starting and Restarting Services