Share via


sistem veritabanları taşıma

Bu konu sistem veritabanları taşıma açıklanır. SQL Server. Taşınma sistem veritabanları, aşağıdaki durumlarda yararlı olabilir:

  • Hata kurtarma.Örneğin, veritabanı şüpheli modunda veya kapatın kapalı bir donanım hatası nedeniyle.

  • Planlanan yerleştirme.

  • Zamanlanmış bir disk bakım yerleştirme.

Aşağıdaki yordamlar, aynı örneğini içinde taşıma veritabanı dosyaları için geçerlidir SQL Server. Başka örnek için bir veritabanına taşımak için SQL Server veya başka bir sunucuya yedek ve geri yükleme or ayırma ve iliştirme işlemleri.

Bu konudaki yordamlar, veritabanı dosyaları mantıksal adını gerektirir.Adı'nı edinmek için , ad sütununda query sys.master_files kataloğunu görüntüleyin.

Important noteImportant Note:

Sistem veritabanı taşıyın ve daha sonra asıl veritabanı yeniden, yeniden oluşturma işlemi, tüm sistem veritabanları varsayılan konumlarına yüklediği için sistem veritabanı yeniden taşımanız gerekir.asıl veritabanı yeniden oluşturma hakkında daha fazla bilgi için "Rebuilding sistem veritabanları kayıt defterini yeniden oluşturma," konusuna bakın. Nasıl Yapılır: SQL Server 2008 komut istemi isteminden yükleyin..

Planlanan yerleştirme ve zamanlanmış disk bakım yordam

Bir Sistem veritabanına veri taşımak ya da bir planlı bir yeniden konumlandırma veya zamanlanmış bakım işlemini bir parçası olarak günlük dosyası hakkında bilgi için aşağıdaki adımları izleyin.Bu yordam, asıl dışındaki tüm sistem veritabanları ve kaynak veritabanları için geçerlidir.

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

    ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name , FILENAME = 'new_path\os_file_name' )
    
  2. örnek durdur SQL Server veya, bakım yapmak sistemi kapat. Daha fazla bilgi için bkz:Hizmetleri Durduruluyor.

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

  4. örnek yeniden başlatıldıktan SQL Server veya sunucu. Daha fazla bilgi için bkz:Başlangıç ve bu hizmetleri yeniden başlatılıyor.

  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>');
    

Msdb veritabanını taşınırsa ve örnek SQL Server yapılandırıldı Veritabanı posta, aşağıdaki ek adımları tamamlayın.

  1. Yükseltilecek programın Service Broker msdb veritabanını aşağıdaki sorguyu çalıştırarak etkinleştirildi.

    SELECT is_broker_enabled 
    FROM sys.databases
    WHERE name = N'msdb';
    

    Etkinleştirme hakkında daha fazla bilgi için Service Broker, bkz: ALTER DATABASE Transact-SQL).

  2. Bir sınama posta göndererek veritabanı posta çalışmakta olduğunu doğrulayın.Daha fazla bilgi için bkz:Veritabanı posta sorun giderme.

Hata kurtarma yordamı

Bir donanım hatası nedeniyle dosya taşınmış, dosyayı yeni bir konuma yeniden konumlandırmak için şu adımları izleyin.Bu yordam, asıl dışındaki tüm sistem veritabanları ve kaynak veritabanları için geçerlidir.

Important noteImportant Note:

Veritabanı, kuşkulu modunda veya unrecovered durumunda olduğu olan başlatılamıyor, yalnızca sabit rolünün sysadmin üyeleri dosyayı taşıyabilirsiniz.

  1. örnek durdur SQL Server başlatılmışsa.

  2. örnek başlatın. SQL Server komut istemi isteminde aşağıdaki komutlardan birini girerek yalnızca ana kurtarma modunda. Bu komutlarda belirtilen parametreleri büyük/küçük durum duyarlıdır.Gösterilen parametreler belirtilir, komutları başarısız.

    • Varsayılan (MSSQLSERVER) örnek için aşağıdaki komutu çalıştırın:

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

      NET START MSSQL$instancename /f /T3608
      

    Daha fazla bilgi için bkz:Nasıl Yapılır: Bir örnek, SQL Server (net komutları) başlatın..

  3. Taşınacak her dosya için kullanın. Sqlcmd komutları ya daSQL Server Management Studio aşağıdaki ifadeyi çalıştırmak için .

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

    Kullanma hakkında daha fazla bilgi için Sqlcmd Bkz: programınıSqlcmd yardımcı programını kullanma.

  4. Çıkış Sqlcmd yardımcı programı ya daSQL Server Management Studio.

  5. örnek durdur SQL Server. Örneğin, çalıştırma NET STOP MSSQLSERVER.

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

  7. örnek yeniden başlatıldıktan SQL Server. Örneğin, çalıştırma 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>');
    

Asıl veritabanını taşıma

asıl veritabanı taşımak için aşağıdaki adımları izleyin.

  1. Gelen START menüsü, Tüm Programlar, point to Microsoft SQL Server, point to Yapılandırma araçları sonra'ı tıklatınSQL Server Configuration Manager (ingilizce).

  2. Içinde SQL Server hizmetleri düğüm örneğini sağ tıklatın.SQL Server (örneğin, SQL Server (MSSQLSERVER)) seçin.özellikleri.

  3. Içinde **SQL Server ((ingilizce)**instance_name ) özellikleri iletişim kutusunda, tıklatın.Gelişmiş tab.

  4. Düzenleme Başlangıç parametreleri asıl veritabanı veri ve günlük dosyaları için planlanan konumu işaret edin ve ' değerleriTamam.Hata günlüğü dosyası taşıma isteğe bağlıdır.

    Veri dosyası için parametre değeri gelmelidir -d parametre ile değer günlük dosyası için izlemeniz gereken -l Parametre. Aşağıdaki örnek, ana veriler ve günlük dosyalarının varsayılan konumu parametre değerlerini gösterir.

    -dC:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\
    master.mdf;-eC:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\
    LOG\ERRORLOG;-lC:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\
    DATA\mastlog.ldf
    

    ana veriler ve günlük dosyaları için bir planlı yerleştirme ise E:\SQLData, parametre değerlerini aşağıdaki gibi değiştirilmesi:

    -dE:\SQLData\master.mdf;-eC:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\LOG\ERRORLOG;-lE:\SQLData\mastlog.ldf
    
  5. Örneği durdur SQL Server örnek adı sağ tıklatarak ve seçme DUR.

  6. Master.mdf ve mastlog.ldf dosyalarını yeni konuma taşıyın.

  7. örnek yeniden başlatıldıktan SQL Server.

  8. Dosya değişikliği asıl veritabanı için 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('master');
    GO
    

Kaynak veritabanını taşıma

Içinde SQL Server 2008, kaynak veritabanının konumu <nedeniyle oluşur>: \Program Files\Microsoft SQL Server\MSSQL10.<>\MSSQL\Binn\ instance_name.Veritabanında taşınamıyor.

Örnekler

C.Tempdb veritabanını taşıma

Aşağıdaki örnek taşır tempdb planlı bir yeniden konumlandırma bir parçası olarak yeni bir konuma veri ve günlük dosyaları.

Not

Tempdb yeniden olduğundan her saat örnek SQL Server ise, başlatıldı, fiziksel olarak veri ve günlük dosyalarını taşımak zorunda değildir. Adım 3'te hizmet yeniden başlatıldığında, dosyalar yeni konumda oluşturulur.Hizmet yeniden başlatılıncaya kadar veri ve günlük dosyalarının varolan konumda tempdb devam eder.

  1. Mantıksal dosya adlarını belirlemek tempdb Veritabanı ve geçerli disk konumlarını.

    SELECT name, physical_name AS CurrentLocation
    FROM sys.master_files
    WHERE database_id = DB_ID(N'tempdb');
    GO
    
  2. Her dosyanın konumunu kullanarak değiştirme ALTER DATABASE.

    USE master;
    GO
    ALTER DATABASE tempdb 
    MODIFY FILE (NAME = tempdev, FILENAME = 'E:\SQLData\tempdb.mdf');
    GO
    ALTER DATABASE tempdb 
    MODIFY FILE (NAME = templog, FILENAME = 'F:\SQLLog\templog.ldf');
    GO
    
  3. Durdurun ve yeniden örnek, SQL Server.

  4. Dosya değişikliği doğrulayın.

    SELECT name, physical_name AS CurrentLocation, state_desc
    FROM sys.master_files
    WHERE database_id = DB_ID(N'tempdb');
    
  5. DELETE tempdb.mdf ve templog.ldf dosyaları özgün konumlarına.

Değişiklik Geçmişi

Güncelleştirilmiş içerik

"Taşınma kaynak kaynak veritabanını taşınamaz belirtmek için veritabanı" bölümü güncelleştirildi.