正文
数据安全尤为重要,下面记录一下基本的数据库备份脚本,可根据需求二次修改。
Oracle备份脚本:
#!/bin/sh export ORACLE_BASE=/data/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 export ORACLE_SID=sgtms export ORACLE_TERM=xterm export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export LANG=C export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #以上代码为Oracle数据库运行账号oracle的系统环境变量设置,必须添加,否则crontab任务计划不能执行。 # oracle用户的系统环境变量路径:/home/oracle/.bash_profile date=`date +%Y_%m_%d` #获取系统当前日期时间 days=7 #设置删除7天之前的备份文件 orsid=`192.168.0.198:1521/sgtms` #Oracle数据库服务器IP、端口、SID orowner=jbuser #备份此用户下面的数据 bakuser=jbuser #用此用户来执行备份,必须要有备份操作的权限 bakpass=jbuser12 #执行备注的用户密码 bakdir=/backup/oracledata #备份文件路径,需要提前创建好 bakdata=$orowner"_"$date.dmp #备份数据库名称 baklog=$orowner"_"$date.log #备份执行时候生成的日志文件名称 ordatabak=$orowner"_"$date.tar.gz #最后保存的Oracle数据库备份文件 cd $bakdir #进入备份目录 mkdir -p $orowner #按需要备份的Oracle用户创建目录 cd $orowner #进入目录 exp $bakuser/$bakpass@$orsid grants=y owner=$orowner file=$bakdir/$orowner/$bakdata log=$bakdir/$orowner/$baklog #执行备份 tar -zcvf $ordatabak $bakdata $baklog #压缩备份文件和日志文件 find $bakdir/$orowner -type f -name "*.log" -exec rm {} \; #删除备份文件 find $bakdir/$orowner -type f -name "*.dmp" -exec rm {} \; #删除日志文件 find $bakdir/$orowner -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} \; #删除7天前的备份(注意:{} \中间有空格)
MySql备份脚本:
#!/bin/sh DUMP=/usr/bin/mysqldump #mysqldump备份程序执行路径 OUT_DIR=/home/mysql_data #备份文件存放路径 LINUX_USER=root #系统用户名 DB_NAME=sgtms #要备份的数据库名字 DB_USER=root #数据库用户名 DB_PASS=123456 #数据库密码 DAYS=7 #DAYS=7代表删除7天前的备份,即只保留最近7天的备份 cd $OUT_DIR #进入备份存放目录 DATE=`date +%Y_%m_%d` #获取当前系统时间 OUT_SQL="$DATE.sql" #备份数据库的文件名 TAR_SQL="sgtmsdata_bak_$DATE.tar.gz" #最终保存的数据库备份文件名 $DUMP -u$DB_USER -p$DB_PASS $DB_NAME --default-character-set=utf8 --opt -Q -R --skip-lock-tables> $OUT_SQL #备份 tar -zcvf $TAR_SQL $OUT_SQL #压缩为.tar.gz格式 rm $OUT_SQL #删除.sql格式的备份文件 chown $LINUX_USER:$LINUX_USER $OUT_DIR/$TAR_SQL #更改备份数据库文件的所有者 find $OUT_DIR -name "sgtmsata_bak*" -type f -mtime +$DAYS -exec rm {} \; #删除7天前的备份文件(注意:{} \;中间有空格)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《Linux数据库备份脚本》
文章链接: https://www.sgtms.com/linux/45.html
本站资源仅供个人学习交流,转载或者引用本文内容请注明来源及作者,不允许用于商业用途。
文章名称:《Linux数据库备份脚本》
文章链接: https://www.sgtms.com/linux/45.html
本站资源仅供个人学习交流,转载或者引用本文内容请注明来源及作者,不允许用于商业用途。
网友评论抢沙发