Oracle数据库导出

时间:

2016.01.14    17.30

问题描述:

       因项目整体替换,应客户方面的要求,要对用户当前的数据库进行导出然后在本地导入,重构,分析,数据库导出本地导入这一部分由我完成,其余部分由开发的同事解决,数据库导出一两台的话都是小问题,当我仔细看了之后才发现从143-185一共四十二台数据库服务器,且除此之外并没有用于自动化运维的工具,也不能在上面安装,仅能通过ssh方式连接上去,连上去之后还是需要手动执行导出,在量小的情况下还可以接受,但是量大了就不能接受了。

解决方案:

       编写了一个数据库导出导出脚本,通过scp上传到各个服务器然后执行 ,这样也只能节省一部分时间,要全部下载到本地还需要很多时间,下载完成后需要导回到本地,这又是时间,下面是导出脚本(有部分改动自行观察),导入脚本与之类似:

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/10g
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
backtime=$(date +%Y%m%d)
deltime=$(date -d "7 days ago" +%Y%m%d)
echo "del bakup start...."
rm -rf /home/oracle/$deltime.dmp
rm -rf /home/oracle/$deltime.txt
echo "bakup start...."
/opt/oracle/10g/bin/exp fuck/lfuck@fuck file=/home/oracle/$backtime.dmp owner=fuck log=/home/oracle/$backtime.txt

总结

       数据库操作时需要特别小心,毕竟数据无价

分享到