通过批处理来完成oracle的数据导入导出及备份工作

来源:互联网 发布:linux u盘挂载格式 编辑:程序博客网 时间:2024/06/09 13:45

我们项目在开发过程中,大家使用同一个oracle数据库,但是我由于测试开发的需要,在自己机器上也安装了oracle数据库,由于经常需要将服务器上的oracle的数据导入自己机器中 ,原来通过重建立用户 ,通过exp命令将服务器的数据导出,通过imp按照用户数据导入到自己的机器上,特别麻烦,就想写个批处理文件代替手工操作。同时,老大也正好给了我一个任务,为了防止服务器上的数据库崩溃,需要每天都备份一次数据库 ,通过不懈的努力,终于达到目标。效果还可以,下面说一下实现的步骤。

l         完成数据备份功能

通过编写批处理,调用exp命令,并且按照备份的日期时间建立多个文件夹,在对应的文件夹中存放备份出来的数据和备份过程产生的日志。

目录结构如下:

 

backup.bat即是用户执行备份的批处理的文件,内容如下

 

echo on

echo -------------------------------------------------------------------------------------------------------------------------------------------  >>readme.txt 

echo  %date:~0,10%  %time:~0,8% 开始备份 共六个文件位于服务器数据备份/%date:~0,10%文件夹下面,分别对应三个用户的数据备份文件和备份过程中的日志记录 >>readme.txt 

echo --------------------------------------------------------------------------------------------------------------------------------------------- >>readme.txt 

if not exist  服务器数据备份 mkdir 服务器数据备份

cd  服务器数据备份

if not exist  %date:~0,10%  mkdir %date:~0,1%

cd %date:~0,10%

set time=%time:~0,2%%time:~3,2%%time:~6,2%

mkdir %time%

cd  %time%

exp eosuser/eosuser@pms_192.168.0.1 file=eosuser-%date:~0,10%.dmp log=eosuser-%date:~0,10%.log compress=n buffer=8092 consistent=y direct=n constraints=y feedback=10000  grants=y record=y indexes=y triggers=y rows=y

exp mpms/mpms@pms_192.168.0.1 file=mpms-%date:~0,10%.dmp log=mpms-%date:~0,10%.log compress=n buffer=8092 consistent=y direct=n constraints=y feedback=10000  grants=y record=y indexes=y triggers=y rows=y

exp xypms/xypms@pms_192.168.0.1 file=xypms-%date:~0,10%.dmp log=xypms-%date:~0,10%.log compress=n buffer=8092 consistent=y direct=n constraints=y feedback=10000  grants=y record=y indexes=y triggers=y rows=y

 

 

 

这样就会在d盘下面的数据库备份/服务器数据备份下面按照备份的日期建立对应的文件架,并会在readme.txt中添加相应的备份记录。

l         数据导入与回复

因为对数据库中已经存在的方案导入的时候会冲突,可以考虑先级联删除用户,然后重新创建用户。

对应的sql文件USER.sql:如下:

drop user xypms cascade

/

drop user mpms cascade

/

drop user eosuser cascade

/

create user xypms  identified by xypms

/

grant connect,resource ,dba  to xypms

/

create user mpms  identified by mpms

/

grant connect , resource ,dba  to mpms

/

create user  eosuser   identified by eosuser

/

grant connect,resource ,dba  to eosuser

/

quit

 

对应的bat文件如下:

 

echo on

set  date=%date:~0,10%

set  time=%time:~0,2%%time:~3,2%%time:~6,2%

if  not exist  服务器数据恢复  mkdir 服务器数据恢复 

cd  服务器数据恢复

if not exist  %date%    mkdir %date% 

cd ..

cd  服务器数据备份

cd   %date%

if   exist   230000    cd 230000  

if   exist   120000    cd 120000  

if   exist   230000    cd 230000 

 

sqlplus  eos/eos@pms_127.0.0.1 @../../../USER.sql

 

 

imp  xypms/xypms@pms_127.0.0.1       FILE=xypms-%date%.dmp     log=xypms.log   IGNORE=Y  FULL=NO  FromUser=xypms

imp  mpms/mpms@pms_127.0.0.1         FILE=mpms-%date%.dmp     log=mpms.log     IGNORE=Y  FULL=NO  FromUser=mpms

imp  eosuser/eosuser@pms_127.0.0.1   FILE=eosuser-%date%.dmp   log=eosuser.log   IGNORE=Y  FULL=NO  FromUser=eosuser

 

 

 

move   mpms.log         ../../../服务器数据恢复/%date%/

move   eosuser.log    ../../../服务器数据恢复/%date%/

move   xypms.log       ../../../服务器数据恢复/%date%/

 

pause

 

 

ok 一切搞定,通过bat文件轻轻松松搞定!

 

原创粉丝点击