前面一段时间已经安装好了mysql、oracle等常用数据库,但是数据库在使用时必须做到定时备份,这样能够在数据库出现问题时及时恢复到可用状态。那么下面我们就在Linux和Windows环境下测试使用mysql和oracle的自动备份脚本。

1.Linux环境下

#!/bin/sh# DatabaseinfoDB_USER=""DB_PASS=""DB_HOST=""DB_NAME=""# Others vars

BIN_DIR="/ps/mysql/bin"#the mysql bin path

BCK_DIR="/data/mysqlbak" #the backup filedirectory

DATE=`date +"%Y-%m-%d %H:%M:%S"` #dateof now

days=7#Backup retention days

# TODO

#/usr/bin/mysqldump --opt -ubatsing -pbatsingpw -hlocalhost timepusher > /mnt/mysqlBackup/db_`date +%F`.sql

# $BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS -h$DB_HOST $DB_NAME > $BCK_DIR/db_$DATE.sql

#mysqldump--opt -u$DB_USER -p$DB_PASS -h$DB_HOST $DB_NAME |gzip > $BCK_DIR/db_dczdpscms_$DATE.sql.tar.gz

$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS -h$DB_HOST $DB_NAME |gzip > $BCK_DIR/$DB_NAME"_"$DATE.sql.gzecho $(date '+%Y-%m-%d %T') "$DB_NAME数据库备份成功!">>/data/mysqlbaklog/$DB_NAME.log

#Delete expired backupsfind $BCK_DIR -type f -name "*.sql" -mtime +$days -exec rm -rf {} \; > /dev/null 2>&1#-type f File type found

#-mtime +7 Find files by file change time#-exec rm -rf {} \; The exec option is followed by the command or script to be executed, followed by a pair of {}, a space and a \, and finally a semicolon.

#/dev/null 2>&1 Redirect the standard error to standard output and drop it below /dev/null.

#throw all standard outputs and standard errors into the trash can.The& indicates that the command is executed in the background.

以上脚本的功能只是使用mysql的mysqldump工具备份指定的整个数据库,(也可只备份核心表)同时生成压缩的sql文件以gzip压缩成.gz格式。

脚本设定最大保留天数为7天,可以自行设定需要保留的天数。同时在简单输出备份情况到日志文件,方便查看数据库的备份情况。

二、oracle

同样oracle也可以使用同样的方式来备份数据库

#!/bin/bash

export ORACLE_HOSTNAME=export ORACLE_BASE=/data/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.1/export ORACLE_SID=orcl

export PATH=.:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH

export LC_ALL="en_US"export LANG="en_US"export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"export NLS_DATE_FORMAT='YYYY-MON-DD HH24:MI:SS'

date=`date +%Y_%m_%d`

#设置删除7天之前的备份文件

days=7#Oracle数据库服务器IP、端口、SID

orsid='orcl'orowner=bakuser=bakpass=bakdir=/data/app/oracle/admin/orcl/dpdump

#备份数据库名称

bakdata=$orowner"_"$date.dmp

#备份执行时候生成的日志文件名称

baklog=$orowner"_"$date.log

#最后保存的Oracle数据库备份文件

ordatabak=$orowner"_"$date.tar.gz

#执行备份

expdp $bakuser/$bakpass dumpfile=$bakdata log=$baklog schemas=$bakuser

#删除日志文件find $bakdir -type f -name "*.log" -mtime +$days -exec rm -rf {} \;

#删除7天前备份文件find $bakdir -type f -name "*.dmp" -mtime +$days -exec rm -rf {} \;

最近出现了一点oracle的环境配置不生效的问题,我将环境配置写在了脚本中,为了避免指令无法使用

同样也是简单备份同时保留7天。

可以选择使用expdp数据泵和一般的exp来备份数据库(exp可以用来实现增量备份),expdp备份效率高,但是只能在数据库本地使用。

以上仅是简单的数据库备份,考虑到更好的容灾性,首先数据库可以是分布式的,同时之间互相同步备份。一般的情况可以在使用上述脚本后叫入scp命令将备份的数据已到多台存储服务器上,以提到容灾能力。

当备份的内容较多,内容不同时我一般会用时间为分隔将其放入不同的目录文件夹中方便管理。更具体的备份方式会在后续写出来。

2、Windows

在Windows上常用的是Windows自己的脚本批处理来实现,以下为mysql和oracle的.bat批处理文件

一、mysql

@echo offMODE con: COLS=71 LINES=25@echo 变量信息set "date_time=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%%time:~9,2%"

set "bak_dir=C:\sqlback\"

set "days=7"@echo 数据库信息set "db_user=root"

set "db_pass=123456"

set "db_host=localhost"

set "db_name=jdzd"@echo 创建备份目录

md %bak_dir%

@echo 开始备份数据库。

echo %date_time% Start backing up database files...>> %bak_dir%\sqlback.log

::mysqldump-u%db_user% -p%db_pass% -h%db_host% %db_name% > %bak_dir%\%date_time%%db_name%.sql

mysqldump-u%db_user% -p%db_pass% -h%db_host% %db_name% |gzip > %bak_dir%\%date_time%%db_name%.sql.gz

@echo 删除七天前备份的文件。

forfiles/p "%bak_dir%" /s /m *.gz /d -7 /c "cmd /c del @path"echo %date_time% Delete expired files!>> %bak_dir%\sqlback.log

echo %date_time% Successfully backed up the database files!>> %bak_dir%\sqlback.log@echo onexit

实现的功能同Linux下的一样

二、oracle

@echo 开始备份oracle数据

@echooff

set

set curdir="D:\oraclebackup\badm"echo %curdir%set t1=%Time:~0,1%if "%t1%"==" " set t1=0

set td=%Date:~0,4%%Date:~5,2%%Date:~8,2%%t1:~0,1%%Time:~1,1%%Time:~3,2%%Time:~6,2%exp badm_gis/primesoft@orcl owner=(badm_gis) file=%curdir%\badm_gis_%td%.dmp rows=y log=%curdir%\badm_gis_%td%.Log buffer=800000echo 建立压缩文件并删除源备份文件日志文件

zip %curdir%\badm_gis_%td%.zip %curdir%\badm_gis_%td%.dmp %curdir%\badm_gis_%td%.Log

del %curdir%\*.dmp

del %curdir%\*.Log

echo 完成文件压缩

forfiles/p "D:\oraclebackup\badm" /s /m *.* /d -7 /c "cmd /c del @path"@echoon@echo 备份oracle数据结束

最近在学习python,有时间会将python写的自动化backup写上来。还有自动化安装部署的内容。

mysql oracle linux_mysql、oracle在Linux和Windows下的简单自动备份相关推荐

  1. mysql.data.dll win10_关于Linux和Windows下部署mysql.data.dll的注册问题》

    为了学习ORM,选择了EntityFramework,经历了三天两夜的煎熬,N多次错误,在群里高手的帮助下,终于成功,现在将我的心路历程记录下来,一是让自己有个记录,另外就是让其它人少走些弯路. 我的 ...

  2. Windows下通过FTP自动备份数据到服务器并删除指定天数前的备份

    有时候我们想将本地的备份文件放到别的服务器上,实现异地备份,更安全,那么就可以参考下面的方法 说明: 1.要备份的文件在D盘根目录下面,以时间命名,(一般我们通过护卫神的好备份软件实现备份)例如 D: ...

  3. linux和windows下忘记mysql密码的几种找回方法

    linux和windows下忘记mysql密码的几种找回方法 关于linux忘记mysql密码处理方法,下面提供了5种linux忘记mysql密码找回方法哦. 方法一(先进入root权限): # /e ...

  4. linux编译c如何延时,linux和windows下,C/C++开发的延时函数,sleep函数

    简介: 函数名: sleep 功 能: 执行挂起一段时间 用 法: unsigned sleep(unsigned seconds); 在VC中使用带上头文件 #include 在gcc编译器中,使用 ...

  5. linux 创建线程函数吗,[笔记]linux下和windows下的 创建线程函数

    linux下和windows下的 创建线程函数 #ifdef __GNUC__ //Linux #include #define CreateThreadEx(tid,threadFun,args) ...

  6. linux与windows下开发,Linux 与 Windows下开发感受

    Linux 和 Windows环境下开发各有优点.以下Linux 下使用感受是在Ubuntu11.04,别的发行版还没试过. 至于各自的缺点,都可以通过各种方法,得到或多或少地解决.至于要花费多大的精 ...

  7. Linux和Windows下部署BeetleX服务网关

    有朋友希望写一篇BeetleX服务网关部署到Linux和windows下并以服务的方式运行的介绍文章.接下详细介绍如何做并简单介绍一下网的使用.首先需要在官网(beetlex-io.com)下载对应版 ...

  8. Linux和Windows下计算文件的Hash值

    Linux和Windows下计算文件的Hash值 MD和SHA简介 MD SHA MD5 SHA1标识文件唯一性 Linux Windows 不需要下载工具,也不需要写代码. MD和SHA简介 MD ...

  9. 从Docker在Linux和Windows下的区别简单理解Docker的层次结构

    上篇文章我们成功在Windows下安装了Docker,输出了一个简单的Hello World程序.本文中我们将利用Docker已有的云端镜像training/webapp来发布一个简单Python的W ...

最新文章

  1. CentOS全局配置JAVA环境变量,实现多个tomcat共用环境变量,不用再一个个tomcat配置
  2. 如何在自己工程项目中使用TouchJSON框架
  3. clientHeight , scrollHeight , offsetHeight之间的区别及兼容方案
  4. [ python ] 正则表达式及re模块
  5. Mongodb部署及使用
  6. 转载:越早明白这四个道理越好!
  7. PCA 主成分分析 用Excel一步步演算过程详解
  8. 菜鸟学C语言(五)之求定积分
  9. Fighting_小银考呀考不过四级【递推】
  10. hadoop--集群崩溃处理方法
  11. Neural Volumes Rendering(一)
  12. 青、取之于蓝,而青于蓝。
  13. git 如何撤销提交
  14. linux下安装rar解压包
  15. 2016/11/14
  16. Chrome 下载文件出现已禁止
  17. python数据分析入门到实战 知了课堂 百度云_零基础入门Python数据分析,只需要看懂这一张图,附下载链接!...
  18. vue-giant-tree模糊搜索,自动展开匹配子节点,再次搜索可重新加载节点
  19. kaminari分页插件样式
  20. 红米note3android驱动,红米Note3手机驱动

热门文章

  1. iOS:ASIHttpRequest虽不更新,但仍值得详细了解
  2. 多特蒙德主题本地个人任务清单小demo,你值得尝试!
  3. C++ VS2012 内存泄露检测
  4. Tab选项卡界面(1)
  5. 如何在命令行下运行kettle的作业(job)和转换(transform)
  6. 【致青春】我们挥霍时间的年代
  7. 局域网内通过代理服务器上网的详细设置
  8. RIP-OSPF-EIGRP 相互再发布
  9. 1095.山脉数组中查找目标值
  10. 战地1服务器性能红色,FPS《战地1》PC性能测试:对显卡要求不高但很吃CPU