Merhaba, Hoşgeldin!

VSRO.org, Silkroad Online, Knight Online, Metin2 ve diğer çevrimiçi oyunlar için öncü bir yardım ve geliştirme platformudur. Misyonumuz, bilgi ve deneyim sahibi bireyleri, bilgiye ihtiyaç duyanlarla bir araya getirerek, zengin bir etkileşim ortamı yaratmak ve farklı bakış açılarını birleştirmektir. Topluluğumuzda güçlü bir işbirliği ve öğrenme kültürü oluşturarak, herkesin değerli katkılarda bulunmasını sağlıyoruz.

vSRO Çözüldü BETA Sonrası Gift Silkler kalacak şekilde DB temizleme

Katılım
11 Eki 2021
Mesajlar
145
Çözümler
2
Tepkime puanı
40
Puanları
28
Yaş
33
Konum
İstanbul
Merhaba, BETA da kasılan gift silkleri officiala da aktarabilmek için accountlari silmeden DB yi temizlemek istiyorum. Hangi tablolar temizlenmeli hangileri temizlenmemeli ? Tahminim var ama gözden bir şey kaçmaması için emin olmak istedim. Yardımcı olabilirseniz sevinirim, teşekkürler.
 
Çözüm
Beta sonrasında veritabanı temizliğini elbette yapmalısın çünkü ID çakışmalarındaki en ufak hata seni içinden çıkamayacağın dönüm noktalarına sürükleyebilir.
Bunun için önce içinin rahat olması gerekiyor.

SQL:
USE YEDEKDB

DECLARE @Count INT

SELECT @Count = COUNT(DISTINCT U.StrUserID)
FROM TB_User AS U
JOIN SK_Silk AS S ON S.JID = U.JID;

IF (@Count > 0)
BEGIN

    UPDATE SRO_VT_ACCOUNT.dbo.SK_Silk
    SET silk_gift = Y.silk_gift
    FROM YEDEKDB.dbo.SK_Silk AS Y
    JOIN TB_User AS U ON U.JID = Y.JID
    WHERE SRO_VT_ACCOUNT.dbo.SK_Silk.JID = Y.JID

    PRINT 'Veri aktarımı başarılı.'
END
ELSE
BEGIN
    PRINT 'Geçerli StrUserID bulunamadı. Veri aktarımı yapılmadı.'
END


Beta sonrasında sadece SRO_VT_ACCOUNT veritabanının yedeğini...
Her kafadan ayrı ses çıkmış. Bunu bu kadar karıştırmaya ne gerek var? Betada adam test 123 diyede üyelik alabilir eğer bir kontrolcüden geçmiyorsa. Tamam betada 123 123 örneğindeki gibi basit üyelikler alındı ama sen tüm hesaplardaki puanların kalmasını istiyorsun anladığım kadarıyla. Eğer sabit bir tarihte yapmayı planlamıyorsan account dbye çok dokunma sadece karakterleri sil. Adam mevcut hesabına tekrar erişir tekrar karakter açar kalan puanlarını olduğu gibi kullanmaya devam eder.

SQL:
 UPDATE SRO_VT_ACCOUNT..SK_Silk set silk_own = 0, silk_point = 0;

bunu okut ve acc db de başka bir işlem yapma devamında log ve shardı temizle yeterli. Betada alınan üyelikler kaldığı yerden kullanılmaya devam eder. Sadece gift silklerini kullanabilirler.
 
Oyla 0
Her kafadan ayrı ses çıkmış. Bunu bu kadar karıştırmaya ne gerek var? Betada adam test 123 diyede üyelik alabilir eğer bir kontrolcüden geçmiyorsa. Tamam betada 123 123 örneğindeki gibi basit üyelikler alındı ama sen tüm hesaplardaki puanların kalmasını istiyorsun anladığım kadarıyla. Eğer sabit bir tarihte yapmayı planlamıyorsan account dbye çok dokunma sadece karakterleri sil. Adam mevcut hesabına tekrar erişir tekrar karakter açar kalan puanlarını olduğu gibi kullanmaya devam eder.

SQL:
 UPDATE SRO_VT_ACCOUNT..SK_Silk set silk_own = 0, silk_point = 0;

bunu okut ve acc db de başka bir işlem yapma devamında log ve shardı temizle yeterli. Betada alınan üyelikler kaldığı yerden kullanılmaya devam eder. Sadece gift silklerini kullanabilirler.
Yani ACCOUNT db de SK_Silk tablosundaki verdiğin UPDATE dışında hiç bir şeyi ellemeyip, SHARD ve LOG u normal temizlemem yeterli olacaktır o zaman değil mi?
 
Oyla 0
Her kafadan ayrı ses çıkmış. Bunu bu kadar karıştırmaya ne gerek var? Betada adam test 123 diyede üyelik alabilir eğer bir kontrolcüden geçmiyorsa. Tamam betada 123 123 örneğindeki gibi basit üyelikler alındı ama sen tüm hesaplardaki puanların kalmasını istiyorsun anladığım kadarıyla. Eğer sabit bir tarihte yapmayı planlamıyorsan account dbye çok dokunma sadece karakterleri sil. Adam mevcut hesabına tekrar erişir tekrar karakter açar kalan puanlarını olduğu gibi kullanmaya devam eder.

SQL:
 UPDATE SRO_VT_ACCOUNT..SK_Silk set silk_own = 0, silk_point = 0;

bunu okut ve acc db de başka bir işlem yapma devamında log ve shardı temizle yeterli. Betada alınan üyelikler kaldığı yerden kullanılmaya devam eder. Sadece gift silklerini kullanabilirler.
Her kafadan ayrı ses çıkmış derken insanlar bildikleri ile yardımcı olmaya çalışıyor amaçta bu zaten. Yardımcı olucam diye yazarken biraz daha dikkatli cümleler seçelim
Üst üste post gönderildiği için tek mesajda birleştirildi:
 
Oyla 0
Yanlış bilgiler ile adamın kafasını karıştırmamaya dikkat edin o halde. Basit bir çözümü varken işi daha fazla zorlastirmanin alemi yok. Benim yazdığım en basit ve doğru çözüm yolu ama diğer yazilanlar karmaşadan ibaret. Herkes farklı şeyler söylemiş olayı karıştırmış dedim amacım kötü olsa zaten doğru olanı yazmam. Birde ahlak bekçiliği yapmak için burası yanlış yer 2011 yılında çalınan dosyaları kullanıyoruz. Bize ait olmayanı kullanıp ahlak dersi vermeye çalışmak komik. Ben böyle triplere girmiyorum sadece yardımcı olmak için yazilanlar karmaşadan ibaret doğru olanı bu diye yazdım.
Üst üste post gönderildiği için tek mesajda birleştirildi:

Yani ACCOUNT db de SK_Silk tablosundaki verdiğin UPDATE dışında hiç bir şeyi ellemeyip, SHARD ve LOG u normal temizlemem yeterli olacaktır o zaman değil mi?
Evet dediklerimi yaparsan istediğini yapmış olacaksin hesaplar kaldıkları yerden kullanılmaya devam edilirler
 
Oyla 0
Yanlış bilgiler ile adamın kafasını karıştırmamaya dikkat edin o halde. Basit bir çözümü varken işi daha fazla zorlastirmanin alemi yok. Benim yazdığım en basit ve doğru çözüm yolu ama diğer yazilanlar karmaşadan ibaret. Herkes farklı şeyler söylemiş olayı karıştırmış dedim amacım kötü olsa zaten doğru olanı yazmam. Birde ahlak bekçiliği yapmak için burası yanlış yer 2011 yılında çalınan dosyaları kullanıyoruz. Bize ait olmayanı kullanıp ahlak dersi vermeye çalışmak komik. Ben böyle triplere girmiyorum sadece yardımcı olmak için yazilanlar karmaşadan ibaret doğru olanı bu diye yazdım.
Üst üste post gönderildiği için tek mesajda birleştirildi:


Evet dediklerimi yaparsan istediğini yapmış olacaksin hesaplar kaldıkları yerden kullanılmaya devam edilirler
herkes burda bilgisini kendine göre yazmış ve burda kullandığın kelimeler rahatsız edici bu konuda biraz daha dikkatli olmanızı öneriyorum aksi halde ceza alacaksınız bilginiz olsun
 
Oyla 0
Yanlış bilgiler ile adamın kafasını karıştırmamaya dikkat edin o halde. Basit bir çözümü varken işi daha fazla zorlastirmanin alemi yok. Benim yazdığım en basit ve doğru çözüm yolu ama diğer yazilanlar karmaşadan ibaret. Herkes farklı şeyler söylemiş olayı karıştırmış dedim amacım kötü olsa zaten doğru olanı yazmam. Birde ahlak bekçiliği yapmak için burası yanlış yer 2011 yılında çalınan dosyaları kullanıyoruz. Bize ait olmayanı kullanıp ahlak dersi vermeye çalışmak komik. Ben böyle triplere girmiyorum sadece yardımcı olmak için yazilanlar karmaşadan ibaret doğru olanı bu diye yazdım.
Üst üste post gönderildiği için tek mesajda birleştirildi:


Evet dediklerimi yaparsan istediğini yapmış olacaksin hesaplar kaldıkları yerden kullanılmaya devam edilirler
Ahlak bekçiliğinden kastın anlayamadım benim söylemek istediğim burda yapılan yorumlar yanlış dahi olsa sen doğrusu biliyorduysan da bunu düzgün bir şekilde aktarman gerekir konuya başlama şeklin hoşuma gitmedi her kafadan bir ses çıkmış gibi
 
Oyla 0
Yani ACCOUNT db de SK_Silk tablosundaki verdiğin UPDATE dışında hiç bir şeyi ellemeyip, SHARD ve LOG u normal temizlemem yeterli olacaktır o zaman değil mi?
Sadece bu query ile iş bitmiyor. Sharddaki JID bulunduran tabloları dikkatli temizlemen gerekiyor yoksa oyun açıldığında karakter oluşturma ekranında takılı kalır oyuncular.

Bunun haricinde Sharddaki _AccountJID tablosunda;

SQL:
UPDATE SRO_VT_SHARD.._AccountJID SET Gold = 0

Bu query ile birlikte depodaki goldları sıfırlamazsan betada depoya gold depolayan oyuncular oyun açıldıktan sonra goldları geri alabilir.

Bazı şeyleri gelişi güzel tek query ile çözebilseydik keşke ama bazen tecrübe gerektiren işleri hata yaparak öğreniyorsun. Nerden biliyorsun deme biliyorum işte 😂 o yüzden sen tecrübeni kendi üzerinden kazan başkalarını tehlikeye atıpta işin içinden sıyrılma, sözüm meclisten dışarı...
 
Oyla 0
Sadece bu query ile iş bitmiyor. Sharddaki JID bulunduran tabloları dikkatli temizlemen gerekiyor yoksa oyun açıldığında karakter oluşturma ekranında takılı kalır oyuncular.

Bunun haricinde Sharddaki _AccountJID tablosunda;

SQL:
UPDATE SRO_VT_SHARD.._AccountJID SET Gold = 0

Bu query ile birlikte depodaki goldları sıfırlamazsan betada depoya gold depolayan oyuncular oyun açıldıktan sonra goldları geri alabilir.

Bazı şeyleri gelişi güzel tek query ile çözebilseydik keşke ama bazen tecrübe gerektiren işleri hata yaparak öğreniyorsun. Nerden biliyorsun deme biliyorum işte 😂 o yüzden sen tecrübeni kendi üzerinden kazan başkalarını tehlikeye atıpta işin içinden sıyrılma, sözüm meclisten dışarı...
Değerli geri dönüşün için teşekkür ederim :) Yani AccountJID tablosunu truncate etmek yerine gold u sıfırlamam gerekiyor o zaman değil mi
 
Oyla 0
Log ve shard normal temizlendiği gibi clean edilecek zaten ben farklı birşey demedim jid bilgisi ACC ten geldiği için kontrol edilmesi gerekmez anlattığım yöntemi uzun zamandır kullanıyorum bir sorun yaşamadım. Üyelik tabloları kalır charlar silinir tüm itemler guildler goldlar gider. Sql her yeni karakter bilgisini ACC ten aldığı jid ile tekrar kayitlar
identity ayarları düzgün ise tablolar çakismaz ve DB kaldığı yerden veri almaya devam eder.
 
Oyla 0
Log ve shard normal temizlendiği gibi clean edilecek zaten ben farklı birşey demedim jid bilgisi ACC ten geldiği için kontrol edilmesi gerekmez anlattığım yöntemi uzun zamandır kullanıyorum bir sorun yaşamadım. Üyelik tabloları kalır charlar silinir tüm itemler guildler goldlar gider. Sql her yeni karakter bilgisini ACC ten aldığı jid ile tekrar kayitlar
identity ayarları düzgün ise tablolar çakismaz ve DB kaldığı yerden veri almaya devam eder.
Ben de öyle düşündüm ama mesela Hadesin dademin örnek verdiği tabloyu truncate edersek account açarken bu tabloya atılan verileri silmiş oluyoruz yani bu tablonun aslında truncate edilmemesi gerekiyor çünkü kayıt olurken oluşturuluyor buradaki veriler denediğim kadarıyla. Bunun gibi accounta, hesap açılışa bağlı başka tablo var mıdır SHARD db sinde o önemli gözden kaçmaması için
 
Oyla 0
Geri
Üst Alt