oracle导入导出--批处理
来源:互联网 发布:网络机顶盒升级包下载 编辑:程序博客网 时间:2024/05/18 23:24
1.默认获取本机IP(支持XP与WIN7系统获取IP)
2.可对远程服务器进行备份还原
3.多用户备份还原
4.操作时智能提示及IP验证
将以下代码另存为.bat格式文件。
@echo offREM ======================================================REM backup or revert ORCL databaseREM ======================================================echo ------------------------------------------------------------------------- echo backup or revert ORCL databaseecho ------------------------------------------------------------------------- echo. title BACKUP ORCL DATABASEcolor 0aset ORACLE_PASSWORD=ORCLset DBUSER_SYSTEM=systemset BACKUP_DIR=%cd%set TODAY=%date:~0,4%_%date:~5,2%_%date:~8,2%rem user exists default 0(0.not exist,1.exist) set USER_EXISTS=0rem invalidIP is invalid IP labels,check IP validity,if the IP is invalid then set invalidIP=1set invalidIP=0set num=1rem XP系统下获取IP:XPIP@echo offsetlocal enabledelayedexpansionset "Space= "set "IP_addr=%Space%IP Address"for /f "tokens=1,* delims=." %%i in ('ipconfig /all') do ( for %%a in (IP_addr) do ( if "%%i"=="!%%a!" set %%a=%%j ))Rem ===========对IP结果进行处理===========set ORACLE_HOST=%IP_addr:*:=%:ltrimif "%ORACLE_HOST:~0,1%"==" " set ORACLE_HOST=%ORACLE_HOST:~1%&&goto ltrimif not "%ORACLE_HOST%" equ "IP Address" goto doitrem WIN7系统下获取IP:WIN7IP@echo offsetlocal enabledelayedexpansionset "Space= "set "IP_addr=%Space%IPv4 地址 "for /f "tokens=1,* delims=." %%i in ('ipconfig /all') do ( for %%a in (IP_addr) do ( if "%%i"=="!%%a!" set %%a=%%j ))Rem ===========对IP结果进行处理===========set ORACLE_HOST=%IP_addr:*:=%:delleftif "%ORACLE_HOST:~0,1%"==" " set ORACLE_HOST=%ORACLE_HOST:~1%&&goto delleft:delrightif "%ORACLE_HOST:~-5%"=="(首选) " set ORACLE_HOST=%ORACLE_HOST:~,-5%&&goto delrightgoto doit:doit@echo offif %invalidIP%==1 ( set /p ORACLE_HOST="【无效的IP,请重新输入IP】:") else (if "%ORACLE_HOST%" equ "IPv4 地址 " (set /p ORACLE_HOST="【获取IP失败,请手动输入安装服务器IP】:") else ( set /p ORACLE_HOST="【请输入安装服务器IP,回车默认IP:%ORACLE_HOST%】:"))if "%ORACLE_HOST%" equ "" goto doitecho %ORACLE_HOST%|findstr "^[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*$">nul||goto failset _inputIp=%ORACLE_HOST:.= %call :checkIp %_inputIp%:portset /p ORACLE_PORT="【请输入数据库端口 回车默认[1521] 】:"set /p ORACLE_DB="【请输入数据库实例名 回车默认[ORCL] 】:"set /p SYSTEM_PWD="【请输入数据库system用户密码 回车默认[ORCL]】:"if "%ORACLE_PORT%" equ "" ( set ORACLE_PORT=1521)if "%ORACLE_DB%" equ "" ( set ORACLE_DB=ORCL)if "%SYSTEM_PWD%" equ "" ( set SYSTEM_PWD=ORCL)set BACK_NAME=%ORACLE_DB%_%TODAY%:ChooseHandleecho ┌─────────────────────┐echo :: (1) exp ORCL data → 1 ::echo :: (2) imp ORCL data → 2 ::echo :: (E) Exit → E ::echo └─────────────────────┘echo.:InputChoice@echo offecho ------------Do your choice-----------------set /p chs=please input your choice : echo ------------End of Choice------------------echo.if "%chs%" EQU "" goto InputChoiceif %chs% EQU 1 goto expInitif %chs% EQU 2 goto impInitif "%chs%"=="E" ( goto End ) else ( echo error choice, please input your choice again! goto InputChoice):expInitset BACK_FULL_NAME=%BACKUP_DIR%\%BACK_NAME%set BACK_TODAY_DMP=%BACK_FULL_NAME%\dmpset BACK_TODAY_LOG=%BACK_FULL_NAME%\logif not exist %BACKUP_DIR% mkdir %BACKUP_DIR%if not exist %BACK_FULL_NAME% mkdir %BACK_FULL_NAME%if not exist %BACK_TODAY_DMP% mkdir %BACK_TODAY_DMP%if not exist %BACK_TODAY_LOG% mkdir %BACK_TODAY_LOG%call :queryUser:ESTEP1:: user1set ORACLE_USERNAME=user1goto expData:ESTEP2:: user2set ORACLE_USERNAME=user2goto expData:ESTEP3:: user3set ORACLE_USERNAME=user3goto expData:ESTEP4:: user4set ORACLE_USERNAME=user4goto expData:ESTEP5:: user5set ORACLE_USERNAME=user5goto expData:ESTEP6:: user6set ORACLE_USERNAME=user6goto expData:ESTEP7:: user7set ORACLE_USERNAME=user7goto expData:ESTEP8:: user8set ORACLE_USERNAME=user8goto expData:ESTEP9goto compress:expDataREM %BACK_FULL_NAME%_bat_exp.logtype "%BACKUP_DIR%"\select_orcl_user.log | findstr /i "%ORACLE_USERNAME%" >nulif %errorlevel%==0 ( set USER_EXISTS=1 ) else (set USER_EXISTS=0)if %USER_EXISTS%==1 (echo ==================开始备份%ORACLE_HOST%服务器 %ORACLE_USERNAME%数据=================echo ==================开始备份%ORACLE_HOST%服务器 %ORACLE_USERNAME%数据================= >>%BACK_FULL_NAME%_bat_exp.logecho 当前的时间是: %DATE% %time% echo 当前的时间是: %DATE% %time% >>%BACK_FULL_NAME%_bat_exp.logexp %ORACLE_USERNAME%/%ORACLE_PASSWORD%@//%ORACLE_HOST%:%ORACLE_PORT%/%ORACLE_DB% buffer=64000 file=%BACK_TODAY_DMP%\%ORACLE_USERNAME%.dmp rows=Y STATISTICS=none compress=N log=%BACK_TODAY_LOG%\%ORACLE_USERNAME%_exp.logecho ==================备份%ORACLE_HOST%服务器 %ORACLE_USERNAME%数据完成=================echo ==================备份%ORACLE_HOST%服务器 %ORACLE_USERNAME%数据完成================= >>%BACK_FULL_NAME%_bat_exp.log) else (echo %ORACLE_HOST%服务器 %ORACLE_USERNAME%用户不存在echo %ORACLE_HOST%服务器 %ORACLE_USERNAME%用户不存在 >>%BACK_FULL_NAME%_bat_exp.log)set /a num=%num%+1goto ESTEP%num%:compressecho .echo 备份完成! echo 备份完成! >>%BACK_FULL_NAME%_bat_exp.logecho 当前的时间是: %DATE% %time% >>%BACK_FULL_NAME%_bat_exp.logmove %BACK_FULL_NAME%_bat_exp.log %BACK_FULL_NAME%echo .goto End:impInitset REVERT_TODAY_LOG=%BACKUP_DIR%\%BACK_NAME%\implogset /p REVERT_PATH=please input revert path;enter default path[%BACKUP_DIR%\%BACK_NAME%\dmp]:if "%REVERT_PATH%" equ "" ( set REVERT_PATH=%BACKUP_DIR%\%BACK_NAME%\dmp)if not exist %REVERT_TODAY_LOG% mkdir %REVERT_TODAY_LOG%call :queryUserREM imp tools:ISTEP1:: user1set ORACLE_USERNAME=user1goto impData:ISTEP2:: user2set ORACLE_USERNAME=user2goto impData:ISTEP3:: user3set ORACLE_USERNAME=user3goto impData:ISTEP4:: user4set ORACLE_USERNAME=user4goto impData:ISTEP5:: user5set ORACLE_USERNAME=user5goto impData:ISTEP6:: user6set ORACLE_USERNAME=user6goto impData:ISTEP7:: user7set ORACLE_USERNAME=user7goto impData:ISTEP8:: user8set ORACLE_USERNAME=user8goto impData:ISTEP9goto impLastOperation:impDataREM ORACLE_DB%_%TODAY%_bat_imp.logtype "%BACKUP_DIR%"\select_orcl_user.log | findstr /i "%ORACLE_USERNAME%" >nulif %errorlevel%==0 ( set USER_EXISTS=1 ) else (set USER_EXISTS=0)if %USER_EXISTS%==1 (echo ==================开始还原%ORACLE_HOST%服务器 %ORACLE_USERNAME%数据=================echo ==================开始还原%ORACLE_HOST%服务器 %ORACLE_USERNAME%数据================= >>%ORACLE_DB%_%TODAY%_bat_imp.logecho 当前的时间是: %DATE% %time% echo 当前的时间是: %DATE% %time% >>%ORACLE_DB%_%TODAY%_bat_imp.logimp %ORACLE_USERNAME%/%ORACLE_PASSWORD%@//%ORACLE_HOST%:%ORACLE_PORT%/%ORACLE_DB% full=y buffer=64000 file=%REVERT_PATH%\%ORACLE_USERNAME%.dmp rows=Y ignore=Y log=%REVERT_TODAY_LOG%\%ORACLE_USERNAME%_imp.logecho ==================还原%ORACLE_HOST%服务器 %ORACLE_USERNAME%数据完成=================echo ==================还原%ORACLE_HOST%服务器 %ORACLE_USERNAME%数据完成================= >>%ORACLE_DB%_%TODAY%_bat_imp.log) else (echo %ORACLE_HOST%服务器 %ORACLE_USERNAME%用户不存在echo %ORACLE_HOST%服务器 %ORACLE_USERNAME%用户不存在 >>%ORACLE_DB%_%TODAY%_bat_imp.log)set /a num=%num%+1goto ISTEP%num%:impLastOperationecho .echo 还原完成! echo 还原完成! >>%ORACLE_DB%_%TODAY%_bat_imp.logecho 当前的时间是: %DATE% %time% >>%ORACLE_DB%_%TODAY%_bat_imp.logecho %ORACLE_DB%_%TODAY%_bat_imp.log %BACKUP_DIR%\%BACK_NAME%move %ORACLE_DB%_%TODAY%_bat_imp.log %BACKUP_DIR%\%BACK_NAME%echo .goto End:queryUser@echo offecho set linesize 500;>>select_orcl_user.sqlecho show user;>>select_orcl_user.sqlecho SELECT USERNAME FROM ALL_USERS;>>select_orcl_user.sqlecho exit;>>select_orcl_user.sqlsqlplus "%DBUSER_SYSTEM%/%SYSTEM_PWD%@//%ORACLE_HOST%:%ORACLE_PORT%/%ORACLE_DB%" @"%BACKUP_DIR%"\select_orcl_user.sql >select_orcl_user.logif %chs% EQU 1 goto ESTEP1if %chs% EQU 2 goto ISTEP1:checkIpif "%4"=="" goto failfor %%i in (%1 %2 %3 %4) do ( if %%i gtr 255 goto fail)goto port:failset invalidIP=1goto doit:ENDecho.endlocaldel /f/q "%BACKUP_DIR%"\select_orcl_user.sqldel /f/q "%BACKUP_DIR%"\select_orcl_user.logpauseexit
- oracle导入导出--批处理
- 通过批处理来完成oracle的数据导入导出及备份工作
- 大批量快速导入导出数据[SqlServer+批处理]
- 导出导入oracle数据库
- Oracle导入导出方法
- oracle导入导出
- Oracle--导入导出数据管理
- Oracle数据导入导出
- Oracle导入导出详解
- oracle导入导出问题
- oracle导入导出命令
- Oracle数据库导入导出
- oracle 导入/导出
- oracle导入导出命令
- Oracle数据导入导出
- ORACLE导入导出
- ORACLE导入导出参数
- ORACLE 数据库导入导出
- 关于ActionScript中那些你不知道的事情
- input file 赋值方法
- Silverlight 学习——重写DatePicker
- linux下删除某一时间段的文件
- J2EE到底是什么?
- oracle导入导出--批处理
- 从GridView中导出全部页数据示例
- ResolveUrl() 和 ResolveClientUrl()
- c# 树状视图(TreeView类)
- 在asp.net中对url地址统一编码的示例
- java代码缺陷自动分析工具之FindBugs介绍
- 网络热身赛 Gary's Calculator 哈工大oj上的1314题
- 在C#得到指定日期所在周的第一天与最后一天的方法
- VC++ 读取新浪证券行情接口(Level 1行情)