Prijavite se pomoću Microsoft naloga
Prijavite se ili kreirajte nalog.
Zdravo,
Izaberite drugi nalog.
Imate više naloga
Odaberite nalog pomoću kojeg želite da se prijavite.

Simptomi

Razmotrite sledeći scenario:

  • Instalirate instancu sistema Microsoft SQL Server 2005, Microsoft SQL Server 2008 ili Microsoft SQL Server 2008 R2.

  • Instanca sql servera nosi ime INST1 i hostuje bazu podataka koja se zove Test_RO_FG_DB.

  • Baza podataka sadrži sledeće grupe datoteka:

    • Primarni

    • RO_FG

    • RW_FG

  • Grupa datoteka koja je imenovana kao RO_FG označena je kao READ_ONLY.

  • Instalirate novu instancu sistema Microsoft SQL Server 2012. Ova instanca sistema SQL Server 2012 nosi ime INST2.

  • Bazu podataka za Test_RO_FG_DB odvojite od inST1.

  • Pokušavate da priložite Test_RO_FG_DB podataka inST2.

  • Dobijate poruku o grešci koja je slična sledećoj:

    Msg 3415, Nivo 16, Stanje 2, linija 1Database 'Test_RO_FG_DB' se ne može nadograditi jer je samo za čitanje, ima datoteke samo za čitanje ili korisnik nema dozvole da menja neke od datoteka. Učinite bazu podataka ili datoteka upisivom i ponovo pokrenite oporavak.

  • Pokušavate da ponovo priloћite Test_RO_FG_DB podataka na INST1.

U ovom scenariju, ne možete ponovo da priloћite bazu podataka na INST1. U evidenciji grešaka sistema SQL Server dobijate sledeću poruku o grešci:

Napomena Do ovog problema dolazi samo kada pokušate da priložite bazu podataka koja sadrži grupu datoteka koja je označena kao READ_ONLY. Do ovog problema ne dolazi kada pokušate da premestite READ_ONLY podataka u kojoj su svi podaci označeni kao READ_ONLY.

Uzrok

Do ovog problema dolazi zato što SQL Server 2012 ne otkriva grupu datoteka samo za čitanje pre nego što počne da nadograđuje bazu podataka. Nakon što je nadogradnja počela, SQL Server 2012 upisuje stavke u evidenciju transakcija. Ranije verzije ne mogu da pročitaju nove stavke evidencije transakcija.

Status

Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku "Odnosi se na".

Rešenje

Kumulativne informacije o ažuriranju

SQL Server 2012

Ispravka za ovaj problem je prvi put objavljena u kumulativnoj ispravci 2 za SQL Server 2012. Za više informacija o ovom paketu kumulativnih ispravki kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:

2703275 Kumulativni paket ispravki 2 za SQL Server 2012Napomena Pošto su verzije kumulativne, svako novo izdanje ispravke sadrži sve hitne ispravke i sve bezbednosne ispravke koje su bile uključene u prethodno izdanje ispravki za SQL Server 2012. Microsoft preporučuje da razmislite o primeni najnovijeg izdanja ispravke koje sadrži ovu hitnu ispravku. Za više informacija kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:

2692828 SQL Server 2012 builds koji su objavljeni nakon što je SQL Server 2012 objavljen Morate primeniti hitnu ispravku za SQL Server 2012 na instalaciju sistema SQL Server 2012.

Rešenje

Da biste zaobišli ovaj problem, koristite neki od sledećih metoda.Metod 1Vratite rezervnu kopiju baze podataka iz inST1 u inST2.Napomena Problem opisan u odeljku "Simptomi" ne pojavljuje se u sistemu SQL Server 2012 kada rezervnu kopiju iz prethodne verzije vratite u prethodno stanje.Metod 2Izvršite nadogradnju prethodne verzije sistema SQL Server na SQL Server 2012.3. metodPremestite bazu podataka koja sadrži grupu datoteka samo za čitanje u instancu sistema SQL Server 2012. Da biste to uradili, sledite ove korake.Napomena Izvršite korake od 4. Na primer, izvršite korake od 4 do 11 na INST2.

  1. U programu INST1 odvojite bazu podataka. Na primer, odvojite Test_RO_FG_DB podataka.

  2. Premestite datoteke baze podataka na server na kojem se hostuje instanca INST2.

  3. Pokušajte da priložite bazu podataka inST2. Sledeći probni kôd prikazuje kako se to radi:

    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

    Napomena Dobićete poruku o grešci 3425 koja je pomenuta u odeljku "Simptomi".

  4. Na komandnoj liniji preimenujte datoteke baze podataka. Sledeća probna komanda prikazuje kako se to radi:

    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. U programu SQL Server Management Studio kreirajte bazu podataka koja ima isto ime i fizičku strukturu kao baza podataka koju želite da priložite. Sledeći probni kôd prikazuje kako se to radi:

    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. Postavite bazu podataka na van mreže. Da biste to uradili, pokrenite sledeću komandu:

    ALTER DATABASE [Test_RO_FG_DB] SET OFFLINEGO 
  7. Na komandnoj liniji preimenujte datoteke u novoj bazi podataka. Sledeća probna komanda prikazuje kako se to radi:

    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. Na komandnoj liniji preimenujte datoteke u bazi podataka koju ste premestili u koraku 2. Preimenujte datoteke tako da se podudaraju sa bazom podataka koju ste kreirali u koraku 4. Sledeća probna komanda prikazuje kako se to radi:

    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. Postavite bazu podataka na lokaciju ONLINE. Da biste to uradili, pokrenite sledeću komandu:

    ALTER DATABASE [Test_RO_FG_DB] SET ONLINEGO 
  10. Proverite da li je baza podataka na mreži i ponovo uspostavite funkcionalnost brokera servisa.

  11. Izbrišite datoteke baze podataka koje nisu potrebne. Sledeća probna komanda prikazuje kako se to radi:

    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 

4. metodPonovo priloћite bazu podataka koja sadrћi grupu datoteka samo za иitanje na raniju instancu sistema SQL Server. Da biste to uradili, sledite ove korake.Napomene

  • Baza podataka takođe sadrži nove stavke evidencije transakcija iz neuspele nadogradnje.

  • Izvršite korake od 3. Na primer, izvršite korake od 3 do 10 na INST1.

  1. Premestite datoteke baze podataka na instancu SQL Servera na kojoj se nalazi INST1.

  2. Pokušajte da priložite bazu podataka inst1. Sledeći probni kôd prikazuje kako se to radi:

    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

    Napomena Dobićete poruku o grešci 3624 koja je pomenuta u odeljku "Simptomi". Takođe ćete dobiti poruku o grešci iz 1813.

  3. Na komandnoj liniji preimenujte datoteke baze podataka na INST1. Sledeća probna komanda prikazuje kako se to radi:

    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. U programu SQL Server Management Studio kreirajte bazu podataka koja ima isto ime i fizičku strukturu kao baza podataka koju želite da priložite. Sledeći probni kôd prikazuje kako se to radi:

    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. Postavite bazu podataka na van mreže. Da biste to uradili, pokrenite sledeću komandu:

    ALTER DATABASE [Test_RO_FG_DB] SET OFFLINEGO 
  6. Na komandnoj liniji preimenujte datoteke u novoj bazi podataka. Sledeća probna komanda prikazuje kako se to radi:

    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. Na komandnoj liniji preimenujte datoteke u bazi podataka koju ste premestili u koraku 2. Preimenujte datoteke tako da se podudaraju sa bazom podataka koju ste kreirali u koraku 4. Sledeća probna komanda prikazuje kako se to radi:

    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. Postavite bazu podataka na režim hitne pomoći i izvršite popravku. Da biste to uradili, pokrenite sledeću komandu.Napomena Evidencije transakcija baze podataka se ponovo grade tokom ovog koraka. To može dovesti do gubitka podataka. Zbog toga preporučujemo da rezervnu e-bazu podataka ponovo izvršite pre nego što izvršite ovaj korak.

    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. Proverite da li je baza podataka na mreži i ponovo uspostavite funkcionalnost brokera servisa.

  10. Izbrišite datoteke baze podataka koje nisu potrebne. Sledeća probna komanda prikazuje kako se to radi:

    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 

Više informacija

Postoji nekoliko koraka do kojih dolazi kada je baza podataka priložena instanci sistema SQL Server. Ovi koraci uključuju spasavanje baze podataka i nadogradnju datoteka iz ranijih verzija sistema SQL Server. U problemu koji je opisan u odeljku "Simptomi", SQL Server 2012 započinje proces nadogradnje pre nego što se otkriju datoteke samo za čitanje u bazi podataka. Koraci nadogradnje uključuju pokretanje transakcije da bi se obrišio deo "čisto isključi" na stranici za pokretanje baze podataka. Prethodne verzije sistema SQL Server ne mogu da pročitaju zapis transakcije za početak. Zbog toga baza podataka nije upotrebljiva u prethodnim verzijama sistema SQL Server, a SQL Server generiše grešku 3624.Nadogradnja na mestu kada je baza podataka označena samo za čitanjeKada izvršite nadogradnju na mestu instance sistema SQL Server koja sadrži bazu podataka samo za čitanje koja je nazvana Test_RO_DB na SQL Server 2012, možete dobiti poruke o greškama koje su slične sledećoj u evidenciji grešaka sql servera:

Na kraju procesa nadogradnje, baza podataka Test_RO_DB će biti u RECOVERY_PENDING stanju. Morate da koristite komandu ALTER DATABASE da biste bazu podataka postavili na READ_WRITE. Zatim upotrebite komandu ALTER DATABASE da biste bazu podataka postavili na READ_ONLY. Ovo omogućava mašini SQL Server da nadogradi bazu podataka na ispravnu verziju.Nadogradnja na mestu kada baza podataka za čitanje/pisanje sadrži grupe datoteka koje su označene samo za čitanjeKada izvršite nadogradnju na mesto na SQL Server 2012, možete dobiti poruke koje su slične sledećoj u evidenciji grešaka sistema SQL Server. Do ovog problema dolazi kada je u prethodnoj instanci sistema SQL Server host baza podataka za čitanje/pisanje i sadrži grupe datoteka koje su označene kao READ_ONLY. Međutim, proces nadogradnje se završava na očekivani način i baza podataka počinje na mreži.Napomena U sledećoj poruci o grešci, baza podataka se zove Test_RO_FG:

Da li vam je potrebna dodatna pomoć?

Želite još opcija?

Istražite pogodnosti pretplate, pregledajte kurseve za obuku, saznajte kako da obezbedite uređaj i još mnogo toga.

Zajednice vam pomažu da postavljate pitanja i odgovarate na pitanja, dajete povratne informacije i čujete mišljenje od stručnjaka sa bogatim znanjem.

Da li su vam ove informacije koristile?

Koliko ste zadovoljni kvalitetom jezika?
Šta je uticalo na vaše iskustvo?
Kada kliknete na dugme Prosledi“, vaše povratne informacije će se koristiti za poboljšanje Microsoft proizvoda i usluga. Vaš IT administrator će moći da prikupi ove podatke. Izjava o privatnosti.

Hvala vam na povratnim informacijama!

×