ProHoster > Օրագիր > Վարչակազմը > Պահուստային տվյալների փոխանցում MS SQL Server-ի նոր տարբերակից ավելի հին տարբերակ
Պահուստային տվյալների փոխանցում MS SQL Server-ի նոր տարբերակից ավելի հին տարբերակ
նախապատմությանը
Մի անգամ, սխալը վերարտադրելու համար, ինձ անհրաժեշտ էր արտադրության տվյալների բազայի կրկնօրինակում:
Ի զարմանս ինձ, ես հանդիպեցի հետևյալ սահմանափակումներին.
Տվյալների բազայի կրկնօրինակումն արվել է տարբերակով SQL Server 2016 և իմ հետ համատեղելի չէր SQL Server 2014.
Իմ աշխատանքային համակարգչի վրա ՕՀ-ն էր Windows 7այնպես որ ես չկարողացա թարմացնել SQL Server մինչև 2016 թվականի տարբերակը
Աջակցվող արտադրանքը ավելի մեծ համակարգի մի մասն էր՝ սերտորեն զուգակցված ժառանգական ճարտարապետությամբ և նաև խոսում էր այլ ապրանքների և հիմքերի հետ, ուստի այն կարող է շատ երկար տևել մեկ այլ կայան տեղադրելու համար:
Հաշվի առնելով վերը նշվածը, ես եկա այն եզրակացության, որ եկել է ոչ ստանդարտ լուծումների հենակների ժամանակը։
Տվյալների վերականգնում կրկնօրինակից
Ես նախընտրեցի օգտագործել վիրտուալ մեքենա Oracle VM VirtualBox- ը Windows 10-ով (կարող եք փորձնական պատկեր վերցնել Edge բրաուզերի համար ուստի). SQL Server 2016-ը տեղադրվել է վիրտուալ մեքենայի վրա և հավելվածի տվյալների բազան վերականգնվել է կրկնօրինակից (հրահանգավորում).
SQL Server-ի հասանելիության կարգավորում վիրտուալ մեքենայի վրա
Հաջորդը, անհրաժեշտ էր որոշակի քայլեր ձեռնարկել, որպեսզի կարողանանք մուտք գործել SQL Server դրսից.
Firewall-ի համար ավելացրեք կանոն, որը թույլ կտա փոխանցել նավահանգիստների հարցումները 1433.
Ցանկալի է, որ սերվերի մուտքն անցնի ոչ թե Windows-ի վավերացման միջոցով, այլ SQL-ի միջոցով՝ մուտքի և գաղտնաբառի միջոցով (հեշտ է մուտքի կարգավորումը): Այնուամենայնիվ, այս դեպքում դուք պետք է հիշեք միացնել SQL վավերացումը SQL Server-ի հատկություններում:
Օգտվողի կարգավորումներում SQL Server-ի ներդիրում Օգտագործողի քարտեզագրում նշեք օգտագործողի դերը վերականգնված տվյալների բազայի համար db_securityadmin.
Տվյալների փոխանցում
Փաստորեն, տվյալների փոխանցումն ինքնին բաղկացած է երկու փուլից.
Տվյալների սխեմայի փոխանցում (աղյուսակներ, դիտումներ, պահված ընթացակարգեր և այլն)
Տվյալների ինքնին փոխանցում
Տվյալների սխեմայի փոխանցում
Մենք կատարում ենք հետևյալ գործողությունները.
ընտրել Առաջադրանքներ -> Ստեղծել սցենարներ շարժական բազայի համար.
Ընտրեք այն օբյեկտները, որոնք դուք պետք է փոխանցեք կամ թողեք լռելյայն արժեքը (այս դեպքում տվյալների բազայի բոլոր օբյեկտների համար կստեղծվեն սցենարներ):
Նշեք սկրիպտը պահելու կարգավորումները: Առավել հարմար է սկրիպտը մեկ Unicode ֆայլում պահելը: Հետո ձախողման դեպքում բոլոր քայլերը նորից կրկնելու կարիք չկա։
Հենց որ սկրիպտը պահպանվի, այն կարող է գործարկվել սկզբնական SQL Server-ի վրա (հին տարբերակ)՝ անհրաժեշտ բազան ստեղծելու համար:
Նշում: Սցենարը կատարելուց հետո անհրաժեշտ է ստուգել տվյալների բազայի կարգավորումների համապատասխանությունը կրկնօրինակից և սկրիպտի կողմից ստեղծված տվյալների բազայի միջև: Իմ դեպքում, սցենարում COLLATE-ի կարգավորում չկար, ինչը հանգեցրեց ձախողման տվյալների փոխանցման և դափի հետ պարելու ժամանակ՝ տվյալների բազան վերստեղծելու համար՝ օգտագործելով լրացված սցենարը:
Տվյալների փոխանցում
Տվյալներ փոխանցելուց առաջ դուք պետք է անջատեք տվյալների բազայի բոլոր սահմանափակումների ստուգումը.
Տվյալների փոխանցումն իրականացվում է տվյալների ներմուծման մոգերի միջոցով Առաջադրանքներ -> Տվյալների ներմուծում SQL Server-ում, որտեղ գտնվում է սցենարի կողմից ստեղծված տվյալների բազան.
Նշեք կապի կարգավորումները աղբյուրին (SQL Server 2016 վիրտուալ մեքենայի վրա): Ես օգտագործել եմ տվյալների աղբյուրը SQL Server Native Client և վերը նշված SQL նույնականացումը:
Նշեք միացման կարգավորումները նպատակակետի համար (SQL Server 2014 հյուրընկալող մեքենայի վրա):
Հաջորդը, կարգավորեք քարտեզագրումը: Բոլորը պետք է ընտրվեն ոչ միայն կարդալու համար օբյեկտներ (օրինակ, դիտումները պետք չէ ընտրել): Որպես լրացուցիչ ընտրանքներ, ընտրեք «Թույլատրել զետեղումը նույնականացման սյունակներում», եթե այդպիսիք օգտագործվում են. Նշում: եթե փորձեք ընտրել մի քանի աղյուսակ և հատկացնել նրանց հատկությունը «Թույլատրել զետեղումը նույնականացման սյունակներում» հատկությունն արդեն սահմանվել է ընտրված աղյուսակներից առնվազն մեկի համար, երկխոսության պատուհանը ցույց կտա, որ հատկությունն արդեն սահմանված է ընտրված բոլոր աղյուսակների համար: Այս փաստը կարող է շփոթեցնող լինել և հանգեցնել միգրացիոն սխալների:
Եթե որևէ սխալ առաջանա, մենք ստուգում ենք կարգավորումները, ջնջում ենք սխալներով ստեղծված տվյալների բազան, նորից ստեղծում այն սկրիպտից, ուղղումներ ենք անում և կրկնում տվյալների փոխանցումը։
Ամփոփում
Այս խնդիրը բավականին հազվադեպ է և տեղի է ունենում միայն վերը նշված սահմանափակումների պատճառով: Ամենատարածված լուծումը SQL Server-ի արդիականացումն է կամ հեռավոր սերվերին միանալը, եթե հավելվածի ճարտարապետությունը դա թույլ է տալիս: Այնուամենայնիվ, ոչ ոք պաշտպանված չէ ժառանգական կոդի և անորակ զարգացման ծուռ ձեռքերից: Հուսով եմ, որ այս հրահանգը ձեզ պետք չի լինի, բայց եթե դեռ դրա կարիքը ունեք, դա կօգնի խնայել շատ ժամանակ և նյարդեր։ Շնորհակալություն ուշադրության համար!