قسم الشروحات و البرامج المستخدمة في عمل السيرفرات الخاصة [ قسم متخصص فى شروحات و البرامج في عمل السيرفرات الخاصة ] [ يرجى عدم وضع الأسئلة والاستفسارات في هذا القسم ] |
|
أدوات الموضوع | انواع عرض الموضوع |
|
05-03-2013, 02:41 PM | #1 | ||||||||||
|
موضوع انهارده : للشغال باي داتابيز غير اللي انا نزلتها وطبعا كلها بتعمل Dump Files وانت بتستسهل الموضوع وبتجيب برنامج يلغى ال dump files طيب ليه منحلش الموضوع من غير اي برنامج بمعني نخلي كفاءه الملفات 99% من غير اخطاء طيب اي اللي بيخلي الاخطاء تيجي ؟؟ ان في حاجه في الداتا بيز مش مظبوطه دلوقتي انا هقول على كام خطاء بيطلع في ملفات السيرفير واهمهم ال Global Manager واللي يشوف اي خطاء من دول يصلحه بالكويري اللي هيبقى تحت الخطأ نبتدى على البركه (1) الرساله : كود:
failed to permanent removing of character ! [JID: 45234, CharID: 75375, ErrorCode: -10000] الحل : كود:
USE [SRO_VT_SHARD] GO /****** Object: StoredProcedure [dbo].[_DeleteCharPermanently] Script Date: 02/14/2012 12:54:06 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER OFF GO --!!!CHECK!!! ALTER PROCEDURE [dbo].[_DeleteCharPermanently] @CharID as int as ------------------------------------ -- 일단 삭제된 캐릭인지 부터 검사! ------------------------------------ if (not exists(select charid from _deletedchar where charid = @CharID)) begin return -1 end ------------------------------------ -- 삭제후 경과된 시간이 대략 7일이 맞는가 확인 (샤드에 혹시 버그가 있을지 모르니깐...) ------------------------------------ declare @deleted_date datetime declare @cur_date datetime declare @elapsed_min int declare @UserJID int -- declare @deleted_slot int set @cur_date = getdate() select @UserJID = UserJID, /*@deleted_slot = CharSlot,*/ @deleted_date = deleteddate from _deletedchar with (nolock) where charid = @CharID -- 삭제시킨지 6일 + 23시간 이상이 지난 캐릭인가? (1시간 정도의 오차라면 인정해 준다 냐하~) set @elapsed_min = datediff(minute, @deleted_date, @cur_date) if (@elapsed_min < ((60 * 24 * 6) + (60 * 23))) begin return -2 end ------------------------------------ -- 삭제된 캐릭이 맞는지 다시한번 확인 ------------------------------------ declare @is_deleted tinyint select @is_deleted = deleted from _Char where CharID = @CharID if (@is_deleted <> 1) begin return -3 end ------------------------------------ -- 지울 캐릭이 _User 에 있는 CharID와 일치하는가 검사 ------------------------------------ declare @char_id_to_check int set @char_id_to_check = 0 /* -- commented by novice. for server integration. if (@deleted_slot = 0) begin select @char_id_to_check = CharID1 from _User where UserJID = @UserJID end else if (@deleted_slot = 1) begin select @char_id_to_check = CharID2 from _User where UserJID = @UserJID end else if (@deleted_slot = 2) begin select @char_id_to_check = CharID3 from _User where UserJID = @UserJID end else begin return -4 end -- 켁! 어떻게 된거야? 이상한 넘이 자리를 차지하고 있다! if (@char_id_to_check <> @CharID) begin return -5 end */ -- start by novice. select @char_id_to_check = CharID from _User where UserJID = @UserJID and CharID = @CharID if (@char_id_to_check = 0) begin -- 지울 캐릭터가 _User 에 없어? return -5 end -- finish by novice. begin transaction declare @GuildID int exec @GuildID = _DeleteCharPermanently_NoTX @UserJID, @CharID --, @deleted_slot if (@GuildID is null) set @GuildID = -10000 if (@GuildID < 0) begin rollback transaction return @GuildID end commit transaction return @GuildID (2) الرساله : الحل : كود:
USE [SRO_VT_ACCOUNT] GO /****** Object: StoredProcedure [dbo].[_RegisterAutomatedPunishment] Script Date: 10/24/2011 05:46:38 ******/ SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO ALTER PROCEDURE [dbo].[_RegisterAutomatedPunishment] @Account VARCHAR(128), @Type TINYINT, @Executor VARCHAR(128), @Guide VARCHAR(512), @Description VARCHAR(1024), @BlockTimeElapse INT -- @BlockStartTime DATETIME, -- @BlockEndTime DATETIME AS DECLARE @BlockStartTime VARCHAR(128) DECLARE @BlockEndTime VARCHAR(128) SET @BlockStartTime = getdate() SET @BlockEndTime = dateadd(minute, 10, getdate()) ------------------------------------------------------------------------------------ DECLARE @UserJID INT SET @UserJID = 0 DECLARE @NewSerialNo int SET @NewSerialNo = 0 -- Á¸ÀçÇϴ ij¸¯ÅÍ À̸§ÀÎÁö? JID ¾÷¾î¿ÀÀÚ. SELECT @UserJID = JID FROM TB_User WITH (NOLOCK) WHERE strUserID = @Account IF @@ERROR <> 0 OR @UserJID = 0 BEGIN SELECT -1 RETURN END -- ÀÌ¹Ì ºí·° °É¸° À¯ÀúÀ̳Ä? IF( EXISTS ( SELECT UserJID FROM _BlockedUser WITH (NOLOCK) WHERE UserJID = @UserJID AND Type = @Type)) BEGIN select -2 RETURN END INSERT _Punishment values( @UserJID, @Type, @Executor, 0, '', '', '', @Guide, @Description, @BlockStartTime, @BlockStartTime, @BlockEndTime, @BlockStartTime, 0) set @NewSerialNo = @@identity if( @@rowcount = 0 or @@error <> 0 or @NewSerialNo = 0 or @NewSerialNo is null) BEGIN SELECT -3 RETURN END INSERT _BlockedUser values( @UserJID, @Account, @Type, @NewSerialNo, @BlockStartTime, @BlockEndTime) if( @@rowcount = 0 or @@error <> 0 ) BEGIN SELECT -4 RETURN END SELECT @UserJID (3) شويه كويري استخدمها هتظبطلك حاجات في الداتا كود:
USE [SRO_VT_SHARD] GO /****** Object: StoredProcedure [dbo].[_DeleteCharPermanently_NoTX] Script Date: 02/14/2012 12:54:27 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER OFF GO ALTER PROCEDURE [dbo].[_DeleteCharPermanently_NoTX] @UserJID INT , @CharID INT AS ------------------------------------ -- Inventory¶û ±×¾È¿¡ °¡Áö°í ÀÖ´ø ¾ÆÀÌÅÛµé ³¯·Á¹ö¸®ÀÚ... ------------------------------------ -------------- Æê ¼Òȯ ¾ÆÀÌÅÛºÎÅÍ ÀÏ´Ü »èÁ¦ ---------------- declare @result int declare @Slot tinyint declare @RefItemID int declare pc_inv_cursor cursor fast_forward for select inv.slot from _Inventory as inv join _Items as it on inv.ItemID = it.ID64 where (inv.CharID = @CharID and inv.Slot >= 13 and inv.ItemID > 0) and -- Àåºñâ Á¦¿ÜÇÏ°í ¾ÆÀÌÅÛ ÀÖ´Â ¼ø¼ö Àκ¥Å丮 ¾È¿¡ µé¾îÀÖÀ¸¸ç (it.Data <> 0) and -- ¼Òȯ¼ö¸¦ °¡Áö°í ÀÖ´Â (exists (select top 1 ID from _RefObjCommon where ID = it.RefItemID and TypeID1 = 3 and TypeID2 = 2)) -- Æê¼Òȯ ¾ÆÀÌÅÛµé ã¾ÆÁà~ open pc_inv_cursor fetch next from pc_inv_cursor into @slot while @@fetch_status = 0 begin exec @result = _STRG_DEL_ITEM_NoTX 1, @CharID, @Slot if (@result < 0) begin close pc_inv_cursor deallocate pc_inv_cursor return @result end fetch next from pc_inv_cursor into @Slot end close pc_inv_cursor deallocate pc_inv_cursor ------------------- ³²Àº ¾ÆÀÌÅÛµé ¸ùâ »èÁ¦ ------------------- -- ¾ÆÀÌÅÛÀÌ Çϳª¶óµµ ÀÖ´Ù¸é... if (exists (select top 1 itemID from _Inventory where CharID = @CharID AND ItemID <> 0)) begin update _ItemPool Set InUse = 0 from _ItemPool as pool join _Inventory as inv on pool.ItemID = Inv.ItemID where Inv.CharID = @CharID and Inv.ItemID <> 0 end ----------- ¾ÆÀÌÅÛµé ³¯·ÈÀ¸´Ï ÃÖÁ¾ÀûÀ¸·ç Àκ¥Å丮 »èÁ¦ ------------ delete from _Inventory where CharID = @CharID if (@@error <> 0) begin return -10001 end --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -- APPLY_AVATAR_SYSTEM (Çã½Â¿í) --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ------------------- ³²Àº ¾Æ¹ÙŸ Àκ¥Å丮 ¾ÆÀÌÅÛµé ¸ùâ »èÁ¦ ------------------- -- ¾ÆÀÌÅÛÀÌ Çϳª¶óµµ ÀÖ´Ù¸é... if (exists (select top 1 itemID from _InventoryForAvatar where CharID = @CharID AND ItemID <> 0)) begin update _ItemPool Set InUse = 0 from _ItemPool as pool join _InventoryForAvatar as InvAva on pool.ItemID = InvAva.ItemID where InvAva.CharID = @CharID and InvAva.ItemID <> 0 end ----------- ¾ÆÀÌÅÛµé ³¯·ÈÀ¸´Ï ÃÖÁ¾ÀûÀ¸·ç ¾Æ¹ÙŸ Àκ¥Å丮 »èÁ¦ ------------ delete from _InventoryForAvatar where CharID = @CharID if (@@error <> 0) begin return -10008 end --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -- APPLY_AVATAR_SYSTEM (Çã½Â¿í) --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ------------------------------------ -- COS »èÁ¦ ------------------------------------ /* declare @engaged_cos int set @engaged_cos = 0 select @engaged_cos = EngagedCOS from _char with (nolock) where CharID = @CharID if (@engaged_cos = 0) begin -- ¿Ö ¹ß»ýÇÏ´Â Áö Àß ¸ð¸£°ÚÁö¸¸... ¾ÆÁÖ µå¹°°Ô COS ¸¸ ³²¾ÆÀÖ´Â °æ¿ì°¡ ÀÖ´õ¶ó°í... -_-; select @engaged_cos = ID from _CharCOS with (nolock) where OwnerCharID = @CharID if (@engaged_cos is null) set @engaged_cos = 0 end if (@engaged_cos is not null and @engaged_cos <> 0) begin declare @Return_Del_COS int exec @Return_Del_COS = _DeleteCharCOS_NoTX @CharID, @engaged_cos if (@Return_Del_COS < 0) begin return -10002 end end */ ------------------------------------ -- Trijob µ¥ÀÌÅÍ »èÁ¦ ------------------------------------ delete from _CharTrijob where CharID = @CharID ------------------------------------ -- ½ºÅ³ »èÁ¦ ------------------------------------ delete _CharSkill where CharId = @CharID delete _CharSkillMastery where charId = @CharID ------------------------------------ -- Äù½ºÆ® »èÁ¦ ------------------------------------ delete _CharQuest where CharID = @CharID ------------------------------------ -- ±æµå ¸â¹ö »èÁ¦ ------------------------------------ -- !!! ¸¸¾à ¿©±â¼* Guild ¸â¹ö »èÁ¦°¡ ÀϾÁö ¾ÊÀ¸¸é ShardManager ¿¡¼* -- _Guild_DelMember È£ÃâÇØ ÁÖµµ·Ï ¼öÁ¤ÇØ¾ß ÇÑ´Ù! Áö±ÝÀº ±× °úÁ¤Àº SkipÇÏ°í -- ¸Þ¸ð¸®¿¡¼* »èÁ¦¸¸ ÀϾ°Ô µÇ¾î Àְŵ¢... declare @GuildID int set @GuildID = 0 select @GuildID = GuildID from _char where charid = @CharID if (@GuildID is not null and @GuildID <> 0) begin if (not exists (select ID from _Guild where ID = @GuildID)) begin update _Char set GuildID = 0 where CharID = @CharID end else begin declare @Return_Del_GuildMember int exec @Return_Del_GuildMember = _Guild_DelMember_NoTX @GuildID, @CharID if (@Return_Del_GuildMember < 0) return -10003 end end --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -- APPLY_MENTOR_SYSTEM (ÃÖÀÎÈ£) --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ DECLARE @CampID INT SET @CampID = 0 SELECT @CampID = CampID FROM _TrainingCampMember WHERE CharID = @CharID IF (@CampID IS NOT NULL AND @CampID <> 0) BEGIN DECLARE @Ret_DelCampMember INT EXEC @Ret_DelCampMember = _TRAINING_CAMP_DELMEMBER @CampID, @CharID, 0 IF (@Ret_DelCampMember < 0) RETURN -10007 END -- ÀÖÀ¸¸é Áö¿ö¹ö¸®ÀÚ~ ¹¹. DELETE FROM _TrainingCampSubMentorHonorPoint WHERE CharID = @CharID -- °æÇèÄ¡ ¹öÇÁ ·¹Äڵ嵵~~ ¤»¤» DELETE FROM _TrainingCampBuffStatus WHERE CampID = @CampID --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -- APPLY_MENTOR_SYSTEM (ÃÖÀÎÈ£) --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ----------------------------------- -- Ä£±¸ ¸®½ºÆ® »èÁ¦ ( ³ªÀÇ Ä£±¸ ¸®½ºÆ® + Ä£±¸ÀÇ Ä£±¸ ¸®½ºÆ®Áß ³ª ) ----------------------------------- -- ³» Ä£±¸µé.. declare @FriendCharID int declare @cursor_var cursor set @cursor_var = cursor fast_forward for select FriendCharID from _Friend where CharID = @CharID open @cursor_var fetch next from @cursor_var into @FriendCharID while( @@FETCH_STATUS = 0 ) begin delete _Friend where CharID = @FriendCharID and FriendCharID = @CharID fetch next from @cursor_var into @FriendCharID end close @cursor_var deallocate @cursor_var -- ³ª.. delete _Friend where CharID = @CharID ----------------------------------- ----------------------------------- -- ÂÊÁö »èÁ¦ ----------------------------------- delete _Memo where CharID = @CharID ------------------------------------ -- TimedJob »èÁ¦Çϱâ ------------------------------------ delete _TimedJob where CharID = @CharID ------------------------------------ -- Static Avatar Á¤º¸ »èÁ¦ ------------------------------------ delete from _staticavatar where charid = @charid ------------------------------------ -- ±Ó¸» ºí·° Á¤º¸ »èÁ¦ ------------------------------------ delete from _BlockedWhisperers where OwnerID = @charid ------------------------------------ -- ÆÄƼÃÊ´ë ºí·° Á¤º¸ »èÁ¦ 10.06.07 ------------------------------------ DELETE FROM _BlockedPartyInviter WHERE CharID = @charid ------------------------------------ -- _DeletedChar Entry »èÁ¦ ------------------------------------ delete from _DeletedChar where CharID = @CharID if (@@error <> 0) begin return -10004 end -- start by novice. DELETE FROM _User WHERE UserJID = @UserJID and CharID = @CharID -- finish by novice. ------------------------------------ -- commit !!! ------------------------------------ -- Ŭ¶óÀ̾ðÆ®¿ë Äü½½·Ô Á¤º¸ ÀúÀå Å×ÀÌºí ³¯¸®±â!!! exec _RemoveClientConfig @CharID -- by novice...... for saving client configurations... return @GuildID كود:
USE [SRO_VT_ACCOUNT] GO /****** Object: StoredProcedure [dbo].[_ManageShardCharName] Script Date: 02/14/2012 12:56:27 ******/ SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO ALTER procedure [dbo].[_ManageShardCharName] @job tinyint, @UserJID int, @ShardID smallint, @CharName varchar(64), @OldName varchar(64) as -- add new char name if (@job = 0) begin if (not exists(select * from SR_ShardCharNames where UserJID = @UserJID and ShardID = @ShardID and CharName = @CharName)) begin insert SR_ShardCharNames values(@UserJID, @ShardID, @CharName) end end -- remove char name else if (@job = 1) begin delete SR_ShardCharNames where UserJID = @UserJID and ShardID = @ShardID and CharName = @CharName -- delete SR_CharAppoint where UserJID = @UserJID and ShardID = @ShardID and CharID = @CharName end -- rename previous one else if (@job = 2) begin update SR_ShardCharNames set CharName = @CharName where UserJID = @UserJID and ShardID = @ShardID and CharName = @OldName -- update SR_CharAppoint set CharID = @CharName where UserJID = @UserJID and ShardID = @ShardID and CharID = @OldName end ارجو ان الموضوع افادكم وحل معظم مشاكل ملفات السيرفير وفي اخر الموضوع اهداء صغير للي بيحصل الايام ديه |
||||||||||
|
05-03-2013, 03:09 PM | #2 | ||||||||||
Amina Khalil
|
تشكر |
||||||||||
|
05-03-2013, 06:24 PM | #3 | ||||||||||
|
تسلمـ |
||||||||||
|
05-03-2013, 11:47 PM | #4 | ||||||||||
|
Thank You |
||||||||||
|
05-03-2013, 11:50 PM | #5 | ||||||||||
|
تمام يا ساحبييي |
||||||||||
|
05-03-2013, 11:55 PM | #6 | ||||||||||
|
شكرا ليك :) |
||||||||||
|
06-03-2013, 09:51 PM | #7 | ||||||||||
|
شكراا ع المعلومه |
||||||||||
|
07-03-2013, 01:58 AM | #8 | ||||||||||
|
Noob Nice |
||||||||||
|
08-03-2013, 09:07 PM | #9 | ||||||||||
|
تسلم ايدك |
||||||||||
|
09-03-2013, 05:49 AM | #10 | ||||||||||
|
تسلم |
||||||||||
|
24-03-2013, 01:50 PM | #11 | ||||||||||
|
مفيش رد يتقال غير ان انتا |
||||||||||
|
14-04-2013, 03:00 AM | #12 | ||||||||||
|
thnx |
||||||||||
|
14-04-2013, 03:26 PM | #13 | ||||||||||
|
تسلمـ |
||||||||||
|
17-04-2013, 07:20 PM | #14 | ||||||||||
|
موضوع جيد |
||||||||||
|
18-04-2013, 05:08 PM | #15 | ||||||||||
|
كويس بس ايهـ الحاجات اللي هتظبطها في الداتا بالظبط ؟ |
||||||||||
|
يتصفح الموضوع حالياً : 1 (0 عضو و 1 زائر) | |
أدوات الموضوع | |
انواع عرض الموضوع | |
|
|
المواضيع المتشابهه | ||||
الموضوع | كاتب الموضوع | المنتدى | الردود | آخر مشاركة |
مشكلة في ملفات السيرفير | TalatSaad | قسم الاسئلة و الاستفسارات لعمل السيرفرات الخاصة | 8 | 11-05-2015 12:48 AM |
حـصريا ملفات P-Server من جديد بدون اخطاء | branz | قسم المواضيع المكررة و المخالفة | 0 | 06-03-2012 07:26 PM |
جميع اخطاء الشائعة وحلولها | xdvb | قسم المواضيع المكررة و المخالفة | 18 | 01-10-2009 04:06 AM |