求ORACLE数据库的备份与恢复方法或命令,另外各位我还想问一下trim这个函数是干什么用的?谢谢!!!

解决方案 »

  1.   

    http://www.oradb.net/expimp/expimp_011.htm
    http://www.macro-base.com/zxjs/wenzhang2.htmtrim一般用来去除空格。
      

  2.   

    exp/imp 好用!trim用来剔除字符
      

  3.   

    trim默认操作是去掉空格,但它作用其实还多,大家只认识它是作去掉空格,呵呵
      

  4.   

    dos 下 导出表数据
    exp username/password@sid file=filename.dmp owner=username
    导入表数据
    imp username/password@sid file=filename.dmp full=y owner=username
    具体参数参照帮助
    trim一般就是用来去掉空格
      

  5.   

    EXP导出成功,IMP导入也成功,但导入后什么也没看到,请问这是怎么回事?
      

  6.   

    你可以RMAN来进来增量备份,
    还有一种办法,你可以采取冷备份,就是吧数据库定时断开,把数据文件和日志文件备份
      

  7.   

    我采用了冷备份,把那些文件拷到另外一台机子上的Oracle相应目录下面,用SYS用户可以进去,但用普通用户就报错:ORA-01033:ORACLE intilization or shutdown in progress.请问各位高手该怎么办?
      

  8.   

    ORACLE备份的分类 简单的按照备份进行的方式,可以分为逻辑备份、冷备份(联机备份)、热备份(脱机备份),其实冷备份与热备份又可以合称为物理备份 按照备份的工具,可以分为EXP/IMP备份、OS拷贝、RMAN、第三方工具,如VERITAS 以下我们将从多个角度来说明以上的各种备份方式 1、EXP/IMP逻辑备份 导入/导出是ORACLE幸存的最古老的两个命令行工具了,其实我从来不认为Exp/Imp是一种好的备份方式,正确的说法是Exp/Imp只能是一个好的转储工具,特别是在小型数据库的转储,表空间的迁移,表的抽取,检测逻辑和物理冲突等中有不小的功劳。当然,我们也可以把它作为小型数据库的物理备份后的一个逻辑辅助备份,也是不错的建议。 对于越来越大的数据库,特别是TB级数据库和越来越多数据仓库的出现,EXP/IMP越来越力不从心了,这个时候,数据库的备份都转向了RMAN和第三方工具。下面我们还是简要介绍一下EXP/IMP的使用。 i、使用方法 Exp parameter_name=value Or Exp parameter_name=(value1,value2……) 只要输入参数help=y就可以看到所有帮助 如: C:\>set nls_lang=simplified chinese_china.zhs16gbk C:\>exp -help Export: Release 8.1.6.0.0 - Production on 星期四 4月 10 19:09:21 2003 (c) Copyright 1999 Oracle Corporation. All rights reserved. 通过输入 EXP 命令和用户名/口令,您可以 在用户 / 口令之后的命令: 实例: EXP SCOTT/TIGER 或者,您也可以通过输入跟有各种参数的 EXP 命令来控制“导出” 的运行方式。要指定参数,您可以使用关键字: 格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN) 实例: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR) 或 TABLES=(T1: P1,T1: P2),如果 T1 是分区表 USERID 必须是命令行中的第一个参数。 关键字 说明(默认) 关键字 说明(默认) -------------------------------------------------------------------------- USERID 用户名/口令 FULL 导出整个文件 (N) BUFFER 数据缓冲区的大小 OWNER 所有者用户名列表 FILE 输出文件 (EXPDAT.DMP) TABLES 表名列表 COMPRESS 导入一个范围 (Y) RECORDLENGTH IO 记录的长度 GRANTS 导出权限 (Y) INCTYPE 增量导出类型 INDEXES 导出索引 (Y) RECORD 跟踪增量导出 (Y) ROWS 导出数据行 (Y) PARFILE 参数文件名 CONSTRAINTS 导出限制 (Y) CONSISTENT 交叉表一致性 LOG 屏幕输出的日志文件 STATISTICS 分析对象 (ESTIMATE) DIRECT 直接路径 (N) TRIGGERS 导出触发器 (Y) FEEDBACK 显示每 x 行 (0) 的进度 FILESIZE 各转储文件的最大尺寸 QUERY 选定导出表子集的子句 下列关键字仅用于可传输的表空间 TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N) TABLESPACES 将传输的表空间列表 在没有警告的情况下成功终止导出。 C:\> 帮助已经很详细的说明了参数的意义和使用方法,并列举了几个简单的例子,注意的是,从8i开始,已经开始支持数据子集的方法,就是可以指定自己的Where条件,可以从表中导出一行或多行数据。 注意上面的set nls_lang=simplified chinese_china.zhs16gbk,通过设置环境变量,可以让exp的帮助以中文显示,如果set nls_lang=American_america.字符集,那么你的帮助就是英文的了。 增量和累计导出必须在全库方式下才有效,而且,大多数情况下,增量和累计导出并没有想象中的那么有效。ORACLE从9i开始,不再支持增量导出和累计导出。 ii、表空间传输 表空间传输是8i新增加的一种快速在数据库间移动数据的一种办法,是把一个数据库上的格式数据文件附加到另外一个数据库中,而不是把数据导出成Dmp文件,这在有些时候是非常管用的,因为传输表空间移动数据就象复制文件一样快。 关于传输表空间有一些规则,即: ·源数据库和目标数据库必须运行在相同的硬件平台上。 ·源数据库与目标数据库必须使用相同的字符集。 ·源数据库与目标数据库一定要有相同大小的数据块 ·目标数据库不能有与迁移表空间同名的表空间 ·SYS的对象不能迁移 ·必须传输自包含的对象集 ·有一些对象,如物化视图,基于函数的索引等不能被传输 可以用以下的方法来检测一个表空间或一套表空间是否符合传输标准: exec sys.dbms_tts.transport_set_check(‘tablespace_name’,true); select * from sys.transport_set_violation; 如果没有行选择,表示该表空间只包含表数据,并且是自包含的。对于有些非自包含的表空间,如数据表空间和索引表空间,可以一起传输。 以下为简要使用步骤,如果想参考详细使用方法,也可以参考ORACLE联机帮助。 a.设置表空间为只读(假定表空间名字为APP_Data 和APP_Index) alter tablespace app_data read only; alter tablespace app_index read only; b.发出EXP命令 SQL>host exp userid=”””sys/password as sysdba””” transport_tablespace=y tablespace=(app_data, app_index) 以上需要注意的是 ·为了在SQL中执行EXP,USERID必须用三个引号,在UNIX中也必须注意避免“/”的使用 ·在816和以后,必须使用sysdba才能操作 ·这个命令在SQL中必须放置在一行(这里是因为显示问题放在了两行)   c.拷贝数据文件到另一个地点,即目标数据库    可以是cp(unix)或copy(windows)或通过ftp传输文件(一定要在bin方式)   d.把本地的表空间设置为读写   e.在目标数据库附加该数据文件 imp file=expdat.dmp userid=”””sys/password as sysdba”””     transport_tablespace=y     “datafile=(c:\temp\app_data,c:\temp\app_index)” f.设置目标数据库表空间为读写 alter tablespace app_data read write;    alter tablespace app_index read write; iii、导出/导入与字符集 明白ORACLE的多国语言设置,ORACLE多国语言设置是为了支持世界范围的语言与字符集,一般对语言提示,货币形式,排序方式和CHAR,VARCHAR2,CLOB,LONG字段的数据的显示等有效。ORACLE的多国语言设置最主要的两个特性就是国家语言设置与字符集设置,国家语言设置决定了界面或提示使用的语言种类,字符集决定了数据库保存与字符集有关数据(如文本)时候的编码规则。正如刚才上面的一个小例子,环境变量NLS_LANG的不同,导致EXP帮助发生变化,这就是多国语言设置的作用(NLS_LANG包含国家语言设置与字符集设置,这里起作用的是国家语言设置,而不是字符集)。 ORACLE字符集设定,分为数据库字符集和客户端字符集环境设置。在数据库端,字符集在创建数据库的时候设定,并保存在数据库props$表中,对于8i以上产品,已经可以采用“Alter database character set 字符集”来修改数据库的字符集,但也仅仅是从子集到超集,不要通过update props$来修改字符集,如果是不支持的转换,可能会失去所有与字符集有关的数据,就是支持的转换,也可能导致数据库的不正常工作。字符集分为单字节字符集与多字节字符集,US7ASCII就是典型的单字节字符集,在这种字符集中length=lengthb,而ZHS16GBK就是常用的双字节字符集,在这里lengthb=2*length。 在客户端的字符集环境比较简单,主要就是环境变量或注册表项NLS_LANG,注意NLS_LANG的优先级别为:参数文件à注册表à环境变量àalter session。NLS_LANG的组成为“国家语言设置.字符集”,如nls_lang=simplified chinese_china.zhs16gbk。客户端的字符集最好与数据库端一样(国家语言设置可以不一样,如zhs16gbk的字符集,客户端可以是nls_lang =simplified chinese_china.zhs16gbk或Ameircan_America.zhs16gbk,都不影响数据库字符的正常显示),如果字符集不一样,而且字符集的转换也不兼容,那么客户端的数据显示与导出/导入的与字符集有关的数据将都是乱码。 使用一点点技巧,就可以使导出/导入在不同的字符集的数据库上转换数据。这里需要一个2进制文件编辑工具即可,如uedit32。用编辑方式打开导出的dmp文件,获取2、3字节的内容,如00 01,先把它转换为10进制数,为1,使用函数NLS_CHARSET_NAME即可获得该字符集: SQL> select nls_charset_name(1) from dual; NLS_CHARSET_NAME(1) ------------------- US7ASCII 可以知道该dmp文件的字符集为US7ASCII,如果需要把该dmp文件的字符集换成ZHS16GBK,则需要用NLS_CHARSET_ID获取该字符集的编号: SQL> select nls_charset_id('zhs16gbk') from dual; NLS_CHARSET_ID('ZHS16GBK') --------------------------              852 把852换成16进制数,为354,把2、3字节的00 01换成03 54,即完成了把该dmp文件字符集从us7ascii到zhs16gbk的转化,这样,再把该dmp文件导入到zhs16gbk字符集的数据库就可以了。(注意,十进制数与十六进制之间的转换,想明白其中的道理) Iv、跨版本使用Exp/Imp Exp/Imp很多时候,可以跨版本使用,如在版本7与版本8之间导出导入数据,但这样做必须选择正确的版本,规则为: ·总是使用IMP的版本匹配数据库的版本,如果要导入到816,则使用816的导入工具。 ·总是使用EXP的版本匹配两个数据库中低的那个版本,如在815与816之间互导,则使用815的EXP工具。 
      

  9.   

    2、OS备份 操作系统备份有两类,冷备份(Cold backup)与热备份(Hot backup),操作系统备份与以上的逻辑备份有本质的区别。逻辑备份提取数据库的数据内容,而不备份物理数据块。而操作系统备份则是拷贝整个的数据文件。 i、冷备份 在文件级备份开始前数据库必须彻底关闭。关闭操作必须用带有normal、immediate、transaction选项的shutdown来执行。 数据库使用的每个文件都被备份下来,这些文件包括:    ☆所有数据文件    ☆所有控制文件    ☆所有联机REDO LOG 文件    ☆INIT.ORA文件(可选)    作冷备份一般步骤是:       a.正常关闭要备份的实例(instance);       b.备份整个数据库到一个目录 c.启动数据库 如            SVRMGRL>connect internal            SVRMGRL >shutdown immediate            SVRMGRL >! cp <file> <backup directory>            或            SVRMGRL >!tar cvf /dev/rmt/0 /u01/oradata/prod            SVRMGRL >startup   注意:如果利用脚本对数据库进行冷备份,必须对关闭数据库的命令进行逻辑检查,如果发生关闭数据库的命令不能正常执行而导致数据库没有正常关闭,那么,所有的冷备份将回是无效的。 ii、热备份 热备份是当数据库打开并对用户有效是的OS级的数据备份。热备份只能用于ARCHIVELOG方式的数据库。在数据文件备份之前,对应的表空间必须通过使用ALTER TABLESPACE …… BEGIN BACKUP以备份方式放置。然后组成表空间的数据文件可以使用类似冷备份的操作系统命令进行拷贝。在数据文件用操作系统命令拷贝后,应使用ALTER TABLESPACE …… END BACKUP命令使表空间脱离热备份方式。 热备份没有必要备份联机日志,但必须是归档状态,在实例恢复的时候,可能需要用到归档日志。当前联机日志一定要保护好或是处于镜相状态,当前联机日志的损坏,对于数据库的损坏是巨大的,只能以数据的丢失来进行数据库的恢复工作。 对于临时表空间,存放的是临时信息,在热备份是也可以考虑不用备份,如果临时文件发生故障,可以删除该数据文件与表空间,重建一个临时表空间。 热备份的优点是显而易见的 ---- a.可在表空间或数据文件级备份,备份时间短。 ---- b.备份时数据库仍可使用。 ---- c.可达到秒级恢复(恢复到某一时间点上)。 ---- d.可对几乎所有数据库实体作恢复。 ---- e.恢复是快速的,在大多数情况下在数据库仍工作时恢复。 操作系统作热备份的一般步骤为: ①连接数据库 SVRMGRL>connect internal; ②将需要备份的表空间(如User)设置为备份方式 SVRMGRL>Alter tablespace User begin backup; ③拷贝数据文件 SVRMGRL>!cp /u01/oradata/prod/user01.ora /backup/prod/user01.ora Or $cp cp /u01/oradata/prod/user01.ora /backup/prod/user01.ora ④在数据文件拷贝完成后,将表空间拖体备份方式 SVRMGRL>Alter tablespace User end backup; ⑤对所有需要备份的表空间重复2,3,4 ⑥使用如下的命令备份控制文件ALTER DATABSE …… BACKUP CONTROLFILE 如备份成二进制文件 alter database backup controlfile to ‘new fielname’; 备份成文本文件 alter database backup controlfile to trace; 因为热备份的时候,用户还在操作数据库,所以,最好是每个表空间处于备份状态的时间最短,这样就要求一个表空间一个表空间的备份,不要一起使表空间处于备份状态而同时拷贝数据文件。   注意:如果在热备份的时候如果数据库中断(如断电),那么在重新启动数据库的时候,数据库将提示有数据文件需要恢复,你需要把正在断电时候的处于备份状态的数据文件通过ALTER TABLESPACE …… END BACKUP结束备份方式。具体哪个数据文件或表空间处于备份状态,可以通过v$backup与v$datafile来获得。 3、RMAN(备份与恢复管理器) i.使用RMAN进行备份 Recovery manager(RMAN)是ORACLE提供的DBA工具,用语管理备份和恢复操作。RMAN只能用于ORACLE8或更高的版本中。它能够备份整个数据库或数据库部件,其中包括表空间、数据文件,控制文件和归档文件。RMAN可以按要求存取和执行备份和恢复。 RMAN备份有如下优点 ☆支持在线热备份 ☆支持多级增量备份 ☆支持并行备份、恢复 ☆减少所需要备份量 ☆备份、恢复使用简单   重要的是,使用恢复管理器允许您进行增量数据块级的备份(这个与导出/导入的增量截然不同)。增量RMAN备份是时间和空间有效的,因为他们只备份自上次备份以来有变化的那些数据块。另一个空间有效的RMAN特性是它只备份数据文件中使用的数据块,忽略空的,未用的数据块,这个对于预分配空间的表空间有很大的好处。 从9i开始,还增加了RMAN的数据块级别的恢复,可以进一步减少数据库恢复时间。 RMAN支持以下不同类型的备份 FULL 数据库全备份,包括所有的数据块 INCREMENTAL 增量备份,只备份自上次增量备份以来修改过的数据块。需要一个0级的增量作为增量的基础,可以支持7级增量。 OPEN 在数据库打开的时候使用 CLOSED 在数据库安装(MOUNT)但不打开的时候备份,关闭备份可以是CONSISTENT或IN CONSISTENT类型的。 CONSISTENT 在数据库安装,单不打开,并且在安装之前数据库被彻底关闭(而不是被破坏或异常退出)时使用。CONSISTENT备份可以简单的进行复原(RESTORE)而不是恢复(RECOVER) INCONSISTENT 在数据库打开或安装(但不打开)时使用。在该数据库正常关闭或崩溃后,INCONSISTENT备份需要恢复。 理解BACKUP,RESTORE,RECOVER命令,这是RMAN最基本的三个命令,可以进行数据库的备份,复原以及恢复操作。   理解恢复目录,RMAN可以在没有恢复目录(NOCATALOG)下运行,这个时候备份信息保存在控制文件。保存在控制文件的备份信息是很危险的,如果控制文件的破坏将导致备份信息的丢失与恢复的失败,而且,没有恢复目录,很多RMAN的命令将不被支持。所以对于重要的数据库,建议创建恢复目录,恢复目录也是一个数据库,只不过这个数据库用来保存备份信息,一个恢复目录可以用来备份多个数据库。 创建RMAN目录,以下步骤说明了在一个数据库中尽力RMAN目录的过程。 a.为目录创建一个单独的表空间 SQL>Create tablespace tools datafile ‘fielname’ size 50m; b.创建RMAN用户 SQL>Create user RMAN identified by RMAN default tablespace tools temporary tablespace temp; c.给RMAN授予权限 SQL>Grant connect , resource , recovery_catalog_owner to rman; d.打开RMAN $>RMAN e.连接数据库 RMAN>connect catalog rman/rman f.创建恢复目录 RMAN>Create catalog tablespace rman 注册目标数据库,恢复目录创建成功后,就可以注册目标数据库了,目标数据库就是需要备份的数据库,一个恢复目录可以注册多个目标数据库,注册目标数据库的命令为:    $>RMAN target internal/password catalog rman/rman@rcdb; RMAN>Register database; 数据库注册完成,就可以用RMAN来进行备份了,更多命令请参考ORACLE联机手册或《ORACLE8i备份与恢复手册》。 RMAN使用脚本来备份数据库,以下是RMAN进行备份的几个例子。 a.备份整个数据库 backup full tag ‘basicdb’ format ‘/bak/oradata/full_%u_%s_%p’ database; b.备份一个表空间      backup tag ‘tsuser’ format ‘/bak/oradata/tsuser_%u_%s_%p’ tablespace users; c.备份归档日志 backup tag ‘alog’ format ‘/bak/archivebak/arcbak_%u_%s_%p’ archivelog all delete input; ii.维护RMAN RMAN的维护主要分为几个方面 1、 查看RMAN的信息           检查现有备份             RMAN>list backup           列出过期备份             RMAN>report obsolete           删除过期的备份             RMAN>allocate channel for maintenance type disk;             RMAN>change backupset id delete;             RMAN>release channel; 2、 同步或重置RMAN 如果目标数据库物理对象发生了变化,如添加了一个数据文件,需要用如下命令同步: RMAN>resync catalog; 如果目标数据库reset了数据库,需要用如下命令同步 RMAN>reset database; 当手工删除了数据库的归档文件后,要执行以下脚本同步 RMAN>allocate channel for maintenance type disk; RMAN> change archivelog all crosscheck; RMAN>release channel;           当手工删除了数据库的RMAN备份后,要执行以下脚本来同步               RMAN>allocate channel for maintenance type disk; RMAN>crosscheck backup; RMAN>delete expire backup; RMAN>release channel; 
      

  10.   

    四、定制恰当的备份策略 i.定制正确的策略 正确的备份策略不仅能保证数据库服务器的24*7的高性能的运行,还能保证备份与恢复的快速性与可靠性。我们将以RMAN的多级增量备份作为一个备份策略的例子来讨论。采用多级备份就是为了减少每天备份所需要的时间,而又保证系统有良好的恢复性。恢复时间与备份时间要有一个权衡。比如只要进行一个数据库的全备份,然后就只备份归档也可以保证能把数据库恢复到最新的状态,但是这样的恢复时间将是不可容忍的。多级备份也正是 为了解决这种问题,以下就是一个多级备份的例子: 每半年做一个数据库的全备份(包括所有的数据和只读表空间) 每一个月做一次零级备份(不包含只读表空间) 每个星期做一次一级备份 每天做一次二级备份 任何数据库的更改需要重新同步CATALOG目录并重新备份(如添加数据文件)或重新备份(如修改表空间为只读) 每次备份后都可以备份归档日志或定期备份归档日志。 如果可能,可以直接备份到磁带上。 数据库全备份的脚本 run{ allocate channel c1 type disk; allocate channel c2 type disk; allocate channel c3 type disk; backup full tag ‘dbfull’ format ‘/u01/oradata/backup/full%u_%s_%p’ database include current controlfile; sql ‘alter system archive log current’; backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’ archivelog all delete input; #备份归档可选,可以单独定期备份 release channel c1; release channel c2; release channel c3; } 零级备份的脚本 run{ allocate channel c1 type disk; allocate channel c2 type disk; allocate channel c3 type disk; backup incremental level 0 tag ‘db0’ format ‘/u01/oradata/backup/db0%u_%s_%p’ database skip readonly; sql ‘alter system archive log current’; backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’ archivelog all delete input; #备份归档可选,可以单独定期备份 release channel c1; release channel c2; release channel c3; } 同理,我们可以得到一级备份,二级备份的脚本,如一级备份的脚本 run{ allocate channel c1 type disk; allocate channel c2 type disk; allocate channel c3 type disk; backup incremental level 1 tag ‘db1’ format ‘/u01/oradata/backup/db1%u_%s_%p’ database skip readonly; sql ‘alter system archive log current’; backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’ archivelog all delete input; #备份归档可选,可以单独定期备份 release channel c1; release channel c2; release channel c3; } 如果按照以上备份策略,则每天的所需要备份的数据量只有一天的改变量。而做恢复时最多要恢复当月的一个零级备份+三个一级备份+6个二级备份+当天的归档文件。如果不能接受这样的恢复时间,可以减少零级备份之间的时间间隔。    在每次备份后,原则上在该备份点之前的归档日志就可以删除掉了,但是为了进一步的安全以及日后需要(如使用LOGMNR查找所需信息),建议有条件的话,归档日志保存一年,可以保存在磁带等廉价存取设备上。 ii.与RMAN备份有关的优化 备份操作主要是完成以下三个步骤 1、从磁盘上读取数据 2、在内存中处理数据块 3、写入数据到磁盘或磁带 以上的读写操作可以同步或异步的完成,在同步I/O操作中,一个时间只允许有一个IO操作,但是在异步I/O操作中,一个时间允许有多个IO操作。因此,备份与恢复的调优主要集中在以下几个方面: 1、 提高同步或异步I/O操作能力 在支持异步操作的操作系统上,可以通过设置TAPE_AYSNCH_IO,DISK_ASYNCH_IO和BACKUP_TYPE_IO_SLAVES来支持异步操作,提高写的能力。 2、 提高磁盘读能力 可以在backup命令后通过设置DISKRATIO来保证从多个磁盘上读取数据,保证连续的数据流。 3、 正确设置缓冲区与参数值 设置LARGE_POOL_SIZE,使备份可以使用连续的缓冲池,通过设置DB_FIL_DIRECT_IO_COUNT可以提高缓冲区的利用。如果使用磁带备份,还可以设置BACKUP_TYPE_IO_SLAVES来提高磁带的写能力。 4、 采用并行备份 开辟多个通道,可以实现并行备份与恢复 iii.备份RMAN数据库 RMAN自己的数据库也需要备份,但是本身很小,而且不是经常发生变化,所以在每次RMAN备份完成后,都可以用如下脚本对RMAN数据库备份。 EXP pafile =exprman.sql exprman.sql为 USERID=RMAN/RMAN BUFFER=32768 OWNER=RMAN FILE=RMAN.DMP ROWS=Y GRANTS=Y COMPRESS=Y CONSISTENT=Y iv.使自动备份数据库 自动备份数据库不外乎以下三种方式    WINDOWS下的任务计划(At命令)    UNIX下的Crontab    第三方工具如Viritas 在以上三种方式中Viritas属于第三方工具,很多人可能都没有接触,主要说一下windows的任务计划与unix的cron 1、生成脚本文件,如backup.rcv 假定文件内容如下: $>cat backup.rcv connect target sys/password rcvcat rman/rman@localname; run{ allocate channel c1 type disk; allocate channel c2 type disk; allocate channel c3 type disk; backup fileaperset 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_archive.bat,内容包括 rman cmdfile = backup.rcv 在unix下生成 backup_archive.sh,内容包括 /oracle/ramn/rman cmdfile = backup.rcv 3、加入调度 在windows中用任务计划向导即可,或使用at命令。 在unix中,在目标机器上编写一个文件,用以启动自动备份进程。假定文件名为ORACLE,文件将放在/var/spool/cron/crontabs目录下 $>cat oracle 0 23 * * 0 backup_archive.sh #表示星期天23点对数据库备份 0 12,18 * * * backup_archive.sh    #表示每天12点,18点备份 Crontab文件的每一行由六个域(minutes,hours,day of month,month,day of week,command)组成,域之间用空格或Tab分隔开来 
      

  11.   

    http://search.csdn.net/expert/topic/61/6103/2003/4/21/1687966.xml
      

  12.   

    数据备份不论何种方式,数据库的备份即为data file/control file/redo file此三种文件的备份。
    1、exp/imp的备份方式
    2、脱机备份方式(offline backup)
    3、联机备份方式(online backup)
    4、standy的运行模式
    1、exp/imp的备份方式
    (1)命令方式
    可以在online的环境下进行。(2)OEM方式
    利用导出备份向导进行导出。2、脱机备份方式(offline backup)
    复制相关的文件即可。
    (1)关闭数据库;
    (2)复制文件,datafile/control file/redo log file;
    (3)打开数据库。3、联机备份方式(online backup)
    条件:
    (1)数据库不能关闭;
    (2)数据库必需处于归档模式(archive mode),即redo log file记录满后,把完整的redo log file保存
    在磁盘上;让数据处于archive mode的方法:
    (1)设置archive mode;
    在initorcl.ora文件中设置如下参数:
    #启动arch背景的处理程序
    log_archive_start=true
    #设置archive log file的存放地方
    log_archive_dest=/home/oradata/orcl/archive
    #设置脱机事务日志的文件名
    log_archive_format=-s%.arc
    (2)mount状态下设置archive mode,打开数据库;
    startup mount pfile=initorcl.ora;
    alter database archivelog;
    alter database open;联机备份方法一
    (1)设置tablespace为backup mode;
    alter tablespace tablespace_name begin backup;
    (2)复制相关的数据表
    copy sourcefile destfile
    (3)恢复tablespace到正常状态
    alter tablespace tablespace_name end backup;
    (4)backup control file
    alter database backup controlfile to 'control.bk'
    (5)copy redo log file4、standy的运行模式
    此模式为主从服务器备份模式。
    方法:
    (1)准备备份主机
    (2)主要数据库的备份
    方法如下:
    a、full offline backup
    b、online backup
    c、备份数据库的control file
    alter database backup standby controlfile as 'filename'
    (3)确定主要机器是处于archivelog mode
    操作方法如3所示。
    (4)从主要机器将backup datafiles / control file复制到备份主机。
    复制的文件如下:
    a、control file
    b、backup datafiles;
    c、archived redo logs
    d、onlie redo logs
    e、initialization file
    (5)设置主要机器的initialization parameters
    (6)设置备份主机的initialization parameters
    ?????
    可能与(5)设置有所不同。
    (7)打开备份主机数据库
    a、在nomount状态下打开数据库,然后alter启动standby机器
    start nomount pfile=initstandby.ora;
    alter database mount standby database;
    b、standby mode 下启动后,表示备份机器已经能够接受primary数据库的archive redo log,可用ftp或oracle
    提供的方法由oracle自动取得数据。
    (8)启动备份数据库
    alter database recover managed standby database;数据恢复1、脱机备份的恢复(会丢失数据)
    (1)确定数据库关闭
    (2)复制相关备份文件到相关位置(control file,redo log file,datafiles)
    (3)启动数据库
    2、archive mode恢复
    (1)complete recovery
    a、关闭数据库;
    shutdown;
    b、在mount阶段打开数据库
    startup mount;
    c、进行数据库恢复
    set autorecovery on;
    recover database;
    d、完成recovery后,打开数据库
    alter database open;
    (2)对单一文件或数据表recovery;
    a、让需要恢复的tablespace脱机
    alter tablespace appdata offline immediate;
    b、用好的备份文件取代损坏文件
    c、确定要恢复的archive log file存在
    d、开始recovery;
    recover tablespace appdata;
    recover datafile 'user01.dbf';
    e、完成后,alter让tablespace联机
    alter tablespace appdata online;(3)incomplete recovery
    如果事务日志文件损坏,则要注意datafiles and control file记录的log sequence number是不相同的,则为不完全恢复。
    mount阶段要把log sequence number置为1,这样数据库才能打开。使用cancel恢复到某一时间点
    a、mount打开数据库
    startup mount;
    b、恢复
    recover database until cancel;
    c、完成之后,打开数据库(open mode),重新设置control file and datafiles的log sequence number的设置为1;
    alter database open resetlogs;
    使用指定时间
    a、mount打开数据库
    startup mount;
    b、恢复
    recover database until time '2001-09-10:18:00:00';
    c、完成之后,打开数据库(open mode),重新设置control file and datafiles的log sequence number的设置为1;
    alter database open resetlogs;
      

  13.   

    beckhambobo(beckham)长篇大论,还不如我的这个学习笔记实在
      

  14.   

    EXP/IMP对于备份恢复来说不好,个人认为EXP/IMP比较适合数据迁移