dm_conf.txt路径与/home/dmdba/dmdbms/bin 路径
vi /home/dmdba/dmp.sh
#!/bin/bash
echo -e '\n\n\n'
time=$(date "+%Y-%m-%d-%H-%M-%S")
echo "开始时间是:"$time
#读取配置文件路径
exec < /home/dmdba/dmp_conf.txt
read dmp_conf
#读取用户名密码
#多个用户中间用空格分开
exec < $dmp_conf/dm_user.txt
read dm_userpwd
#读取ip:port
exec < $dmp_conf/ip_port.txt
read ip_port
#读取备份路径
exec < $dmp_conf/bak_path.txt
read bak_path
#创建备份路径
mkdir -p $bak_path/DATA$time
#linux 中定义一个数据的语法为
var_dm=("$dm_userpwd")
var_count=0
#数组的下标从0开始。
#for遍历
for i in ${var_dm[@]}; do
#获取用户名
dm_user=${i%/*}
echo 备份数据库名称: $dm_user
cd /home/dmdba/dmdbms/bin&&./dexp USERID=$i@$ip_port FILE=$bak_path/DATA$time/$dm_user.dmp LOG=$bak_path/DATA$time/$dm_user.log SCHEMAS=$dm_user CONSTRAINTS=N TABLESPACE=N GRANTS=N TRIGGERS=N COMPRESS=Y >> /dev/null
#过滤不要导出的表
#EXCLUDE=TABLES:A
#打印日志
cat $bak_path/DATA$time/$dm_user.log |grep SCHEMA
cat $bak_path/DATA$time/$dm_user.log |grep 警告
#计数器
var_count=$[$var_count+1]
done
#任务执行完成
echo "------------------------------------------------"
echo "共 "$var_count" 个 数据库用户备份完成"
echo "------------------------------------------------"
echo "开始时间是:"$time
time2=$(date "+%Y-%m-%d-%H-%M-%S")
echo "结束时间是:"$time2
echo -e '\n\n\n'
vi /home/dmdba/dm_conf.txt
/home/dmdba/dmp_conf
vi /home/dmdba/dmp_conf/dm_user.txt
SYSDBA/SYSDBASYSDBA DM/SYSDBASYSDBA
vi /home/dmdba/dmp_conf/ip_port.txt
192.168.248.19:5236
vi /home/dmdba/dmp_conf/bak_path.txt
/home/dmdba/backup
[root@localhost backup]$ crontab -e
20 23 * * * cd /home/dmdba;./dmp.sh >> /home/dmdba/dmp.log
[root@localhost backup]$
[root@localhost backup]$ /home/dmdba/dmp.sh
开始时间是:2022-08-25-18-19-35
备份数据库名称: SYSDBA
成功导出 第1 个SCHEMA :SYSDBA
共导出 1 个SCHEMA
成功终止导出, 没有出现警告
备份数据库名称: DM
成功导出 第1 个SCHEMA :DM
共导出 1 个SCHEMA
成功终止导出, 没有出现警告
------------------------------------------------
共 2 个 数据库用户备份完成
------------------------------------------------
开始时间是:2022-08-25-18-19-35
结束时间是:2022-08-25-18-19-36
[root@localhost backup]$
USERID:用户名/MiMa@IP:端口 如果MiMa带特殊字符,双引号外边加一层单引号 '"abc@)16"'
FILE:导出路径
LOG:导出日志
OWNER:导出用户拥有权限的所有数据库对象
SCHEMAS:以哪个模式导出
TRIGGERS:触发器 Y=导出,N=不导出
GRANTS:权限 Y=导出,N=不导出
CONSTRAINTS:约束 Y=导出,N=不导出
TABLESPACE:表空间 默认不导
COMPRESS:压缩导出 Y=压缩,N=不压缩
TABLE_EXISTS_ACTION=TRUNCATE:表如果存在,就删除
REMAP_SCHEMA:源模式:目标模式(假如以A模式导出来的dmp文件,要导入到B模式里,需要用到这个参数)
FAST_LOAD=Y 使用快速装载
EXCLUDE= TABLES:A 不导出的表A




