时间:
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
|
总结
数据库操作时需要特别小心,毕竟数据无价