首页 orcle备份

orcle备份

举报
开通vip

orcle备份orcle备份 ORACLE 备份策略 (ORACLE BACKUP STRATEGY) 第一章. 概要 第一章 1,了解什么是备份 2,了解备份的重要性 3,理解数据库的两种运行方式 4,理解不同的备份方式及其区别 5,了解正确的备份策略及其好处 第二章. 第二章 了解备份的重要性 可以说,从计算机系统出世的那天起,就有了备份这个概念,计算机以其强大的速度处 理能力,取代了很多人为的工作,但是,往往很多时候,它又是那么弱不禁风,主板上的芯 片,主板电路,内存,电源等任何一项不能正常工作,都会导致计算机...

orcle备份
orcle备份 ORACLE 备份策略 (ORACLE BACKUP STRATEGY) 第一章. 概要 第一章 1,了解什么是备份 2,了解备份的重要性 3,理解数据库的两种运行方式 4,理解不同的备份方式及其区别 5,了解正确的备份策略及其好处 第二章. 第二章 了解备份的重要性 可以说,从计算机系统出世的那天起,就有了备份这个概念,计算机以其强大的速度处 理能力,取代了很多人为的工作,但是,往往很多时候,它又是那么弱不禁风,主板上的芯 片,主板电路,内存,电源等任何一项不能正常工作,都会导致计算机系统不能正常工作. 当然,这些损坏可以修复,不会导致应用和数据的损坏.但是,如果计算机的硬盘损坏,将 会导致数据丢失,此时必须用备份恢复数据. 其实,在我们的现实世界中,已经就存在很多备份策略,如 RAID 技术,双机热备,集 群技术发展的不就是计算机系统的备份和高可用性吗?有很多时候, 系统的备份的确就能解 决数据库备份的问题,如磁盘介质的损坏,往往从镜相上面做简单的恢复,或简单的切换机 器就可以了. 但是, 上面所说的系统备份策略是从硬件的角度来考虑备份与恢复的问题, 这是需要代 价的.我们所能选择备份策略的依据是:丢是数据的代价与确保数据不丢失的代价之比.还 有的时候,硬件的备份有时根本满足不了现实需要,假如你误删了一个表,但是你又想恢复 的时候,数据库的备份就变的重要了.ORACLE 本身就提供了强大的备份与恢复策略,这 里我们只讨论 ORACLE 备份策略, 以下的备份都是指 ORACLE 数据库备份, 恢复将放到下 一讲中. 所谓备份,就是把数据库复制到转储设备的过程.其中,转储设备是指用于放置数据库 拷贝的磁带或磁盘. 能够进行什么样的恢复依赖于有什么样的备份.作为 DBA,有责任从以下三个方面维 护数据库的可恢复性: 使数据库的失效次数减到最少,从而使数据库保持最大的可用性; 当数据库不可避免地失效后,要使恢复时间减到最少,从而使恢复的效率达到最高; 当数据库失效后,要确保尽量少的数据丢失或根本不丢失,从而使数据具有最大的可 恢复性. 灾难恢复的最重要的工作是设计充足频率的硬盘备份过程. 备份过程应该满足系统要求 的可恢复性.例如,如果数据库可有较长的关机时间,则可以每周进行一次冷备份,并归档 重做日志,对于 24*7 的系统,或许我们考虑的只能是热备份. 如果每天都能备份当然会很 理想,但要考虑其现实性.企业都在想办法降低维护成本,现实的 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 才可能被采用.只要 仔细 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 , 并想办法达到数据库可用性的底线, 花少量的钱进行成功的备份与恢复也是可能 的. 第三章. 第三章 了解 ORACLE 的运行方式 ORACLE 数据库有两种运行方式:一是归档方式(ARCHIVELOG) ,归档方式的目的 是当数据库发生故障时最大限度恢复数据库, 可以保证不丢失任何已提交的数据; 二是不归 档方式(NOARCHIVELOG),只能恢复数据库到最近的回收点(冷备份或是逻辑备份) .我 们根据数据库的高可用性和用户可承受丢失的工作量的多少, 对于生产数据库, 强烈要求采 用为归档方式;那些正在开发和调试的数据库可以采用不归档方式. 如何改变数据库的运行方式,在创建数据库时,作为创建数据库的一部分,就决定了数 据库初始的存档方式.一般情况下为 NOARCHIVELOG 方式.当数据库创建好以后,根据 我们的需要把需要运行在归档方式的数据库改成 ARCHIVELOG 方式. 3.1 改变不归档方式为为归档方式 1.关闭数据库,备份已有的数据,改变数据库的运行方式是对数据库的重要改动,所以 要 对数据库做备份,对可能出现的问题作出保护. 2. 修改初试化参数,使能自动存档修改(添加)初始化文件 init[SID].ora 参数: log_archive_start=true #启动自动归档 log_archive_format=ARC%T%S.arc #归档文件格式 log_archive_dest=/arch12/arch #归档路径 在 8i 中, 可以最多有五个归档路径, 并可以归档到其它服务器, 如备用数据库(standby database)服务器 3.启动 Instance 到 Mount 状态,即加载数据库但不打开数据库: $>SVRMGRL SVRMGRL >connect internal SVRMGRL >startup mount 4.发出修改命令 SVRMGRL >alter database archivelog; SVRMGRL>alter database open; 3.2 改变归档状态为不归档状态 与以上步骤相同,但有些操作不一样,主要是在以上的 b 操作中,现在为删除或注释该 参数,在 d 操作中,命令为 SVRMGRL >alter database noarchivelog; 注意, 从归档方式转换到非归档方式后一定要做一次数据库的全冷备份, 防止意外事件 的发生. 第四章. 第四章 ORACLE 备份的分类 简单的按照备份进行的方式,可以分为逻辑备份,冷备份(脱机备份) ,热备份(联机 备份) ,其实冷备份与热备份又可以合称为物理备份 按照备份的工具, 可以分为 EXP/IMP 备份, 拷贝, OS RMAN, 第三方工具, VERITAS 如 以下我们将从多个角度来说明以上的各种备份方式 4.1 EXP/IMP 逻辑备份 导入/导出是 ORACLE 幸存的最古老的两个命令行工具了,其实我从来不认为 Exp/Imp 是一种好的备份方式, 正确的说法是 Exp/Imp 只能是一个好的转储工具, 特别是在小型数据 库的转储,表空间的迁移,表的抽取,检测逻辑和物理冲突等中有不小的功劳.当然,我们 也可以把它作为小型数据库的物理备份后的一个逻辑辅助备份,也是不错的建议. 对于越来越大的数据库,特别是 TB 级数据库和越来越多数据仓库的出现,EXP/IMP 越来越力不从心了,这个时候,数据库的备份都转向了 RMAN 和第三方工具.下面我们还 是简要介绍一下 EXP/IMP 的使用. 4.1.1 使用方法 Exp parameter_name=value Or Exp parameter_name=(value1,value2……) 只要输入参数 help=y 就可以看到所有帮助 如: C:\>set nls_lang=simplified chinese_china.zhs16gb k 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 必须是命令行中的第一个参数. 关键字 说明(默认) 关键字 说明(默认) -------------------------------------------------------------------------FULL 导出整个文件 (N) USERID 用户名/口令 BUFFER 数据缓冲区的大小 OWNER 所有者用户名列表 输出文件 (EXPDAT.DMP) TABLES 表名列表 FILE COMPRESS 导入一个范围 (Y) RECORDLENGTH IO 记录的长度 GRANTS 导出权限 (Y) INCTYPE 增量导出类型 INDEXES 导出索引 (Y) RECORD 跟踪增量导出 (Y) ROWS 导出数据行 (Y) PARFILE 参数文件名 CONSISTENT 交叉表一 致性 CONSTRAINTS 导出限制 (Y) 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 开始,不再支持增量导出和累计导出. 4.1.2 表空间传输 表空间传输是 8i 新增加的一种快速在数据库间移动数据的一种办法,是把一个数据库 上的格式数据文件附加到另外一个数据库中,而不是把数据导出成 Dmp 文件,这在有些时 候是非常管用的,因为传输表空间移动数据就象复制文件一样快. 关于传输表空间有一些规则,即: 源数据库和目标数据库必须运行在相同的硬件平台上. 源数据库与目标数据库必须使用相同的字符集. 源数据库与目标数据库一定要有相同大小的数据块 目标数据库不能有与迁移表空间同名的表空间 SYS 的对象不能迁移 必须传输自包含的对象集 有一些对象,如物化视图,基于函数的索引等不能被传输 可以用以下的方法来检测一个表空间或一套表空间是否符合传输 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 : exec sys.dbms_tts.transport_set_check('tablespace_name',true); select * from sys.transport_set_violation; 如果没有行选择,表示该表空间只包含表数据,并且是自包含的.对于有些非自包含 的表空间,如数据表空间和索引表空间,可以一起传输. 以下为简要使用步骤,如果想参考详细使用方法,也可以参考 ORACLE 联机帮助. 1.设置表空间为只读(假定表空间名字为 APP_Data 和 APP_Index) alter tablespace app_data read only; alter tablespace app_index read o nly; 2.发出 EXP 命令 SQL>host exp userid="""sys/password as sysdba""" transport_tablesp ace=y tablespace=(app_data, app_index) 以上需要注意的是 为了在 SQL 中执行 EXP,USERID 必须用三个引号,在 UNIX 中也必须注意避免 "/"的使用 在 816 和以后,必须使用 sysdba 才能操作 这个命令在 SQL 中必须放置在一行(这里是因为显示问题放在了两行) 3.拷贝数据文件到另一个地点,即目标数据库 可以是 cp(unix)或 copy(windows)或通过 ftp 传输文件(一定要在 bin 方式) 4.把本地的表空间设置为读写 5.在目标数据库附加该数据文件 imp file=expdat.dmp userid="""sys/password as sysdba""" transport_tablespace=y "datafile= (c:\temp\app_data,c:\temp\app_index)" 6.设置目标数据库表空间为读写 alter tablespace app_ data read write; alter tablespace app_index read write; 4.1.3 导出 导入与字符集 导出/导入与字符集 明白 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 字符集 的数据库就可以了. (注意,十进制数与十六进制之间的转换,想明白其中的道理) 4.1.4 跨版本使用 Exp/Imp Exp/Imp 很多时候,可以跨版本使用,如在版本 7 与版本 8 之间导出导入数据,但这样 做必须选择正确的版本,规则为: 总是使用 IMP 的版本匹配数据库的版本,如果要导入到 816,则使用 816 的导入工具. 总是使用 EXP 的版本匹配两个数据库中低的那个版本,如在 815 与 816 之间互导,则 使用 815 的 EXP 工具. 4.2 OS 备份 操作系统备份有两类,冷备份(Cold backup)与热备份(Hot backup) ,操作系统备份 与以上的逻辑备份有本质的区别.逻辑备份提取数据 库的数据内容,而不备份物理数据块. 而操作系统备份则是拷贝整个的 数据文件. 4.2.1 冷备份 在文件级备份开始前数据库必须彻底关闭.关闭操作必须用带有 normal,immediate, transaction 选项的 shutdown 来执行. 数据库使用的每个文 件都被备份下来,这些文件包括: ?所有数据文件 ?所有控制文件 ?所有联机 REDO LOG 文件 ? INIT.ORA 文件(可选) ? 密码文件 (可选) 作冷备份一般步骤是: a. 正常关闭要备份的实例(instance); b. 备份整个数据库到一个 目录 工贸企业有限空间作业目录特种设备作业人员作业种类与目录特种设备作业人员目录1类医疗器械目录高值医用耗材参考目录 c. 启动数据库 如 SVRMGRL>connect internal SVRMGRL >shutdown immediate SVRMGRL >! cp 或 SVRMGRL >!tar cvf /dev/rmt/0 /u01/oradata/prod S VRMGRL >startup 注意:如果利用脚本对数据库进行冷备份,必须对关 闭数据库的命令进行逻辑检查,如 果发生关闭数据库的命令不能正常执 行而导致数据库没有正常关闭, 那么, 所有的冷备份将 回是无效的. 4.2.2 热备份 热 备份是当 数据库打 开并 对用户有 效是的 OS 级 的数据 备 份.热备 份只 能用于 ARCHIVELOG 方式的数据库.在数据文件备 份之前,对应的表空间必须通过使用 ALTER TABLESPACE …… BEGIN BACKUP 以备份方式放置. 然后组成表空间的数据文件可以使 用 类似冷备份的操作系统命令进行拷贝. 在数据文件用操作系统命令拷贝 后, 应使用 ALTER TABLESPACE …… END BACKUP 命令使表空 间脱离热备份方式. 热备份没有必要备份联机日志,但必须是归档状态, 一、NO ARCHIVELOG 数据库有联机重做日志,这个日志是记录对数据库所 做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里。一般数据库至少要有2个联机重做日志组。当一个联机重做日志组被写满的时候,就会发生日志切 换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又会发生 日志切换,去写联机重做日志组1,就这样反复进行。 二、ARCHIVELOG 基本情 况和上面是一致的,唯一不同在于,当发生日志切换的时候,被切换的日志会进行归档。比如,当前在使用联机重做日志1,当1写满的时候,发生日志切换,开始写联机重做日志2, 这时联机重做日志1的内容会被拷贝到另外一个指定的目录下。这个目录叫做归档目录,拷 贝的文件叫归档重做日志。 他们的区别在于一个归档,一个不归档。数据库使用归 档方式运行时才可以进行灾难性恢复在实例恢复的时候,可能需要用 到归档日 志.当前联机日志一定要保护好或是处于镜相状态,当前联机日志的损坏,对于数 据库的损坏是巨大的,只能以数据的丢失来进行数据库的恢复工 作. 对于临时表空间,存放的是临时信息,在热备份是也可以考虑不用备 份,如果临时文 件发生故障,可以删除该数据文件与表空间,重建一个临 时表空间. 热备份的优点是显而易见的 ---- a.可在表空间或数据文件 级备份,备份时间短. ---- b.备份时数据库仍可使用. ---- c.可达到秒级 恢复(恢复到某一时间点上) . ---- d.可对几乎所有数据库实体作恢复. ---- e.恢复是快速的,在大多数情况下在数据库仍工作时恢复. 操作系统 作热备份的一般步骤为: 1. 连接数据库 SVRMGRL>connect internal; 2. 将需要备份的表空间(如 User)设置为备份方式 SVRMGRL>Alter tablespace User begin backup; 3. 拷贝数据文件 SVRMGRL>!cp /u01/oradata/prod/user01.ora /backup/prod/user01.ora Or $cp cp /u01/oradata/prod/user01.ora /backup/prod/user01.ora 4. 在数据 文件拷贝完成后,将表空间拖体备份方式 SVRMGRL>Alter tablespace User end backup; 5. 对所有需要备份的表空间重复 2,3,4 6. 使用如下 的命令备份控制文件 ALTER DATABSE …… BACKUP CONTROLFI LE 如备份成二进制文件 alter database backup controlfile to 'new fiel name'; 备份成文本文件 alter database backup controlfile to trace; 因为热备份的时候,用户还在操作数据库,所以,最好是每个表空间处于备份状态的 时间最短, 这样就要求一个表空间一个表空间的备份, 不要一起使表空间处于备份状态而同 时拷贝数据文件. 注意:如果在热备份的时候如果数据库中断(如断电) ,那么在重新启动数据库的时候, 数据库将提示有数据文件需要恢复, 你需要把正在断电时候的处于备份状态的数据文件通过 ALTER TABLESPACE …… END BACKUP 结束备份方式.具体哪个数据文件或表空间处 于备份状态,可以通过 v$backup 与 v$datafile 来获得 4.3 RMAN(备份与恢复管理器) (备份与恢复管理器) 4.3.1 使用 RMAN 进行备份 4.3.1.1 了解 RMAN Recovery manager(RMAN)是 ORACLE 提供的 DBA 工具,用语管理备份和恢复 操作. RMAN 只能用于 ORACLE8 或更高的版本中. 它能够备份整个数据库或数据库部 件,其中包括表空间,数据文件,控制文件和归档文件.RMAN 可以按要求存取和执行 备份和恢复. RMAN 备份有如下优点 ? 支持在线热备份 ? 支持多级增量备份 ? 支持并行备份,恢复 ? 减少所需要备份量 ? 备份,恢复使用简单 重要的是,使用恢复管理器允许您进行增量数据块级的备份(这个与导出/导入的增 量截然不同) .增量 RMAN 备份是时间和空间有效的,因为他们只备份自上次备份以来 有变化的那些数据块.另一个空间有效的 RMA N 特性是它只备份数据文件中使用的数 据块,忽略空的,未用的数据块,这个对于预分配空间的表空间有很大的好处. 从 9i 开始, 还增加了 RMAN 的数据块级别的恢复, 可以进一步减少数据库恢复时间. RMAN 支持以下不同类型的备份 FULL 数据库全备份,包括所有的数据块 INCREMENTAL 增量备份,只备份自上次增量备份以来修改过的数据 块.需要一个 0 级的增量作为增量的基础,可以支持 7 级增量. OPEN 在数据库打开的时候使用 CLOSED 在数据库安装(MOUNT)但不打开的时候备份, 关闭备份 可以是 CONSISTENT 或 IN CONSISTENT 类型的. CONSISTENT 在数据库安装,单不打开,并且在安装之前数据库被彻 底关闭(而不是被破坏或异常退出)时使用.CONSISTENT 备份可以简单的进行复原 (RESTORE)而不是恢复(RECOVER) INCONSISTENT 在数据库打开或安装(但不打开)时使用.在该数据库 正常关闭或崩溃后,INCONSISTENT 备份需要恢复. 理解 BACKUP,RESTORE,RECOVER 命令,这是 RMAN 最基本的三个命令,可 以进行数据库的备份,复原以及恢复操作. 4.3.1.2 了解恢复目录 理解恢复目录,RMAN 可以在没有恢复目录(NOCATALOG)下运行,这个时候备份 信息保存在控制文件.保存在控制文件的备份信息是很危险的,如果控制文件的破坏将 导致备份信息的丢失与恢复的失败,而且,没有恢复目录,很多 RMAN 的命令将不被 支持.所以对于重要的数据库,建议创建恢复目录,恢复目录也是一个数据库,只不过 这个数据库用来保存备份信息,一个恢复目录可以用来备份多个数据库. 创建 R MAN 目录,以下步骤说明了在一个数据库中尽力 RMAN 目录的过程. 1.为目录创建一个单独的表空间 SQL>Create tablespace tools datafile 'fielname' size 50m; 2.创建 RMAN 用户 SQL>Create user RMAN id entified by RMAN default tablespace tools temporary tablespace temp; 3.给 RMAN 授予权限 SQL>Grant connect , resource , recovery_catalog_owner to rman; 4.打开 RMAN $>RMAN 5.连接数据库 RMAN>c onnect catalog rman/rman 6.创建恢复目录 RMAN>Create catalog table space tools 注册目标数据库,恢复目录创建成功后,就可以注册目标数据 库了,目标数据库就 是需要备份的数据库,一个恢复目录可以注册多个 目标数据库,注册目标数据库的命令 为: $>RMAN target internal/password catalog rman/rman@rcdb; RMAN>Register database; 数据库注册完 成,就可以用 RMAN 来进行备份了, 更多命令请参考 ORACLE 联机 手 册或《ORACLE8i 备份与恢复 手册 华为质量管理手册 下载焊接手册下载团建手册下载团建手册下载ld手册下载 》 . 注销数据库不是简单的在 RMAN 提示下反注册就可以了,需要运行一个程序包,过程 如下: 1. 连 接目标数据库,获得目标数据库 ID $> RMAN target internal/password catalog rman/rman@rcdb; RMAN-06005: connected to target database: RMAN (DBID=1231209694) 2. 查询恢复目录,得到更详细的信息 SQL> SELECT db_key, db_id FR OM db WHERE db_id = 1231209694; DB_KEY DB_ID ---------- --------------1 1237603294 1 row selected. 3. 运行过程 dbms_rcvcat.unregis terdatabase 注销数据库,如 SQL> EXECUTE dbms_rcvcat.unregisterdatabase(1 , 1237603294) 4.3.1.3 采用 RMAN 进行备份 RMAN 使用脚本来备份数据库,以下是 RMAN 进行备份的几个例子. 1.备份整个数据库 backup full tag 'basicdb' format '/bak/oradata/full_% u_%s_%p' database; 2.备份一个表空间 backup tag 'tsuser' format '/bak/oradata/tsuser_%u_%s_%p' tablespace users; 3.备份归档日志 backup ta g 'alog' format '/bak/archivebak/arcbak_%u_%s_%p' archivelog all delet e input; 4.3.2 维护 RMAN 4.3.2.1 查看 RMAN 的信息 检查现有备份 RMAN>list backup 列出过期备份 RMAN>report obsole te 删除过期的备份 RMAN>allocate channel for maintenance type disk; RMAN>change backupset id delete; RMAN>release channel; 4.3.2.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; 第五章. 第五章 定制恰当的备份策略 5.1 定制正确的策略 正确的备份策略不仅能保证数据库服务器的 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; r elease 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 查找所需信息) ,建议有条件的话,归档日志保存一 年,可以保存在磁带等廉价存取设备上. 5.2 与 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_SL AVES 来提高磁带的写能力. 4, 采用并行备份 开辟多个通道,可以实现 并行备份与恢复 5.3 备份 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 5.4 使自动备份数据库 自动备份数据库不外乎以下三种方式 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 form at '/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 cmd file = backup.rcv 在 unix 下生成 backup_archive.sh,内容包括 /oracle/r amn/rman cmdfile = backup.rcv 3. 加入调度 在 windows 中用任务计 划向导即可,或使用 at 命令. 在 unix 中,在目标机器上编写一个文件, 用以启动自动备份进程.假定文件名为 ORACLE,文件将放在/var/spool/c ron/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 分隔开来 第六章. 第六章 常见误区 1,使用 EXP/IMP 备份 EXP/IMP 不是一个良好的备份工具,在以后的发展之中,ORACLE 对 EXP/IMP 用于备 份的支持会越来越低.ORACLE 只是把 EXP/IMP 当作一个好的工具而不是备份工具,在对 于大型数据库,如 TB 级数据库或数据仓库,EXP/IMP 肯定会力不从心. 2,在应用程序中备份数据库 在论坛上,有很多这样的要求, "我怎么在程序中备份与恢复数据库?" .首先说,这个 并不是不可以实现,但是实现的过程会很复杂而且意外会很多.就我的感觉,提出这样问题 的人,首先一点就是对 ORACLE 或 DBA 的不了解,如果 ORACLE 可以这么轻松的实现备 份与恢复,那么我可以说,就不需要 DBA 了. 3,冷备份比热备份更容易,效果会更好 有人认为,冷备份是关闭数据库进行的一致性备份,肯定比热备份要好,使用也容易, 其实不尽然,在热备份中,一样可以实现数据库的全备份,而且不会影响到数据库的运行. 建议所有的生产机,都运行在归档方式下,采用热备份方式. 第七章. 第七章 常见问题 1,我导出的数据为什么不能导入,提示不支持的字符集转换 答:参考上面的字符集原则,导出数据时客户端与数据库字符集一致,导入时修改为与 目标数据库字符集一致. 2,我的归档日志越来越多,我什么时候可以删除 归档日志? 答: 在每一次全备份 (如 OS 全冷备份或全热备份) 或基于全备份的增量备份 (如 RMAN 基于 0 级备份上的增量备份) 后都可以删除该备份点之前的归档日志, 建议在磁带上保留一 年. 3,全备份时一定需要备份所有数据文件吗? 答:不需要,起码有两类数据文件可以不备份,一类就是临时数据文件,如果丢失,可 以删除后重建;一类是只读表空间数据文件,如果上次备份以来,没有修改过表空间的只读 属性,就可以不需要备份. 4,联机日志需要备份吗? 答:如果是归档方式热备份,就没有必要备份联机日志.但是对于冷备份,可以备份联 机日志,特别是不归档状态.备份过联机日志后的冷备份,因为数据库是一致的,可以恢复 到该备份点. 第八章. 第八章 小结 1,什么是数据库备份,数据库备份就是把数据库复制到转储设备的过程. 2,数据库的运行方式,可以分为归档方式和非归档方式,建议运行在归档方式下运行热备 份. 3,了解了数据库的备份方式,逻辑备份,冷备份,热备份 4,了解数据库的备份工具,EXP/IMP 执行逻辑备份,OS 脚本可以执行冷备份或热备份, RMAN 也可以执行冷备份或热备份 5,了解 ORACLE 的备份策略,并怎样选择最佳的备份策略 6,知道怎么样启动自动备份,了解 Windows 的 at 命令与 unix 的 cron 进程. 参考文献: 参考文献: Expert One-on-one Oracle [美] Thomas Kyte 著 清华大学出版社 Oracle 8i Web 开发指南 [美] Dan Hotka,et al. 著 清华大学出版社 Oracle 8i DBA Architecture & Administration and backup & Recovery Stu dy Guide [美] Dong Stuns Biju Thomas 著 电子工业出版社 Oracle 数据库管理员技术指南 [美] Sumit Sarin 著 机械工业出版社
本文档为【orcle备份】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_769254
暂无简介~
格式:doc
大小:50KB
软件:Word
页数:19
分类:企业经营
上传时间:2017-09-26
浏览量:18