免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 13238 | 回复: 28
打印 上一主题 下一主题

Oralce备份与恢复【原】 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-11-27 00:32 |只看该作者 |倒序浏览
花了三天把看的东西总结了一下,各位有兴趣可以去看看,

   点击这里   

哪位有空可以把它贴到这里,如果大家有什么建议或者意见可以在Blog或者跟帖讨论,谢谢,偶困了,睡觉.........   

论坛徽章:
0
2 [报告]
发表于 2004-11-27 09:01 |只看该作者

Oralce备份与恢复【原】

为了方便,等会还是我把它转出来算了,吃早餐先...............

论坛徽章:
0
3 [报告]
发表于 2004-11-27 09:19 |只看该作者

Oralce备份与恢复【原】

先DOWN下來看看。謝謝!

论坛徽章:
0
4 [报告]
发表于 2004-11-27 09:25 |只看该作者

Oralce备份与恢复【原】

===Blog里面的内容和这一样,但是要是不能看见图,只能去那边看了======

刻星期三, 十一月 24, 2004

Oracle备份与恢复

学习过程中的总结,有兴趣不妨看看,如果有不对的地方,高手不要留情!!

Oracle的备份与恢复有三种标准的模式,大致分为两大类,备份恢复(物理上的)以及导入导出(逻辑上的),而备份恢复又可以根据数据库的工作模式分为非归档模式(Nonarchivelog-style)和归档模式(Archivelog-style),通常,我们把非归档模式称为冷备份,而相应的把归档模式称为热备份,他们的关系如下所示



三种方式各有优点,我们做个比较(这个是用Fireworks画的,有点糙):





$A:   现在先来介绍一下逻辑备份方式的方法,利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。理论基础:Oracle提供的Export和Import具有三种不同的操作方式(就是备份的数据输出(入)类型):
        1,表方式(T)    可以将指定的表导出备份;

        2,全库方式(Full)    将数据库中的所有对象导出;

        3,用户方式(U)     可以将指定的用户相应的所有数据对象导出;

   *在导入导出备份方式中,提供了很强大的一种方法,就是增量导出/导入,但是它必须作为System来完成增量的导入导出,而且只能是对整个数据库进行实施。增量导出又可以分为三种类别:

        1,完全增量导出(Complete Export)     这种方式将把整个数据库文件导出备份;exp system/manager inctype=complete file=20041125.dmp(为了方便检索和事后的查询,通常我们将备份文件以日期或者其他有明确含义的字符命名)

        2,增量型增量导出(Incremental Export)     这种方式将只会备份上一次备份后改变的结果;exp system/manager inctype=incremental file=20041125.dmp

            3,累积型增量导出(Cumulate Export)      这种方式的话,是导出自上次完全增量导出后数据库变化的信息。exp system/manager inctype=cumulative file=20041125.dmp

  通常情况下,DBA们所要做的,就是按照企业指定或者是自己习惯的标准(如果是自己指定的标准,建议写好计划说明),一般,我们采用普遍认可的下面的方式进行每天的增量备份:

        Mon:  完全备份(A)
        Tue:  增量导出(B)
        Wed: 增量导出(C)
        Thu:  增量导出(D)
        Fri:   累计导出(E)
        Sat:  增量导出(F)
        Sun: 增量导出(G)

这样,我们可以保证每周数据的完整性,以及恢复时的快捷和最大限度的数据损失。恢复的时候,假设事故发生在周末,DBA可按这样的步骤来恢复数据库:
        第一步:用命令CREATE DATABASE重新生成数据库结构;
        第二步:创建一个足够大的附加回滚。
        第三步:完全增量导入A:
                    imp system/manager inctype=RESTORE FULL=y FILE=A
        第四步:累计增量导入E:
                    imp system/manager inctype=RESTORE FULL=Y FILE=E
        第五步:最近增量导入F:
                    imp system/manager inctype=RESTORE FULL=Y FILE=F

通常情况下,DBA所要做的导入导出备份就算完成,只要科学的按照规律作出备份,就可以将数据的损失降低到最小,提供更可靠的服务。另外,DBA最好对每次的备份做一个比较详细的说明文档,使得数据库的恢复更加可靠。

$B 物理备份之冷备份(条件-NonArchiveLog):

     当数据库可以暂时处于关闭状态时,我们需要将它在这一稳定时刻的数据相关文件转移到安全的区域,当数据库遭到破坏,再从安全区域将备份的数据库相关文件拷贝回原来的位置,这样,就完成了一次快捷安全等数据转移。由于是在数据库不提供服务的关闭状态,所以称为冷备份。冷备份具有很多优良特性,比如上面图中我们提到的,快速,方便,以及高效。一次完整的冷备份步骤应该是:

      1,首先关闭数据库(shutdown normal)

      2,拷贝相关文件到安全区域(利用操作系统命令拷贝数据库的所有的数据文件、日志文件、控制文件、参数文件、口令文件等(包括路径))

      3,重新启动数据库(startup)

      以上的步骤我们可以用一个脚本来完成操作:

      su – oracle <      sqlplus /nolog
      connect / as sysdba
      shutdown immediate;
      !cp 文件   备份位置(所有的日志、数据、控制及参数文件);
      startup;
      exit;
     这样,我们就完成了一次冷备份,请确定你对这些相应的目录(包括写入的目标文件夹)有相应的权限。

     恢复的时候,相对比较简单了,我们停掉数据库,将文件拷贝回相应位置,重启数据库就可以了,当然也可以用脚本来完成。

$C 物理备份之热备份:(条件-ArchiveLog)

      当我们需要做一个精度比较高的备份,而且我们的数据库不可能停掉(少许访问量)时,这个情况下,我们就需要归档方式下的备份,就是下面讨论的热备份。热备份可以非常精确的备份表空间级和用户级的数据,由于它是根据归档日志的时间轴来备份恢复的,理论上可以恢复到前一个操作,甚至就是前一秒的操作。具体步骤如下:

      1,通过视图v$database,查看数据库是否在Archive模式下:        SQL>; select log_mode from v$database;
             如果不是Archive模式

             则设定数据库运行于归档模式下:SQL>;shutdown immediate
               SQL>;startup mount
               SQL>; alter database archivelog;
               SQL>; alter database open;
             如果Automaticarchival显示为“Enabled”,则数据库归档方式为自动归档。否则需要手工归档,或者将归档方式修改为自动归档,如:
                      正常shutdown数据库,在参数文件中init.ora中加入如下参数
               SQL>;shutdown immediate
             修改init.ora:
               LOG_ARCHIVE_START=TRUE
               LOG_ARCHIVE_DEST1=ORACLE_HOME/admin/o816/arch(归档日值存放位置可以自己定义)
               SQL>;startup
             然后,重新启动数据库,此时Oracle数据库将以自动归档的方式工作在Archive模式下。其中参数LOG_ARCHIVE_DEST1是指定的归档日志文件的路径,建议与Oracle数据库文件存在不同的硬盘,一方面减少磁盘I/O竞争,另外一方面也可以避免数据库文件所在硬盘毁坏之后的文件丢失。归档路径也可以直接指定为磁带等其它物理存储设备,但可能要考虑读写速度、可写条件和性能等因素。      

            注意:当数据库处在ARCHIVE模式下时,一定要保证指定的归档路径可写,否则数据库就会挂起,直到能够归档所有归档信息后才可以使用。另外,为创建一个有效的备份,当数据库在创建时,必须履行一个全数据库的冷备份,就是说数据库需要运行在归档方式,然后正常关闭数据库,备份所有的数据库组成文件。这一备份是整个备份的基础,因为该备份提供了一个所有数据库文件的拷贝。(体现了冷备份与热备份的合作关系,以及强大的能力)

             2,备份表空间文件:

                  a,首先,修改表空间文件为备份模式  ALTER TABLESPACE tablespace_name BEGIN BACKUP;

                  b,然后,拷贝表空间文件到安全区域 !CP tablespace_name D_PATH;

                  c,最后,将表空间的备份模式关闭    ALTER TABLESPACE tablespace_name END BACKUP;

            3,对归档日志文件的备份:

                  停止归档进程-->;备份归档日志文件-->;启动归档进程

                 如果日志文档比较多,我们将它们写入一个文件成为一个恢复的参考:$   files `ls <归档文件路径>;/arch*.dbf`;export files

           4,备份控制文件:
                 SQL>; alter database backup controlfile to 'controlfile_back_name(一般用2004-11-20的方式)' reuse;

           当然,我们也可以将上面的东东写为一个脚本,在需要的时候执行就可以了:

              脚本范例:

                 su – oracle <      sqlplus /nolog
                 connect / as sysdba
                 ALTER TABLESPACE tablespace_name BEGIN BACKUP

                 !CP tablespace_name D_PATH

                 ALTER TABLESPACE tablespace_name END BACKUP
               

                 alter database backup controlfile to 'controlfile_back_name(一般用2004-11-20的方式)' reuse;

                 !files `ls <归档文件路径>;/arch*.dbf`;export files

                热备份的恢复,对于归档方式数据库的恢复要求不但有有效的日志备份还要求有一个在归档方式下作的有效的全库备份。归档备份在理论上可以无数据丢失,但是对于硬件以及操作人员的要求都比较高。在我们使用归档方式备份的时候,全库物理备份也是非常重要的。归档方式下数据库的恢复要求从全备份到失败点所有的日志都要完好无缺。
                恢复步骤:LOG_ARCHIVE_DEST_1
                               shutdown数据库。
                               将全备份的数据文件放到原来系统的目录中。
                               将全备份到失败点的所有归档日志放到参数LOG_ARCHIVE_DEST_1所指定的位置。
                               利用sqlplus登陆到空实例。(connect / as sysdba)
                               然后  startup mount
                                       set autorecovery on
                                       recover database;
                                       alter database open;

这样,我们的热恢复就算完工了,写了好久,终于写好,大家有什么补充就写上来,不要客气,这是这两天学习的一些心得,希望大家多多交流,谢谢               


作者 freet15 (linux应用和开发) :: Comment (2)

论坛徽章:
0
5 [报告]
发表于 2004-11-27 20:02 |只看该作者

Oralce备份与恢复【原】

你这是9i以下版本的吧?在9i中imp时已不再用inctype这个参数了。此外,exp时还可按表空间导出。冷备份也可以向前恢复的,不一定只能恢复到备份时间点。热备份做的好时也能恢复单个逻辑对象,但要求对数据库备份恢复原理较熟。另外,还可用RMAN进行备份和恢复,在9i中还增加了block的恢复。ORACLE的备份和恢复是比较复杂的内容。

论坛徽章:
0
6 [报告]
发表于 2004-11-27 20:57 |只看该作者

Oralce备份与恢复【原】

谢谢你的补充,我有时间了再把里面的细节写的清楚点,你说的是一些技巧了,我会补充一些的,谢谢

论坛徽章:
0
7 [报告]
发表于 2004-11-29 14:32 |只看该作者

Oralce备份与恢复【原】

写的不错。

论坛徽章:
0
8 [报告]
发表于 2004-11-29 15:17 |只看该作者

Oralce备份与恢复【原】

http://www.askguoyu.com/db/beifen.htm
不要太怕困难,这里有在线教程。制作的还不错的东西。希望大家喜欢。很快将准备全部的版本了。

论坛徽章:
0
9 [报告]
发表于 2004-11-29 15:56 |只看该作者

Oralce备份与恢复【原】

强烈支持,并感谢楼主们的辛勤汗水,希望ORACLE论坛人气更旺

论坛徽章:
0
10 [报告]
发表于 2004-11-29 16:56 |只看该作者

Oralce备份与恢复【原】

归档模式和备份方式的关系有错误,无论是否归档都可以作冷备份,但热备份只能在归档模式下进行
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP