Databázu zo staršej verzie programu SQL Server stane nepoužiteľný, ak pripojíte sa na inštanciu programu SQL Server 2012

Preklady článku Preklady článku
ID článku: 2710782 - Zobraziť produkty, ktorých sa tento článok týka.
Rozbaliť všetko | Zbaliť všetko

Na tejto stránke

PRIZNAKY

Uvažujme o nasledujúcom prípade:
  • Nainštalujete inštancia programu Microsoft SQL Server 2005, Microsoft SQL Server 2008 alebo Microsoft SQL Server 2008 R2.
  • Inštancia služby SQL Server nazýva INST1 a hostiteľom databázy, ktorý sa nazýva Test_RO_FG_DB.
  • Databáza obsahuje nasledujúce skupiny súborov:
    • Primárny
    • RO_FG
    • RW_FG
  • Filegroup, ktorý sa nazýva RO_FG je označený ako READ_ONLY.
  • Musíte nainštalovať novú inštanciu programu Microsoft SQL Server 2012. Tejto inštancii programu SQL Server 2012 sa nazýva INST2.
  • Odpojíte databázy Test_RO_FG_DB z INST1.
  • Môžete skúsiť pripojiť databázu Test_RO_FG_DB k INST2.
  • Zobrazí chybové hlásenie, ktoré sa podobá nasledujúcemu hláseniu:
    Msg 3415, úroveň 16, stav 2, riadok 1
    Databáza "Test_RO_FG_DB" sa nedá inovovaná, pretože je len na čítanie, má iba na čítanie súborov alebo používateľ nemá povolenia na úpravu niektorých súborov. Skontrolujte databázu alebo súbory zapisovateľné a znova spustite vymáhania.
  • Môžete skúsiť znova pripojte Test_RO_FG_DB databázy INST1.
V tomto scenári, nie je možné znova pripojte databázy INST1. A zobrazí nasledujúce chybové hlásenie v denníku chýb servera SQL Server:

spid52 22:55:45.37 2012-05-03 rozbehu databázy "Test_RO_FG_DB".
2012-05-03 22:55:45.78 spid52 * *******************************************************************************
spid52 22:55:45.78 2012-05-03 * začať výpisu zásobníka:
spid52 22:55:45.78 2012-05-03 * 05, 03 a 12 22: 55: 45 spid 52
spid52 22:55:45.78 2012-05-03 * umiestnenie: logscan.cpp:1490
spid52 22:55:45.78 2012-05-03 * výraz: NEPRAVDIVÉ
spid52 22:55:45.78 2012-05-03 * SPID: 52
2012-05-03 22:55:45.78 spid52 * proces s Identifikáciou: 9156
spid52 22:55:45.78 2012-05-03 * popis: Neplatný prepínač hodnoty
spid52 22:55:45.78 2012-05-03 * vstup medzipamäte 98 bajty -
spid52 22:55:45.78 2012-05-03 * zmeniť databázu Test_RO_FG_DB nastaviť on-line
2012-05-03 22:55:51.05 spid52 chyba: 17065, závažnosť: 16, štát: 1.
2012-05-03 22:55:51.05 spid52 SQL Server tvrdenie: súbor: <logscan.cpp>, riadok = 1490 zlyhala tvrdenie = "FALSE" Neplatný prepínač hodnota. Táto chyba môže byť, týkajúce sa načasovania. Ak chyba pretrváva po opakovane vykonať vyhlásenie, použite DBCC CHECKDB skontrolujte databázu pre konštrukčnú celistvosť alebo reštartovať server, aby dáta v pamäti štruktúr nie je poškodené.
2012-05-03 22:55:51.10 spid52 chyba: 3624, závažnosť: 20, štát: 1.
2012-05-03 22:55:51.10 spid52 a kontrola systému tvrdenie zlyhal. Skontrolujte denník chýb servera SQL Server pre detaily. Zvyčajne zlyhanie pri vyhodnocovaní výrazu je spôsobená softvér chybu alebo údaje korupcie. Ak chcete vyhľadať databázu korupcii zvážiť beží DBCC CHECKDB. Ak ste sa dohodli výpisy poslať Microsoft počas inštalácie, mini výpis sa odošlú do spoločnosti Microsoft. Aktualizácia môže byť k dispozícii od spoločnosti Microsoft najnovší balík Service Pack alebo QFE z technickej podpory.
2012-05-03 22:56:09.16 spid52 chyba: 3414, závažnosť: 21 štátu: 1.
2012-05-03 22:56:09.16 spid52 chyba vyskytla počas obnovy databázy "Test_RO_FG_DB" (databáza ID 19) zabraňuje reštartovanie. Diagnostika chýb obnovy a opraviť alebo obnoviť zo známych dobrý záložnej kópie. Ak chyby nie sú opravené alebo očakávať, obráťte sa na technickú podporu.
2012-05-03 22:56:09.18 spid52 chyba: 928, závažnosť: 20, štát: 1.
2012-05-03 22:56:09.18 spid52 počas aktualizácie databázy zvýšený výnimkou 926 závažnosti 14 štátu 1, adresa 0000000000F6A971. Použite výnimkou číslo chcete zistiť príčinu.</logscan.cpp>


Poznámka Tento problém sa vyskytuje len, keď sa pokúsite pripojiť databázu, ktorá obsahuje filegroup, ktorá je označená ako READ_ONLY. Tento problém sa nevyskytuje pri pokuse posunúť READ_ONLY databázy, v ktorej všetky údaje, ktoré je označené READ_ONLY.

PRICINA

Tento problém sa vyskytuje, pretože SQL Server 2012 nerozpozná iba na čítanie filegroup pred začatím možnosť databázu inovovať na. Po inovácii začala SQL Server 2012 píše položky do denníka transakcií. Staršie verzie nemôže čítať nových položiek denníka transakcií.

STAV

Spoločnosť Microsoft potvrdila, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v časti „vzťahuje sa na".

RIESENIE

Kumulatívna aktualizácia informácií

Server SQL Server 2012

Oprava tohto problému bol prvýkrát vydaný v kumulatívnej aktualizácii 2 pre SQL Server 2012. Ďalšie informácie o tomto Kumulatívna aktualizácia balíka nájdete po kliknutí na nasledovné číslo článku databázy Microsoft Knowledge Base:
2703275 Kumulatívna aktualizácia balíka 2 pre SQL Server 2012
Poznámka Pretože stavia sú kumulatívne, každá nová verzia opraviť obsahuje všetky rýchlych a všetky opravy zabezpečenia, ktoré boli zahrnuté do predchádzajúceho SQL Server 2012 opraviť uvoľnenia. Spoločnosť Microsoft odporúča, aby ste zvážili, uplatňovanie najnovších opraviť uvoľnenie, ktoré túto rýchlu opravu obsahuje. Ďalšie informácie nájdete po kliknutí na nasledovné číslo článku publikovaného v Microsoft Knowledge Base:
2692828 SQL Server 2012 stavia, ktoré boli vydané po SQL Server 2012 bola uvoľnená
Musíte použiť SQL Server 2012 rýchla montáž SQL Server 2012.

RIEŠENIE

Obísť tento problém, použite jednu z nasledovných metód.

Metóda 1

Obnoviť zálohu databázy z INST1 na INST2.

Poznámka Problém, ktorý je popísaný v časti „príznaky"sa nevyskytuje v SQL Server 2012, keď obnovíte zálohu zo staršej verzie.

Metóda 2

Vykonajte priamu inováciu zo staršej verzie SQL Server SQL Server 2012.

Metóda 3

Premiestniť databázu, ktorá obsahuje iba na čítanie filegroup na inštanciu programu SQL Server 2012. To chcete urobiť, postupujte podľa týchto krokov.

Poznámka Vykonajte kroky 4 až 11 na serveri so spustenou službou SQL Server 2012. Napríklad, vykonajte kroky 4 až 11 na INST2.
  1. Na INST1, odpojiť databázy. Napríklad, odpojiť Test_RO_FG_DB databázy.
  2. Presúvať databázové súbory na server, ktorý hostí INST2 stupňa.
  3. Pokúste sa pripojiť databázu na INST2. Nasledujúci kód vzorka ukazuje, ako to urobiť:
    CREATE DATABASE [Test_RO_FG_DB] ON PRIMARY ( NAME = N'Test_RO_FG', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\Test_RO_FG.mdf' ), 
    FILEGROUP [RO_FG] ( NAME = N'Test_RO_FG_File1', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\Test_RO_FG_File1.ndf' ), 
    FILEGROUP [RW_FG] ( NAME = N'Test_RW_FG_File1', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\Test_RW_FG_File1.ndf' )
    LOG ON ( NAME = N'Test_RO_FG_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\Test_RO_FG_log.ldf' )
    FOR ATTACH;
    GO
    Poznámka Dostanete 3425 chybové hlásenie, ktoré je spomenuté v časti „príznaky".
  4. Do príkazového riadka, premenujte súbory databázy. Nasledujúci príkaz vzorka ukazuje, ako to urobiť:
    rename Test_RO_FG.mdf original_Test_RO_FG.mdf
    rename Test_RO_FG_File1.ndf original_Test_RO_FG_File1.ndf
    rename Test_RW_FG_File1.ndf original_Test_RW_FG_File1.ndf
    rename Test_RO_FG_log.ldf original_Test_RO_FG_log.ldf
  5. V SQL Server Management Studio, vytvoriť databázu, ktorá má rovnaké meno a často fyzickú štruktúru databázy, ktoré chcete pripojiť. Nasledujúci kód vzorka ukazuje, ako to urobiť:
    CREATE DATABASE [Test_RO_FG_DB] ON PRIMARY ( NAME = N'Test_RO_FG_DB', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\Test_RO_FG_DB.mdf' , SIZE = 4072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ), 
    FILEGROUP [RO_FG] ( NAME = N'Test_RO_FG_File1', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\Test_RO_FG_File1.ndf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ), 
    FILEGROUP [RW_FG] ( NAME = N'Test_RW_FG_File1', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\Test_RW_FG_File1.ndf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
    LOG ON ( NAME = N'Test_RO_FG_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\Test_RO_FG_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
    GO
  6. Nastavte databázy v režime offline. Vykonáte to spustením nasledovného príkazu:
    ALTER DATABASE [Test_RO_FG_DB] SET OFFLINE
    GO
  7. Do príkazového riadka, premenujte súbory v novej databáze. Nasledujúci príkaz vzorka ukazuje, ako to urobiť:
    rename Test_RO_FG.mdf new_Test_RO_FG.mdf
    rename Test_RO_FG_File1.ndf new_Test_RO_FG_File1.ndf
    rename Test_RW_FG_File1.ndf new_Test_RW_FG_File1.ndf
    rename Test_RO_FG_log.ldf new_Test_RO_FG_log.ldf
  8. Do príkazového riadka, premenujte súbory databázy, ktoré ste presunuli v kroku 2. Premenujte súbory zodpovedali databázy, ktoré ste vytvorili v kroku 4. Nasledujúci príkaz vzorka ukazuje, ako to urobiť:
    rename original_Test_RO_FG.mdf Test_RO_FG.mdf 
    rename original_Test_RO_FG_File1.ndf Test_RO_FG_File1.ndf 
    rename original_Test_RW_FG_File1.ndf Test_RW_FG_File1.ndf 
    rename original_Test_RO_FG_log.ldf Test_RO_FG_log.ldf
  9. Nastavte databázy ONLINE. Vykonáte to spustením nasledovného príkazu:
    ALTER DATABASE [Test_RO_FG_DB] SET ONLINE
    GO
  10. Overte, či je on-line databázy a obnoviť službu sprostredkovateľ funkčnosť.
  11. Odstrániť súbory databázy, ktoré nie sú potrebné. Nasledujúci príkaz vzorka ukazuje, ako to urobiť:
    del /P new_Test_RO_FG.mdf
    del /P new_Test_RO_FG_File1.ndf
    del /P new_Test_RW_FG_File1.ndf
    del /P new_Test_RO_FG_log.ldf
Metóda 4

Znova pripojte databázy, ktoré obsahuje iba na čítanie filegroup na skoršie inštanciu servera SQL Server. To chcete urobiť, postupujte podľa týchto krokov.

Poznámky
  • Databáza obsahuje nové položky denníka transakcií z Aktualizßcia zlyhala.
  • Vykonajte kroky 3 až 10 na serveri je spustená staršia verzia programu SQL Server. Napríklad, vykonajte kroky 3 až 10 na INST1.

  1. Presunúť súbory databázy na inštanciu programu SQL Server, ktorý je hostiteľom INST1.
  2. Pokúste sa pripojiť databázu na INST1. Nasledujúci kód vzorka ukazuje, ako to urobiť:
    CREATE DATABASE [Test_RO_FG_DB] ON PRIMARY ( NAME = N'Test_RO_FG_DB', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\DATA\Test_RO_FG_DB.mdf' ), 
    FILEGROUP [RO_FG] ( NAME = N'Test_RO_FG_File1', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\DATA\Test_RO_FG_File1.ndf' ), 
    FILEGROUP [RW_FG] ( NAME = N'Test_RW_FG_File1', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\DATA\Test_RW_FG_File1.ndf' )
    LOG ON ( NAME = N'Test_RO_FG_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\DATA\Test_RO_FG_log.ldf' )
    FOR ATTACH
    GO
    Poznámka Zobrazí sa chybové hlásenie 3624, ktorý je popísaný v časti „príznaky". Dostanete chybové hlásenie 1813.
  3. Do príkazového riadka, premenujte súbory databázy na INST1. Nasledujúci príkaz vzorka ukazuje, ako to urobiť:
    rename Test_RO_FG.mdf original_Test_RO_FG.mdf
    rename Test_RO_FG_File1.ndf original_Test_RO_FG_File1.ndf
    rename Test_RW_FG_File1.ndf original_Test_RW_FG_File1.ndf
    rename Test_RO_FG_log.ldf original_Test_RO_FG_log.ldf
  4. V SQL Server Management Studio, vytvoriť databázu, ktorá má rovnaké meno a často fyzickú štruktúru databázy, ktoré chcete pripojiť. Nasledujúci kód vzorka ukazuje, ako to urobiť:
    CREATE DATABASE [Test_RO_FG_DB] ON PRIMARY ( NAME = N'Test_RO_FG_DB', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\DATA\Test_RO_FG_DB.mdf' , SIZE = 4072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ), 
    FILEGROUP [RO_FG] ( NAME = N'Test_RO_FG_File1', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\DATA\Test_RO_FG_File1.ndf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ), 
    FILEGROUP [RW_FG] ( NAME = N'Test_RW_FG_File1', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\DATA\Test_RW_FG_File1.ndf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
    LOG ON ( NAME = N'Test_RO_FG_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\DATA\Test_RO_FG_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
    GO
  5. Nastavte databázy v režime offline. Vykonáte to spustením nasledovného príkazu:
    ALTER DATABASE [Test_RO_FG_DB] SET OFFLINE
    GO
  6. Do príkazového riadka, premenujte súbory v novej databáze. Nasledujúci príkaz vzorka ukazuje, ako to urobiť:
    rename Test_RO_FG.mdf new_Test_RO_FG.mdf
    rename Test_RO_FG_File1.ndf new_Test_RO_FG_File1.ndf
    rename Test_RW_FG_File1.ndf new_Test_RW_FG_File1.ndf
    rename Test_RO_FG_log.ldf new_Test_RO_FG_log.ldf
  7. Do príkazového riadka, premenujte súbory databázy, ktoré ste presunuli v kroku 2. Premenujte súbory zodpovedali databázy, ktoré ste vytvorili v kroku 4. Nasledujúci príkaz vzorka ukazuje, ako to urobiť:
    rename original_Test_RO_FG.mdf Test_RO_FG.mdf 
    rename original_Test_RO_FG_File1.ndf Test_RO_FG_File1.ndf 
    rename original_Test_RW_FG_File1.ndf Test_RW_FG_File1.ndf 
    rename original_Test_RO_FG_log.ldf Test_RO_FG_log.ldf
  8. Nastavenie databázy do núdzového režimu a vykonať opravu. Vykonáte to spustením nasledovného príkazu.

    Poznámka Denníky transakcií databázy sú prebudovaná počas tohto kroku. To môže viesť k strate údajov. Preto odporúčame, aby si zálohujte databázu pred vykonaním tohto kroku.
    ALTER DATABASE Test_RO_FG_DB SET EMERGENCY
    GO
    ALTER DATABASE Test_RO_FG_DB SET SINGLE_USER
    GO
    DBCC CHECKDB (Test_RO_FG_DB, repair_allow_data_loss) WITH ALL_ERRORMSGS
    GO
    ALTER DATABASE Test_RO_FG_DB SET MULTI_USER
    GO
  9. Overte, či je on-line databázy a obnoviť službu sprostredkovateľ funkčnosť.
  10. Odstrániť súbory databázy, ktoré nie sú potrebné. Nasledujúci príkaz vzorka ukazuje, ako to urobiť:
    del /P new_Test_RO_FG.mdf
    del /P new_Test_RO_FG_File1.ndf
    del /P new_Test_RW_FG_File1.ndf
    del /P new_Test_RO_FG_log.ldf

DALSIE INFORMACIE

Existuje niekoľko krokov, ktoré sa vyskytujú pri databázy je pripojený na inštanciu programu SQL Server. Tieto kroky zahŕňajú obnovenie databázy a inovácia súbory z predchádzajúcich verziách servera SQL Server.

V otázke, ktorý je popísaný v časti „príznaky", SQL Server 2012 začína proces aktualiz?ície skôr, než súbory iba na čítanie v databáze zistia. Kroky aktualiz?ície zahŕňajú začína transakcie vymažete trochu "čisto vypnúť" na stránke Zavádzacia databázy. Staršie verzie programu SQL Server nedokáže prečítať začať transakcie záznamu. Preto databázy nie je použiteľná v starších verziách programu SQL Server a server SQL Server generuje chyba 3624.

Upgrady na mieste pri databázy je označený iba na čítanie

Keď vykonávate inováciu na mieste inštancie programu SQL Server, ktorý obsahuje iba na čítanie databázy, ktorá je pomenovaná Test_RO_DB do roku 2012 SQL Server, môže sa zobraziť chybové hlásenia, ktoré sa podobajú nasledujúce denník chýb servera SQL Server:

2012-05-04 21:03:59.23 spid19s rozbehu databázy "Test_RO_DB".
2012-05-04 21:03:59.56 spid19s Converting databáza "Test_RO_DB" z verzie 661 aktuálnej verzie 706.
2012-05-04 21:03:59.56 spid19s chyba: 928, závažnosť: 20, štát: 1.
2012-05-04 21:03:59.56 spid19s počas inovácie, databáza vznesené výnimkou 3415, závažnosť 16, štát 1, adresa 000007FEE66D784A. Použite výnimkou číslo chcete zistiť príčinu.
2012-05-04 21:03:59.61 spid19s chyba: 3415, závažnosť: 16, štát: 1.
2012-05-04 21:03:59.61 spid19s databáza "Test_RO_DB" sa nedá inovovaná, pretože je len na čítanie, má iba na čítanie súborov alebo používateľ nemá povolenia na úpravu niektorých súborov. Skontrolujte databázu alebo súbory zapisovateľné a znova spustite vymáhania.


Na konci procesu inovácie Test_RO_DB databáza bude v RECOVERY_PENDING stave. Pomocou príkazu Vlastnosti databázy musí nastaviť databázu na READ_WRITE. Potom použite príkaz Vlastnosti databázy na nastavenie databázy READ_ONLY. To umožňuje motora SQL Server databázu inovovať na správnu verziu.

Priama inovácia keď čítať a zapisovať databáza obsahuje súbor skupín, ktoré sú označené iba na čítanie

Ak vykonáte priamu inováciu do roku 2012 SQL Server, môžu sa zobraziť hlásenia, ktoré sa podobajú nasledujúce denník chýb servera SQL Server. Tento problém sa vyskytuje, keď staršie inštanciu programu SQL Server hostiteľom čítať a zapisovať databázy a obsahuje súbor skupiny, ktoré sú označené ako READ_ONLY. Avšak proces aktualiz?ície dokončí, ako sa očakávalo a databázy začína on-line.

Poznámka V nasledujúce chybové hlásenie, databázu s názvom Test_RO_FG:

2012-05-04 21:03:59.23 spid18s rozbehu databázy "Test_RO_FG".
2012-05-04 21:03:59.71 spid18s Converting databáza "Test_RO_FG" z verzie 661 aktuálnej verzie 706.
2012-05-04 21:03:59.71 spid18s Database "Test_RO_FG" beží inováciu krok z verzie 661 verziu 668.



Vlastnosti

ID článku: 2710782 - Posledná kontrola: 18. júna 2012 - Revízia: 2.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • Microsoft SQL Server 2012 Enterprise
Kľúčové slová: 
kbsurveynew kbprb kbtshoot kbmt KB2710782 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem: 2710782

Odošlite odozvu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com