MySql数据库同步复制(初步)

[不指定 2006/12/08 09:45 | by 小施 ]
该功能可以实现两个数据库同步,主从模式,互相备份模式的功能。
数据库同步复制功能的设置都在mysql的设置文件中体现。mysql的配置文件(windows下为my.ini,Unix/Linux下为my.cnf)

1、实施环境:
  操作系统:2台Windows Server 2003
  mysql:mysql-essential-4.1.21-win32.msi
  Master ip:192.168.0.41
  Slave ip:192.168.0.161
2、配置方法
主从模式[Master->Slave]:A->B
=====step 1:分别在Master、Slave上配置同步DB及Account=====
Step A: Master上配置
  1.增加一个用户最为同步的用户帐号:
    
GRANT FILE ON *.* TO backup@''''192.168.0.161'''' IDENTIFIED BY ‘rsync.mysql’;

  2.增加一个数据库作为同步数据库:
  
create database backup;

  Step B:Slave上配置
  1.增加一个用户最为同步的用户帐号:
  
GRANT FILE ON *.* TO backup@''''192.168.0.41'''' IDENTIFIED BY ‘1234’;

  2.增加一个数据库作为同步数据库:
  
create database backup;

    ====step 2:配置Master、Slave参数====== 
主从模式:A->B即  Master为master ,Slave为slave
  1、修改Master 中mysql的my.cnf文件。在mysqld配置项中加入下面配置:
server-id=1
log-bin
binlog-do-db=backup



Log-bin #设置需要记录log 可以设置log-bin="D:/mysql4/log/mlog" 设置日志文件的目录[其中mlog是日志文件的名称,mysql将建立不同扩展名,文件名为mlog的几个日志文件]。
Tags: , ,
方法一:   可以将这个脚本放进crontab,每天凌晨执行一次,自动备份    
 
 这个脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上。    
 
 代码:    
 
Tags:
MySQLbackup.sh 是备份整个MySQL数据库的数据
#!/bin/bash

############### MySQL Backup & FTP ################
#Power By SBear 2004-01-20 2:10
#E-mail:sbear_ji@126.com
#http://www.1842.net
#http://www.CnLinux.net

#1. mkdir /home/backup
#2. chmod 700 MySQLbackup.sh
#3. vi /etc/crontab , 30 03 * * * root /home/backup/MySQLbackup.sh
#everyday 03:30 the MySQLbackup.sh will work

#System Setup
host=192.168.0.3  #ftp host
UserName=ftp      #ftp user name
Passwd=ftp        #fto user password

backup_path=/home/backup  #set saved backup path
file=mysql-$(date +%Y%m%d).tar.gz
backupCWD=/usr/local/mysql/var  #set backup file,the mysql database

#stop mysql database server
/usr/bin/killall mysqld
#/etc/rc.c/init.d/mysqld stop

sleep 5s  #stop 5 second

#file tar
tar -czf $backup_path/$file $backupCWD

sleep 10s

#start mysql database server
/usr/local/mysql/bin/mysqld_safe --user=mysql &  #set your mysqld path
#/etc/rc.d/init.d/mysqld start

cd $backup_path
sleep 1s
#file ftp
ftp -i -n <<!
open $host
user $UserName $Passwd
put  $file
bye
!

sleep 10s
rm -rf $backup_path/$file



DBbackup.sh 是备份单个数据库的数据
Tags: ,
终于让服务器每天早上备份一次 MySQL 数据库并自动打包,同时删除 7 天前的备份文件. 分享如下.

1. 环境: windows server 2003 + PHP5 + MySQL 4.0.26 .

2. 假设 PHP 安装目录为 D:/php ,MySQL 安装目录为 D:/mysql.

3. 在 D:/php 下建立目录 WinRAR, 把你 winrar 安装目录下的 WinRAR.exe 和 RARReg.KEY 复制到 D:/php/WinRAR .

4. D:/php 下建立文件 mysql_backup.php:


<?php
/*/////////////////////////
#FileName: mysql_backup.php
#Author: Austin
#Website: http://shi.i0595.net
////////////////////////*/    
//保存目錄,路徑要用反斜槓。
$store_folder = 'd:dbbackup';

//用戶名和密碼
//該帳號須有操作[所有]的數據庫及FILE的權限
//否則有些數據庫不能備份
$db_username = "这里输入数据库帐号";
$db_password = "这里输入密码";

$time=time();

$nowdir = "$store_folder".date("Ymd",$time)."";
if(file_exists("$nowdir.rar")) die("File exists.rn");
@mkdir($nowdir);

mysql_connect("localhost","$db_username","$db_password");
$query=mysql_list_dbs();


$command = '';
while($result=mysql_fetch_array($query)){
$command .= 'D:Mysqlbinmysqldump --opt '."$result[Database] -u{$db_username} ".($db_password?"-p{$db_password}":"")." > $nowdir$result[Database].sql rn";
$command .= "echo 已經導出數據庫: `$result[Database]`... rn";
}
$command .= "echo 開始壓縮...rn";

$command .= dirname(__FILE__)."WinRARRAR.exe a -ep1 -r -o+ -m5 -df "$nowdir.rar" "$nowdir" rn";

$command .= "echo 搞定 ^_^rn";

$command .= "del mysqldumping_temp.batrn";

$fp = fopen('mysqldumping_temp.bat','w');
fwrite($fp,$command);
fclose($fp);


//刪除 7 天前的文件
@unlink("$store_folder".date("Ymd",$time-86400*7).".rar")
?>

5. D:/php 下建立文件 mysql_backup.bat:

@echo off
cls
title 備份腳本
color 0b
echo 自動備份腳本開始,請不要手動關閉本窗口。本窗口將在備份完成後自動關閉。
D:\Php\PHP.exe mysql_backup.php
if exist mysqldumping_temp.bat call mysqldumping_temp.bat

6. 双击该 bat 文件运行,如果能备份了,OK,下一步添加任务计划.

7. 把 D:/php/mysql_backup 添加到任务计划,时间选每天. 根据服务器的监测结果,每天早上 5-8 时为流量低峰期. 由于 5-7 时有些数据库的清理工作,可以把时间定在了早上 8 点整.
Tags:
分页: 3/4 第一页 上页 1 2 3 4 下页 最后页 [ 显示模式: 摘要 | 列表 ]