主从服务器的配置

一、简介

1 主从服务优势:

好处一:实现服务器负载均衡

通过服务器复制功能,可以在主服务器和从服务器之间实现负载均衡。即可以通过在主服务器和从服务器之间切分处理客户查询的负荷,从而得到更好的客户相应时间。通常情况下,数据库管理员会有两种思路。

好处二:通过复制实现数据的异地备份

可以定期的将数据从主服务器上复制到从服务器上,这无疑是先了数据的异地备份。在传统的备份体制下,是将数据备份在本地。此时备份 作业与数据库服务器运行在同一台设备上,当备份作业运行时就会影响到服务器的正常运行。有时候会明显的降低服务器的性能。同时,将备份数据存放在本地,也 不是很安全。如硬盘因为电压等原因被损坏或者服务器被失窃,此时由于备份文件仍然存放在硬盘上,数据库管理员无法使用备份文件来恢复数据。这显然会给企业 带来比较大的损失。

好处三:提高数据库系统的可用性

数据库复制功能实现了主服务器与从服务器之间数据的同步,增加了数据库系统的可用性。当主服务器出现问题时,数据库管理员可以马上让从服务器作为主服务器,用来数据的更新与查询服务。然后回过头来再仔细的检查主服务器的问题。

二、数据库配置步骤

1、配置主数据库

找到mysql安装目录,找到my.ini,添加

================================================

#Master Config

server-id=1 //指定服务器ID,必须和从服务器ID不同,唯一,主数据库一般为1

log-bin=mysql-bin  //指定日志文件

binlog-do-db=xianhua   //指定需要同步的数据库

================================================

2、安装从mysql,并配置从数据库

(1)将免安装版(绿色版)mysql解压

(2)一般在解压后的文件夹中有my-default.ini文件,没有my.ini文件

(3)新建一个my.ini文件,内容可如下

==========================================

[mysqld]

basedir ="C:/安装目录/mysql-5.6.15-64"

datadir = "C:/安装目录/mysql-5.6.15-64/data"

port =3307

server_id =2//指定服务器ID,必须和主服务器ID不同,唯一,

log-bin=mysql-bin //指定日志文件

binlog-do-db=amusement//同步数据库

character_set_server = utf8

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[client]

# 设置mysql客户端的字符集

default-character-set=utf8

======================================

至少包含basedir,datadir这两个基本的配置,其他可以没有

(4)配置mysql服务
       执行开始-》运行-》cmd

在mysql的bin目录下运行以下命令
mysqld --install MySQLSlave --defaults-file=D:/mysql-5.6.13-win32\my.ini
      完成后,即已安装了mysq服务

(5)从数据库账号为:root,没有密码

3、实现数据库主从同步

(1)在主数据库建立从服务器可以连接的账号,赋予从数据库权限

(2)重新启动主数据库服务,启动从数据库服务

(3)打开主数据库的图形化界面

执行命令:show master status

记录File以及Position的值;

(4)打开从数据库的图形化界面

执行命令:

change master to
master_host=‘主数据库端口号‘,master_user=‘账号‘,master_password=‘密码‘,
master_log_file=‘aaa‘,master_log_pos=bb;

--  其中xx是在主服务器中创建的一个账户,aaa是刚才记录的File的值,bbb是刚才记录的Position的值。

stop slave;  -- 停止服务

start slave;        -- 开启服务

show slave status;

两个都为yes说明配置成功

三、项目应用

1、ssh框架(hibernate模板工具类)

(1)spring-datasource.xml(主库作为写库,从库作为读库)

<bean id="dataSource-read"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">

<property
name="driverClassName">

<value>com.mysql.jdbc.Driver</value>

</property>

<property name="url">        
<value>jdbc:mysql://localhost:3307/同步数据库?useUnicode=true&amp;characterEncoding=UTF-8&amp;zeroDateTimeBehavior=convertToNull</value>

</property>

<property name="username">

<value>root</value>

</property>

<property name="password">

<value></value>

</property>

</bean>

<bean
id="dataSource-write"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">

<property name="driverClassName">

<value>com.mysql.jdbc.Driver</value>

</property>

<property name="url">

<value>jdbc:mysql://localhost:3306/同步数据库?useUnicode=true&amp;characterEncoding=UTF-8&amp;zeroDateTimeBehavior=convertToNull</value>

</property>

<property name="username">

<value>账号</value>

</property>

<property name="password">

<value>密码</value>

</property>

</bean>

(2)spring-config.xml

<!--  2  将读数据源 交给 sessionfactory 
-->

<bean
id="sessionFactory-read"  
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"
>

<property name="dataSource" ref="dataSource-read"></property>

<property name="hibernateProperties">

<props>

<prop
key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>

<prop
key="hibernate.show_sql">true</prop>

<prop
key="hibernate.format_sql">true</prop>

</props>

</property>

<!-- 扫描hibernate  实体类  pojo   相当于 hibernate.cfg.xml  配置的映射文件  -->

<property name="packagesToScan" 
value="org.lt.pojo"></property>

</bean>

<!--  2  将写数据源 交给 sessionfactory 
-->

<bean
id="sessionFactory-write"  
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"
>

<property
name="dataSource" 
ref="dataSource-write"></property>

<property
name="hibernateProperties">

<props>

<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>               <prop
key="hibernate.show_sql">true</prop>

<prop
key="hibernate.format_sql">true</prop>

</props>

</property>

<!-- 扫描hibernate  实体类 
pojo   相当于 hibernate.cfg.xml  配置的映射文件  -->

<property
name="packagesToScan" 
value="org.lt.pojo"></property>

</bean>

<!-- 将 sessionfactory  交给
模板工具类  
模板工具类 直接在dao 层 使用 -->

<bean  id="hibernateTemplate-write"
class="org.springframework.orm.hibernate3.HibernateTemplate">

<property
name="sessionFactory" 
ref="sessionFactory-write"></property>

</bean>

<bean  id="hibernateTemplate-read"
class="org.springframework.orm.hibernate3.HibernateTemplate">

<property
name="sessionFactory" 
ref="sessionFactory-read"></property>

</bean>

<!-- 3 将 sessionfactory  交给 事物去管理 -->

<bean
id="transactionManager" 
class="org.springframework.orm.hibernate3.HibernateTransactionManager">

<property
name="sessionFactory" ref="sessionFactory-write" />

</bean>

<!-- 4  指定如何管理事物    指定用注解的方式管理事物-->

<!-- 使用注解控制事物   -->

<!-- 和上面的    bean
id="transactionManager" 对应 -->

<tx:annotation-driven
transaction-manager="transactionManager" />

(3)DataSourceTemplate.java

package org.lt.utils;

import javax.annotation.Resource;

import
org.springframework.orm.hibernate3.HibernateTemplate;

import
org.springframework.stereotype.Component;

@Component

public class DataSourceTemplate {

@Resource(name="hibernateTemplate-write")

private
HibernateTemplate hibernateTemplateWrite;

@Resource(name="hibernateTemplate-read")

private
HibernateTemplate hibernateTemplateRead;

public
HibernateTemplate getHibernateTemplateWrite() {

return hibernateTemplateWrite;

}

public
HibernateTemplate getHibernateTemplateRead() {

return hibernateTemplateRead;

}

}

(4)使用实例

public void
saveOrUpdateAllEntity(Collection<T> coll) {       getHibernateTemplateWrite().saveOrUpdateAll(coll);

}

public T findEntityById(T entity,
Integer id) {

return
(T) getHibernateTemplateRead().get(entity.getClass(), id);

}

时间: 2024-12-16 00:14:04

主从服务器的配置的相关文章

mysql主从服务器的配置

使用mysql主从复制的好处有: 1.采用主从服务器这种架构,稳定性得以提升.如果主服务器发生故障,我们可以使用从服务器来提供服务. 2.在主从服务器上分开处理用户的请求,可以提升数据处理效率. 3.将主服务器上的数据复制到从服务器上,保护数据免受意外的损失. 环境描述: 新企业要搭建架构为主从复制的mysql数据库. 主服务器(mysql-master):IP地址:192.168.48.128,mysql已安装,没有用户数据. 从服务器(mysql-slave):IP地址:192.168.48

在liunx中构建DNS主从服务器的配置文档

在RHEL6.5中,系统光盘自带了BIND服务的安装文件 安装步骤 准备工作: Service iptables stop    #关闭防火墙 Setenforce 0    关闭selinux   挂载光盘 mount /dev/cdrom /mnt cd /mnt/Packages ls |grep ^bind bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm bind-chroot-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm bind-d

redis主从服务器的配置(入门)

1.同时启动多个Redis服务器,可以考虑在同一台机器上启动两或三个Redis服务器,分别监听不同的端口 2.创建客户端连接 3.设置主从关系 4.测试 具体操作步骤: 一.创建启动redis服务器 ./redis-server /etc/redis/redis.conf      默认端口  6379 ./redis-server /etc/redis/redis.conf --port 10000   指定端口 10000(两个横线--) ./redis-server /etc/redis/

DNS主从服务器部署配置

(1)节点信息 console01 主DNS 192.168.80.3 192.168.10.3 console02 从DNS 192.168.80.4 192.168.10.4 (2)环境部署 # yum -y install bind bind-chroot bind-util bind-libs # service iptables stop # setenforce 0 (3)配置主DNS 1.编辑DNS主配置文件/etc/named.conf # vim /etc/named.conf

mysql主从服务器搭建

当业务流量过大时,我们的一台服务器可能难以负载,我们需要用到主从服务器的配置. 具体配置如下: 172.17.10.57位主服务器 172.17.55.206 从服务器 正确的安装数据库后,确保两台的能互通. mysql>GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' identified by 'q123456'; //一般不用root帐号,"%"表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.16

DNS服务之主从服务器

这里我们做一下DNS主从服务器的实验,该实验是接着之前DNS正反向解析实验做的,很多步骤在上个实验已经完成,这里不再重复. 实验环境:两台linux系统作为主从服务器,主服务器IP地址为192.168.100.222,从服务器地址为192.168.100.10 从服务器器: 首先我们现在从服务器上安装DNS,但这里只需要配置主配置文件和区域配置文件,而数据区域配置文件是需要从主服务器上进行学习的,所以不需要配置 这里我们先配置主配置文件,这里讲监听端口设为any,即所有地址,同样下面的允许使用D

mysql5.1.73配置主从服务器

一.安装MySQL 这里就详解,请度娘. 二.配置MySQL主服务器(10.241.226.110) mysql  -uroot  -p    #进入MySQL控制台 create database testdb;   #建立数据库testdb #授权用户mysqlcopy只能从10.241.226.111这个IP访问主服务器10.241.226.110上面的数据库,并且只具有数据库备份的权限 grant replication slave  on *.* to 'mysqlcopy'@'10.

配置mysql5.5主从服务器(转)

教程开始:一.安装MySQL 说明:在两台MySQL服务器192.168.21.169和192.168.21.168上分别进行如下操作,安装MySQL 5.5.22  二.配置MySQL主服务器(192.168.21.169)mysql  -uroot  -p    #进入MySQL控制台create database osyunweidb;   #建立数据库osyunweidbinsert into mysql.user(Host,User,Password) values('localhos

配置mysql5.5主从服务器

一.环境准备 mysql版本为5.5.22 192.168.21.169 mysql主服务器 192.168.21.168 mysql从服务器  二.配置MySQL主服务器(192.168.21.169) mysql  -uroot  -p    #进入MySQL控制台 create database osyunweidb;   #建立数据库osyunweidb insert into mysql.user(Host,User,Password) values('localhost','osyu