Oracle自动备份数据库的三种方式_第1页
Oracle自动备份数据库的三种方式_第2页
Oracle自动备份数据库的三种方式_第3页
Oracle自动备份数据库的三种方式_第4页
Oracle自动备份数据库的三种方式_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、很多时候我们都需要Oracle自动备份,下面就为您详细介绍Oracle自动备份的三种方法,供您参考,如果您对Oracle备份方面感兴趣的话,不妨一看。Oracle自动备份数据库不外乎以下三种方式WINDOWS下的任务计划(At命令) UNIX下的Crontab 第三方工具如Viritas在以上三种方式中Viritas属于第三方工具,很多人可能都没有接触,主要说一下windows的任务计划与unix的cron1、生成脚本文件,如backup.rcv 假定文件内容如下:$>cat backup.rcv   connect targe

2、t sys/password rcvcat rman/rmanlocalname;   run   allocate channel c1 type disk;   allocate channel c2 type disk;   allocate channel c3 type disk;   backup fileaperset

3、60;3 format /u01/oradata/backup/arch%u_%s_%p    archivelog all delete input;   release channel c1;   release channel c2;   release channel c3;      2、生成执行文件在windows上生成backup_archiv

4、e.bat,内容包括rman cmdfile = backup.rcv 在unix下生成 backup_archive.sh,内容包括oracle/ramn/rman cmdfile = backup.rcv3、加入调度在windows中用任务计划向导即可,或使用at命令。在unix中,在目标机器上编写一个文件,用以启动Oracle自动备份进程。假定文件名为ORACLE,文件将放在/var/spool/cron/crontabs目录下 $>cat oracle 0 23 * * 0 backup_archive.sh #表示星期天23点对数据库备份 

5、;0 12,18 * * * backup_archive.sh     #表示每天12点,18点备份 Crontab文件的每一行由六个域(minutes,hours,day of month,month,day of week,command)组成,域之间用空格或Tab分隔开来oracle备份命令使用实例oracle备份命令用于oracle备份及恢复,下面就为您详细介绍如何使用oracle备份命令实现oracle备份的过程,希望可以让您对oracle备份命令有更深的认识。导出 EXP USER/PASSWORDODBC FILE=C:*.DM

6、P ROWS=N /不保存数据; 导出 EXP USER/PASSWORDODBC FILE=C:*.DMP   /保存数据; 导出 EXP USER/PASSWORDODBC FILE=C:*.DMP full=y /全部导出;导入 imp user/passwordodbc file=c:*.dmp full=y ignore=y;Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个

7、相同的数据库,一个用来测试,一个用来正式使用。执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行, DOS中可以执行时由于 在oracle 8i 中 安装目录ora81BIN被设置为全局路径, 该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。 oracle用java编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。 SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导出功能。下面介绍的是导入导出的实例。 数据导出: 1 将数据库TES

8、T完全导出,用户名system 密码manager 导出到D:daochu.dmp中    exp system/managerTEST file=d:daochu.dmp full=y 2 将数据库中system用户与sys用户的表导出    exp system/managerTEST file=d:daochu.dmp owner=(system,sys) 3 将数据库中的表inner_notify、notify_staff_relat导出     exp aichan

9、nel/aichannelTESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)4 将数据库中的表table1中的字段filed1以"00"打头的数据导出    exp system/managerTEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'"上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。 

10、;也可以在上面命令后面 加上 compress=y 来实现。数据的导入 1 将D:daochu.dmp 中的数据导入 TEST数据库中。    imp system/managerTEST file=d:daochu.dmp    imp aichannel/aichannelHUST full=y file=file= d:datanewsmgnt.dmp ignore=y    上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。    在后

11、面加上 ignore=y 就可以了。 2 将d:daochu.dmp中的表table1 导入 imp system/managerTEST file=d:daochu.dmp tables=(table1)基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。注意: 操作者要有足够的权限,权限不够它会提示。 数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。因项目需要,要整出个每天自动备份Oracle数据库的脚本,在参考了网上的相关资料,结合Windows自带的任务计划功能,基本能满足需求。相关代码如下:jav

12、a view plaincopyecho off  REM #  REM # Windows Server 2003下Oracle数据库自动备份批处理脚本  REM #  REM 取当前系统时间,可能因操作系统不同而取值不一样  set CURDATE=%date:0,4%date:5,2%date:8,2%  set CURTIME=%time:0,2% 

13、 REM 小时数如果小于10,则在前面补0  if "%CURTIME%"=" 0" set CURTIME=00  if "%CURTIME%"=" 1" set CURTIME=01  if "%CURTIME%"=" 2" set CURTIME=02  

14、;if "%CURTIME%"=" 3" set CURTIME=03  if "%CURTIME%"=" 4" set CURTIME=04  if "%CURTIME%"=" 5" set CURTIME=05  if "%CURTIME%"=" 

15、;6" set CURTIME=06  if "%CURTIME%"=" 7" set CURTIME=07  if "%CURTIME%"=" 8" set CURTIME=08  if "%CURTIME%"=" 9" set CURTIME=09 

16、60;set CURTIME=%CURTIME%time:3,2%time:6,2%  REM 设置所有者、用户名和密码  set OWNER=DBUSER  set USER=DBUSER  set PASSWORD=DBPWD  REM 创建备份用目录,目录结构为backup/YYYYMMDD/  if not exist "backup"  

17、                   mkdir backup  if not exist "backup/%CURDATE%/"          mkdir backup/%CURDATE%/  

18、set CURDIR=backup/%CURDATE%  set FILENAME=%CURDIR%/%OWNER%_%CURDATE%_%CURTIME%.DMP  set EXPLOG=%CURDIR%/%OWNER%_%CURDATE%_%CURTIME%_log.log  REM 调用ORACLE的exp命令导出用户数据  exp %USER%/%PASSWORD%DBSample file=%FILENAME% log=%EXPLOG% owner=%OWNER% grants=n  exit   其中,%USER%/%PASSWORD%DBSample中的DBSample为连接数据库的实例名称;grants=n表示导出数据时不导出对表/视图/序列/角色的授权然后再结合Windows自带的“任务计划”,设置于每天夜里1点钟或其他时间自动运行,便可达到每天自动备份指定数据库的目的了!附相关代码知识点:1、echo off:DOS在运行批处理时,会依次执行批处理中的每条命令,并且会在显示器上显示,如果你不想让它们显示,可以加一个“echo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论