Sistem veritabanlarını taşıma

Bu konuda sistem veritabanları taşıma açıklar SQL Server.sistem veritabanları taşıma aşağıdaki durumlarda yararlı olabilir:

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

  • Planlı yerleştirme.

  • Zamanlanmış disk bakım için yerleştirme.

Aynı içinde veritabanı dosyalarını taşımak için aşağıdaki yordamları uygulayın örnek , SQL Server.Bir veritabanı başka bir yere taşımak için örnek , SQL Server veya başka bir sunucuya yedek ve geri yükleme veya Ayır ve iliştir işlemleri.

Bu konudaki yordamlarda, iste mantıksal ad veritabanı dosyaları.Sorgu adı almak için name sütun , sys.master_files Katalog görünümü.

Önemli notÖnemli

Bir sistem veritabanı taşımak ve daha sonra yeniden master veritabanı, gereken taşıma sistem veritabanı yeniden çünkü yeniden oluşturma işlemi yükler tüm sistem veritabanları için kendi varsayılan konum.Yeniden oluşturma hakkında daha fazla bilgi için master veritabanı, bkz: "Rebuilding sistem veritabanları, kayıt defterini yeniden inşa etmek" in Nasıl yapılır: Komut İsteminden SQL Server 2008 R2 yükleme.

Planlı yerleştirme ve zamanlanmış Disk Bakım yordamı

Bir sistem veritabanı verileri taşımak veya planlı yerleştirme veya zamanlanmış bakım işleminin bir parçası olarak günlük dosyası için aşağıdaki adımları izleyin.Bu yordam tüm için geçerlidir sistem veritabanları dışında master ve Resource veritabanları.

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

    ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name , FILENAME = 'new_path\os_file_name' )
    
  2. Stop örnek , SQL Server ya da gerçekleştirilecek sistemi KapatBakım. Daha fazla bilgi için bkz: Hizmetleri durdurma.

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

  4. Yeniden örnek , SQL Server veya sunucu.Daha fazla bilgi için bkz: Başlangıç ve hizmetlerini yeniden başlatma.

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

If the msdb database is moved and the instance of SQL Server is configured for Database Mail, complete these additional steps.

  1. Emin olun Service Broker için etkin msdb Veritabanı'nı aşağıdaki sorgu.

    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. Veritabanı posta sınama posta göndererek çalışır durumda 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şınması, yeni bir konuma dosya konumunu değiştirmek için aşağıdaki adımları izleyin.Bu yordam tüm için geçerlidir sistem veritabanları dışında master ve Resource veritabanları.

Önemli notÖnemli

Veritabanı başlatılamıyor, yani şüpheli modunda ya da kurtarılmamış durumda, yalnızca üyesi olduğu sysadmin sabit rolü taşıyabilirsiniz dosya.

  1. Stop örnek , SQL Server onu başlarsa.

  2. Başlat örnek , SQL Server komut istemi aşağıdaki komutlardan birini girerek yalnızca ana kurtarma modundaBu komutlarda belirtilen parametreler durum duyarlıdır.Görüldüğü gibi parametreleri belirtilirse, komut 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.

  3. Taşınacak her dosya için kullanmak sqlcmd komutları veya SQL Server Management Studio çalışacak aşağıdaki deyim.

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

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

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

  5. Stop the örnek of SQL Server.Örneğin, NET STOP MSSQLSERVER.

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

  7. Yeniden örnek , 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>');
    

Asıl veritabanını taşıma

Taşımak için master veritabanı, izleyin bu adımları.

  1. Dan Start menüsü, Tüm Programlar, üzerine Microsoft sql Server, üzerine Yapılandırma araçlarıve i sql Server Configuration Manager.

  2. De sql Server Hizmetleri düğüm, sağ örnek , SQL Server (örneğin, sql Server (mssqlserver)) ve özellikleri.

  3. De sql Server (Örnek_adı) özelliklerini iletişim kutusunu tıklatın Gelişmiş sekmesi.

  4. Düzenleme Başlangıç parametreleri değerleri için planlanan konuma işaret edecek şekilde master veritabanı veri ve günlük dosyaları ve click Tamam.Taşıma hata günlüğü dosyasına isteğe bağlı.

    Parametre değeri veri dosyası için izlemeniz gereken -d parametre ve günlük dosyası için değer gerekir izleyin -l parametresi.Aşağıdaki örnek, varsayılan konumu, parametre değerlerini gösterir master veri ve günlük dosyaları.

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

    If the planned relocation for the master data and log files is E:\SQLData, the parameter values would be changed as follows:

    -dE:\SQLData\master.mdf;-eC:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\LOG\ERRORLOG;-lE:\SQLData\mastlog.ldf
    
  5. Örneğini durdurmak SQL Server örnek adı sağ tıklatıp seçerek Dur.

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

  7. Yeniden örnek , SQL Server.

  8. Doğrulamak için dosya değişikliği master Veritabanı'nı aşağıdaki sorgu.

    SELECT name, physical_name AS CurrentLocation, state_desc
    FROM sys.master_files
    WHERE database_id = DB_ID('master');
    GO
    

Kaynak veritabanını taşıma

Konumu Resource veritabanı <sürücü>: \Program Files\Microsoft sql Server\MSSQL10_50.<Örnek_adı>\MSSQL\Binn\.Veritabanı taşınamaz.

Örnekler

A.Tempdb veritabanını taşıma

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

Not

Çünkü tempdb oluşturulur örnek her saat SQL Server olan başladı, fiziksel olarak, verileri taşımak ve günlük dosyaları. sizde değil3. Adımda hizmet yeniden başlatıldığında yeni konumda dosyalar oluşturulur.hizmet yeniden başlatılıncaya kadar tempdb devam eder kullanın veri ve günlük dosyaları varolan konum.

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

    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ştirmek 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. Durdurma ve yeniden başlatma ö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. Sil tempdb.mdf ve templog.ldf dosyaları özgün konum.