mysql 单机能?用mysql可以做单机的数据库吗
一、用mysql可以做单机的数据库吗
可以啊,单机的话连接127.0.0.1不就行了。
要求不高的话用sqlite吧。
SQLite是一个小型的C程序库,实现了独立、可嵌入、零配置的SQL数据库引擎,其特性包括:事务操作是原子,一致,孤立,并且持久的,即使在系统崩溃和电源故障之后。
零配置??不需要安装和管理,实现了绝大多数SQL92标准。
整个数据库存储在一个单一的文件中,数据库文件可以在不同字节序的机器之间自由地共享,支持最大可达2T的数据库。字符串和BLOB类型的大小只受限于可用内存。
完整配置的少于250KB,忽略一些可选特性的少于150KB。在大多数常见操作上比流行的客户/服务器数据库引擎更快。
简单易于使用的API:内建TCL绑定,另外提供可用于许多其他语言的绑定。
具有良好注释的源代码,95%经过测试。
独立:没有外部依赖,源代码位于公共域,可用于任何用途。
二、为什么postgrelsql的性能没有mysql好
一、 PostgreSQL的稳定性极强, Innodb等引擎在崩溃、断电之类的灾难场景下抗打击能力有了长足进步,然而很多 MySQL用户都遇到过Server级的数据库丢失的场景——mysql系统库是MyISAM的,相比之下,PG数据库这方面要好一些。
二、任何系统都有它的性能极限,在高并发读写,负载逼近极限下,PG的性能指标仍可以维持双曲线甚至对数曲线,到顶峰之后不再下降,而 MySQL明显出现一个波峰后下滑(5.5版本之后,在企业级版本中有个插件可以改善很多,不过需要付费)。
三、PG多年来在 GIS领域处于优势地位,因为它有丰富的几何类型,实际上不止几何类型,PG有大量字典、数组、bitmap等数据类型,相比之下mysql就差很多,instagram就是因为PG的空间数据库扩展POSTGIS远远强于MYSQL的my spatial而采用PGSQL的。
四、PG的“无锁定”特性非常突出,甚至包括 vacuum这样的整理数据空间的操作,这个和PGSQL的MVCC实现有关系。
五、PG的可以使用函数和条件索引,这使得PG数据库的调优非常灵活,mysql就没有这个功能,条件索引在web应用中很重要。
六、PG有极其强悍的 SQL编程能力(9.x图灵完备,支持递归!),有非常丰富的统计函数和统计语法支持,比如分析函数(ORACLE的叫法,PG里叫window函数),还可以用多种语言来写存储过程,对于R的支持也很好。这一点上MYSQL就差的很远,很多分析功能都不支持,腾讯内部数据存储主要是MYSQL,但是数据分析主要是HADOOP+PGSQL。
七、PG的有多种集群架构可以选择,plproxy可以支持语句级的镜像或分片,slony可以进行字段级的同步设置,standby可以构建WAL文件级或流式的读写分离集群,同步频率和集群策略调整方便,操作非常简单。
八、一般关系型数据库的字符串有限定长度8k左右,无限长 TEXT类型的功能受限,只能作为外部大数据访问。而 PG的 TEXT类型可以直接访问,SQL语法内置正则表达式,可以索引,还可以全文检索,或使用xml xpath。用PG的话,文档数据库都可以省了。
九,对于WEB应用来说,复制的特性很重要,mysql到现在也是异步复制,pgsql可以做到同步,异步,半同步复制。还有mysql的同步是基于binlog复制,类似oracle golden gate,是基于stream的复制,做到同步很困难,这种方式更加适合异地复制,pgsql的复制基于wal,可以做到同步复制。同时,pgsql还提供stream复制。
十,pgsql对于numa架构的支持比mysql强一些,比MYSQL对于读的性能更好一些,pgsql提交可以完全异步,而mysql的内存表不够实用(因为表锁的原因)
最后说一下我感觉 PG不如 MySQL的地方。
第一,MySQL有一些实用的运维支持,如 slow-query.log,这个pg肯定可以定制出来,但是如果可以配置使用就更好了。
第二是mysql的innodb引擎,可以充分优化利用系统所有内存,超大内存下PG对内存使用的不那么充分,
第三点,MySQL的复制可以用多级从库,但是在9.2之前,PGSQL不能用从库带从库。
第四点,从测试结果上看,mysql 5.5的性能提升很大,单机性能强于pgsql,5.6应该会强更多.
第五点,对于web应用来说,mysql 5.6的内置MC API功能很好用,PGSQL差一些。
另外一些:
pgsql和mysql都是背后有商业公司,而且都不是一个公司。大部分开发者,都是拿工资的。
说mysql的执行速度比pgsql快很多是不对的,速度接近,而且很多时候取决于你的配置。
对于存储过程,函数,视图之类的功能,现在两个数据库都可以支持了。
另外多线程架构和多进程架构之间没有绝对的好坏,oracle在unix上是多进程架构,在windows上是多线程架构。
很多pg应用也是24/7的应用,比如skype.最近几个版本VACUUM基本不影响PGSQL运行,8.0之后的PGSQL不需要cygwin就可以在windows上运行。
至于说对于事务的支持,mysql和pgsql都没有问题。
三、关于机战单机版mysql数据库中test的问题
算了直接给你发个视频+服务器端的连接吧
解压密码是:ljiww.cn
一、硬件的安装
1、保证服务器风扇正常转动。
2、保证服务器各个提示灯是否正常。
3、开机察看服务器有无报警情况。
4、开机察看服务器能否正常启动(不插鼠标键盘的情况下)
二、系统的安装
1、安装RHEL 4.1
2、选择自动分区。
3、分别给2块网卡配置ip,方便以后配置,其中eth0配内网ip,eth1配外网ip。
4、不启用防火墙。
5、增加中文语言包。
6、选择软件包时,只选择开发包.
三、系统的简单设置
1、防火墙的简单设置:
vi/etc/rc.d/forward
内容:(例子)
#!/bin/bash
echo 1>/proc/sys/net/ipv4/ip_forward
if [-e/proc/sys/net/ipv4/tcp_ecn ]
then
echo 0>/proc/sys/net/ipv4/tcp_ecn
fi
/sbin/iptables-F
/sbin/iptables-F-t nat
/sbin/depmod-a
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
/sbin/iptables-A INPUT-i lo-j ACCEPT
/sbin/iptables-A INPUT-i eth0-j ACCEPT
/sbin/iptables-A INPUT-m state--state ESTABLISHED,RELATED-j ACCEPT
#/sbin/iptables-A INPUT-i eth0-p tcp-j REJECT--reject-with tcp-reset
/sbin/iptables-A INPUT-i eth0-p udp-j REJECT--reject-with icmp-port-unreachable
#sshd
/sbin/iptables-A INPUT-s 218.80.198.234-p tcp-m state--state NEW-m tcp--dport 22-j ACCEPT
/sbin/iptables-A INPUT-s 218.80.198.250-p tcp-m state--state NEW-m tcp--dport 22-j ACCEPT
/sbin/iptables-A INPUT-s 210.22.188.21-p tcp-m state--state NEW-m tcp--dport 22-j ACCEPT
#ftp server
#/sbin/iptables-A INPUT-p tcp-m state--state NEW-m tcp--dport 21-j ACCEPT
#game server
/sbin/iptables-A INPUT-p tcp-m state--state NEW-m tcp--dport 6020-j ACCEPT
#db server
/sbin/iptables-t nat-A PREROUTING-s 218.80.198.234-d 203.110.165.30-p tcp--dport 3306-j DNAT--to 192.168.102.158:3306
/sbin/iptables-t nat-A PREROUTING-s 218.80.198.234-d 203.110.165.30-p tcp--dport 3307-j DNAT--to 192.168.102.159:3306
/sbin/iptables-P INPUT DROP
/sbin/iptables-t nat-A POSTROUTING-o eth1-s 192.168.102.0/24-j MASQUERADE
保存后退出。
chmod 744/etc/rc.d/forward
然后运行防火墙脚本,以后根据需求修改脚本。
再vi/etc/rc.d/only_forward
#!/bin/bash
echo 1>/proc/sys/net/ipv4/ip_forward
if [-e/proc/sys/net/ipv4/tcp_ecn ]
then
echo 0>/proc/sys/net/ipv4/tcp_ecn
fi
/sbin/iptables-F
/sbin/iptables-F-t nat
/sbin/depmod-a
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
/sbin/iptables-A INPUT-i lo-j ACCEPT
/sbin/iptables-A INPUT-i eth0-j ACCEPT
/sbin/iptables-A INPUT-m state--state ESTABLISHED,RELATED-j ACCEPT
#/sbin/iptables-A INPUT-i eth0-p tcp-j REJECT--reject-with tcp-reset
/sbin/iptables-A INPUT-i eth0-p udp-j REJECT--reject-with icmp-port-unreachable
#sshd
/sbin/iptables-A INPUT-s 218.80.198.234-p tcp-m state--state NEW-m tcp--dport 22-j ACCEPT
/sbin/iptables-A INPUT-s 218.80.198.250-p tcp-m state--state NEW-m tcp--dport 22-j ACCEPT
/sbin/iptables-A INPUT-s 210.22.188.21-p tcp-m state--state NEW-m tcp--dport 22-j ACCEPT
#ftp server
#/sbin/iptables-A INPUT-p tcp-m state--state NEW-m tcp--dport 21-j ACCEPT
#game server
/sbin/iptables-A INPUT-s 218.80.198.234-p tcp-m state--state NEW-m tcp--dport 6020-j ACCEPT
#db server
/sbin/iptables-t nat-A PREROUTING-s 218.80.198.234-d 203.110.165.30-p tcp--dport 3306-j DNAT--to 192.168.102.158
/sbin/iptables-t nat-A PREROUTING-s 218.80.198.234-d 203.110.165.30-p tcp--dport 3307-j DNAT--to 192.168.102.159:3306
/sbin/iptables-P INPUT DROP
/sbin/iptables-t nat-A POSTROUTING-o eth1-s 192.168.102.0/24-j MASQUERADE
此防火墙只允许公司的电脑可以登录游戏。
2、设置系统自动启动防火墙
vi/etc/rc.d/rc.local
增加一行
/etc/rc.d/forward
保存后退出
3、设置文件打开数
1)修改/etc/security/limits.conf增加2行:
* soft nofile 4096
* hard nofile 65535
2)修改/etc/pam.d/login增加1行
session required pam_limits.so
可用:
echo“* soft nofile 4096”>>/etc/security/limits.conf
echo“* hard nofile 65535”>>/etc/security/limits.conf
echo“session required pam_limits.so”>>/etc/pam.d/login
4、修改默认语言
vi/etc/sysconfig/i18n修改
LANG="zh_CN.GB2312"
7、新建游戏运行用户ztgame,设置密码
useradd ztgame
passwd ztgame
8、用ztgame用户登录服务器,修改vi/home/ztgame/.bash_profile增加一行
ulimit–c unlimited
保存后退出。
四、游戏环境的搭建(按照4台网关服务器,5台场景服务器,1台数据库服务器的构架)
1、服务器IP设置
4台网关服务器配置外网ip和内网ip,5台场景服务器和数据库服务器只配置内网ip,并且服务器默认网关为第一台网关服务器的内网ip。
服务器以服务器应用-序号-机房序号命名(例GWServer01-CHJ01)。
修改/etc/hosts。
例子:
127.0.0.1 GWServer01-CHJ01 localhost.localdomain localhost
192.168.100.101 GWServer02-CHJ01
………
192.168.100.104 ScenServer01-CHJ01
………
192.168.100.109 DBServer-CHJ01
2、公钥的生成
在ztgame的用户下登陆第一台网关服务器,输入ssh-keygen-t dsa
接受~/.ssh/id_dsa的默认位置。输入一个与你的帐号口令不同的口令句,再输入一次来确认。公钥被写入~/.ssh/id_dsa.pub。密钥被写入~/.ssh/id_dsa。
使用以下命令改变你的.ssh目录的许可权限:
chmod 755~/.ssh
把~/.ssh/id_dsa.pub用scp命令传到其它剩余9台服务器
scp~/.ssh/id_dsa.pub ztgame@192.168.102.108:~/.ssh/authorized_keys
在其它9台服务器下使用以下命令改变你的 authorized_keys文件的许可权限:
chmod 755~/.ssh
chmod 644~/.ssh/authorized_keys
3、数据库服务器的安装
#首先确定你是root用户
#确定你有以下包
perl-DBD-MySQL-2.9004-3.1
perl-DBI-1.40-5
mysql-4.1.7-4.RHEL4.1
获得mysql-4.1.*.tar包,用tar–zxvf mysql-4.1.*tar解开压缩包,然后进入mysql-4.1.*目录
#根据体统类型选择编译方式
#i386体系结构的
CFLAGS="-O3-mcpu=pentiumpro" CXX=gcc CXXFLAGS="-O3-mcpu=pentiumpro-felide-constructors-fno-exceptions-fno-rtti"./configure--with-raid--enable-thread-safe-client--enable-assembler--with-server-suffix=" for>>>MySQL Database of Zebra by Yhc<<<"--without-debug--with-extra-charsets=none--without-isam--disable-shared--with-mysqld-ldflags=-all-static--prefix=/usr/local/mysql--without-bench
#64位系统,x86_64
CFLAGS="-O3-m64" CXX=gcc CXXFLAGS="-O3-m64-felide-constructors-fno-exceptions-fno-rtti"./configure--with-raid--enable-thread-safe-client--enable-assembler--with-server-suffix=" for>>>MySQL Database of Zebra by Yhc<<<"--without-debug--with-extra-charsets=none--without-isam--disable-shared--with-mysqld-ldflags=-all-static--prefix=/usr/local/mysql--without-bench
#然后根据CPU数量进行编译
make-j 2&& make install
#添加用户
groupadd mysql&& useradd-g mysql mysql
#创建目录
mkdir/usr/local/mysql/data&& mkdir/usr/local/mysql/run&& mkdir/usr/local/mysql/log&& mkdir/usr/local/mysql/var
#更改mysql目录所有者
chgrp mysql-R/usr/local/mysql&& chown mysql-R/usr/local/mysql
#增加打开文件数量
ulimit-n 4096
#添加PATH
echo"PATH=\"/usr/local/mysql/bin:\$PATH\"">>/etc/profile&& export PATH="/usr/local/mysql/binPATH"
#strip可执行文件
strip/usr/local/mysql/libexec/mysqld
#添加LIB PATH
echo"/usr/local/mysql/lib">>/etc/ld.so.conf&& ldconfig
#将my.cnf文件cp到/etc目录下
cp support-files/my-huge.cnf/etc/my.cnf
#修改my.cnf
datadir=/db/mysql
#创建数据库存放路径
mkdir/db
chown mysql.mysql/db-R
#初始化Mysql表
su- mysql-c"mysql_install_db"
#启动服务器 www.5uw l.net
su- mysql-c"mysqld_safe--skip-name-resolve--open-files-limit=4096&"
#创建数据库和用户
GRANT ALL PRIVILEGES ON*.* TO ztgame@192.168.104.% IDENTIFIED BY WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON*.* TO ztgame@localhost IDENTIFIED BY WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON*.* TO ztgame@218.80.198.234 IDENTIFIED BY WITH GRANT OPTION;
4、数据库配置
用mysql进入,然后用create database dbname创建数据库。分别创建SuperServer、RecordServer、Bill数据库,然后用安装包目录下的*.sql的文件建立相应的表。(SessionServer.sql也导入到RecordServer库中)。
在SuperServer数据库SERVERLIST表内添加服务器配置信息。
例子:
INSERT INTO `SERVERLIST` VALUES(1,1,SuperServer,192.168.104.109,10000,192.168.104.109,10000);
INSERT INTO `SERVERLIST` VALUES(20,20,SessionServer,192.168.104.109,6000,192.168.104.109,6000);
INSERT INTO `SERVERLIST` VALUES(21,21,SceneServer,192.168.104.104,6010,192.168.104.104,6010);
INSERT INTO `SERVERLIST` VALUES(22,21,SceneServer,192.168.104.105,6011,192.168.104.105,6011);
INSERT INTO `SERVERLIST` VALUES(23,21,SceneServer,192.168.104.106,6012,192.168.104.106,6012);
INSERT INTO `SERVERLIST` VALUES(24,21,SceneServer,192.168.104.107,6013,192.168.104.107,6013);
INSERT INTO `SERVERLIST` VALUES(25,21,SceneServer,192.168.104.108,6014,192.168.104.108,6014);
INSERT INTO `SERVERLIST` VALUES(2200,22,GatewayServer,192.168.104.100,6020,210.51.23.132,6020);
INSERT INTO `SERVERLIST` VALUES(2201,22,GatewayServer,192.168.104.101,6020,210.51.23.133,6020);
INSERT INTO `SERVERLIST` VALUES(2202,22,GatewayServer,192.168.104.102,6020,210.51.23.134,6020);
INSERT INTO `SERVERLIST` VALUES(2203,22,GatewayServer,192.168.104.103,6020,210.51.23.135,6020);
INSERT INTO `SERVERLIST` VALUES(11,11,RecordServer,192.168.104.109,7010,192.168.104.109,7010);
INSERT INTO `SERVERLIST` VALUES(12,12,BillServer,192.168.104.109,7020,192.168.104.109,7020);
在RecordServer数据库上初始化某些表格,目前有ANSWER,TECH,COUNTRY,NPCDARE,ACCPRIV。
数据库服务器上跑SuperServer、SessionServer、RecordServer、BillServer四个服务,4个网关服务器分别跑4个网关服务,5个场景服务器分别跑5个场景服务。场景服务器对应的ID就是国家配置的ID号,这个ID号决定场景服务器上面跑几个国家。
五、服务端的配置和安装
1、获得安装包:
release-version.tar.bz2
map-version.tar.bz2
在/home/ztgame下建立以时间为名字的目录(game20050928),压缩包放入此目录,然后用tar–jxvf release-version.tar.bz2和tar–jxvf map-version.tar.bz2解开压缩包
进入release目录,cp–rf../map.
按照config.xml.example格式创建文件config.xml
配置文件主要定义了服务器的各种参数:
[global]这段主要定义了通用参数,如服务器本地网络设备名称,扩展网络设备名称,日志级别,SuperServer的服务器地址,端口等参数。
其他各个段定义了具体的服务参数,主要是指定该服务对应的数据库,数据库的连接地址,端口,用户名,密码等数据库连接字符串。每个服务可以定义日志文件的存放位置,如果没有指定,缺省放置在/tmp/目录下面。
如SuperServer服务
<SuperServer>
<!--MySQL database connection[mysql://user:passwd@host:port/dbName]-->
<mysql>mysql://test:123456@192.168.2.14:3306/SuperServer</mysql>
<logfilename>/home/test/tmp/superserver.log</logfilename>
</SuperServer>
上面配置指明SuperServer服务,采用连接串用户名test,密码123456,访问192.168.2.14服务器上3306端口下SuperServer数据库,日志文件存放在/home/test目录下。其他服务配置类似。
例子:
<?xml version="1.0" encoding="GB2312"?>
<!--所有各种服务器参数-->
<Zebra>
<global>
<!-- Specify the log level[debug,info,warning,error,fatal,always].-->
<log>debug</log>
<!--MySQL database connection[mysql://user:passwd@host:port/dbName]-->
<!-- Use the specified local network device.-->
<ifname>eth0</ifname>
<!-- Connected to the specified supserserver, property port default value is 10000.-->
<superserver port="10000">192.168.104.109</superserver>
</global>
<SuperServer>
<!--统一用户平台登陆服务器列表文件-->
<loginServerListFile>loginServerList.xml</loginServerListFile>
<!--角色名称唯一性验证服务器的地址-->
<RoleregServer port="9901">218.80.198.252</RoleregServer>
<!--服务器信息采集的服务器地址-->
<InfoServer port="9903">218.80.198.252</InfoServer>
<!--MySQL database connection[mysql://user:passwd@host:port/dbName]-->
<mysql>mysql://ztgame:yS29wahvCH@192.168.104.109:3306/SuperServer</mysql>
<!--如果要编码mysql连接字符串请使用工具,配置如下面的例子
<mysql encode="yes">lmOf.1kySwS0a09j11xyCdI1ySujl1hnCvT0hDitT0hjzv00gzSv00gDSw91tS9fE1</mysql>
-->
<logfilename>/log/superserver.log</logfilename>
</SuperServer>
<RecordServer>
<!--MySQL database connection[mysql://user:passwd@host:port/dbName]-->
<mysql>mysql://ztgame:yS29wahvCH@192.168.104.109:3306/RecordServer</mysql>
<logfilename>/log/recordserver.log</logfilename>
</RecordServer>
<BillServer>
<!--MySQL database connection[mysql://user:passwd@host:port/dbName]-->
<mysql>mysql://ztgame:yS29wahvCH@192.168.104.109:3306/Bill</mysql>
<logfilename>/log/billserver.log</logfilename>
</BillServer>
<BillClient>
<!--交易记录log文件路径-->
<tradelogfilename>/log/clienttrade.log</tradelogfilename>
</BillClient>
<SessionServer>
<!--MySQL database connection[mysql://user:passwd@host:port/dbName]-->
<mysql>mysql://ztgame:yS29wahvCH@192.168.104.109:3306/RecordServer</mysql>
<logfilename>/log/sessionserver.log</logfilename>
<dare_active_time>3600</dare_active_time>
<offlineMsgPath>/log/offlineMessages</offlineMsgPath>
</SessionServer>
<ScenesServer>
<sceneinfofile>scenesinfo.xml</sceneinfofile>
<npctradefile>npctrade.xml</npctradefile>
<messageSystemFile>messageSystem.xml</messageSystemFile>
<charinitinfoFile>initcharinfo.xml</charinitinfoFile>
<magicrangeFile>magicrangefile.xml</magicrangeFile>
<questdir>quest/</questdir>
<mapdir>map/</mapdir>
<tbldir>map/</tbldir>
<gm_logfile>/log/gm_log.log</gm_logfile>
<!--回写档案平率(单位是秒)-->
<writebacktimer>300</writebacktimer>
<ossdir>/log/</ossdir>
<logfilename>/log/scenesserver.log</logfilename>
</ScenesServer>
<GatewayServer>
<!--国家排序方式 0:不排序, 1:在线人数排序, 2:注册人数排序-->
<countryorder>2</countryorder>
<logfilename>/log/gatewayserver.log</logfilename>
<sceneinfofile>scenesinfo.xml</sceneinfofile>
<rolereg_verify>1</rolereg_verify>
<forbidWordsFile>forbidWords</forbidWordsFile>
</GatewayServer>
</Zebra>
注意存放日至的目录是否建立,以及建立session服务所要求的日志存放子目录offlineMessages。
修改loginServerList.xml,填入平台中心的FLServer服务器ip以及端口。
例子:
<?xml version="1.0" encoding="GB2312"?>
<LoginServerList>
<server ip="218.80.198.252" port="7001"/>
<server ip="210.22.188.20" port="7001"/>
</LoginServerList>
然后将修改好的版本传至其它9台服务器。并启动服务
六、服务器的启动,停止和更新
1、将运行脚本传至各个服务器。
2、开启游戏服务
通过ssh使用ztgame用户远程连接至第一台网关服务器,再通过网关服务器连接其他9台服务器,
10个窗口内分别进入最新的服务端存放目录/home/ztgame/game200508**/release/
数据库服务器启动服务./SuperServer-d和./SessionServer-d和./RecordServer-d和./BillServer-d
场景服务器启动服务./ScenesServer-d
网关服务器启动服务./GatewayServer-d
以上操作可以通过/home/ztgame/tools/allstart game200508**来启动(由于程序是后台运行,所以如发现程序运行时间过长,可以CTRL+c中断,并不影响程序的正常运行。)
3、停止游戏服务
通过ssh使用ztgame用户远程连接至第一台网关服务器,运行/home/ztgame/tools/allstop,中止所有服务
,此脚本是并不是强行杀进程,所以如果发现进程无法kill的情况,用/home/ztgame/tools/allstop_9来强行杀死进程。
4、查看游戏服务
通过ssh使用ztgame用户远程连接至第一台网关服务器,运行/home/ztgame/tools/allview,查看所有服务运行状态。
5、更新游戏服务
通过ssh使用ztgame用户远程连接至第一台网关服务器,再通过服务器连接其他9台服务器,
分别在/home/ztgame目录下面建立最新的服务端存放目录game200508**.
然后将服务器端安装包通过scp传到第一台网关服务器,在game200508**下解压。
tar jxvf zebra-release-*****
tar jxvf zebra-release-*****
cp map release/-rf
然后从上一个版本里拷贝出一些配置文件覆盖源文件
cp/home/ztgame/game_old/release/config.xml/home/ztgame/game_new/release/
cp/home/ztgame/game_old/release/loginServerList.xml/home/ztgame/game_new/release/
cp/home/ztgame/game_old/release/messageSystem.xml/home/ztgame/game_new/release/
以上工作准备好后就可以将网关服务器上的版本传到其他服务器
scp-r/home/ztgame/game_new/* gamebak@ztgame 218.80.198.234//root/back/`hostname`-RecordServer`date+%Y%m%d`.tar.gz
sleep 20
echo"upload RecordServer ok!"
2)、数据库即时备份
每隔1小时,将RecordServer数据库拷贝至/root/back/hour目录进行备份,然后将压缩文件传给特定服务器。
例子:
#!/bin/bash
hottime=`date+%Y%m%d%H%M`
mkdir/root/back/hour/RecordServer"$hottime"
/usr/local/mysql/bin/mysqlhotcopy RecordServer/root/back/hour/RecordServer"$hottime"-u ztgame-p yS29wahvCH
sleep 5
cd/root/back/hour
tar zcf `hostname`-RecordServer"$hottime".tar.gz RecordServer"$hottime"
sleep 5
echo"tar ok!"
/usr/local/bin/ncftpput-u backupdb-p backupdb 192.168.102.119//root/back/hour/`hostname`-RecordServer"$hottime".tar.gz
sleep 20
echo"upload RecordServer ok!"
rm `hostname`-RecordServer"$hottime".tar.gz-f
3)、日志备份
每天02:00,将/log/下前一天的日志,进行压缩,然后上传至192.168.1.9服务器。
运行脚本/root/scripts//upload_daily
例子:
#!/bin/bash
cd/log/
mkdir log`date--date 1 days ago+%Y%m%d`
mv*.log.`date--date 1 days ago+%y%m%d`-* log`date--date 1 days ago+%Y%m%d`
sleep 10
tar zcvf `hostname`-log`date--date 1 days ago+%Y%m%d`.tar.gz log`date--date 1 days ago+%Y%m%d`
/usr/local/bin/ncftpput-u log-p log@ztgame 218.80.198.234//log/`hostname`-log`date--date 1 days ago+%Y%m%d`.tar.gz
rm `hostname`-log`date--date 1 days ago+%Y%m%d`.tar.gz
注:计划任务通过/etc/crontab–e来进行设置
4)、即时日志备份
直接运行/home/ztgame/tools/upload将最新日志上传至192.168.1.9服务器,方便研发部门查看。
运行脚本/home/ztgame/tools/upload,(如果所有服务器的日志都需要上传,可以运行网关服务器上的/home/ztgame/tools/allupload)