[HowTo] Mehrere Server auf einem Root

04/07/2011 23:48 .Alessa#1
Deleted.
Grund: Für sowas brauche ich mir echt keine Mühe mehr machen.
04/07/2011 23:51 CranK™#2
Naja, laggt für mich viel zu viel...
Aber trotzdem ein danke an dich ;)
04/07/2011 23:53 Almari#3
Quote:
Originally Posted by Valia View Post
Hallo zusammen,

das HowTo ist eigentlich ziemlich einfach. Einige werden sich nun denken "was für ein unnötiger release", aber andere wiederum könnten sich darüber sehr freuen.

Was wir brauchen:
- Entweder einen Root oder einen VPC, auf dem viel Speicherplatz frei ist
- Serverfiles

Zuerst ladet Ihr die normalen Serverfiles hoch. Richtet den Server ein, so wie Ihr es gewohnt habt. Am besten in dem Verzeichnis /home/"Servername"/

Nun legt Ihr ein zweites Verzeichnis im Ordner "home" an und entpackt dort die Serverfiles. Richtet dort den Server ebenfalls ein, wie gewohnt (also falls symbolsiche Verknüpfungen benötigt werden, ruhig machen).

Nun habt Ihr zwei Serverfiles installiert, die beide jederzeit starten könnten - aber nicht gleichzeitig. Und genau da stößst es wieder an ein kleines Problem. Aber, da wir alle einen gesunden Verstand besitzen, können wir dem Problem auch entgegenwirken.
Bei den 2010 Files ist es am Einfachsten, weil es dort nur 2 Game-Ordner gibt.
Navigieren wir aber zuerst in den db-Ordner eures zweiten Servers und öffnen die conf.txt
Wir werden den Eintrag BIND_PORT finden. Dort ändern wir hinter dem = die Zahl um, in eine beliebige Zahl (es ist halt schon gut, wenn der Port nicht schon benutzt ist. Also wehe einer benutzt 22.... :D)
Ab sofort ist dann der DB-Server unter dem Port, den ihr unter BIND_PORT eingetragen habt, zu erreichen.
In den Configs von auth und den game-Ordnern gibt es allerdings auch Ports. Und nicht nur die - auch P2P-Ports. Beide müssen geändert werden! Ich denke, das kriegt ihr auch alleine hin. Einfach die CONFIG in den jeweiligen Ordnern runterladen und in den oberen paar Zeilen müssten sie schon drin stehen - Port und P2P-Port. Einfach ändern. Aber es gibt noch etwas in der CONFIG, das geändert werden muss: DB_PORT. Dort trägt Ihr nun den neuen Port eures DB-Servers ein (Erinnerung: BIND_PORT!).

Sollte das erledigt sein, habt ihr die Konflikte mit den Ports schon mal überwunden. Aber das war noch nicht alles! Es gibt noch eine Kleinigkeit - und zwar... Die Datenbank natürlich.
Wie man das macht, ist eigentlich ganz einfach. Folgende Datenbanken müssen als Kopie erstellt werden:
account, common, log, player, hotbackup.
Wie man die kopiert? Mittels Navicat! Einfach mit Navicat zu eurem MySQL verbinden und eine Datenbank anwählen (z. B. Player). Dann Rechtsklick drauf und "Dump SQL File". Dann macht ihr da immer weiter und schließt den Vorgang ab. Erstellt nun eine neue Datenbank, die Ihr dann z. B. player2 nennt. Folgende Eigenschaten hat jede Datenbank:
Character set: latin2 -- ISO 8859-2 Central European
Collation: latin2_swedish_ci (so ähnlich)

Und dann wählt ihr die erstellte Datenbank mit Rechtsklick aus und klickt auf "Execute SQL File" und wählt dann die SQL-Datei aus, die ihr vorhin erstellt habt. Fertig! Eure Datenbank ist 1:1 portiert. Andernfalls könnt Ihr das auch über Filezilla machen, aber das ist nicht unbedingt notwendig.

Das war aber immer noch nicht alles. Denn woher soll der Server nun wissen, auf welche DB er verbindet? Das alles steht in den CONFIGs. Einfach die CONFIG aus auth und jedem Game-Ordner öffnen und dort die Datenbankenamen (stehen ganz rechts in den Absätzen) immer ändern. Z. B. player in player2. WICHTIG! Auf keinen Fall etwas an PLAYER_SQL, COMMON_SQL, etc. ändern. Das bleibt gefälligst so, wie es ist! Lasst euch auch nicht täuschen, in der AUTH steht zwar PLAYER_SQL, aber trotzdem navigiert Ihr ihn da auf die account-Datenbank.

Danach fehlt nur noch die Änderung in der conf.txt, die Ihr ja vorhin schon im DB-Ordner bearbeitet habt. Dasselbe Schema, nur diesmal steht der Datenbankname schon hinter dem "localhost" und die Einträge sind ganz oben.

Wenn Ihr das alles gemacht habt, werdet ihr sicher durch etwas Überlegung auf etwas gestoßen sein: eine Datenbank könnt Ihr unter Umständen so lassen, wie sie war - account (normal auch hotbackup). Und nun wisst Ihr auch, wie die ganzen Networks es machen, nur dass diese ihre Server nicht auf demselben Root lassen. Aber sie verbinden sich alle auf dieselbe account-Datenbank, haben aber dennoch unterschiedliche player-Datenbanken, etc.

Danach könnt Ihr euch freuen - der Server kann einfach gestartet werden. Natürlich müsst Ihr nun auch etwas im Clienten verändern, aber wie Ihr da einen zweiten Server einträgt, sollte doch kein Problem sein. Somit könnt Ihr aber nun zwei Server auf einem Root starten.

Vergisst mir nur nicht, dass Ihr dann auch die neuen Ports mit in eure Firewall aufnimmt! Sonst freuen sich die lieben Kiddies darauf, euch den zweiten Server zu zerstören.

Falls Fragen sind - ich bin gerne da, sie zu beantworten.

lg,
Valia
Eine Ergänzung: in der CONFIG (in jeder core beiliegend(in den game Ordnern)) gibt es einen Befehl dafür:
PHP Code:
TABLE_POSTFIX$euer wert 
zB: TABLE_POSTFIX:_2 dann würde jeder eintrag mit _2 stattfinden. Das ist noch wichtig zu erwähnen!
04/08/2011 00:16 The Bull#4
kenn ich zwar auch würds auch nur als testserver nutzen.. aber dennoch nice tut

MfG Bull
04/08/2011 02:20 Hoshikuro#5
Hab ich ne zeitlang so gehabt, aber da bevorzuge ich doch lieber 2 reelle root server oder so :D
04/08/2011 03:35 .Sh4rk#6
an sich ganz nice, für nen testserver nebenbei noch am laufen zu haben :D
04/08/2011 06:37 .iXream.#7
Naja wenn man Viel Platz.Ich finde eiglich besser wenn man einen Root hat und einen kleinen FreeBsd "root".Trotzdem Danke!
04/08/2011 07:30 [-Lee-]#8
Jetzt wissen wir ja alle wie Dauni das macht mit seinen Servern . Danke sehr für das Tut :)
04/08/2011 08:14 «яαѕιи»™#9
Vielen Dank! <3
04/08/2011 12:48 .Alessa#10
Es soll ja auch hauptsächlich nur zu Testserverzwecken gemacht werden. Anders würde das schon Leistung einfordern.. Aber auf meinem Root z. B. hat es wunderbar geklappt und nichtmal ein wenig Laggs gehabt - konnte da mehr als nur 2 Server starten. Also wer einen starken Root hat, kann das machen, da spart er sich die Kosten für einen zweiten Root. Bei Schwachen ist das nicht zu empfehlen!

@.99Percent: Danke schonmal, das habe ich aber extra nicht dazugemacht, weil ich noch die Funktionalität der account-Datenbank (wie man sie in Netzwerken kennt) erwähnen wollte. Mit deiner Funktion kriegen die alle sowas angehängt, was in einem Netzwerk nicht helfen wird. Ein Danke aber auf jeden Fall trotzdem.
04/08/2011 15:07 heshii'#11
Danke , weis ich schon aber man muss erstmal drauf kommen :D

SUPER !