[Guide] Как да прехвърлим базата данни към друга версия

AnHiMiLaToR

The Prodigy
Joined
Jul 9, 2008
Messages
368
Reaction score
107
Урока е написан от Khorr0, преведен на английски от HellSing и преведен на български от мен.


Първо си Backup-вате сегашната база данни. (MuOnline, Ranking - не)

След това си Restore-вате новата (както правите чисто нов сървър)

После, създавате нова база данни с име MuOnline2 и върху нея възстановявате (Restore) старата база данни, която по-горе сте backup-нали.

В базата данни MuOnline2 променете следните таблици като добавяте 2 в края им:

Code:
AccountCharacter
Character
Guild *
GuildMember *
MEMB_INFO
MEMB_STAT
OptionData
VI_CURR_INFO
warehouse

Трябва да станат така:

Code:
AccountCharacter2
Character2
Guild2 *
GuildMember2 *
MEMB_INFO2
MEMB_STAT2
OptionData2
VI_CURR_INFO2
warehouse2

Сега пристъпваме към същинската част:

1.- Отваряме Enterprise Manager
2.- Влизаме в базите данни > MuOnline > All Tasks > Import Data
3.- Цъкаме Next в първия прозорец
4.- Във втория оставяме всичко както е така но сменяме базата данни на: MuOnline2 като задължително написаме SQL име и парола.
5.- Не пипаме третия прозорец освен SQL име и парола.
6.- В четвъртия прозорец избираме "Copy the table(s) and view(s) from source database"
7.- В следващия прозорец избираме таблиците:

Code:
AccountCharacter2
Character2
Guild2 *
GuildMember2 *
MEMB_INFO2
MEMB_STAT2
OptionData2
VI_CURR_INFO2
warehouse2

* Не е препоръчително да прехвърляте тези таблици.

След като изберем таблици влизаме в Start > All Programs > MS SQL Server > Query Analyzer, там пишем следното куери:

Code:
USE MuOnline
Insert Into AccountCharacter (Id, GameID1, GameID2, GameID3, GameID4, GameID5, GameIDC)
Select AccountCharacter2.Id, AccountCharacter2.GameID1, AccountCharacter2.GameID2, AccountCharacter2.GameID3, AccountCharacter2.GameID4, AccountCharacter2.GameID5, AccountCharacter2.GameIDC from AccountCharacter2 
GO
 
Insert Into Character (AccountID, Name, cLevel, LevelUpPoint, Class, Experience, Strength, Dexterity,Vitality, Energy, Inventory, MagicList, Money, Life, MaxLife, Mana, MaxMana, MapNumber, MapPosX, MapPosY, MapDir, PkCount, PkLevel, PkTime, MDate, LDate, CtlCode, DbVersion, Quest)
Select Character2.AccountID, Character2.Name, Character2.cLevel, Character2.LevelUpPoint, Character2.Class, Character2.Experience, Character2.Strength, Character2.Dexterity,Character2.Vitality, Character2.Energy, Character2.Inventory, Character2.MagicList, Character2.Money, Character2.Life, Character2.MaxLife, Character2.Mana, Character2.MaxMana, Character2.MapNumber, Character2.MapPosX, Character2.MapPosY, Character2.MapDir, Character2.PkCount, Character2.PkLevel, Character2.PkTime, Character2.MDate, Character2.LDate, Character2.CtlCode, Character2.DbVersion, Character2.Quest from Character2 
GO
 
Insert Into Guild ( G_Name, G_Mark, G_Score, G_Master, G_Count, G_Notice) 
Select Guild2.G_Name, Guild2.G_Mark, Guild2.G_Score, Guild2.G_Master, Guild2.G_Count, Guild2.G_Notice from Guild2
GO
 
Insert Into GuildMember ( Name, G_Name, G_Level)
Select GuildMember2.Name, GuildMember2.G_Name, GuildMember2.G_Level from GuildMember2
GO
 
Insert Into MEMB_INFO ( memb___id, memb__pwd, memb_name, sno__numb, post_code, addr_info, addr_deta, tel__numb, phon_numb, mail_addr, fpas_ques, fpas_answ, job__code, appl_days, modi_days, out__days, true_days, mail_chek, bloc_code, ctl1_code)
Select MEMB_INFO2.memb___id, MEMB_INFO2.memb__pwd, MEMB_INFO2.memb_name, MEMB_INFO2.sno__numb, MEMB_INFO2.post_code, MEMB_INFO2.addr_info, MEMB_INFO2.addr_deta, MEMB_INFO2.tel__numb, MEMB_INFO2.phon_numb, MEMB_INFO2.mail_addr, MEMB_INFO2.fpas_ques, MEMB_INFO2.fpas_answ, MEMB_INFO2.job__code, MEMB_INFO2.appl_days, MEMB_INFO2.modi_days, MEMB_INFO2.out__days, MEMB_INFO2.true_days, MEMB_INFO2.mail_chek, MEMB_INFO2.bloc_code, MEMB_INFO2.ctl1_code from MEMB_INFO2
GO
 
Insert Into MEMB_STAT ( memb___id, ConnectStat, ServerName, IP, ConnectTM, DisConnectTM)
Select MEMB_STAT2.memb___id, MEMB_STAT2.ConnectStat, MEMB_STAT2.ServerName, MEMB_STAT2.IP, MEMB_STAT2.ConnectTM, MEMB_STAT2.DisConnectTM from MEMB_STAT2
GO
 
Insert Into OptionData (Name, Skillkey, GameOption, Qkey, Wkey, Ekey, ChatWindow)
Select OptionData2.Name, OptionData2.Skillkey, OptionData2.GameOption, OptionData2.Qkey, OptionData2.Wkey, OptionData2.Ekey, OptionData2.ChatWindow from OptionData2
GO
 
Insert Into VI_CURR_INFO ( ends_days, chek_code, used_time, memb___id, memb_name, memb_guid, sno__numb, Bill_Section, Bill_Value, Bill_Hour,Surplus_Point, Surplus_Minute, Increase_Days)
Select VI_CURR_INFO2.ends_days, VI_CURR_INFO2.chek_code, VI_CURR_INFO2.used_time, VI_CURR_INFO2.memb___id, VI_CURR_INFO2.memb_name, VI_CURR_INFO2.memb_guid, VI_CURR_INFO2.sno__numb, VI_CURR_INFO2.Bill_Section, VI_CURR_INFO2.Bill_Value, VI_CURR_INFO2.Bill_Hour, VI_CURR_INFO2.Surplus_Point, VI_CURR_INFO2.Surplus_Minute, VI_CURR_INFO2.Increase_Days from VI_CURR_INFO2
GO
 
Insert Into warehouse ( AccountID, Items, Money, EndUseDate, DbVersion, pw)
Select warehouse2.AccountID, warehouse2.Items, warehouse2.Money, warehouse2.EndUseDate, warehouse2.DbVersion, warehouse2.pw from warehouse2
GO

И вече имаме готова база данни на новата версия.

Важно: Базата данни, в която ще прехвърляте трябва да е чиста без акаунти.
Друго важно: Ако дава грешки на таблиците при куерито трябва да ги изпълнявате една по една докато станат всичките. При мен станаха без грешки. От 97d > Season IV
 
мерси много ми помогна !
 
мерси много ми помогна !


На тебе все всичко ти помага.


По темата: Добра работа anhi. Продаде ли куулото ?
 
ето го направено на прост .html page source writen by notepad++..
аз ги правя така за по лесен guide :)

Code:
<html>

<head>
<meta http-equiv="Content-Language" content="bg">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Как да си направим Database Migration</title>
</head>

<body>

<p><u><b><font size="4" face="Arial">* Да преместим героите в новите Датабази *</font></b></u></p>
<br>
<br>
Урока е написан от Khorr0, преведен на английски от HellSing и преведен на български от мен.

 
<br>Първо си Backup-вате сегашната база данни. (MuOnline, Ranking - не)

<br>След това си Restore-вате новата (както правите чисто нов сървър)

<br>После, създавате нова база данни с име [b]MuOnline2[/b] и върху нея възстановявате (Restore) старата база данни, която по-горе сте backup-нали.
 
<br>В базата данни [B]MuOnline2[/B] променете следните таблици като добавяте 2 в края им:
<br> 
<br>
<br>AccountCharacter
<br>Character
<br>Guild *
<br>GuildMember *
<br>MEMB_INFO
<br>MEMB_STAT
<br>OptionData
<br>VI_CURR_INFO
<br>warehouse
<br>
<br> 
<br>Трябва да станат така:
<br>
<br>
<br>AccountCharacter2
<br>Character2
<br>Guild2 *
<br>GuildMember2 *
<br>MEMB_INFO2
<br>MEMB_STAT2
<br>OptionData2
<br>VI_CURR_INFO2
<br>warehouse2
<br>
<br>
<br>Сега пристъпваме към същинската част:
<br> 
<br>1.- Отваряме Enterprise Manager
<br>2.- Влизаме в базите данни > MuOnline > All Tasks > Import Data
<br>3.- Цъкаме Next в първия прозорец
<br>4.- Във втория оставяме всичко както е така но сменяме базата данни на: MuOnline2 като задължително написаме SQL име и парола. 
<br>5.- Не пипаме третия прозорец освен SQL име и парола.
<br>6.- В четвъртия прозорец избираме "Copy the table(s) and view(s) from source database"
<br>7.- В следващия прозорец избираме таблиците:
<br>
<br> 
<br>AccountCharacter2
<br>Character2
<br>Guild2 *
<br>GuildMember2 *
<br>MEMB_INFO2
<br>MEMB_STAT2
<br>OptionData2
<br>VI_CURR_INFO2
<br>warehouse2
<br>
<br>
<br>* Не е препоръчително да прехвърляте тези таблици.
<br>
<br>След като изберем таблици влизаме в Start > All Programs > MS SQL Server > Query Analyzer, там пишем следното куери:
<br>
<br> 
<br>USE MuOnline
<br>Insert Into AccountCharacter (Id, GameID1, GameID2, GameID3, GameID4, GameID5, GameIDC)</br>
Select AccountCharacter2.Id, AccountCharacter2.GameID1, AccountCharacter2.GameID2, AccountCharacter2.GameID3, AccountCharacter2.GameID4, AccountCharacter2.GameID5, AccountCharacter2.GameIDC from AccountCharacter2 
<br>GO
<br> 
<br>Insert Into Character (AccountID, Name, cLevel, LevelUpPoint, Class, Experience, Strength, Dexterity,Vitality, Energy, Inventory, MagicList, Money, Life, MaxLife, Mana, MaxMana, MapNumber, MapPosX, MapPosY, MapDir, PkCount, PkLevel, PkTime, MDate, LDate, CtlCode, DbVersion, Quest)
<br>Select Character2.AccountID, Character2.Name, Character2.cLevel, Character2.LevelUpPoint, Character2.Class, Character2.Experience, Character2.Strength, Character2.Dexterity,Character2.Vitality, Character2.Energy, Character2.Inventory, Character2.MagicList, Character2.Money, Character2.Life, Character2.MaxLife, Character2.Mana, Character2.MaxMana, Character2.MapNumber, Character2.MapPosX, Character2.MapPosY, Character2.MapDir, Character2.PkCount, Character2.PkLevel, Character2.PkTime, Character2.MDate, Character2.LDate, Character2.CtlCode, Character2.DbVersion, Character2.Quest from Character2 
<br>GO
<br> 
<br>Insert Into Guild ( G_Name, G_Mark, G_Score, G_Master, G_Count, G_Notice) 
<br>Select Guild2.G_Name, Guild2.G_Mark, Guild2.G_Score, Guild2.G_Master, Guild2.G_Count, Guild2.G_Notice from Guild2
<br>GO
<br> 
<br>Insert Into GuildMember ( Name, G_Name, G_Level)
<br>Select GuildMember2.Name, GuildMember2.G_Name, GuildMember2.G_Level from GuildMember2
<br>GO
<br> 
<br>Insert Into MEMB_INFO ( memb___id, memb__pwd, memb_name, sno__numb, post_code, addr_info, addr_deta, tel__numb, phon_numb, mail_addr, fpas_ques, fpas_answ, job__code, appl_days, modi_days, out__days, true_days, mail_chek, bloc_code, ctl1_code)
<br>Select MEMB_INFO2.memb___id, MEMB_INFO2.memb__pwd, MEMB_INFO2.memb_name, MEMB_INFO2.sno__numb, MEMB_INFO2.post_code, MEMB_INFO2.addr_info, MEMB_INFO2.addr_deta, MEMB_INFO2.tel__numb, MEMB_INFO2.phon_numb, MEMB_INFO2.mail_addr, MEMB_INFO2.fpas_ques, MEMB_INFO2.fpas_answ, MEMB_INFO2.job__code, MEMB_INFO2.appl_days, MEMB_INFO2.modi_days, MEMB_INFO2.out__days, MEMB_INFO2.true_days, MEMB_INFO2.mail_chek, MEMB_INFO2.bloc_code, MEMB_INFO2.ctl1_code from MEMB_INFO2
<br>GO
<br> 
<br>Insert Into MEMB_STAT ( memb___id, ConnectStat, ServerName, IP, ConnectTM, DisConnectTM)
<br>Select MEMB_STAT2.memb___id, MEMB_STAT2.ConnectStat, MEMB_STAT2.ServerName, MEMB_STAT2.IP, MEMB_STAT2.ConnectTM, MEMB_STAT2.DisConnectTM from MEMB_STAT2
<br>GO
<br>
<br>Insert Into OptionData (Name, Skillkey, GameOption, Qkey, Wkey, Ekey, ChatWindow)
<br>Select OptionData2.Name, OptionData2.Skillkey, OptionData2.GameOption, OptionData2.Qkey, OptionData2.Wkey, OptionData2.Ekey, OptionData2.ChatWindow from OptionData2
<br>GO
<br> 
<br>Insert Into VI_CURR_INFO ( ends_days, chek_code, used_time, memb___id, memb_name, memb_guid, sno__numb, Bill_Section, Bill_Value, Bill_Hour,Surplus_Point, Surplus_Minute, Increase_Days)
<br>Select VI_CURR_INFO2.ends_days, VI_CURR_INFO2.chek_code, VI_CURR_INFO2.used_time, VI_CURR_INFO2.memb___id, VI_CURR_INFO2.memb_name, VI_CURR_INFO2.memb_guid, VI_CURR_INFO2.sno__numb, VI_CURR_INFO2.Bill_Section, VI_CURR_INFO2.Bill_Value, VI_CURR_INFO2.Bill_Hour, VI_CURR_INFO2.Surplus_Point, VI_CURR_INFO2.Surplus_Minute, VI_CURR_INFO2.Increase_Days from VI_CURR_INFO2
<br>GO
<br> 
<br>Insert Into warehouse ( AccountID, Items, Money, EndUseDate, DbVersion, pw)
<br>Select warehouse2.AccountID, warehouse2.Items, warehouse2.Money, warehouse2.EndUseDate, warehouse2.DbVersion, warehouse2.pw from warehouse2
<br>GO
<br>
<br>
<br>И вече имаме готова база данни на новата версия.
<br> 
<br>Важно: Базата данни, в която ще прехвърляте трябва да е чиста без акаунти.
<br>Друго важно: Ако дава грешки на таблиците при куерито трябва да ги изпълнявате една по една докато станат всичките. При мен станаха без грешки. От 97d > Season IV


</font><br>

<p><u><b><font size="4" face="Arial" color=blue>Credits:</font></u></b></p>
<p><b><font size="4" face="Arial" color=green>AnHiMiLaToR</font></b></p>
<p><b><font size="4" face="Arial" color=pink>Khorr0</font></b></p>
<p><b><font size="4" face="Arial" color=red>Diablo</font></b></p>
</body>

</html>
 
Е добре виж сега правя всичките с двойки накрая и когато стигна то тук 7.- В следващия прозорец избираме таблиците: ми показва че само AccountCharacter2 е променена с 2-ка другите също са променени но не показва там че са с двойки какво да правя ?
 
Last edited:
направих го това но нещо ресовете не ги прехвърля?
 
да наистина не прехвърля ресовете и точките на гилдите
 
ааа не ги ли прехфърля ресовете е .. имам проблем с gs то на 1.00L заби и не иска да се пусне ... смених го и пак така ... и сега искам да го преметна на друга версия но ако не се местят ресовете съм прецакан ...
 
Cannot insert explicit value for identity column in table 'MEMB_INFO' when IDENTITY_INSERT is set to OFF.

как да го направя ON някой знае ли?