1.导出批处理
@echo off
set datename=%date:~0,4%%date:~5,2%%date:~8,2%
set username=d:\bakckup\username
#定时删除90天前的文件
forfiles /p d:\bakckup\ /s /m * /d -90 /c "cmd /c del @path"
#将备份日期写入文件
echo %datename% >%username%\expdate.txt
#循环遍历获取用户名并备份
for /f %%s in (%username%\user.txt) do (
exp 用户名/密码@ip:端口号/实例名 file=%backdir%\%%s_%datename%.dmp owner=%%s
TIMEOUT /t 3 /NOBREAK
)
2.导入批处理
del.sql
drop user 用户名;
create user 用户名 identified by 密码 default tablespace 表空间名 temporary tablespace temp;
grant connect,resource,select,update,drop to 用户名
impdata.bat
set backdir=d:\bakckup
set username=d:\bakckup\username
#执行sql语句
sqlplus 用户名/密码@ip:端口号/实例名 @d:\bakckup\del.sql >del.txt
#循环遍历获取备份日期
for /f %%d in (%username%\expdate.txt) do (
set expdir=%%d
TIMEOUT /t 3 /NOBREAK
)
echo %expdir%
#循环遍历获取用户名并导入
for /f %%s in (%username%\user.txt) do (
imp 用户名/密码@ip:端口号/实例名 fromuser=%%s touser=%%s ignore=y file=%backdir%\%%s_%expdir%.dmp
TIMEOUT /t 3 /NOBREAK
)