ECSRO Filter/Guard Database Installer ve SQL Kurulum Yönetimi
Bu rehber, PvPSunucusu ECSRO Filter/Guard yazılımındaki Database / Installer menüsünü açıklamak için hazırlanmıştır. Database / Installer menüsü; Guard veritabanının oluşturulduğu, gerekli SQL tablolarının kurulduğu, eski kurulumlarda eksik kolonların tamamlandığı, SQL scriptlerinin önceden görüntülendiği ve yerel JSON ayarlarının SQL veritabanı ile eşitlendiği merkezi kurulum ekranıdır.
Database / Installer menüsü canlı sistem için kritik öneme sahiptir. Buradan yapılan işlemler Guard DB, modül kayıtları, packet güvenliği, firewall kayıtları, auto event sistemi, GameServer command kuyruğu ve runtime ayarları gibi birçok yapıyı doğrudan etkiler. Özellikle SQL Tabloları Kur işleminde mevcut Guard veritabanını silip baştan kurma seçeneği kullanılırsa eski kayıtlar kaybolabilir. Bu nedenle işlem yapmadan önce veritabanı yedeği alınması önerilir.
1. Database / Installer Menüsü Ne İşe Yarar?
ECSRO Filter/Guard yazılımı yalnızca RAM üzerinde çalışan basit bir filter sistemi değildir. Program; modül ayarlarını, güvenlik kurallarını, oyuncu bağlantı kayıtlarını, HWID/IP loglarını, packet registry kayıtlarını, exploit guard kurallarını, banned word listesini, firewall politikalarını, otomatik duyuruları, otomatik eventleri, GameServer command kuyruğunu ve unique geçmişini SQL üzerinde saklayabilir.
Bu nedenle sistemin sağlıklı çalışması için Guard Database adı verilen özel bir veritabanı kullanılır. Bu veritabanı oyun Shard DB'den ayrıdır. Guard DB içinde PvPSunucusu Filter/Guard yazılımının kendi tabloları bulunur.
Database / Installer menüsü şu işlemler için kullanılır:
- SQL bağlantısını test etmek.
- Guard Database yoksa oluşturmak.
- Guard DB içindeki gerekli tabloları kurmak.
- Mevcut eski kurulumlarda eksik tablo ve kolonları tamamlamak.
- Shard DB tarafında gereken runtime tablolarını oluşturmak veya güncellemek.
- GameServer command ve callback tablolarını hazırlamak.
- Manual SQL patch dosyalarını uygun hedef veritabanına uygulamak.
- Kurulacak SQL scriptini önceden görmek.
- JSON fallback ayarlarını SQL veritabanına eşitlemek.
Runtime sırasında otomatik tablo oluşturma ve ALTER işlemleri kapalıdır. Eksik tablo veya eksik kolon varsa bunlar oyun çalışırken rastgele oluşturulmaz. Eksikler güvenli şekilde yalnızca Database / Installer menüsünden tamamlanır. Bu yaklaşım canlı sunucuda beklenmeyen SQL değişikliği riskini azaltır.
2. Kurulum Ayarları Bölümü
Database / Installer ekranının sol tarafında Kurulum Ayarları bölümü bulunur. Bu bölüm, SQL Server bağlantısı ve Guard DB kurulumu için gerekli temel bilgileri içerir. Config menüsündeki SQL bağlantı mantığıyla uyumlu çalışır; ancak burada özellikle kurulum, test ve tablo oluşturma işlemleri hedeflenir.
| Alan | Ne İşe Yarar? | Yanlış Girilirse Ne Olur? |
|---|---|---|
| MSSQL Host/IP | SQL Server'ın çalıştığı host, IP veya instance bilgisidir. Lokal SQL için localhost, . veya .\SQLEXPRESS gibi değerler kullanılabilir. Uzak SQL için SQL sunucusunun IP adresi yazılır. | SQL bağlantısı kurulamaz. SQL Kontrol başarısız olur, Guard DB oluşturulamaz ve ayarlar SQL'e yazılamaz. |
| MSSQL Port | SQL Server'ın dinlediği porttur. Varsayılan MSSQL portu genellikle 1433 değeridir. | Host doğru olsa bile bağlantı kurulamaz. Firewall veya SQL TCP/IP port ayarı kontrol edilmelidir. |
| Kullanıcı | SQL bağlantısında kullanılacak kullanıcı adıdır. Genellikle sa veya özel oluşturulmuş SQL kullanıcısı kullanılır. | Yetki hatası alınır. DB oluşturma, tablo kurma veya tablo güncelleme işlemleri yapılamaz. |
| Şifre | SQL kullanıcısının şifresidir. Hassas bilgidir ve güçlü tutulmalıdır. | Login failed hatası alınır. SQL kurulumu veya kayıt işlemleri çalışmaz. |
| Guard Database | PvPSunucusu Filter/Guard yazılımının kendi tablolarını kuracağı veritabanı adıdır. Önerilen örnek ad: PVPSUNCUSU_GUARD. | Yanlış DB adına kurulum yapılabilir veya program ayarları beklenen Guard DB yerine farklı DB'ye yazılabilir. |
| Command Timeout | SQL komutlarının maksimum çalışma süresini belirler. Büyük kurulumlarda veya yavaş SQL sunucusunda işlem süresi uzayabilir. | Çok düşük verilirse tablo kurulumları timeout hatasına düşebilir. Çok yüksek verilirse hatalı işlem uzun süre bekletebilir. |
| Var olan DB için sor ve temiz kur | Aynı isimde Guard DB varsa kullanıcıya silip baştan kurma veya sadece eksikleri tamamlama seçeneği sunar. | Temiz kur seçilirse eski Guard kayıtları silinebilir. Canlı sistemde yedeksiz kullanılmamalıdır. |
3. Üst Menü Butonları ve Görevleri
Database / Installer ekranının üst kısmında kurulum ve kontrol işlemleri için kullanılan butonlar bulunur. Bu butonların her biri farklı bir iş yapar. Yanlış butonu yanlış zamanda kullanmak, özellikle canlı sunucuda veri kaybı veya yanlış kurulum riskine sebep olabilir.
SQL Kontrol
SQL Kontrol butonu, girilen MSSQL Host/IP, port, kullanıcı adı ve şifre bilgileriyle SQL Server'a bağlantı denemesi yapar. Bağlantı başarılı olursa program runtime log bölümüne SQL bağlantısının başarılı olduğunu yazar. Ayrıca SQL Server sürüm bilgisi de loglarda görülebilir.
Bu buton tablo kurmaz, veri silmez, Guard DB oluşturmaz. Sadece bağlantının çalışıp çalışmadığını anlamak için kullanılır. Database işlemlerine başlamadan önce ilk basılması gereken buton budur.
- SQL Server çalışıyor mu?
- MSSQL Host/IP doğru mu?
- Port doğru mu?
- SQL Server TCP/IP bağlantısı açık mı?
- Windows Firewall veya hosting firewall SQL portunu engelliyor mu?
- Kullanıcı adı ve şifre doğru mu?
- SQL kullanıcısının master veritabanına bağlanma yetkisi var mı?
SQL Tabloları Kur
SQL Tabloları Kur butonu, Guard DB ve gerekli tabloların kurulumu için kullanılır. Bu işlem önce yazılan Guard Database adını kontrol eder. Eğer bu isimde bir veritabanı yoksa yeni Guard DB oluşturur. Eğer aynı isimde Guard DB zaten varsa kullanıcıya seçim sorar.
Mevcut Guard DB bulunduğunda ekrana şu mantıkta bir uyarı gelir:
- Evet: Mevcut Guard DB silinir ve baştan kurulur.
- Hayır: Mevcut veritabanı silinmez, sadece eksik tablolar ve eksik kolonlar tamamlanır.
- İptal: İşlem durdurulur, hiçbir kurulum yapılmaz.
Evet seçeneği mevcut Guard DB'yi silip baştan kurabilir. Bu işlem; modül ayarları, packet kuralları, banned words, firewall kayıtları, auto event kayıtları, ghost player kayıtları ve diğer Guard verilerini kaybettirebilir. Canlı sunucuda bu seçenek kullanılmadan önce mutlaka veritabanı yedeği alınmalıdır.
Eksik Tabloları Tamamla
Eksik Tabloları Tamamla butonu, mevcut Guard DB'yi silmeden gerekli eksik tablo ve kolonları tamamlar. Bu işlem özellikle güncelleme sonrası kullanılır. Daha önce kurulmuş bir Guard DB varsa ve yeni sürümde yeni tablolar veya yeni kolonlar eklenmişse bu buton güvenli yükseltme işlemi için tercih edilmelidir.
Bu butonun amacı temiz kurulum yapmak değil, mevcut sistemi bozmadan eksikleri tamamlamaktır. Runtime sırasında CREATE/ALTER yapılmadığı için yeni eklenen sistemlerin tabloları bu ekrandan kurulmalıdır.
- Yeni sürüm patch uygulandıktan sonra.
- Yeni bir menü veya modül eklendikten sonra.
- Runtime logda eksik tablo veya eksik kolon hatası görülürse.
- Auto Events, Ghost Player, GameServer Bridge veya Packet Registry gibi sistemler çalışmadan önce.
- Guard DB var ama bazı özellikler kayıt yapamıyorsa.
SQL Script Önizleme
SQL Script Önizleme butonu, kurulacak SQL scriptlerini çalıştırmadan önce görüntülemeyi sağlar. Açılan pencerede Guard DB için oluşturulacak tablo scriptleri, manual patch içerikleri, cleanup işlemleri ve Shard/runtime tarafında uygulanacak scriptler görülebilir.
Bu özellik özellikle tecrübeli yöneticiler için önemlidir. Canlı veritabanında işlem yapmadan önce hangi SQL komutlarının çalışacağını görmek, hatalı DB adını veya beklenmeyen tablo işlemini önceden fark etmeye yardımcı olur.
SQL Script Önizleme ne sağlar?
- Guard DB oluşturma scriptini gösterir.
- Guard tablolarının CREATE/ALTER mantığını gösterir.
- ManualSqlPatches dosyalarının hangi hedefe uygulanacağını gösterir.
- Shard DB tarafında kurulacak runtime tabloları gösterir.
- GameServer command/callback ve job tabloları gibi ek yapıları önceden kontrol etmenizi sağlar.Ayarları Kaydet
Ayarları Kaydet butonu, Database / Installer ekranındaki bağlantı ve kurulum ayarlarını kaydeder. MSSQL Host/IP, port, kullanıcı, şifre, Guard Database ve command timeout gibi değerlerin kalıcı olması için kullanılır.
Bu işlem yalnızca Database Installer alanını kaydetmekle kalmaz; GameServer bağlantı tarafında kullanılan bazı INI/ayar çıktılarının güncellenmesine de yardımcı olabilir. Bu nedenle GameServer Bridge veya GameServer DLL tarafı kullanılacaksa Database Installer ayarlarının doğru kaydedilmesi önemlidir.
SQL JSON Eşitle
SQL JSON Eşitle butonu, yerel JSON fallback ayarlarını SQL veritabanı ile eşitlemek için kullanılır. Sistem SQL erişimi yokken bazı ayarları yerel JSON fallback üzerinde tutabilir. SQL bağlantısı geri geldiğinde bu ayarların Guard DB tarafına aktarılması gerekebilir.
Bu özellik özellikle şu durumlarda önemlidir:
- SQL geçici olarak kapalıyken ayar değişikliği yapıldıysa.
- Program JSON fallback ile çalıştıysa.
- SQL bağlantısı sonradan düzeldiyse.
- Modules veya Module Settings ayarları SQL'e yansımadıysa.
- Program yeniden açıldığında ayarlar farklı görünüyorsa.
- SQL Kontrol ile bağlantıyı doğrulayın.
- Eksik Tabloları Tamamla işlemini çalıştırın.
- SQL JSON Eşitle butonuna basın.
- Modules ve Module Settings ekranlarını tekrar kontrol edin.
- Runtime logda eşitleme hatası olmadığını doğrulayın.
4. Kurulacak Tablo Grupları
Database / Installer ekranının sağ tarafında Kurulacak Tablo Grupları listesi bulunur. Bu liste, sistemin hangi tablo gruplarını kuracağını ve her grubun hangi özellik için gerekli olduğunu gösterir. Bu bölüm, yöneticinin “hangi özellik hangi SQL tablosuna bağlı?” sorusunu anlaması için çok önemlidir.
PS_Settings
PS_Settings, GUI ayarları, modül açık/kapalı durumları ve sunucu/filter config kayıtları için kullanılan ana ayar tablosudur. Modules menüsünde aktif veya pasif yapılan modüller, Module Settings menüsündeki detay ayarları ve genel program ayarları bu yapı ile ilişkilidir.
Bu tablo eksikse program ayarları SQL'e kaydedilemeyebilir. Ayarlar sadece JSON fallback üzerinde kalabilir. Bu durumda program yeniden açıldığında ayarlar beklenen şekilde yüklenmeyebilir.
PS_Accounts / PS_HwidLog
Bu tablo grubu IP, HWID, hesap doğrulama ve bağlantı log altyapısı için kullanılır. Aynı IP veya aynı bilgisayardan yapılan girişler, HWID kontrolü, hesapla ilişkilendirilmiş son IP/HWID bilgileri ve bağlantı güvenliği bu sistemle desteklenir.
IP/HWID limitleri, login güvenliği ve bağlantı takipleri doğru çalışsın istiyorsanız bu tablo grubunun kurulu olması gerekir. Eksik olduğunda IP/HWID tabanlı güvenlik kontrolleri kalıcı kayıt tutamayabilir.
PS_ExeProfiles
PS_ExeProfiles, EXE/DLL profil, hash ve patch güvenilirlik kayıtları için kullanılan tablo grubudur. Bu yapı, server/client dosya uyumluluğu, profil yönetimi veya güvenilir dosya kaydı gibi amaçlarla kullanılabilir.
Bu tablo doğrudan oyuncunun oyun içi aksiyonunu yönetmez; daha çok yönetim ve dosya/profil güvenilirliği tarafında yardımcı olur. Eğer EXE/DLL profil sistemleri kullanılacaksa bu tablo grubunun kurulu olması gerekir.
PS_ClientItem/Mob/Skill Cache + PS_ItemPickRules
Bu tablo grubu, Shard referanslarından beslenen item, mob ve skill cache kayıtları ile pet item-pick kural tablolarını kapsar. ECSRO Filter/Guard sistemi bazı işlemlerde item kodu, mob bilgisi, skill ID veya referans veri kontrolüne ihtiyaç duyabilir.
Runtime sırasında sürekli Shard DB sorgusu yapmak yerine bazı referans verilerin Guard tarafında cachelenmesi performansı artırır. Pet item pick kuralları, item tanımlama, mob/skill referansları ve bazı özel blok sistemleri bu cache yapısından faydalanabilir.
PS_PendingRewards
PS_PendingRewards, claim bekleyen genel ödüller için kullanılır. Oyuncuya verilecek fakat henüz teslim edilmemiş ödüller bu yapı üzerinden takip edilebilir. Event, silk, item veya özel ödül sistemleriyle ilişkili olabilir.
Bu tablo eksikse ödül sistemleri çalışsa bile ödül teslim süreci doğru takip edilemeyebilir. Özellikle otomatik event ve claim mantığı kullanan sistemlerde önemlidir.
PS_PacketThrottle / PS_PacketRules
Bu tablo grubu opcode spam, packet abuse, packet throttle ve legacy packet rule kayıtları için kullanılır. Packet hız sınırları, eski packet kural sistemi ve belirli packetlerin aşırı gönderimini azaltma işlemleri bu yapıyla ilişkilidir.
Eksik olduğunda opcode throttle veya legacy packet rule sistemleri kalıcı kayıt kullanamayabilir. Bu da packet spam/flood davranışlarını yönetmeyi zorlaştırır.
PS_PacketRegistry
PS_PacketRegistry, yeni Packet Registry sisteminin whitelist, blacklist ve DB fallback kayıtlarını saklar. Packet Registry; opcode bazlı allow, block, log-only veya rate-limit politikaları için kullanılır.
Bu tablo eksikse Packet Registry ekranındaki kayıtlar SQL'e yazılamaz veya program yeniden başladığında kaybolabilir. Packet güvenliği kullanılıyorsa bu tablo grubu mutlaka kurulmalıdır.
PS_PacketExploitRules
PS_PacketExploitRules, Packet Exploit Guard sisteminin düzenlenebilir DB şema ve fallback kayıtlarını tutar. Opcode, direction, guard type, payload limitleri, action ve açıklama gibi bilgiler bu tablo üzerinden yönetilebilir.
Exploit guard sistemi canlı sunucuda önemli bir güvenlik katmanıdır. Bu tablo eksikse exploit kuralları kalıcı şekilde yönetilemez. Yanlış kuralların oyuncu işlemlerini bozabileceği unutulmamalıdır; yeni kurallar önce log-only mantığıyla test edilmelidir.
PS_SecurityLog
PS_SecurityLog, exploit, doğrulama, packet güvenliği ve sistem logları için kullanılır. Oyuncu bağlantı hataları, şüpheli packet olayları, güvenlik ihlalleri veya sistemsel uyarılar bu yapıya kaydedilebilir.
Bu tablo destek süreçleri için çok değerlidir. Bir oyuncu “işlem yapamıyorum” dediğinde veya sistem bir paketi engellediğinde, ilgili güvenlik logları buradan incelenebilir.
UniqueStatus / PS_UniqueHistory
UniqueStatus ve PS_UniqueHistory, unique alive/dead runtime durumu, unique kill geçmişi ve puan kayıtları için kullanılır. Unique spawn, unique kill, killer bilgisi, guild bilgisi veya geçmiş kayıtları bu yapı ile takip edilebilir.
Unique rekabeti olan serverlarda bu tablolar önemlidir. Unique canlı mı, öldü mü, kim kesti, ne zaman kesildi gibi bilgiler destek, event ve oyuncu rekabeti açısından kullanılabilir.
PS_BannedWords
PS_BannedWords, All Chat, Global Chat ve Party Matching gibi alanlarda kullanılacak yasaklı kelime filtresini saklar. Küfür, reklam, spam, zararlı bağlantı veya istenmeyen kelimeler bu tablo üzerinden yönetilebilir.
Bu tablo eksikse banned words ekranındaki kayıtlar kalıcı şekilde çalışmayabilir. Chat güvenliği, reklam engelleme ve oyuncu ortamını koruma açısından önemlidir.
PS_SpecialBlocks
PS_SpecialBlocks, region chat, özel packet/aksiyon blokları ve module-owned güvenlik kural kayıtları için kullanılır. Region, job, skill, item veya teleport gibi özel blok senaryoları bu tablo üzerinden yönetilebilir.
Örneğin belirli bir bölgede chat engellemek, belirli item kullanımını durdurmak veya belirli aksiyonu özel kuralla bloke etmek gerekiyorsa bu tablo altyapısı önemlidir.
PS_GhostPlayers / PS_GhostPlayerLogs / PS_GhostSpawnSettings
Bu tablo grubu Ghost Player sisteminin hesap, karakter, log ve spawn source kayıtlarını saklar. Ghost Player; test, hareket, chat, takip, spawn veya otomasyon senaryolarında kullanılabilen gelişmiş bir sistemdir.
Ghost Player sistemi kullanılacaksa bu tabloların eksiksiz kurulması gerekir. Aksi halde ghost hesapları, spawn ayarları, hareket logları veya kayıtlı karakter bilgileri kaydedilemeyebilir.
PS_SilkRewardRules / PS_AutoNotices
PS_SilkRewardRules, silk/unique/online/lucky ödül kurallarını saklar. PS_AutoNotices ise otomatik duyuru kayıtlarını tutar.
Saatlik silk, unique silk, lucky party ödülü, online ödülleri ve periyodik otomatik duyuru sistemleri bu tablolarla ilişkilidir. Bu tablolar eksikse auto notice veya reward rule ekranları doğru çalışmayabilir.
PS_AutoEvents
PS_AutoEvents, server-side Auto Events çekirdeği için kullanılır. Notice, Trivia, LuckyParty ve GameServerCommand zamanlamaları bu tablo üzerinden yönetilebilir.
Otomatik event sistemi kullanılacaksa bu tablo kritik öneme sahiptir. Event adı, event tipi, başlangıç gecikmesi, tekrar aralığı, süre, mesaj, ödül, min level, min online ve GameServer command parametreleri bu yapı içinde tutulabilir.
V349 Tüm Sistem Kolon Backfill
V349 Tüm Sistem Kolon Backfill, eski kurulumlarda mevcut tabloların eksik kolonlarını güvenli şekilde tamamlamak için kullanılır. Sistem, tablo varsa doğrudan silmek yerine eksik kolonları kontrol ederek eklemeye çalışır.
Bu yapı güncelleme sonrası çok önemlidir. Eski Guard DB kullanıyorsanız yeni sürümde eklenen kolonlar eksik olabilir. Eksik kolonlar tamamlanmadan bazı yeni özellikler çalışmayabilir veya kayıt hatası verebilir.
PS_GameServerCommands (Shard)
PS_GameServerCommands, Shard DB tarafında bulunan GameServer canlı aksiyon kuyruğudur. Project91 panelinden verilen karakter, item, gold, teleport, mob spawn, state veya diğer GameServer işlemleri bu kuyruk üzerinden GameServer tarafına iletilebilir.
Bu tabloda ClaimToken, ClaimedAt, RetryCount ve pending index gibi kolonlar bulunur. Bu alanlar GameServer komutlarının güvenli şekilde claim edilmesi, tekrar denenmesi ve aynı komutun birden fazla kez işlenmemesi için önemlidir.
PS_GameServerCallbacks (Shard)
PS_GameServerCallbacks, GameServer tarafından Project91 tarafına gönderilen callback kuyruğudur. Unique spawn, unique dead, killer bilgisi, region/job olayları veya GameServer kaynaklı server-authoritative olaylar bu tablo üzerinden işlenebilir.
Bu tablo eksikse GameServer tarafında gerçekleşen bazı olaylar Project91 paneline veya Guard sistemine sağlıklı şekilde geri bildirilemeyebilir. Unique takip sistemi ve GameServer bridge için önemlidir.
_JobPCLimit / _JobPenaltyLimit (Shard)
_JobPCLimit ve _JobPenaltyLimit, Shard DB tarafında job IP/HWID limit ve ceza tabloları için kullanılır. Job limitleri, job ceza politikaları ve PC/HWID bazlı meslek kısıtlamaları bu yapı ile desteklenir.
Job korumaları aktif kullanılacaksa bu tabloların eksiksiz olması gerekir. Runtime CREATE/ALTER yapılmadığı için job tabloları eksikse Database / Installer üzerinden tamamlanmalıdır.
5. Guard DB ve Shard DB Ayrımı
Database Installer iki farklı veritabanı hedefiyle çalışabilir:
- Guard DB: PvPSunucusu Filter/Guard yazılımının kendi ayar, log, modül, güvenlik ve yönetim tablolarını tutar.
- Shard DB: Oyun dünyasının ana veritabanıdır. Karakterler, itemler, guildler, GameServer command kuyruğu ve bazı runtime tablolar burada bulunabilir.
Guard DB genellikle PVPSUNCUSU_GUARD gibi ayrı bir isimle tutulur. Shard DB ise server kurulumuna göre farklı isimde olabilir. Örnek olarak bazı ECSRO yapılarda Shard DB adı SR_CHINA_CS olabilir.
Guard DB ile Shard DB birbirine karıştırılmamalıdır. Guard tablolarını Shard DB içine kurmak veya Shard runtime tablolarını yanlış DB'ye yönlendirmek ileride yönetim karmaşasına ve veri hatalarına sebep olabilir. Kurulumdan önce Config menüsündeki Account, Shard, Log ve Guard DB adları kontrol edilmelidir.
6. ManualSqlPatches Mantığı
Database Installer, ana tablo scriptlerinin yanında ManualSqlPatches klasöründeki SQL dosyalarını da uygulayabilir. Bu klasör, belirli sürümlerde eklenen özel düzeltmeler, backfill işlemleri veya yeni sistem tabloları için kullanılır.
Patch dosyaları hedefe göre ayrılabilir:
- Guard hedefli patchler: Guard DB üzerinde çalıştırılır.
- Shard hedefli patchler: Shard DB üzerinde çalıştırılır.
- GameServer, Job veya ClientConfig içeren patchler: Genellikle Shard/runtime tarafına uygulanır.
Bu yapı sayesinde yeni sürümde eklenen SQL gereksinimleri ana installer akışına dahil edilebilir. Müşteri manuel olarak tek tek SQL dosyası çalıştırmak zorunda kalmadan Database / Installer üzerinden eksik yapıları tamamlayabilir.
7. Temiz Kurulum ve Eksik Tamamlama Arasındaki Fark
| İşlem | Ne Yapar? | Ne Zaman Kullanılır? |
|---|---|---|
| Temiz Kurulum | Mevcut Guard DB silinip baştan oluşturulabilir. Eski kayıtlar kaybolabilir. | Yeni sunucu kurulumu, test ortamı veya bozuk/istenmeyen eski kurulumun tamamen sıfırlanması gerektiğinde. |
| Eksik Tabloları Tamamla | Mevcut DB silinmeden eksik tablo ve kolonlar tamamlanır. | Canlı sistem güncellemesi, patch sonrası eksik tablo tamamlama veya yeni modül kurulumunda. |
Canlı sunucularda genel öneri, temiz kurulum yerine Eksik Tabloları Tamamla kullanılmasıdır. Temiz kurulum yalnızca gerçekten eski verilerin silinmesi isteniyorsa veya test ortamında çalışılıyorsa tercih edilmelidir.
8. Önerilen İlk Kurulum Sırası
- Config menüsünde MSSQL Host/IP, port, kullanıcı, şifre, Account DB, Shard DB, Log DB ve Guard DB adlarını doğru girin.
- Database / Installer menüsüne girin.
- Kurulum Ayarları bölümünde Guard Database adını kontrol edin.
- Command Timeout değerini SQL sunucunuzun hızına göre uygun bırakın.
- SQL Kontrol butonuna basarak bağlantıyı doğrulayın.
- SQL Script Önizleme ile kurulacak scriptleri kontrol edin.
- Yeni kurulum yapıyorsanız SQL Tabloları Kur butonunu kullanın.
- Eski kurulum güncelliyorsanız Eksik Tabloları Tamamla butonunu kullanın.
- Kurulum sonucu runtime logdaki [DB] ve [SQL] kayıtlarını kontrol edin.
- SQL JSON Eşitle butonuyla local fallback ayarlarını SQL'e aktarın.
- Modules ve Module Settings ekranlarını açarak kayıtların doğru yüklendiğini kontrol edin.
- Dashboard üzerinden Filter başlatmadan önce herhangi bir SQL hata mesajı kalmadığından emin olun.
9. Güncelleme Sonrası Kullanım Sırası
Yeni bir PvPSunucusu ECSRO Filter/Guard güncellemesi uygulandıktan sonra yeni tablolar veya kolonlar eklenmiş olabilir. Bu durumda canlı sistemde temiz kurulum yapmak yerine güvenli backfill akışı kullanılmalıdır.
- Güncelleme dosyalarını uygulamadan önce Guard DB ve Shard DB yedeği alın.
- Programı açın ve Database / Installer menüsüne girin.
- SQL Kontrol ile bağlantının aktif olduğunu doğrulayın.
- SQL Script Önizleme ile yeni scriptleri inceleyin.
- Eksik Tabloları Tamamla butonunu çalıştırın.
- Runtime logda hata veya atlanan patch olup olmadığını kontrol edin.
- SQL JSON Eşitle ile fallback ayarlarını SQL tarafına aktarın.
- Yeni eklenen menü veya modül varsa ilgili ekrana girip değerlerini kontrol edin.
- Filter ve GameServer bridge tarafını test karakteriyle doğrulayın.
10. Runtime Loglarda Görülebilecek Mesajlar
Database Installer işlemleri sırasında runtime log ekranında [SQL] ve [DB] etiketli mesajlar görülebilir. Bu mesajlar kurulumun hangi aşamada olduğunu anlamak için önemlidir.
| Mesaj Türü | Anlamı |
|---|---|
| MSSQL bağlantısı başarılı | SQL Kontrol işlemi başarılıdır. SQL Server'a bağlanılmıştır. |
| Bağlantı hatası | SQL host, port, kullanıcı, şifre, firewall veya yetki hatası olabilir. |
| Guard veritabanı oluşturuldu | Guard DB daha önce yoktu ve installer tarafından oluşturuldu. |
| Guard veritabanı zaten mevcut | Aynı isimde DB var. Eksik tamamlama veya temiz kurulum seçilmelidir. |
| ManualSqlPatches uygulandı | İlgili SQL patch dosyası hedef veritabanına başarıyla uygulanmıştır. |
| ManualSqlPatches atlandı/hata | Patch dosyası çalıştırılamamış olabilir. Hata detayı logdan okunmalıdır. |
| Shard DB bulunamadı | Config içindeki Shard DB adı yanlış olabilir veya SQL üzerinde bu DB yoktur. Shard/runtime tabloları kurulamaz. |
| Shard/runtime tabloları oluşturuldu veya tamamlandı | GameServer command, callback, job veya runtime tabloları Shard DB üzerinde kontrol edilmiştir. |
| Guard DB kurulum tamamlandı | Kurulum işlemi başarıyla bitmiştir. |
11. Sık Yapılan Hatalar
Guard DB ile Shard DB adını karıştırmak
Guard DB, Filter/Guard yazılımının kendi ayar ve güvenlik tabloları içindir. Shard DB ise oyun dünyasının ana veritabanıdır. Bu iki veritabanı karıştırılırsa tablolar yanlış yere kurulabilir veya sistem kayıtları beklenen yerden okunamaz.
SQL Kontrol yapmadan tablo kurmaya çalışmak
SQL bağlantısı çalışmadan tablo kurulumu yapılamaz. Önce SQL Kontrol ile bağlantı doğrulanmalı, sonra kurulum işlemleri yapılmalıdır.
Canlı Guard DB üzerinde yedeksiz temiz kurulum yapmak
Temiz kurulum mevcut DB'yi silebilir. Bu işlem modül kayıtlarını, auto eventleri, packet kurallarını, banned words listesini ve diğer Guard verilerini kaybettirebilir. Canlı sistemde yedeksiz temiz kurulum yapılmamalıdır.
Güncelleme sonrası Eksik Tabloları Tamamla çalıştırmamak
Yeni sürümde eklenen tablolar veya kolonlar kurulmadıysa yeni menüler çalışmayabilir. Runtime logda eksik kolon veya tablo hatası görülebilir. Her güncellemeden sonra Database / Installer kontrol edilmelidir.
SQL JSON Eşitle işlemini atlamak
SQL kapalıyken yapılan ayarlar JSON fallback üzerinde kalmış olabilir. SQL bağlantısı düzeldikten sonra SQL JSON Eşitle yapılmazsa panelde görünen ayarlar ile SQL'deki ayarlar farklı olabilir.
SQL kullanıcısına yeterli yetki vermemek
DB oluşturma, tablo kurma, kolon ekleme ve veri yazma işlemleri için SQL kullanıcısının yeterli yetkisi olmalıdır. Sadece okuma yetkisi olan bir kullanıcıyla Database Installer işlemleri başarısız olur.
12. Destek Talebi Açmadan Önce Kontrol Listesi
- SQL Server çalışıyor mu?
- MSSQL Host/IP doğru mu?
- MSSQL Port doğru mu?
- SQL kullanıcı adı ve şifresi doğru mu?
- SQL Kontrol başarılı sonuç veriyor mu?
- Guard Database adı doğru mu?
- Shard Database adı Config menüsünde doğru mu?
- Guard DB gerçekten SQL Server üzerinde oluşmuş mu?
- Eksik Tabloları Tamamla çalıştırıldı mı?
- SQL Script Önizleme içinde beklenmeyen DB adı var mı?
- Runtime logda ManualSqlPatches hata mesajı var mı?
- Shard DB bulunamadı uyarısı var mı?
- GameServer Bridge kullanılacaksa PS_GameServerCommands ve PS_GameServerCallbacks tabloları oluşmuş mu?
- Auto Events kullanılacaksa PS_AutoEvents ve PS_SilkRewardRules tabloları oluşmuş mu?
- Ghost Player kullanılacaksa PS_GhostPlayers, PS_GhostPlayerLogs ve PS_GhostSpawnSettings tabloları oluşmuş mu?
- Packet güvenliği için PS_PacketRegistry ve PS_PacketExploitRules tabloları mevcut mu?
- SQL JSON Eşitle işlemi yapıldı mı?
- Ayarları Kaydet sonrası runtime logda SQL kaydı hatası var mı?
13. Performans ve Güvenlik Önerileri
- Guard DB'yi Shard DB'den ayrı tutun. Bu, yönetim, yedekleme ve güvenlik açısından daha sağlıklı bir yapıdır.
- Canlı sistemde temiz kurulum yapmadan önce yedek alın. Temiz kurulum eski Guard kayıtlarını silebilir.
- Runtime tablo oluşturma beklemeyin. Yeni tablolar veya kolonlar Database / Installer üzerinden kurulmalıdır.
- SQL kullanıcısını gereğinden fazla açık bırakmayın. Uzak SQL kullanılıyorsa sadece güvenilir IP adreslerine izin verin.
- Command Timeout değerini çok düşük tutmayın. Büyük güncelleme veya yavaş SQL ortamlarında timeout hatası alınabilir.
- SQL Script Önizleme kullanın. Özellikle canlı DB üzerinde işlem yapmadan önce hangi scriptlerin çalışacağını görmek güvenlidir.
- Patch sonrası Eksik Tabloları Tamamla çalıştırın. Yeni sistemlerin eksik tablo/kolon yüzünden çalışmamasını engeller.
- Runtime logları okuyun. Kurulum tamamlandı mesajı kadar, aradaki uyarı ve atlanan patch mesajları da önemlidir.
14. Sık Sorulan Sorular
Database / Installer menüsü oyun veritabanımı siler mi?
Normal eksik tamamlama işlemi oyun veritabanını silmez. Ancak Guard DB için temiz kurulum seçilirse mevcut Guard veritabanı silinip baştan kurulabilir. Bu yüzden canlı sistemde temiz kurulumdan önce mutlaka yedek alınmalıdır.
Eksik Tabloları Tamamla güvenli midir?
Temiz kurulumdan daha güvenlidir çünkü mevcut DB'yi silmeden eksik tablo ve kolonları tamamlamayı hedefler. Yine de canlı sistemlerde işlem öncesi yedek almak doğru yaklaşımdır.
SQL Tabloları Kur ile Eksik Tabloları Tamamla arasındaki fark nedir?
SQL Tabloları Kur, Guard DB yoksa oluşturur; varsa kullanıcıya silip baştan kurma veya eksik tamamlama seçeneği sunar. Eksik Tabloları Tamamla ise doğrudan mevcut yapıyı koruyarak eksikleri tamamlamaya çalışır.
SQL JSON Eşitle ne zaman kullanılmalı?
SQL erişimi yokken ayarlar JSON fallback üzerinde kaldıysa, SQL bağlantısı düzeldikten sonra kullanılmalıdır. Ayrıca ayarlar panelde farklı, SQL'de farklı görünüyorsa eşitleme yapılmalıdır.
Shard DB bulunamadı uyarısı alıyorum. Ne demek?
Config menüsündeki Shard Database adı yanlış olabilir veya SQL Server üzerinde bu isimde veritabanı bulunmuyor olabilir. Shard DB bulunamazsa GameServer command, callback, job veya runtime tabloları kurulamayabilir.
Packet Registry veya Packet Exploit Guard kayıtları kayboluyor. Nereye bakmalıyım?
PS_PacketRegistry ve PS_PacketExploitRules tablolarının kurulu olduğundan emin olunmalıdır. Ayrıca ayarlar kaydedildikten sonra runtime logda SQL kayıt hatası olup olmadığı kontrol edilmelidir.
Auto Events çalışmıyor. Database tarafında ne kontrol edilmeli?
PS_AutoEvents ve PS_SilkRewardRules tabloları kurulmuş olmalıdır. Eksik Tabloları Tamamla çalıştırılmalı, ardından Auto Events ekranındaki kayıtlar ve runtime loglar kontrol edilmelidir.
GameServer Bridge komutları çalışmıyor. Database Installer ile bağlantısı var mı?
Evet. GameServer Bridge komut kuyruğu için Shard DB tarafında PS_GameServerCommands tablosu gerekir. GameServer callbackleri için PS_GameServerCallbacks tablosu gerekir. Bu tablolar eksikse canlı GameServer işlemleri doğru çalışmayabilir.
Sonuç
ECSRO Filter/Guard yazılımındaki Database / Installer menüsü, sistemin SQL altyapısını yöneten en önemli bölümlerden biridir. Guard DB kurulumu, eksik tablo tamamlama, SQL script önizleme, JSON/SQL eşitleme, GameServer command tabloları, callback tabloları, packet güvenlik tabloları, ghost player kayıtları ve auto event tabloları bu ekran üzerinden hazırlanır.
Sağlıklı kullanım için önce SQL bağlantısı test edilmeli, ardından Guard DB kurulumu veya eksik tablo tamamlama işlemi yapılmalıdır. Canlı sistemlerde temiz kurulumdan kaçınılmalı, mümkün olduğunca Eksik Tabloları Tamamla akışı kullanılmalıdır. Güncelleme sonrası yeni özelliklerin çalışmaması çoğu zaman eksik tablo veya eksik kolon kaynaklıdır. Bu nedenle her patch sonrasında Database / Installer ekranı kontrol edilmeli ve runtime loglar dikkatle okunmalıdır.
Bu makale PvPSunucusu için özel olarak hazırlanmıştır.