oracle数据导出导入(使用shell脚本导出导入dmp)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

	此shell脚本使用exp和imp方式导出导入dmp文件,逻辑简单,一看便懂

一、Oracle数据库exp和imp方式导数据

可通过以下链接学习exp和imp
链接: Oracle数据库exp和imp方式导数据.

二、shell脚本

1.创建配置文件

创建配置文件database.cfg,将数据库地址写入配置文件,便于后期修改

#中间库数据源
#用户名/密码@数据库ip:端口/实例名
DataBaseMid=abc/\"abc\"@127.0.0.1:1521/orcl
#新地址
DATABASE_SRC=@127.0.0.1:1521/ncmdb

2.编写脚本sysExpAndImp.sh

#!/bin/bash
#在应用服务器输入echo PATH就可以得到服务器的环境变量,替换下面的PATH
PATH=/usr/java/jdk1.8.0_181/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/openssh-8.6p1/bin:/usr/local/sbin:/home/zyb/bin:/home/zyb/bin:/u01/app/oracle/product/11.2.0/client_1/patch:/u01/app/oracle/product/11.2.0/client_1/bin
export PATH

. ~/cfg/database.cfg
export TMOUT=0
errorCount=5
echo "请选择使用模式,1 生产模式,其余任意字符 测试模式"
read runMode
#如果是输入1,则使用输入的密码登录数据库,否则使用配置文件中DataBaseMid数据库地址
if [ $runMode -eq 1 ];then
for((i=1;i<11;i++))
do
echo "请输入abc的数据库密码"
stty -echo
read pass_sys
stty echo
DATABASE_SYS=abc/\"$pass_sys\"$DATABASE_SRC

checkAccount=$(sqlplus -s $DATABASE_SYS <<EOF
 set heading off
 set feedback off
 select 1 from dual;
exit
EOF
)
echo $checkAccount
if [ $checkAccount -eq 1 ];then
echo "登录成功!"
break
else
echo "登录失败!账户密码输入错误!"
fi
if [ $i -eq $errorCount ];then
exit 0
fi
done
fi
DATABASE=$DataBaseMid

######################数据库导入开始#########################
#处理sys
touser=${DataBaseMid%/\"*}
echo ${touser}
echo "开始导出sys的基础配置表"
exp $DATABASE_SYS FILE=sysinittables.dmp TABLES=admin_area_info,admin_rate_info,admin_s_org,admin_s_user,admin_s_user_org_rel,ADMIN_S_USER_ROLE_ORG_REL,admin_s_role,ADMIN_S_ORGTREE_ORG_REL
echo "开始导入sys的基础配置表"
imp $DATABASE FILE=sysinittables.dmp DATA_ONLY=Y FROMUSER=ncm_sys touser=${touser}
echo "导入sys的基础配置表执行成功"

M=`whoami`
if [ $? == 0 ];then
    echo -e "***中间库参数导入结束,请继续:\n1、手动执行编译存储过程脚本:\e[35m <makeproc.sql> \e[0m\n2、执行收集初始化数据统计信息脚本\e[35m <analyInitTable.sh> \e[0m,路径:\e[35m </home/$M/handle/tableIndex> \e[0m"
else
    echo -e "\e[31m 中间库参数导入ERROR!!! \e[0m"
fi


3.执行脚本

sh sysExpAndImp.sh

总结

仔细看链接: Oracle数据库exp和imp方式导数据.链接中讲述了exp和imp的使用方式,此shell仅仅写了两条命令而已。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值