windows mysql全备批处理,此篇为分享,非原创!!

这里用户权限尽量是select,lock tables,event,super权限,备份参数加一个 – -dump-slave
REM 备份用户需要具有select,lock tables,event权限
REM –master-data 需要 replication client 权限 (master)   – -dump-slave:需要super权限(slave)
修改地方:为参数配置选项,包括目录、账号、密码、删除周期等
@ECHO OFF
REM ***************************************************************************
REM 参数配置(参数前后不能有空格)
REM 设置dbhost为主机名或IP地址
SET dbhost=localhostREM 设置登陆mysql数据库的用户名。如果用户名中有”号,请用””代替。
SET dbuser=xcgREM 设置登陆mysql的密码。如果密码中有”号,请用””代替。
SET dbpwd=123456

REM 设置backupPath为备份文件存放的路径。注意:文件夹名存在空格不需要引号括起来。警告:此文件夹应为专用目录,最好独立使用,避免删除历史备份时误删数据。
SET backupPath=C:\MySQLFullBackup

REM 备份文件夹前缀。
SET backupFolderPrefix=MyBackup_

REM 设置删除历史备份文件。删除多少次备份之前的备份文件。0–不删除历史备份文件;1,表示一次,2,表示2次,以此类推。如set deleteHistorySkips=30表示删除30次以前的备份文件;
SET deleteHistorySkips=10

REM 设置备份时发生错误是否删除历史备份文件。yes–删除;no–不删除。
SET onErrorDeleteBackFile=no

REM 是否启用压缩功能。yes–开启压缩功能。no–禁用压缩功能。默认值:no,不开启。
SET enableCompress=yes

REM 设置WinRAR压缩级别。取值0到5。0–无压缩;5–最高压缩比;默认值:3
SET compressLevel=3

REM 压缩类型。cab–系统内置cab压缩功能。rar–启用RAR压缩功能,需要安装RAR压缩软件支持
SET compressType=rar

REM 设置WinRAR安装路径。
SET rarPath=C:\Program Files\WinRAR

REM 设置分卷大小。0–表示不分卷;1–表示1k,1024–表示1M,2048–表示2M;默认值:102400,表示100M
SET volumePackSize=0

REM 设置压缩密码。{empty}表示没有密码。其他字符表示压缩文件密码
SET rarPwd={empty}

REM 设置临时目录。如果备份时系统默认临时目录所在分区空间太小,可以通过这里调整该脚本运行的临时目录。默认值:%TEMP%
REM 启用压缩时,零时目录占用空间较大,大约是备份数据库的1.2倍。不启用压缩,占用临时目录空间很小。
REM 如果启用了CAB压缩,临时目录最好和备份文件夹在同一个分区。请保证指定的临时目录存在。
SET TEMP=%TEMP%

REM 完成参数配置
REM ***************************************************************************
REM ***************************************************************************
REM 环境检测,参数检测和初始化
REM 设置%myDate%为当前日期(2013-01-02)。因为日期后可能跟一个空格和星期几,并且日期中可能是”/”分割,所以要去除掉星期几和斜线。
FOR /F “tokens=1,2* delims= ” %%i IN (‘ECHO %date:/=-%’) DO SET “myDate=%%i”
REM 设置%MyTime%为当前时间。格式:20.56.30.99
SET myTime=%TIME::=.%
SET myTime=%myTime: =0%

REM 设置零时目录
SET myTempDir=%TEMP%\MySQLBack_%myDate%_%MyTime%
REM 设置备份日志文件
SET backupLogFile=%backupPath%\MySQLBackLog.txt
REM 用于环境检测的零时文件名
SET checkFileName=_1_2_3_backup_mysql_check_%myDate%_%MyTime%

REM ****目录权限检测****
REM 检查备份目录是否存在,不存在则创建
:CheckAndMakeBackupFolder
IF exist “%backupPath%” GOTO CheckBackupFolderCreatFile
MD “%backupPath%”
IF %errorlevel%==0 GOTO CheckBackupFolderCreatFile
ECHO 创建数据库备份目录失败。请检测您是否具有写入”%backupPath%”的权限,或者驱动器是否存在。
PAUSE
GOTO END

REM 检查备份目录是否有创建文件的权限
:CheckBackupFolderCreatFile
ECHO. > “%backupPath%\%checkFileName%”
IF EXIST “%backupPath%\%checkFileName%” del “%backupPath%\%checkFileName%” /Q /F & GOTO CheckBackupFolderCreateFolder
ECHO 请检查对备份文件夹”%backupPath%”是否有文件写入权限。
PAUSE
GOTO END

REM 检查备份目录是否有创建文件夹的权限
:CheckBackupFolderCreateFolder
MD “%backupPath%\%checkFileName%” && ( RD /S /Q “%backupPath%\%checkFileName%” & GOTO CheckTempFolderAccess )
ECHO %myDate% %TIME%     请检查对备份文件夹”%backupPath%”是否有创建文件夹的权限。>>”%backupLogFile%”
GOTO END

REM 检测临时目录访问权限
:CheckTempFolderAccess
ECHO. > “%temp%\%checkFileName%”
IF EXIST “%temp%\%checkFileName%” DEL “%temp%\%checkFileName%” /Q /F & GOTO MakeTempFolder
ECHO %myDate% %TIME%     没有临时目录写入权限。请用具有权限的用户执行备份脚本。>>”%backupLogFile%”
GOTO END

REM 创建零时目录
:MakeTempFolder
MD “%myTempDir%” && GOTO CheckMySQLInstalled
ECHO %myDate% %TIME%     无法创建临时目录”%myTempDir%”。请检查临时目录权限。>>”%backupLogFile%”
GOTO END

REM ****完成目录权限检测****
REM 检测MySQL是否安装
:CheckMySQLInstalled
mysql –help > NUL && GOTO CheckMySQLConnect
ECHO %myDate% %TIME%     无法检测到mysql,请确保已经正确安装MySQL.或者将MySQL的Bin目录的路径添加到系统变量Path中。>>”%backupLogFile%”
GOTO CheckParmsFailed

REM 验证数据库连接
:CheckMySQLConnect
ECHO exit | mysql -h”%dbhost%” -u”%dbuser%” -p”%dbpwd%” > NUL && GOTO CheckdeleteHistorySkips
ECHO %myDate% %TIME%     无法连接到%dbhost%。请检服务是否启动,连接的用户名和密码是否正确。>>”%backupLogFile%”
GOTO CheckParmsFailed

REM 验证删除历史备份配置参数
:CheckdeleteHistorySkips
ECHO %deleteHistorySkips%| findstr /be “[0-9]*” > nul && GOTO CheckOnErrorDeleteBackFile
ECHO %myDate% %TIME%     删除历史备份文件”deleteHistorySkipsFailed”配置错误,只能配置整数。>>”%backupLogFile%”
GOTO CheckParmsFailed

REM 验证删除历史备份配置参数
:CheckOnErrorDeleteBackFile
IF %onErrorDeleteBackFile%==no GOTO CheckCompressConfig
IF %onErrorDeleteBackFile%==yes GOTO CheckCompressConfig
ECHO %myDate% %TIME%     备份错误时是否删除历史文件”onErrorDeleteBackFile”配置参数错误。>>”%backupLogFile%”
GOTO CheckParmsFailed

REM 检查压缩软件配置
:CheckCompressConfig
IF %enableCompress%==no GOTO CheckSuccess
IF %enableCompress%==yes GOTO CheckCompressLevel
ECHO %myDate% %TIME%     是否启用压缩变量”enableCompress”的参数只能是”yes”或者”no”.请检查配置。>>”%backupLogFile%”
GOTO CheckParmsFailed

REM 检查压缩级别
:CheckCompressLevel
ECHO %compressLevel%| findstr /be “[0-5]” > nul && GOTO CheckVolumePackSize
ECHO %myDate% %TIME%     压缩级别”compressLevel”配置错误,参数只能是0~5的数字>>”%backupLogFile%”
GOTO CheckParmsFailed

REM 验证RAR分卷大小设置
:CheckVolumePackSize
ECHO %volumePackSize%| findstr /be “[0-9]*” > nul && GOTO CheckCompressType
ECHO %myDate% %TIME%     压缩包分卷大小”volumePackSize”配置错误。请检查设置。>>”%backupLogFile%”
GOTO CheckParmsFailed

REM 检查压缩类型
:CheckCompressType
IF %compressType%==rar GOTO CheckRarPath
IF %compressType%==cab GOTO CheckMakeCab
ECHO %myDate% %TIME%     压缩类型”compressType”设置错误.值只能是”cab”或者”rar”.请检查设置。>>”%backupLogFile%”
GOTO CheckParmsFailed

REM 验证RAR配置目录
:CheckRarPath
IF exist “%rarPath%\Rar.exe” GOTO CheckSuccess
ECHO %myDate% %TIME%     WinRAR安装路径”rarPath”设置错误.请检查设置。>>”%backupLogFile%”
GOTO CheckParmsFailed

REM 验证makecab
:CheckMakeCab
makecab /? >NUL && GOTO CheckSuccess
ECHO %myDate% %TIME%     系统内置MakeCab压缩功能无法使用,请使用RAR进行压缩。>>”%backupLogFile%”
GOTO CheckParmsFailed

REM 参数验证无法通过时
:CheckParmsFailed
ECHO 无法完成初始化。请查看日志文件:%backupLogFile%
RD /S /Q “%myTempDir%”
GOTO END

REM 验证成功
:CheckSuccess

REM 完成环境检测和初始化
REM ***************************************************************************
REM ***************************************************************************
REM 备份数据库

ECHO %myDate% %TIME%     启动数据库备份脚本…>>”%backupLogFile%”

REM 当前备份使用的文件夹
set backupName=%backupFolderPrefix%%myDate% %myTime%

REM 根据需要创建专属目录。在分卷压缩或者不压缩时,需要专属目录
IF %enableCompress%==no MD “%backupPath%\%backupName%”
IF %enableCompress%==yes ( IF NOT %volumePackSize%==0 MD “%backupPath%\%backupName%” )
IF “%enableCompress%”==”yes” MD “%myTempDir%\%backupName%”REM 设置数据库备份使用的直接目录
IF “%enableCompress%”==”no” SET backDbTmpPath=%backupPath%\%backupName%
IF “%enableCompress%”==”yes” SET backDbTmpPath=%myTempDir%\%backupName%SET errorFile=%backDbTmpPath%\##BackupFailDbs.txt
SET dbList=%myTempDir%\dblist.txt
SET backmysqlbat=%myTempDir%\bakmysql.bat

REM 生成数据库列表文件

mysql -h”%dbhost%” -u”%dbuser%” -p”%dbpwd%” -B -N -e “SELECT  SCHEMA_NAME FROM information_schema.SCHEMATA WHERE information_schema.SCHEMATA.SCHEMA_NAME NOT in(‘information_schema’,’performance_schema’,’test’);”  > “%dblist%”
SET isExistError=noREM 创建备份MySQL数据库的脚本。
REM –master-data:用于master端备份数据,添加新主从   –dump-slave:用于slave端,在此基础上添加主从

ECHO ECHO 未成功备份的数据库: ^> “%errorFile%” > “%backmysqlbat%”
FOR /f “usebackq  tokens=*” %%i in (“%dblist%”) DO ECHO mysqldump  -h”%dbhost%” -u”%dbuser%” -p”%dbpwd%”  -E –triggers -R -C -q  –hex-blob  –dump-date –single-transaction “%%i” ^> “%backDbTmpPath%\%%i.sql” >>”%backmysqlbat%” && ECHO if not %%errorlevel%%==0 (ECHO %%i ^>^> “%errorFile%” ^& ECHO %myDate% %TIME%     数据库备份失败:%%i^>^>”%backupLogFile%” ^& SET isExistError=yes) >> “%backmysqlbat%”

call “%backmysqlbat%”REM 如果不存在错误,删除错误文件。
IF %isExistError%==no DEL “%errorFile%” /Q /F > NUL
IF %enableCompress%==yes GOTO CompressBackup
GOTO BackupFinishedREM ****压缩处理****
:CompressBackup
IF %compressType%==rar GOTO RarCompress

REM CAB压缩处理
REM 进行CAB压缩。注:makecab,不能在一个压缩包中创建目录。而且需要创建文件列表才能创建多文件压缩包。同时文件名不能重复。
FOR /f “tokens=1* delims=” %%i in (‘DIR “%backDbTmpPath%” /S /B /A-D’) do echo “%%i” >> “%myTempDir%\cab_files.lst”
SET cabCompressLevel=18
IF %compressLevel%==0 SET cabCompressLevel=15
IF %compressLevel%==0 SET cabCompressLevel=21
REM 切换到零时目录
FOR /F “delims=:” %%i IN (‘ECHO %myTempDir%’) DO %%i:
CD “%myTempDir%”

IF NOT %volumePackSize%==0 GOTO CabSplitCompress
makecab /f “%myTempDir%\cab_files.lst” /d compressiontype=lzx /d compressionmemory=%cabCompressLevel% /d maxdisksize=0 /d diskdirectorytemplate=cabdb /d cabinetnametemplate=”%backupName%.cab”
MOVE /Y “%myTempDir%\cabdb\%backupName%.cab” “%backupPath%\”
GOTO BackupFinished

:CabSplitCompress
SET /A maxdisksize=%volumePackSize% * 1024
makecab /f “%myTempDir%\cab_files.lst” /d compressiontype=lzx /d compressionmemory=%cabCompressLevel% /d maxdisksize=%maxdisksize% /d diskdirectorytemplate=cabdb /d cabinetnametemplate=”%backupName%.part*.cab”
MOVE /Y “%myTempDir%\cabdb\*” “%backupPath%\%backupName%\”
GOTO BackupFinished

REM RAR 压缩处理
:RarCompress
SET rarCommand=”%rarPath%\rar.exe” a -r -ep1 -o+ -m%compressLevel%
IF NOT %volumePackSize%==0 SET rarCommand=%rarCommand% -v%volumePackSize%
IF NOT %rarPwd%=={empty} SET rarCommand=%rarCommand% -p%rarPwd%
REM 如果未分卷,保存在备份目录的根目录
IF %volumePackSize%==0 SET rarCommand=%rarCommand% “%backupPath%\%backupName%.rar”
REM 如果分卷,保存在根目录下的一个专属文件夹中
IF NOT %volumePackSize%==0 SET rarCommand=%rarCommand% “%backupPath%\%backupName%\%backupName%.rar”
SET rarCommand=%rarCommand% “%backDbTmpPath%\”
%rarCommand%
REM ****完成压缩处理****

:BackupFinished
ECHO %myDate% %TIME%     完成一次自动备份。备份目录:”%backupPath%\%backupName%” >> “%backupLogFile%”
IF %isExistError%==yes ECHO                    但是存在没有成功备份的数据库。查看没有成功备份的数据库,请查看文件备份文件夹中的”##BackupFailDbs.txt” >> “%backupLogFile%”

REM 完成备份数据库
REM ***************************************************************************
REM ***************************************************************************
REM 删除历史备份

:RemoveHistoryBackup
IF %isExistError%==yes ( IF %onErrorDeleteBackFile%==no GOTO ClearTmpFile )
IF %deleteHistorySkips%==0 GOTO ClearTmpFile
IF %enableCompress%==no GOTO RemoveHistoryBackupFolder
IF NOT %volumePackSize%==0 GOTO RemoveHistoryBackupFolder
GOTO RemoveHistoryBackupFile

:RemoveHistoryBackupFolder
FOR /F “Skip=%deleteHistorySkips% tokens=*” %%i IN (‘DIR “%backupPath%\%backupFolderPrefix%*” /TC /O-D /AD /B’) DO RD “%backupPath%\%%i” /S /Q & ECHO %myDate% %TIME%     删除历史备份:%%i >> “%backupLogFile%”
GOTO ClearTmpFile

:RemoveHistoryBackupFile
FOR /F “Skip=%deleteHistorySkips% tokens=*” %%i IN (‘DIR “%backupPath%\%backupFolderPrefix%*” /TC /O-D /A-D /B’) DO DEL “%backupPath%\%%i” /Q /F & ECHO %myDate% %TIME%     删除历史备份:%%i >> “%backupLogFile%”
GOTO ClearTmpFile

REM 完成删除历史备份
REM ***************************************************************************

:ClearTmpFile
CD \
RD /S /Q “%myTempDir%” > NUL

:END
ECHO. >> “%backupLogFile%”

Rsync 文件同步(windows下安装部署)

2013091720424566Rsync windows版本安装包:(这里下载的是4.0.5)
下载地址:http://www.pc6.com/softview/SoftView_108644.html
Rsync 软件包括 server 端 和 client 端
rsync 软件的安装:默认端口:873
因为是windows版的图形化安装,这里就不演示。
只要记住服务端装server版。客户端装 client 版
Server 端的配置如下:
(1).配置rsyncd.conf 文件:(路径如下:C:\Program Files\ICW\rsyncd.conf)
内容如下:(具体每列含义,请百度,应该也能基本上看懂)
use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log
lock file = rsyncd.lock
max connection = 5
uid = 0
gid = 0
log file = /crgdrive/c/rsyncd.log
# Module definitions
# windows下磁盘格式需要转换: c:\work  变成  /cygwin/c/work
#
[shouyou]
path = /cygdrive/c/dbbackup
auth users = xcg
secrets file = /cygdrive/c/rsync_db.ps
read only = false
list = no
transfer logging = yes
      (2).配置认证的用户和密码文件:(路径和上文指定的一样/cygdrive/c/rsync_db.ps 就是c盘)
内容如下:(此用户是用来验证客户端传送文件,客户端需要输入此密码,下面这段文字是写在rsync_db.ps文件里)
xcg:123456

(3).在命令行下,即”运行”输入:services.exe 回车
手动启动 rsync 也可以设置为自动启动

Client端配置:
(1).配置PATH路径,方便使用(方法不介绍,自行摸索)
加入rsync 的bin目录:   ;C:\Program Files (x86)\cwRsync\bin (前面记得加分号)

(2).telnet 测试是否正常连接到rsync server 端
Telnet  ip地址  873

(3).传送文件到server 端(–delete 此参数自行摸索)
rsync -vPrtopg –progress  指定client本地的目录  xcg@server ip地址::server定义的模块名
如: rsync -vPrtopg –progress /cygdrive/c xcg@192.168.1.230::shouyou
上面输完,会提示输入密码:输入server 端配置文件设置的密码:123456

(4).server 端同步client 端
Rsync -vPrtopg –progress  xcg@192.168.1.230::shouyou /cygdrive/c

(5).每次同步老输入密码,不方便,所以在client 配置密码文件:
这里在c 盘下的 a.ps
内容为:123456 (内容直接输入密码)
使用如下:
rsync -vPrtopg –progress –password-file=/cygdrive/c/a.ps  /cygdrive/c xcg@192.168.1.230::shouyou

注:这里一般会报错:password file must be owned by root when running as root

解决方法为:
在client 端修改刚才设置的密码文件为600 权限:
如下:chmod -c 600  /cygdrive/c/a.ps
修改所有者:这个默认client端没有,在server 端的bin目录下,复制一个chown.exe过来,执行如下操作:
Chown administrator /cygdrive/c/a.ps
此时再测试,应该就没问题了

windows下mysql 绿色版安装

mysql在windows下有msi包和压缩包两种类型,msi格式的是图形化安装,非常简单方便,这里就不赘述,下面主要做的是针对压缩包的mysql如何安装部署!

部署环境:
       系统:windows server 2008
     mysql版本:mysql 5.5.35

1.首先,去mysql官方网站下载windows 绿色版
2.解压下载下来的压缩包
3.将解压出来的包复制到自己需要安装的盘符下,我这里是:c:\mysql
4.添加windows环境变量,此步为了方便以后在命令行下,直接使用mysql相关命令
   在server 系统中,需要进入“服务器管理器” –> “更改系统属性” –> “高级”菜单  –> “环境变量” –> 在”PATH”变量后 –> “输入你安装的mysql的bin目录位置”,我这里是:C:\mysql\bin
5.简单修改mysql的配置文件:my.ini
my.ini内容如下:
[client]
#password     = your_password
port          = 3306
socket          = /tmp/mysql.sock
default-character-set=utf8
[mysqld]
port          = 3306
socket          = /tmp/mysql.sock
basedir=c:\mysql
datadir=c:\mysql\data
character_set_server=utf8
skip-external-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 128K
server-id     = 1
log-bin=mysql-bin
#binlog_format=mixed
#binlog_direct_non_transactional_updates=TRUE
#innodb_data_home_dir = C:\\mysql\\data\\
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = C:\\mysql\\data\\
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
[mysqlhotcopy]
interactive-timeout
6.在命令行下,进入mysql的bin目录
   cd c:\mysql\bin
   执行如下命令,安装mysql:
   mysqld install MySQL –defaults-file=”c:\mysql\my.ini”
   注:如果安装出错,使用mysqld remove 移除
7.现在就可以启动mysql了:
   启动命令如下:net start mysql
   停止命令如下:net stop mysql
8.登陆mysql和linux登陆方法一样,自行测试