mysql dump view_mysqldump导出table,view,trigger,routines,events

实现功能: 可以按库名导出一个mysql实例中的表,视图,存储过程/函数,触发器,事件

用法:

1. 将脚本保存为dump.sh

2. sh dump.sh  备份路径  用户 密码 IP  端口

例:sh  dump.sh  /backup/bjdb   root  root 127.0.0.1  3306

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

# Function: DUMP MYSQL TABLE, PROCEDURE,VIEW,TRIGGER,EVENT

# Date: 2015-01-21

# Author: Liang Wei

# Mail: liangweione@gmail.com

# Version: 1.0

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

#DEFINE VARIABLES

MYSQL=`which mysql`

MYSQLDUMP=`which mysqldump`

GZIP=`which gzip`

BACKUP_DIRECTORY=$1

V_USERNAME=$2

V_PASSWORD=$3

V_HOST=$4

V_PORT=$5

MYCMD="$MYSQL -u$V_USERNAME -p$V_PASSWORD  -h$V_HOST -P$V_PORT "

DUMP_TB="$MYSQLDUMP -u$V_USERNAME -p$V_PASSWORD  -h$V_HOST -P$V_PORT --compact -d"

DUMP_TRIGGER="$MYSQLDUMP -u$V_USERNAME -p$V_PASSWORD  -h$V_HOST -P$V_PORT  --triggers \

--no-create-info --no-data --no-create-db --skip-opt"

DUMP_PROC="$MYSQLDUMP -u$V_USERNAME -p$V_PASSWORD  -h$V_HOST -P$V_PORT  --routines \

--no-create-info --no-data --no-create-db --skip-opt --skip-triggers"

DUMP_EVENTS="$MYSQLDUMP -u$V_USERNAME -p$V_PASSWORD  -h$V_HOST -P$V_PORT  --events \

--no-create-info --no-data --no-create-db --skip-opt --skip-triggers"

#echo MYSQL=$MYSQL

#echo MYSQLDUMP=$MYSQLDUMP

#echo GZIP=$GZIP

# VALIDATE INPUT ARGUMENTS

if [ "$#" -ne 5 ]; then

echo "Usage: $0     "

exit 1;

fi

# VALIDATE BACKUP DIR

BACKUP_DIR="$1"

if [ ! -d $BACKUP_DIR ]; then

echo "$BACKUP_DIR does not exist"

exit 1;

fi

DUMP_DIR="$BACKUP_DIR/`date +%F`"

if [ ! -d $DUMP_DIR ]; then

mkdir -p  $DUMP_DIR

if [ ! -d $DUMP_DIR ]; then

echo "Failed to create backup dir $DUMP_DIR"

exit 1;

fi

fi

for DB in  `$MYCMD -N -e "show databases" | grep -v 'Database\|performance_schema\|information_schema'`

# for DB in sakila

do

mkdir -p $DUMP_DIR/$DB/{table,view,trigger,proc,event}

# Dump table define

for TB in `$MYCMD -N -e "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES \

WHERE TABLE_SCHEMA IN('${DB}') AND ENGINE IS NOT NULL AND ENGINE NOT IN('CSV');" `

do

BK_FILE=$DUMP_DIR/$DB/table/${TB}.sql

$DUMP_TB $DB $TB >$BK_FILE

done

#Dump view

for VW in `$MYCMD -N -e "SELECT table_name from information_schema.views where TABLE_SCHEMA in('${DB}')" `

do

$DUMP_TB  $DB $VW  > $DUMP_DIR/$DB/view/${VW}.sql

done

#Dump triggers

$DUMP_TRIGGER $DB  >$DUMP_DIR/$DB/trigger/${DB}_trigger.sql

#Dump  routines

$DUMP_PROC $DB  >$DUMP_DIR/$DB/proc/${DB}_proc_function.sql

#Dump events

$DUMP_EVENTS $DB  >$DUMP_DIR/$DB/event/${DB}_event.sql

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值