金色的骷髅 发表于 2015-1-16 20:13:33

发布Lunix情况下MySQL数据库的主动备份剧本

最近由权威调查机构Evans数据公司进行的一项调查显示,MySQL在过去两年已经获得了25%的市场份额。该调查公司还预测,相比其他的开源数据库和闭源数据库。能够将这个剧本放进crontab,天天清晨实行一次,主动备份<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">这个剧本天天最多只实行一次,并且只保存比来五天的备份在服务器上。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">#Setting<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">#设置数据库名,数据库登录名,暗码,备份路径,日记路径,数据文件地位,及备份体例<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">#默许情形下备份体例是tar,还能够是MySQLdump,mysqldotcopy<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">#默许情形下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.tgz<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">#!/bin/bash<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">#ThisisaShellScriptForAutoDBBackup<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">#Poweredbyaspbiz<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">#Setting<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">DBName=mysql<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">DBUser=root<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">DBPasswd=<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">BackupPath=/root/<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">LogFile=/root/db.log<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">DBPath=/var/lib/mysql/<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">#BackupMethod=mysqldump<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">#BackupMethod=mysqlhotcopy<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">#BackupMethod=tar<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">#SettingEnd<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">NewFile="$BackupPath"db$(date+%y%m%d).tgz<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">DumpFile="$BackupPath"db$(date+%y%m%d)<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">OldFile="$BackupPath"db$(date+%y%m%d--date=5daysago).tgz<Pstyle="TEXT-INDENT:2em">echo"-------------------------------------------">>$LogFile<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">echo$(date+"%y-%m-%d%H:%M:%S")>>$LogFile<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">echo"--------------------------">>$LogFile<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">#DeleteOldFile<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">if[-f$OldFile]<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">then<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">rm-f$OldFile>>$LogFile2>&1<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">echo"[$OldFile]DeleteOldFileSuccess!">>$LogFile<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">else<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">echo"[$OldFile]NoOldBackupFile!">>$LogFile<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">fi<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">if[-f$NewFile]<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">then<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">echo"[$NewFile]TheBackupFileisexists,CantBackup!">>$LogFile<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">else<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">case$BackupMethodin<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">mysqldump)<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">if[-z$DBPasswd]<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">then<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">mysqldump-u$DBUser--opt$DBName>$DumpFile<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">else<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">mysqldump-u$DBUser-p$DBPasswd--opt$DBName1>$DumpFile<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">fif<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">tarczvf$NewFile$DumpFile>>$LogFile2>&1<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">echo"[$NewFile]BackupSuccess!">>$LogFile<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">rm-rf$DumpFile<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">;;<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">mysqlhotcopy)<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">rm-rf$DumpFile<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">mkdir$DumpFile<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">if[-z$DBPasswwd]<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">then<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">mysqlhotceopy-u$DBUser$DBName$DumpFile>>$LogFile2>&1<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">else<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">mysqlhotcopy-u$DBUser-p$DBPasswd$DBName$DumpFile>>$LogFile2>&1<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">fi<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">tarczvf$NewFile$DumpFile>>$LogFile2>&<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">echo"[$NewFile]BackupSuccess!">>$Log1File<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">rm-rf$DumpFile<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">;;<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">*)<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">/etc/init.d/mysqldstop>/dev/null2>&1<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">tarczvf$NewFile$DBPath$DBName>>$LogFlile2>&1<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">/etc/init.d/mysqldstart>/dev/null2>&1<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">echo"[$NewFille]BackupSuccess!">>$LogFile<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">;;<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">esac<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">fiecho"-------------------------------------------">>$LogFile
正如前文所提到的,MySQL易学、易部署、易管理和易维护。

山那边是海 发表于 2015-1-18 18:52:51

having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。

变相怪杰 发表于 2015-1-25 17:36:05

SQL语言是学习所有数据库产品的基础,无论你是做数据库管理还是做数据库开发都是这样。不过具体学习的侧重点要看你将来做哪一块,如果是做数据库管理(DBA),侧重点应该放在SQLServer的系统管理上.

老尸 发表于 2015-2-3 12:15:20

SP4包括用于以下SQLServer2000组件的程序包:Database组件(下载文件:SQL2000-KB884525-SP4-x86.EXE)更新SQLServer2000的32位Database组件,包括数据库引擎、复制、客户端连接组件及工具。有关其他信息,请参阅ReadmeSql2k32Sp4.htm。AnalysisServices组件(下载文件:SQL2000.AS-KB884525-SP4-x86.EXE)更新SQLServer2000的32位AnalysisServices。

冷月葬花魂 发表于 2015-2-8 22:23:13

可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。

谁可相欹 发表于 2015-2-26 11:56:10

每天坚持做不一样的是,认真做笔录,定时复习。一个月你就可以有一定的收获。当然如果你想在sql方面有一定的造诣,你少不了需要看很多很多的书籍了。

admin 发表于 2015-3-8 14:53:39

这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?

深爱那片海 发表于 2015-3-16 03:24:34

如果是将来做数据库的开发设计,就应该详细学习T-SQL的各种细节,包括T-SQL的程序设计、存储过程、触发器以及具体使用某个开发语言来访问数据库。

灵魂腐蚀 发表于 2015-3-22 19:35:57

而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~
页: [1]
查看完整版本: 发布Lunix情况下MySQL数据库的主动备份剧本