Prihláste sa s kontom Microsoft
Prihláste sa alebo si vytvorte konto.
Dobrý deň,
Vyberte iné konto.
Máte viacero kont
Vyberte konto, s ktorým sa chcete prihlásiť.

Príznaky

Zoberme si nasledujúcu situáciu:

  • Nainštalujete inštanciu programu Microsoft SQL Server 2005, Microsoft SQL Server 2008 alebo Microsoft SQL Server 2008 R2.

  • Inštancia programu SQL Server sa nazýva INST1 a hosťuje databázu s názvom Test_RO_FG_DB.

  • Databáza obsahuje tieto skupiny súborov:

    • Primárne

    • RO_FG

    • RW_FG

  • Skupiny súborov s názvom RO_FG sa označujú ako READ_ONLY.

  • Môžete nainštalovať novú inštanciu programu Microsoft SQL Server 2012. Táto inštancia programu SQL Server 2012 sa nazýva INST2.

  • Odpojenie databázy Test_RO_FG_DB z INST1.

  • Pokúšate sa pripojiť databázu Test_RO_FG_DB k INST2.

  • Zobrazí sa chybové hlásenie, ktoré sa podobá nasledujúcemu hláseniu:

    MSG 3415, úroveň 16, štát 2, Čiarová 1Database ' Test_RO_FG_DB ' nie je možné inovovať, pretože je iba na čítanie, má súbory iba na čítanie alebo používateľ nemá povolenia na úpravu niektorých súborov. Zmeňte zapisovanie databázy alebo súborov a znova spustite obnovenie.

  • Pokúšate sa znova priložiť databázu Test_RO_FG_DB na INST1.

V tomto scenári nie je možné opätovne priložiť databázu k INST1. A v denníku chýb servera SQL Server sa zobrazí nasledujúce chybové hlásenie:

Poznámka: Tento problém sa vyskytuje iba pri pokuse o priloženie databázy, ktorá obsahuje skupiny súborov označených READ_ONLY. Tento problém sa nevyskytuje pri pokuse o premiestnenie READ_ONLY databázy, v ktorej sú všetky údaje označené READ_ONLY.

Príčina

Tento problém sa vyskytuje, pretože SQL Server 2012 nerozpozná skupiny iba na čítanie pred tým, než začne inovovať databázu. Po spustení inovácie SQL Server 2012 zapisuje položky do denníka transakcií. Staršie verzie nemôžu prečítať nové položky denníka transakcií.

Stav

Spoločnosť Microsoft potvrdzuje, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v tomto článku v časti Informácie v tomto článku sa týkajú nasledujúcich produktov.

Riešenie

Kumulatívna aktualizácia informácií

SQL Server 2012

Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 2 pre SQL Server 2012. Ďalšie informácie o tomto balíku kumulatívnych aktualizácií nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na nasledovné číslo článku:

2703275 Kumulatívna aktualizácia balíka 2 pre SQL Server 2012Poznámka: Pretože zostavy sú kumulatívne, každé nové vydanie opraviť obsahuje všetky rýchlych opráv a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho SQL servera 2012 opraviť uvoľnenia. Spoločnosť Microsoft odporúča, aby ste zvážili uplatnenie najnovších opráv, ktoré túto rýchlu opravu obsahujú. Ďalšie informácie nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na príslušné číslo článku:

2692828 Zostavy SQL servera 2012, ktoré boli vydané po vydaní SQL servera 2012 Ak chcete nainštalovať SQL Server 2012, musíte použiť rýchlu opravu SQL servera 2012.

Alternatívne riešenie

Ak chcete obísť tento problém, použite jeden z nasledujúcich postupov.Metóda 1Obnovte 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 2Vykonanie priamej inovácie staršej verzie SQL servera na SQL Server 2012.Metóda 3Premiestnenie databázy, ktorá obsahuje skupiny súborov iba na čítanie, na inštanciu programu SQL Server 2012. Postupujte podľa nasledujúcich krokov.Poznámka: Vykonajte kroky 4 až 11 na serveri, na ktorom je spustený server SQL Server 2012. Vykonajte napríklad kroky 4 až 11 na INST2.

  1. Na INST1 oddeľte databázu. Napríklad odpojte Test_RO_FG_DB databázu.

  2. Presuňte databázové súbory na server, ktorý hosťuje inštanciu INST2.

  3. Skúste databázu priložiť k INST2. Nasledujúci vzorový kód znázorňuje, 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: Zobrazí sa chybové hlásenie 3425, ktoré je spomenuté v časti príznaky.

  4. V príkazovom riadku premenujte súbory databázy. Nasledujúci vzorový príkaz znázorňuje, ako to urobiť:

    rename Test_RO_FG.mdf original_Test_RO_FG.mdfrename Test_RO_FG_File1.ndf original_Test_RO_FG_File1.ndfrename Test_RW_FG_File1.ndf original_Test_RW_FG_File1.ndfrename Test_RO_FG_log.ldf original_Test_RO_FG_log.ldf 
  5. V aplikácii SQL Server Management Studio Vytvorte databázu s rovnakým názvom a fyzickou štruktúrou ako databáza, ktorú chcete priložiť. Nasledujúci vzorový kód znázorňuje, 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ázu na možnosť offline. Ak to chcete urobiť, spustite nasledujúci príkaz:

    ALTER DATABASE [Test_RO_FG_DB] SET OFFLINEGO 
  7. V príkazovom riadku premenujte súbory v novej databáze. Nasledujúci vzorový príkaz znázorňuje, ako to urobiť:

    rename Test_RO_FG.mdf new_Test_RO_FG.mdfrename Test_RO_FG_File1.ndf new_Test_RO_FG_File1.ndfrename Test_RW_FG_File1.ndf new_Test_RW_FG_File1.ndfrename Test_RO_FG_log.ldf new_Test_RO_FG_log.ldf 
  8. V príkazovom riadku premenujte súbory v databáze, ktoré ste presunuli v kroku 2. Premenujte súbory tak, aby zodpovedali databáze, ktorú ste vytvorili v kroku 4. Nasledujúci vzorový príkaz znázorňuje, 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ázu na možnosť ONLINE. Ak to chcete urobiť, spustite nasledujúci príkaz:

    ALTER DATABASE [Test_RO_FG_DB] SET ONLINEGO 
  10. Overte, či je databáza online, a znova vytvorte funkciu makléra služby.

  11. Odstráňte databázové súbory, ktoré nie sú potrebné. Nasledujúci vzorový príkaz znázorňuje, ako to urobiť:

    del /P new_Test_RO_FG.mdfdel /P new_Test_RO_FG_File1.ndfdel /P new_Test_RW_FG_File1.ndfdel /P new_Test_RO_FG_log.ldf 

Metóda 4Opätovne priložte databázu obsahujúcu skupiny súborov iba na čítanie na staršiu inštanciu programu SQL Server. Postupujte podľa nasledujúcich krokov.Poznámky

  • Databáza obsahuje aj nové položky denníka transakcií z neúspešnej inovácie.

  • Vykonajte kroky 3 až 10 na serveri, na ktorom je spustená staršia verzia SQL servera. Vykonajte napríklad kroky 3 až 10 na INST1.

  1. Presuňte databázové súbory na inštanciu programu SQL Server, ktorý je hostiteľom INST1.

  2. Skúste databázu priložiť k INST1. Nasledujúci vzorový kód znázorňuje, 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 ATTACHGO

    Poznámka: Zobrazí sa chybové hlásenie 3624, ktoré je spomenuté v časti príznaky. Zobrazí sa aj chybové hlásenie 1813.

  3. V príkazovom riadku premenujte súbory databázy na lokalite INST1. Nasledujúci vzorový príkaz znázorňuje, ako to urobiť:

    rename Test_RO_FG.mdf original_Test_RO_FG.mdfrename Test_RO_FG_File1.ndf original_Test_RO_FG_File1.ndfrename Test_RW_FG_File1.ndf original_Test_RW_FG_File1.ndfrename Test_RO_FG_log.ldf original_Test_RO_FG_log.ldf 
  4. V aplikácii SQL Server Management Studio Vytvorte databázu s rovnakým názvom a fyzickou štruktúrou ako databáza, ktorú chcete priložiť. Nasledujúci vzorový kód znázorňuje, 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ázu na možnosť offline. Ak to chcete urobiť, spustite nasledujúci príkaz:

    ALTER DATABASE [Test_RO_FG_DB] SET OFFLINEGO 
  6. V príkazovom riadku premenujte súbory v novej databáze. Nasledujúci vzorový príkaz znázorňuje, ako to urobiť:

    rename Test_RO_FG.mdf new_Test_RO_FG.mdfrename Test_RO_FG_File1.ndf new_Test_RO_FG_File1.ndfrename Test_RW_FG_File1.ndf new_Test_RW_FG_File1.ndfrename Test_RO_FG_log.ldf new_Test_RO_FG_log.ldf 
  7. V príkazovom riadku premenujte súbory v databáze, ktoré ste presunuli v kroku 2. Premenujte súbory tak, aby zodpovedali databáze, ktorú ste vytvorili v kroku 4. Nasledujúci vzorový príkaz znázorňuje, 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. Nastavte databázu na NÚDZOVý režim a vykonajte opravu. Ak to chcete urobiť, spustite nasledujúci príkaz.Poznámka: Denníky transakcií databázy sa prestavia v priebehu tohto kroku. Môže to mať za následok stratu údajov. Preto odporúčame, aby ste pred vykonaním tohto kroku zálohovali databázu.

    ALTER DATABASE Test_RO_FG_DB SET EMERGENCYGOALTER DATABASE Test_RO_FG_DB SET SINGLE_USERGODBCC CHECKDB (Test_RO_FG_DB, repair_allow_data_loss) WITH ALL_ERRORMSGSGOALTER DATABASE Test_RO_FG_DB SET MULTI_USERGO 
  9. Overte, či je databáza online, a znova vytvorte funkciu makléra služby.

  10. Odstráňte databázové súbory, ktoré nie sú potrebné. Nasledujúci vzorový príkaz znázorňuje, ako to urobiť:

    del /P new_Test_RO_FG.mdfdel /P new_Test_RO_FG_File1.ndfdel /P new_Test_RW_FG_File1.ndfdel /P new_Test_RO_FG_log.ldf 

Ďalšie informácie

Existuje niekoľko krokov, ktoré sa vyskytujú v prípade, ak je databáza pripojená k inštancii programu SQL Server. Tieto kroky zahŕňajú obnovenie databázy a inováciu súborov zo starších verzií SQL servera. V probléme, ktorý je popísaný v časti príznaky, SQL Server 2012 začína proces inovácie pred rozpoznaním súborov iba na čítanie v databáze. Kroky inovácie zahŕňajú spustenie transakcie na vymazanie bitovej verzie vyčistené na zavádzaciu stránku databázy. Staršie verzie SQL servera nedokážu prečítať záznam o začatí transakcie. Preto sa databáza nedá použiť v starších verziách servera SQL Server a SQL Server generuje chybu 3624.Priame inovácie v prípade, ak je databáza označená iba na čítanieKeď vykonávate lokálnu inováciu inštancie programu SQL Server, ktorá obsahuje databázu iba na čítanie, ktorá sa nazýva Test_RO_DB na server SQL Server 2012, môže sa stať, že sa v denníku chýb servera SQL Server zobrazí chybové hlásenie podobné nasledujúcemu:

Na konci procesu inovácie bude Test_RO_DB databáza v stave RECOVERY_PENDING. Ak chcete nastaviť databázu na READ_WRITE, musíte použiť príkaz Alter Database . Potom použite príkaz Alter Database na nastavenie databázy na READ_ONLY. To umožňuje SQL Server Engine inovovať databázu na správnu verziu.Priame inovácie v prípade, že databáza na čítanie a zapisovanie obsahuje skupiny súborov, ktoré sú označené iba na čítanieKeď vykonáte inováciu na lokalite SQL Server 2012, môže sa stať, že v denníku chýb servera SQL Server sa môžu zobraziť nasledujúce správy. Tento problém sa vyskytuje, keď staršia inštancia programu SQL Server je hostiteľom databázy na čítanie a zapisovanie a obsahuje skupiny súborov, ktoré sú označené READ_ONLY. Proces inovácie sa však dokončí podľa očakávaní a databáza sa spustí online.Poznámka: V nasledujúcom chybovom hlásení je databáza pomenovaná Test_RO_FG:

Potrebujete ďalšiu pomoc?

Chcete ďalšie možnosti?

Môžete preskúmať výhody predplatného, prehľadávať školiace kurzy, naučiť sa zabezpečiť svoje zariadenie a ešte oveľa viac.

Komunity pomôžu s kladením otázok a odpovedaním na ne, s poskytovaním pripomienok a so získavaním informácií od odborníkov s bohatými znalosťami.

Boli tieto informácie užitočné?

Aká je podľa vás jazyková kvalita textu?
Čo sa vám páčilo, prípadne čo nie?
Stlačením tlačidla Odoslať sa vaše pripomienky použijú na zlepšenie produktov a služieb spoločnosti Microsoft. Váš správca IT bude môcť tieto údaje zhromažďovať. Vyhlásenie o ochrane osobných údajov.

Ďakujeme za vaše pripomienky!

×