- 浏览: 137760 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (140)
- ruby on rails (23)
- 随笔 (1)
- 部署 (3)
- ubuntu源 (2)
- linux (28)
- web (9)
- IT (3)
- linux,数据库 (3)
- MOOC (4)
- ubuntu (20)
- win7 (2)
- git (6)
- github (2)
- ubuntu,python (1)
- java,JDK (1)
- ubuntu,qq (1)
- vagrant (3)
- virtualbox (2)
- sass (1)
- centos (3)
- Sublime (1)
- nginx (4)
- passenger (1)
- VPN (0)
- mysql (4)
- VIM (1)
- bbb (1)
- 编码设置 (2)
- mongo (4)
- edx (2)
- ssh (1)
- python (1)
- phpmyadmin (1)
- libreoffice (2)
- docker (4)
- pg (1)
- PostgreSQL (2)
- 系统时间设置 (1)
- ansible (1)
- Sinatra (1)
- 硬盘挂载 (1)
- npm (1)
- smtp (1)
- docker 镜像 (1)
- Memcached (1)
最新评论
# mysql 5.5 主从配置
一. 分别在需要部署数据库的服务器上安装同样的版本数据库
服务器一(主):192.168.1.228
服务器二(从):192.168.1.229
服务器三(从):192.168.1.230
服务器四(路由):192.168.1.226
二. 配置主服务器
服务器一(主):192.168.1.228
1.修改配置文件
vim /etc/mysql/my.cnf
server-id=1 #设置服务器id,为1表示主服务器,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
sync-binlog = 1 #
log_bin=mysql-bin #启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
binlog-do-db=osyunweidb #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
binlog-ignore-db=mysql #不同步mysql系统数据库
binlog-ignore-db = performance_schema
binlog-ignore-db = information_schema
====================my.cnf============================================================
log-bin=mysql-bin
log-bin-index=mysql-bin.index
# binary logging format - mixed recommended
binlog_format=mixed
binlog-do-db=edxapp
binlog-do-db=ora
binlog-do-db=xqueue
binlog-do-db=discern
binlog-ignore-db=mysql
binlog-ignore-db = performance_schema
binlog-ignore-db = information_schema
# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id = 1
sync-binlog = 1
=====================my.cnf=============================================================
ps:
sync_binlog=1 or N
This makes MySQL synchronize the binary log’s contents to disk each time it commits a transaction
默认情况下,并不是每次写入时都将binlog与硬盘同步。因此如果操作系统或机器(不仅仅是MySQL服务器)崩溃,有可能binlog中最后的语句丢 失了。要想防止这种情况,你可以使用sync_binlog全局变量(1是最安全的值,但也是最慢的),使binlog在每N次binlog写入后与硬盘 同步。即使sync_binlog设置为1,出现崩溃时,也有可能表内容和binlog内容之间存在不一致性。如果使用InnoDB表,MySQL服务器 处理COMMIT语句,它将整个事务写入binlog并将事务提交到InnoDB中。如果在两次操作之间出现崩溃,重启时,事务被InnoDB回滚,但仍 然存在binlog中。可以用--innodb-safe-binlog选项来增加InnoDB表内容和binlog之间的一致性。(注释:在MySQL 5.1中不需要--innodb-safe-binlog;由于引入了XA事务支持,该选项作废了),该选项可以提供更大程度的安全,使每个事务的 binlog(sync_binlog =1)和(默认情况为真)InnoDB日志与硬盘同步,该选项的效果是崩溃后重启时,在滚回事务后,MySQL服务器从binlog剪切回滚的 InnoDB事务。这样可以确保binlog反馈InnoDB表的确切数据等,并使从服务器保持与主服务器保持同步(不接收 回滚的语句)。
2. 重启
service mysql restart
3. 给权限
mysql> grant replication slave on *.* to 'root'@192.168.1.229 identified by 'sstc503';
mysql> grant replication slave on *.* to 'root'@192.168.1.230 identified by 'sstc503';
mysql> grant replication slave on *.* to 'sstc'@192.168.1.229 identified by 'sstc503';
mysql> grant replication slave on *.* to 'sstc'@192.168.1.230 identified by 'sstc503';
#刷新权限
mysql> flush privileges;
#查看主库情况,出现下面结果说明配置成功
mysql> show master status;
+------------------+----------+---------------------------+---------------------------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+---------------------------+---------------------------------------------+
| mysql-bin.000002 | 335 | edxapp,ora,xqueue,discern | mysql,performance_schema,information_schema |
+------------------+----------+---------------------------+---------------------------------------------+
1 row in set (0.00 sec)
三. 配置从库
服务器二(从):192.168.1.229
配置从服务器主要区别就一个: server-id
需要多少个,按数字排序,其他的安装,配置都一样
1.修改配置文件
vim /etc/mysql/my.cnf
========================================================
server-id=2
log-bin = mysql-bin
relay-log-index = slave-relay-bin.index
relay-log = slave-relay-bin
replicate-do-db=edxapp
replicate-do-db=ora
replicate-do-db=xqueue
replicate-do-db=discern
replicate-ignore-db=mysql
replicate-ignore-db=performance_schema
replicate-ignore-db=information_schema
sync_master_info = 1
sync_relay_log = 1
sync_relay_log_info = 1
======================================================
2. 这个mysql指令里有文件名和位置的指明
mysql> change master to master_host='192.168.1.228',master_user='root',master_password='sstc503', master_log_file='mysql-bin.000003',master_log_pos=26270165;
#开始同步线程
mysql> start slave;
#查看开启情况
mysql> show slave status \G #没有分号
如果出现:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
表示主从同步进行中
mysql> stop slave;
3. 同样方式, 配置服务器三(从):192.168.1.230
ps: 先配置主从,再建数据库,否则会出现错误,所以在做主从之前现在把数据库导出来,等建立完主从,在master上导入就行,之后从库就会同步了主库导入的数据库
如果出现错误了,现在停掉从库,从新连接,从新连接master_log_file 和 master_log_pos 都会改变,去主库查看: show master status;
ps:
[root@edx-server-05 logs]# /etc/init.d/mysql restart
ERROR! MySQL server PID file could not be found!
Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/mysql.pid).
解决:删除 data 目录下添加节点时生成的文件, 然后重启
四. 安装 amoeba
服务器四(路由):192.168.1.226
下载 amoeba
下载 JDK
1. 安装JDK
mkdir /usr/lib/jvm
tar zxvf jdk-7u45-linux-x64.tar.gz -C /usr/lib/jvm
########
vim /etc/environment
PATH="/usr/lib/jvm/jdk1.7.0_45/bin"
JAVA_HOME="/usr/lib/jvm/jdk1.7.0_45"
JRE_HOME="/usr/lib/jvm/jdk1.7.0_45/jre"
CLASSPATH=".:/usr/lib/jvm/jdk1.7.0_45/lib"
######################
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_45
export JRE_HOME=/usr/lib/jvm/jdk1.7.0_45/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
#######
update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_45/bin/java 300
update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_45/bin/javac 300
update-alternatives --config java
root@edxserver01:/usr/lib/jvm/jdk1.7.0_45# java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
2. 安装amoeba
# wget http://sourceforge.net/projects/amoeba/files/Amoeba%20for%20mysql/2.2.x/amoeba-mysql-binary-2.2.0.tar.gz/download
# mkdir /usr/local/amoeba
# tar xf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba
3. 配置 amoeba
进入amoeba目录下会看到一下几个目录
bechmark:压力测试
bin:脚本文件
conf:配置文件
lib:库
在conf文件下有许多配置文件,这里实现读写分离的效果,只需要两个文件即可 amoeba.xml和dbserver.xml。在amoeba.xml文件下需要修改的配置为:
##################在 dbserver.xml文件中需要修改的配置为:
<factoryConfig class="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory">
<property name="manager">${defaultManager}</property>
<property name="sendBufferSize">64</property>
<property name="receiveBufferSize">128</property>
<!-- mysql port -->
<property name="port">3306</property> #后端mysql的端口
<!-- mysql schema -->
<property name="schema">amoeba</property> #后端mysql的默认连接数据库
<!-- mysql user -->
<property name="user">root</property> #连接后端mysql的账户
<!-- mysql password
<property name="password">password</property>
-->
<property name="password">amoebapass</property> #连接后端mysql使用的密码
</factoryConfig>
<dbServer name="server1" parent="abstractServer">
<factoryConfig>
<!-- mysql ip -->
<property name="ipAddress">192.168.1.228</property> #后端MySQL的ip
</factoryConfig>
</dbServer>
<dbServer name="server2" parent="abstractServer">
<factoryConfig>
<!-- mysql ip -->
<property name="ipAddress">192.168.1.229</property>
</factoryConfig>
</dbServer>
<dbServer name="server3" parent="abstractServer">
<factoryConfig>
<!-- mysql ip -->
<property name="ipAddress">192.168.1.230</property>
</factoryConfig>
</dbServer>
# 数据库池, server2,server2,server3 是以 2 2 3 这样的方式轮询
<dbServer name="multiPool" virtual="true">
<poolConfig class="com.meidusa.amoeba.server.MultipleServerPool">
<!-- Load balancing strategy: 1=ROUNDROBIN , 2=WEIGHTBASED , 3=HA-->
<property name="loadbalance">1</property>
<!-- Separated by commas,such as: server1,server2,server1 -->
<property name="poolNames">server2,server2,server3</property>
</poolConfig>
</dbServer>
# ps: 一主多从可以增加server3 ......
##########################在 amoeba.xml文件中需要修改的配置为:
<service name="Amoeba for Mysql" class="com.meidusa.amoeba.net.ServerableConnectionManager">
<!-- port -->
<property name="port">3306</property> #连接amoeba时所使用的端口号
<!-- bind ipAddress -->
<!--
<property name="ipAddress">127.0.0.1</property> #
-->
<property name="ipAddress">0.0.0.0</property> #监听地址
<property name="manager">${clientConnectioneManager}</property>
<property name="connectionFactory">
<bean class="com.meidusa.amoeba.mysql.net.MysqlClientConnectionFactory">
<property name="sendBufferSize">128</property>
<property name="receiveBufferSize">64</property>
</bean>
</property>
<property name="authenticator">
<bean class="com.meidusa.amoeba.mysql.server.MysqlClientAuthenticator">
<property name="user">root</property> #连接amoeba时候的账户
<property name="password">amoeba</property> #连接amoeba时候的密码
<property name="filter">
<bean class="com.meidusa.amoeba.server.IPAccessController">
<property name="ipFile">${amoeba.home}/conf/access_list.conf</property>
</bean>
</property>
</bean>
</property>
</service>
<queryRouter class="com.meidusa.amoeba.mysql.parser.MysqlQueryRouter">
<property name="ruleLoader">
<bean class="com.meidusa.amoeba.route.TableRuleFileLoader">
<property name="ruleFile">${amoeba.home}/conf/rule.xml</property>
<property name="functionFile">${amoeba.home}/conf/ruleFunctionMap.xml</property>
</bean>
</property>
<property name="sqlFunctionFile">${amoeba.home}/conf/functionMap.xml</property>
<property name="LRUMapSize">1500</property>
<property name="defaultPool">server1</property> #默认路由, 有人说可以去掉,但是我去掉出现异常
<property name="writePool">server1</property> #写路由到server1上去
<property name="readPool">server2</property> #读路由到server2上去, 如果是多从的, 这里写数据库池,例如:multiPool
<property name="needParse">true</property>
</queryRouter>
4. 启动 amoeba
版本: 2.2.0
/usr/local/amoeba/bin/amoeba start
/usr/local/amoeba/bin/amoeba stop
root@edxserver01:/usr/local/amoeba# ./bin/amoeba start
The stack size specified is too small, Specify at least 228k
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
解决问题:
vim /usr/local/amoeba/bin/amoeba
修改:
DEFAULT_OPTS="-server -Xms256m -Xmx256m -Xss128k"
为:
DEFAULT_OPTS="-server -Xms256m -Xmx256m -Xss256k"
版本: 3.0.5
nohup /usr/local/amoeba-mysql-3.0.5-RC/bin/launcher &
/usr/local/amoeba-mysql-3.0.5-RC/bin/shutdown
vim /usr/local/amoeba-mysql-3.0.5-RC/jvm.properties
修改为:
JVM_OPTIONS="-server -Xms1024m -Xmx1024m -Xss256k -XX:PermSize=16m -XX:MaxPermSize=96m"
一. 分别在需要部署数据库的服务器上安装同样的版本数据库
服务器一(主):192.168.1.228
服务器二(从):192.168.1.229
服务器三(从):192.168.1.230
服务器四(路由):192.168.1.226
二. 配置主服务器
服务器一(主):192.168.1.228
1.修改配置文件
vim /etc/mysql/my.cnf
server-id=1 #设置服务器id,为1表示主服务器,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
sync-binlog = 1 #
log_bin=mysql-bin #启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
binlog-do-db=osyunweidb #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
binlog-ignore-db=mysql #不同步mysql系统数据库
binlog-ignore-db = performance_schema
binlog-ignore-db = information_schema
====================my.cnf============================================================
log-bin=mysql-bin
log-bin-index=mysql-bin.index
# binary logging format - mixed recommended
binlog_format=mixed
binlog-do-db=edxapp
binlog-do-db=ora
binlog-do-db=xqueue
binlog-do-db=discern
binlog-ignore-db=mysql
binlog-ignore-db = performance_schema
binlog-ignore-db = information_schema
# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id = 1
sync-binlog = 1
=====================my.cnf=============================================================
ps:
sync_binlog=1 or N
This makes MySQL synchronize the binary log’s contents to disk each time it commits a transaction
默认情况下,并不是每次写入时都将binlog与硬盘同步。因此如果操作系统或机器(不仅仅是MySQL服务器)崩溃,有可能binlog中最后的语句丢 失了。要想防止这种情况,你可以使用sync_binlog全局变量(1是最安全的值,但也是最慢的),使binlog在每N次binlog写入后与硬盘 同步。即使sync_binlog设置为1,出现崩溃时,也有可能表内容和binlog内容之间存在不一致性。如果使用InnoDB表,MySQL服务器 处理COMMIT语句,它将整个事务写入binlog并将事务提交到InnoDB中。如果在两次操作之间出现崩溃,重启时,事务被InnoDB回滚,但仍 然存在binlog中。可以用--innodb-safe-binlog选项来增加InnoDB表内容和binlog之间的一致性。(注释:在MySQL 5.1中不需要--innodb-safe-binlog;由于引入了XA事务支持,该选项作废了),该选项可以提供更大程度的安全,使每个事务的 binlog(sync_binlog =1)和(默认情况为真)InnoDB日志与硬盘同步,该选项的效果是崩溃后重启时,在滚回事务后,MySQL服务器从binlog剪切回滚的 InnoDB事务。这样可以确保binlog反馈InnoDB表的确切数据等,并使从服务器保持与主服务器保持同步(不接收 回滚的语句)。
2. 重启
service mysql restart
3. 给权限
mysql> grant replication slave on *.* to 'root'@192.168.1.229 identified by 'sstc503';
mysql> grant replication slave on *.* to 'root'@192.168.1.230 identified by 'sstc503';
mysql> grant replication slave on *.* to 'sstc'@192.168.1.229 identified by 'sstc503';
mysql> grant replication slave on *.* to 'sstc'@192.168.1.230 identified by 'sstc503';
#刷新权限
mysql> flush privileges;
#查看主库情况,出现下面结果说明配置成功
mysql> show master status;
+------------------+----------+---------------------------+---------------------------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+---------------------------+---------------------------------------------+
| mysql-bin.000002 | 335 | edxapp,ora,xqueue,discern | mysql,performance_schema,information_schema |
+------------------+----------+---------------------------+---------------------------------------------+
1 row in set (0.00 sec)
三. 配置从库
服务器二(从):192.168.1.229
配置从服务器主要区别就一个: server-id
需要多少个,按数字排序,其他的安装,配置都一样
1.修改配置文件
vim /etc/mysql/my.cnf
========================================================
server-id=2
log-bin = mysql-bin
relay-log-index = slave-relay-bin.index
relay-log = slave-relay-bin
replicate-do-db=edxapp
replicate-do-db=ora
replicate-do-db=xqueue
replicate-do-db=discern
replicate-ignore-db=mysql
replicate-ignore-db=performance_schema
replicate-ignore-db=information_schema
sync_master_info = 1
sync_relay_log = 1
sync_relay_log_info = 1
======================================================
2. 这个mysql指令里有文件名和位置的指明
mysql> change master to master_host='192.168.1.228',master_user='root',master_password='sstc503', master_log_file='mysql-bin.000003',master_log_pos=26270165;
#开始同步线程
mysql> start slave;
#查看开启情况
mysql> show slave status \G #没有分号
如果出现:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
表示主从同步进行中
mysql> stop slave;
3. 同样方式, 配置服务器三(从):192.168.1.230
ps: 先配置主从,再建数据库,否则会出现错误,所以在做主从之前现在把数据库导出来,等建立完主从,在master上导入就行,之后从库就会同步了主库导入的数据库
如果出现错误了,现在停掉从库,从新连接,从新连接master_log_file 和 master_log_pos 都会改变,去主库查看: show master status;
ps:
[root@edx-server-05 logs]# /etc/init.d/mysql restart
ERROR! MySQL server PID file could not be found!
Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/mysql.pid).
解决:删除 data 目录下添加节点时生成的文件, 然后重启
四. 安装 amoeba
服务器四(路由):192.168.1.226
下载 amoeba
下载 JDK
1. 安装JDK
mkdir /usr/lib/jvm
tar zxvf jdk-7u45-linux-x64.tar.gz -C /usr/lib/jvm
########
vim /etc/environment
PATH="/usr/lib/jvm/jdk1.7.0_45/bin"
JAVA_HOME="/usr/lib/jvm/jdk1.7.0_45"
JRE_HOME="/usr/lib/jvm/jdk1.7.0_45/jre"
CLASSPATH=".:/usr/lib/jvm/jdk1.7.0_45/lib"
######################
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_45
export JRE_HOME=/usr/lib/jvm/jdk1.7.0_45/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
#######
update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_45/bin/java 300
update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_45/bin/javac 300
update-alternatives --config java
root@edxserver01:/usr/lib/jvm/jdk1.7.0_45# java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
2. 安装amoeba
# wget http://sourceforge.net/projects/amoeba/files/Amoeba%20for%20mysql/2.2.x/amoeba-mysql-binary-2.2.0.tar.gz/download
# mkdir /usr/local/amoeba
# tar xf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba
3. 配置 amoeba
进入amoeba目录下会看到一下几个目录
bechmark:压力测试
bin:脚本文件
conf:配置文件
lib:库
在conf文件下有许多配置文件,这里实现读写分离的效果,只需要两个文件即可 amoeba.xml和dbserver.xml。在amoeba.xml文件下需要修改的配置为:
##################在 dbserver.xml文件中需要修改的配置为:
<factoryConfig class="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory">
<property name="manager">${defaultManager}</property>
<property name="sendBufferSize">64</property>
<property name="receiveBufferSize">128</property>
<!-- mysql port -->
<property name="port">3306</property> #后端mysql的端口
<!-- mysql schema -->
<property name="schema">amoeba</property> #后端mysql的默认连接数据库
<!-- mysql user -->
<property name="user">root</property> #连接后端mysql的账户
<!-- mysql password
<property name="password">password</property>
-->
<property name="password">amoebapass</property> #连接后端mysql使用的密码
</factoryConfig>
<dbServer name="server1" parent="abstractServer">
<factoryConfig>
<!-- mysql ip -->
<property name="ipAddress">192.168.1.228</property> #后端MySQL的ip
</factoryConfig>
</dbServer>
<dbServer name="server2" parent="abstractServer">
<factoryConfig>
<!-- mysql ip -->
<property name="ipAddress">192.168.1.229</property>
</factoryConfig>
</dbServer>
<dbServer name="server3" parent="abstractServer">
<factoryConfig>
<!-- mysql ip -->
<property name="ipAddress">192.168.1.230</property>
</factoryConfig>
</dbServer>
# 数据库池, server2,server2,server3 是以 2 2 3 这样的方式轮询
<dbServer name="multiPool" virtual="true">
<poolConfig class="com.meidusa.amoeba.server.MultipleServerPool">
<!-- Load balancing strategy: 1=ROUNDROBIN , 2=WEIGHTBASED , 3=HA-->
<property name="loadbalance">1</property>
<!-- Separated by commas,such as: server1,server2,server1 -->
<property name="poolNames">server2,server2,server3</property>
</poolConfig>
</dbServer>
# ps: 一主多从可以增加server3 ......
##########################在 amoeba.xml文件中需要修改的配置为:
<service name="Amoeba for Mysql" class="com.meidusa.amoeba.net.ServerableConnectionManager">
<!-- port -->
<property name="port">3306</property> #连接amoeba时所使用的端口号
<!-- bind ipAddress -->
<!--
<property name="ipAddress">127.0.0.1</property> #
-->
<property name="ipAddress">0.0.0.0</property> #监听地址
<property name="manager">${clientConnectioneManager}</property>
<property name="connectionFactory">
<bean class="com.meidusa.amoeba.mysql.net.MysqlClientConnectionFactory">
<property name="sendBufferSize">128</property>
<property name="receiveBufferSize">64</property>
</bean>
</property>
<property name="authenticator">
<bean class="com.meidusa.amoeba.mysql.server.MysqlClientAuthenticator">
<property name="user">root</property> #连接amoeba时候的账户
<property name="password">amoeba</property> #连接amoeba时候的密码
<property name="filter">
<bean class="com.meidusa.amoeba.server.IPAccessController">
<property name="ipFile">${amoeba.home}/conf/access_list.conf</property>
</bean>
</property>
</bean>
</property>
</service>
<queryRouter class="com.meidusa.amoeba.mysql.parser.MysqlQueryRouter">
<property name="ruleLoader">
<bean class="com.meidusa.amoeba.route.TableRuleFileLoader">
<property name="ruleFile">${amoeba.home}/conf/rule.xml</property>
<property name="functionFile">${amoeba.home}/conf/ruleFunctionMap.xml</property>
</bean>
</property>
<property name="sqlFunctionFile">${amoeba.home}/conf/functionMap.xml</property>
<property name="LRUMapSize">1500</property>
<property name="defaultPool">server1</property> #默认路由, 有人说可以去掉,但是我去掉出现异常
<property name="writePool">server1</property> #写路由到server1上去
<property name="readPool">server2</property> #读路由到server2上去, 如果是多从的, 这里写数据库池,例如:multiPool
<property name="needParse">true</property>
</queryRouter>
4. 启动 amoeba
版本: 2.2.0
/usr/local/amoeba/bin/amoeba start
/usr/local/amoeba/bin/amoeba stop
root@edxserver01:/usr/local/amoeba# ./bin/amoeba start
The stack size specified is too small, Specify at least 228k
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
解决问题:
vim /usr/local/amoeba/bin/amoeba
修改:
DEFAULT_OPTS="-server -Xms256m -Xmx256m -Xss128k"
为:
DEFAULT_OPTS="-server -Xms256m -Xmx256m -Xss256k"
版本: 3.0.5
nohup /usr/local/amoeba-mysql-3.0.5-RC/bin/launcher &
/usr/local/amoeba-mysql-3.0.5-RC/bin/shutdown
vim /usr/local/amoeba-mysql-3.0.5-RC/jvm.properties
修改为:
JVM_OPTIONS="-server -Xms1024m -Xmx1024m -Xss256k -XX:PermSize=16m -XX:MaxPermSize=96m"
相关推荐
### 配置 MySQL 5.5 主从服务器详解 #### 一、背景介绍 在数据库管理与维护过程中,为了提高数据安全性和系统可用性,通常会采用 MySQL 的主从复制技术来实现数据冗余和负载分担。本文将详细介绍如何在两台服务器...
MySQL 5.5 在 Windows 上的主从配置是一项重要的数据库管理任务,用于实现数据的冗余和高可用性。在这个过程中,我们需要设置一个主服务器(Master)和一个或多个从服务器(Slave),主服务器负责处理写操作,而从...
总的来说,MySQL主从备份涉及多个步骤,包括用户权限设置、配置文件修改、同步位置设定以及错误排查。正确配置和管理这些环节是实现可靠数据复制的关键。在实际操作中,应仔细检查每个步骤,确保主从服务器之间的...
MySQL 5.5主从同步配置是数据库集群中常见的高可用性和负载均衡方案,通过将主服务器的数据变更实时同步到从服务器,实现读写分离,提高系统整体性能。以下是详细的配置步骤: 首先,在主服务器(10.1.123.197)上...
通过本示例,我们可以了解 MySQL 5.5源码主从复制的搭建过程,并掌握相关的配置和命令。这种架构可以用于生产环境,以提高数据的高可用性和实时备份。 knowledge points: 1. MySQL 5.5源码主从复制搭建的基本概念...
MySQL 5.5是MySQL数据库管理系统的一个重要版本,它在性能、稳定性以及功能上都有显著提升,对于初学者来说,了解其配置文件的详细信息至关重要。MySQL的配置文件,通常称为`my.cnf`或`my.ini`,是控制数据库服务器...
6. **并行复制**:在MySQL5.5中,可以配置多个线程来并行复制二进制日志事件,提高数据复制速度。 7. **更大的元数据限制**:允许更大的表名、字段名和索引长度,以适应更复杂的应用需求。 8. **更好的内存管理**:...
标题中的"MySQL安装文件MySQL5.5.zip"指的是包含MySQL 5.5版本安装程序的压缩包。这个压缩文件通常包含了安装MySQL所需的所有组件,包括服务器、客户端工具、连接器以及相关的文档。"mysql-5.5.21.msi"是MySQL ...
本文将详细介绍如何安装MySQL 5.5,这是MySQL的一个稳定版本,提供了强大的数据存储和管理功能。 首先,我们来理解一下MySQL 5.5的主要特点: 1. **更高的性能**:MySQL 5.5通过InnoDB存储引擎的优化,提升了查询...
MySQL 5.5是MySQL数据库管理系统的一个重要版本,它在2010年发布,针对性能、稳定性以及功能进行了多项优化。本安装包是专为Windows操作系统设计的,支持32位(x86)和64位(x64)架构。MySQL 5.5在Windows平台上的...
安装MySQL 5.5的一键安装包意味着用户无需手动配置各种参数或安装依赖项,只需按照简单的步骤操作即可完成安装。通常,这种安装包会包含所有必要的组件,如MySQL Server、MySQL客户端工具、配置脚本等,确保安装过程...
MySQL5.5是MySQL数据库系统的一个重要版本,它在2010年发布,提供了许多增强功能和性能改进。MySQL是一种流行的开源关系型数据库管理系统(RDBMS),广泛应用于Web应用、数据存储和数据分析等领域。以下是对MySQL5.5...
10. **复制**:MySQL 5.5支持主从复制,通过复制数据到多个服务器,可以实现高可用性和负载均衡。 11. **性能优化**:MySQL 5.5引入了InnoDB存储引擎的改进,包括更快的全文搜索,更有效的内存管理,以及优化的查询...
主从复制是MySQL中常见的高可用性和负载均衡解决方案。这个版本引入了半同步复制,确保至少有一个从服务器接收到并写入数据后,主服务器才确认事务的完成,从而提高了数据的一致性。同时,复制也支持多线程,使得从...
在提供的压缩包中,"mysql5.5安装程序"可能包含了安装MySQL 5.5所需的所有文件,包括服务器和客户端组件,以及可能的配置工具。"数据库安装教程"则可能提供了详细的步骤指导,帮助用户正确安装和配置MySQL 5.5服务器...
这份手册提供了对MySQL 5.5所有特性和功能的深入理解,包括安装、配置、查询语言、存储引擎、安全性、备份和恢复等多个方面。 1. **安装与配置**:MySQL 5.5的安装过程涵盖了Windows、Linux和Mac OS等多种操作系统...
2. **配置MySQL5.5** - **编辑配置文件**:MySQL的配置文件通常位于`/etc/my.cnf`(Linux)或`C:\ProgramData\MySQL\MySQL Server 5.5\my.ini`(Windows),你可以在此处调整参数,如内存使用、端口设置、日志文件...