脚本oracle同步mysql数据库_oracle mysql数据库备份脚本

这是一个用于自动化备份MySQL和Oracle数据库的脚本。它支持expdp和exp方式的Oracle数据库备份,以及mysqldump的MySQL数据库备份。脚本根据指定的用户名、并行度和备份类型执行相应的备份操作,并将日志记录到指定的日志文件中。此外,它还包含了清理3天前备份的功能。
摘要由CSDN通过智能技术生成

#############################################################################################

## Usage:

##1、mysql数据库,user1、user2、user3是数据库用户名

## database_backup.sh mysql 'user1 user2 user3'##2、oracle数据库,expdp方式,15为并行度

## database_backup.sh oracle 'user1,user2,user3' expdp 15##3、oracle数据库,exp方式

## database_backup.sh oracle 'user1,user2,user3'exp

#############################################################################################

#!/bin/sh#环境变量--针对Oracle

export ORACLE_HOME=/u01/app/oracle/product/11.2.0.4export ORACLE_SID=mydb

export ORACLE_BASE=/u01/app/oracle

export DUMPDIR=DATABASE_BACKUP_DIR ####此处默认 DATABASE_BACK_DIR 在数据库中的路径与${BACKUP_DIR}相同

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

#环境变量--针对MySql

export USER=root #mysql的用户

export PASSWORD="123456"#mysql的用户密码

export HOSTNAME="localhost.localdomain"#连接mysql的主机名,可以是IP

#程序变量

TIMESTMP=`date +"%Y%m%d_%H%M%S"` ##设置时间戳

#设置备份文件存放路径(可手动修改)

BACKUP_DIR=$HOME/backup_dirif [ ! -d ${BACKUP_DIR} ];then

mkdir -p "${BACKUP_DIR}"

fiLOG_FILE=${BACKUP_DIR}/database_back.log

DATABASE_TYPE=$1SCHEMAS=$2EXPORT_TYPE=$3PARALLEL=$4

echo " ">>${LOG_FILE} 2>&1

echo " ">>${LOG_FILE} 2>&1

echo "---------------------------程序开始------------------------------" >>${LOG_FILE} 2>&1

if [ "$DATABASE_TYPE"x = "oracle"x ];then{if [ "$EXPORT_TYPE"x = "expdp"x ];then{echo "----`date +'%y-%m-%d %H:%M:%S'`--开始 oracle expdp 备份--------" >>${LOG_FILE} 2>&1#按用户导出

$ORACLE_HOME/bin/expdp '"/ as sysdba"' directory=${DUMPDIR} dumpfile=backfile%U_${TIMESTMP}.dmp schemas=${SCHEMAS} NOLOGFILE=Y content=all compression=ALL parallel=${PARALLEL} cluster=N >>${LOG_FILE} 2>&1}else{echo "----`date +'%y-%m-%d %H:%M:%S'`--开始 oracle exp 备份--------" >>${LOG_FILE} 2>&1#按用户导出,非DBA用户只能导出本身用户,不能导出其他用户

exp'"/ as sysdba"' file=$BACKUP_DIR/backfile_${TIMESTMP}.dmp OWNER=${SCHEMAS} >>${LOG_FILE} 2>&1}fi}elif [ "$DATABASE_TYPE"x = "mysql"x ];then{echo "----`date +'%y-%m-%d %H:%M:%S'`--开始 mysql 备份-----------------" >>${LOG_FILE} 2>&1#使用mysqldump 命令备份制定数据库,并以格式化的时间戳命名备份文件

mysqldump-h${HOSTNAME} -u${USER} -p${PASSWORD} --databases ${SCHEMAS} > ${BACKUP_DIR}/${DATABASE_TYPE}_${TIMESTMP}.dmp 2>&1}else{echo "ERROR:database type is Unspecified!" >>${LOG_FILE} 2>&1exit

}fi

echo "----`date +'%y-%m-%d %H:%M:%S'`--备份完成------------------------" >>${LOG_FILE} 2>&1cd $BACKUP_DIRif [ $? -eq 0 ]; then

tar czvf ${DATABASE_TYPE}_${TIMESTMP}.tgz *dmp >>${LOG_FILE} 2>&1

echo “Backup Successful!” >>${LOG_FILE} 2>&1

rm -f *dmp *sql >>${LOG_FILE} 2>&1#删除3天前的备份find $BACKUP_DIR -mtime +3 -name "*.tgz" -print -exec rm {} \; >>${LOG_FILE} 2>&1

else

echo “Database Backup Fail!” >>${LOG_FILE} 2>&1

fi

echo "---------------------------程序结束------------------------------" >>${LOG_FILE} 2>&1

echo "">>${LOG_FILE} 2>&1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值