Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Në kontakt me
  • Ka ndodhur një gabim kritik. Kujdes!!! Ndodhi një gabim gjatë përditësimit të të dhënave pas ristrukturimit të fundit

Ka ndodhur një gabim kritik. Kujdes!!! Ndodhi një gabim gjatë përditësimit të të dhënave pas ristrukturimit të fundit

Ne u transferuam në një server të ri. Në të SQL dhe 1C. Në krahasim me të vjetrat, ishte shumë më e freskët. Dhe testi i Gilev gjithashtu konfirmoi këtë: kundër 10-15 në serverët e vjetër ai dha 39. Prandaj, menjëherë pas blerjes, transferuam bazën e të dhënave dhe filluam të punojmë.

Por në një moment, diçka shkoi keq - përdoruesit filluan të ankohen për punën e ngadaltë. Ne bëmë disa cilësime për serverin dhe shërbimet (të cilat janë temë e një postimi të veçantë) dhe vendosëm të rindiznim serverin, pasi shpejtësia e rindezjes ishte 2 minuta (në serverët e tjerë arriti në 10). Pas kësaj, kur futemi 1C, marrim mesazhin e mëposhtëm:

"Vëmendje!!! Ndodhi një gabim gjatë përditësimit të të dhënave pas ristrukturimit të fundit. Riprovoni përditësimin?" "Jo ne te vertete"

Pasi të klikoni në butonin "Po", shfaqet sa vijon:

"U zbulua një operacion jo i plotë i ruajtjes së konfigurimit. Duhet të përfundoni operacionin për të vazhduar."

Gjëja e parë që vendosa të bëj ishte CHECKDB në Managment Studio - pas 2 orësh pritje (500 GB bazë të dhënash) - gjithçka është në rregull.

Në pafundësinë e rrjetit gjeta informacione se i njëjti gabim ndodh me përditësimet dinamike.

Zgjidhjet e propozuara në rrjet nuk ndihmuan menjëherë, por, së bashku me veprimet e tjera, dhanë një rezultat. Pra, çfarë bëra:

Zgjidhja:

  1. Çfarë mungonte për zgjidhjet nga rrjeti:

sp_configure 'lejo përditësimet', 1
rikonfiguro me anashkalimin
shko

2. Transferoni bazën e të dhënave në modalitetin e rikuperimit

ndrysho grupin e bazës së të dhënave EMERGENCY, SINGLE_USER

3. Ne kryejmë testimin e bazës së të dhënave:

dbcc checkdb ('emri_db', REPAIR_ALLOW_DATA_LOSS)

4. Ne e nxjerrim bazën e të dhënave nga mënyra e rikuperimit:

ndrysho grupin e bazës së të dhënave ONLINE, MULTI_USER

5. Në parim, nëse jeni i sigurt se gjithçka është në rregull me vetë bazën, atëherë nuk mund të bëni 2-4 pikë. Më pas, ne ekzekutojmë dy pyetje në profiluesin SQL:

fshij nga konfigurimi ku Emri i Skedarit = 'kommit'
fshi nga konfigurimi ku FileName = 'dbStruFinal'

Këto shënime janë përgjegjëse për përditësimin dinamik - nuk mund të keni frikë t'i fshini ato.

Në versionet e punës të bazave të të dhënave, pyet:

zgjidhni * nga Config WHERE Filename = 'commit'

zgjidhni * nga konfigurimi WHERE Emri i skedarit = 'dbStruFinal'

do të jetë bosh.

6. ktheni cilësimet:

sp_configure 'lejo përditësimet', 0
shko

7. Pas kësaj, arritëm të nisnim konfiguruesin dhe baza e të dhënave filloi të funksiononte.

Gjithashtu, baza mund të funksionojë pas heqjes së flamurit të parë.

sfond

Na duhej të krijonim një regjistër të ri informacioni "MessageTrackingLog". Shtuar në konfigurim, ngarkoi të dhënat. Pastaj erdhi puna e optimizimit. Më duhej të ndryshoja strukturën e regjistrit. Por nuk ishte aty!

Gjithçka është e qartë këtu. Regjistrimet janë bërë jo unike, duhet t'i fshini!

Mënyra më e thjeshtë është:

NewRecord =RegistersInfo.MessageTrackingLog.CreateRecordSet(); NewRecord.Record();

Me këtë metodë, ne do ta pastrojmë regjistrin në 1C shumë shpejt (por ky do të jetë gjithashtu gabimi ynë).

Gabim

Duket se regjistri është bosh, dhe ju mund të përditësoni 1C. Nuk dua t'ju befasoj, por do të ketë përsëri një gabim:


Cili është gabimi:

Ndodhi një gabim kritik gjatë përditësimit të bazës së informacionit
për arsye të:
Përpjekja për të futur një vlerë jo unike në një indeks unik:
Microsoft SQL Server Native Client 11.0: Deklarata CREATE UNIQUE INDEX u mbyll sepse u gjet një çelës dublikatë për emrin e objektit "dbo._InfoRgChngR34546NG" dhe emrin e indeksit "_InfoR34546_ByNodeMsg_RNTSRRRRRRNG". Vlera e dyfishtë e çelësit është (0x00000011,d7, , 27 shtator 4015 22:22, 768404.00.00.00.00.00.00).
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, gjendja=1, Ashpërsia=10, vendas=1505, rreshti=1

Shpjegim

Le të kuptojmë strukturën SQL. Ne kemi një regjistër "MessageTrackingLog", në SQL është në tabelë " _InfoR34546". Këtë mund ta kontrolloni me përpunim special ose metodën "poke" (nuk duhet ta bëjmë këtë, sepse emri i tabelës është treguar tashmë në tekstin e gabimit).

Tani më lejoni të shpjegoj se çfarë ndodhi. Kur ngarkuam të dhënat në regjistër, atëherë në SQL ata hynë në tabelë " _InfoR34546". Kur pastruam tabelën me kodin në 1C, këto të dhëna u fshinë nga tabela " _InfoR34546", por ato u kopjuan në tabelë " _InfoRgChngR34546". Ky u bë problemi.

Zgjidhje

Për të zgjidhur problemin, duhet të pastrojmë tabelën SQL "_InfoRgChngR34546".

Unë do t'ju tregoj në shembullin e "Microsoft SQL Server Management Studio". ne shkojmë në " Studio e menaxhimit". Ne gjejmë bazën tonë të të dhënave, hapim skedën e tabelave, klikojmë në cilindo dhe shtypim butonin "Kërkesa e re": Tani shkruajmë pyetjen

Shkurto tabelën "_InfoRgChngR34546"

Mund të keni edhe një tryezë tjetër! Mos harro!

Dhe shtypni Run ose shtypni F5. Ky duhet të jetë rezultati:

Gjithçka, tani mund të përditësoni me siguri 1C dhe nuk do të ketë asnjë gabim!

Kur punoni në 1C:Enterprise, mund të shfaqet mesazhi i mëposhtëm: "Për të punuar me versionin e ri të 1C:Enterprise, baza e informacionit duhet të konvertohet". Pse shfaqet kjo dritare dhe si mund ta rregulloj gabimin?

Në shumicën e rasteve, arsyeja e shfaqjes së dritares është kalimi i fundit i programit nga një version i vjetëruar i platformës në një më të ri. Në platforma të ndryshme baza e informacionit 1C formohet në mënyrën e vet dhe merr një përbërje tjetër. Gjithçka që duhet bërë është konvertimi i bazës së të dhënave (struktura e së cilës korrespondon me platformën e vjetëruar) në formatin më të ri.

Konvertimi i DB

Kjo procedurë është e thjeshtë, megjithatë, rekomandohet që së pari të krijoni një kopje rezervë të bazës së të dhënave, në rast se ndodh një gabim gjatë konvertimit (për shembull, kompjuteri fiket, si rezultat baza e informacionit 1C, si dhe vetë programi, mund të dëmtohen). Pastaj aplikoni algoritmin e mëposhtëm të veprimeve:

  • Hapni bazën e të dhënave në modalitetin e konfiguruesit;
  • Do të shihni një mesazh që ju kërkon të konvertoni bazën e informacionit. Konfirmimi i shtypit;

  • Mbyllni konfiguruesin.

Hapni bazën e të dhënave - duhet të fillojë pa probleme. Nëse dritarja e gabimit vazhdon të shfaqet pas konvertimit, mund ta provoni përsëri procedurën. Në rastin kur kjo nuk ju ndihmon, duhet të kontaktoni programuesin 1C. Ndonjëherë programi mund të ngrijë gjatë kryerjes së një operacioni. Nuk ka nevojë për të ndërmarrë asnjë veprim në këtë moment.

E rëndësishme! Baza e informacionit 1C, i konvertuar nga versioni më i fundit i programit, nuk mund të hapet në versionet e mëparshme.

Sandbox

autoriteti 18 shtator 2013 në orën 15:24

1C, duke rivendosur konfigurimin e bazës së informacionit duke përdorur MS SQL

Në një kohë, hasa në një problem: kur përditësova konfigurimin nga depoja, ndodhi një dështim dhe 1C u mbyll.

Siç doli më vonë, ruajtja e konfigurimit u shkatërrua dhe kur konfigurimi u përditësua, konfigurimi i bazës së të dhënave gjithashtu fluturoi nga ruajtja. Një gabim i ngjashëm ka ndodhur më parë me një përditësim dinamik të IB.

Sepse Ky problem u ngrit më shumë se një herë vendosi të ndajë opsionin e trajtimit.

Herën tjetër kur përdorni konfiguruesin, ndodhi një gabim: "Kujdes!!! Ndodhi një gabim gjatë përditësimit të të dhënave pas ristrukturimit të fundit. Riprovoni përditësimin?" nëse përgjigja është po, marrim mesazhin: “U zbulua operacioni i ruajtjes së konfigurimit jo të plotë. Për të vazhduar punën, duhet të përfundoni operacionin "pastaj aplikacioni mbyllet.

Gjatë analizimit të këtij problemi, u gjetën disa zgjidhje për problemin, secila zgjidhje funksionon në raste të ndryshme.

Opsioni 1 (nëse keni një kopje rezervë SQL me një kopje me një konfigurim identik):

Një kopje e IB është vendosur dhe kërkohet konstrukti i mëposhtëm:
PËRDOR SHKO FSHI NGA .. SHKO INSERT NE .. SELECT * FROM .. SHKO
Në të njëjtën kohë, tabela në të cilën ruhet konfigurimi IS plotësohet. Këshillohet që të kryhet testimi dhe korrigjimi i IS pas këtij operacioni.

Opsioni 2 (nëse nuk ka kopje rezervë):

Ky opsion u trajtua si kashta e fundit. Sepse konfigurimi ishte në zhvillim e sipër dhe ata harruan pak rezervimin, duke u mbështetur në ruajtjen.
Në bazën e të dhënave, dy regjistrime fshihen nga tabela "Config" nga vlera në kolonën "FileName" - dbStruFinal dhe commit

Bëhet kërkesa e mëposhtme:
PËRDORNI SHKO FSHI NGA . WHERE FileName = "dbStruFinal" SHKO FSHI NGA . WHERE Filename = "commit" SHKO
Mjaft e çuditshme, baza vjen në jetë.

Etiketa: ndërmarrje 1s 8.2, SQL, rivendosja e konfigurimit

Ky artikull nuk është subjekt i komenteve, pasi autori i tij nuk është ende një anëtar i plotë i komunitetit. Ju do të mund të kontaktoni autorin vetëm pasi ai të marrë

Artikujt kryesorë të lidhur