Advanced Command for GameDB
Hi there :cool:
I need help from some pro that know as well the commands for gamedbd.
For helping for some case like this. I tried to decompress DB data but seems to doesn't work and idk what i must to do to make it works :mellow:
Code:
root@pwserver:/home/server/gamedbd# ./gamedbd gamesys.conf decompressdb
decompress database waitdel:
decompress database userfaction:
decompress database user:
converting database records counter 1...
Segmentation fault
And some other commands ends with "Segmentation fault" too.
But commands like <listrole> works and i can export it into a CSV format ...
Why some commands are working and other not? :mellow:
Re: Advanced Command for GameDB
you need a library for tool to work correct il try to upload it later
Re: Advanced Command for GameDB
Re: Advanced Command for GameDB
Re: Advanced Command for GameDB
Re: Advanced Command for GameDB
You might also want to look at a tool called Hashman (HashMan Database Tool). It can supposedly manage Berkely DB files, but I haven't been able to get it to work without getting segmentation fault errors.
Re: Advanced Command for GameDB
too hard --"
how can i manage it to get it works and how can use it for my pw char's database ?! ><
idk exactly what is berkley and idk why is used for PW ....... o_o
Re: Advanced Command for GameDB
Re: Advanced Command for GameDB
First thing first, thanks for telling that PW uses BerkeleyDB, i was wondering what kind of DataBase Engine they're using :D
However this pose yet another problem.
BerkeleyDB (commonly called BDB), now handled by Oracle, is NOT a relational database (like MySQL, MSSQL). The worst problem is that BerkeleyDB has no definition of data type (for example, in MySQL there are string,bigint,date, etc). BDB uses native programming language data type in which it is used at. In case of PW, it is Java programming language, which means all data are stored in Java type (Most probably a Java class/structure).
According to BDB Intro we can google at, BDB doesn't know what kind of data stored in it. It simply store whatever data in BINARY format. BDB doesn't care what that data represent. Application MUST KNOW what kind of that they are. So only application programmer knows exactly the data type and format stored in their BDB database. Which means we have to 'think' ('parse', 'reverse-engineer', whatever they're called) what those binary data means, it's practically the same as determining *.data format. Up to this point, this doesn't really a "problem" since we've done the same with the *.data files, so it is HIGHLY POSSIBLE to do.
Another problem i face is that upon opening a BDB file, we have to specify the 'Access Method', which are of DB_BTREE, DB_HASH, DB_QUEUE or DB_RECNO, each specify how the data is stored and retrieved. Altough there exists a method to use DB_UNKNOWN access method, i am yet to try this option.
Out of all those obstacle, i found out there are no 3rd party tools available for managing BDB data (like phpMyAdmin for managing MySQL). We have to create those tools ourselves :O
I'm still trying my best to get further, and once i can retrieve those binary out of BDB, i'll share them (including the tools) so we can analyze it further to determine the data structure.
[NOTE]
I am actually PHP/C#/C/C++ programmer, and altough Java is the primary language in a colleage i once WO from, i have never actually used Java in production
I am confident in my skill on database relational (years of experience in MySQL and PostgreSQL) but i have yet to touch binary database (formally caled Object-Oriented DataBase) like BDB (it's my first). However i am also confident in my skill of Object-Oriented Programming, so i hope it won't take long
I'm in pinch of deadline this week X( so i can't guarrantee how long it will take before i show some result in this
I am not an expert in 'reverse-engineer' or whatever it is called. BIG HELP is needed on determining binary data structure. Each tables stores different data (and most probably in different structure) so it's quiet a long journey
If anyone interested on working together to make it faster, i am open at any time i can read PM :p (please state your programming language if you're interested)