ORACLE备份策略_第1页
ORACLE备份策略_第2页
ORACLE备份策略_第3页
ORACLE备份策略_第4页
ORACLE备份策略_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

概要 1 了解什么是备份 2 了解备份的重要性 3 理解数据库的两种运行方式 4 理解不同的备份方式及其区别 5 了解正确的备份策略及其好处 一 了解备份的重要性 可以说 从计算机系统出世的那天起 就有了备份这个概念 计算机以其强大 的速度处理能力 取代了很多人为的工作 但是 往往很多时候 它又是那么 弱不禁风 主板上的芯片 主板电路 内存 电源等任何一项不能正常工作 都会导致计算机系统不能正常工作 当然 这些损坏可以修复 不会导致应用 和数据的损坏 但是 如果计算机的硬盘损坏 将会导致数据丢失 此时必须 用备份恢复数据 其实 在我们的现实世界中 已经就存在很多备份策略 如 RAID 技术 双机 热备 集群技术发展的不就是计算机系统的备份和高可用性吗 有很多时候 系统的备份的确就能解决数据库备份的问题 如磁盘介质的损坏 往往从镜相 上面做简单的恢复 或简单的切换机器就可以了 但是 上面所说的系统备份策略是从硬件的角度来考虑备份与恢复的问题 这 是需要代价的 我们所能选择备份策略的依据是 丢是数据的代价与确保数据 不丢失的代价之比 还有的时候 硬件的备份有时根本满足不了现实需要 假 如你误删了一个表 但是你又想恢复的时候 数据库的备份就变的重要了 ORACLE 本身就提供了强大的备份与恢复策略 这里我们只讨论 ORACLE 备 份策略 以下的备份都是指 ORACLE 数据库备份 恢复将放到下一讲中 所谓备份 就是把数据库复制到转储设备的过程 其中 转储设备是指用于放 置数据库拷贝的磁带或磁盘 能够进行什么样的恢复依赖于有什么样的备份 作为 DBA 有责任从以下三 个方面维护数据库的可恢复性 使数据库的失效次数减到最少 从而使数据库保持最大的可用性 当数据库不可避免地失效后 要使恢复时间减到最少 从而使恢复的效率达到 最高 当数据库失效后 要确保尽量少的数据丢失或根本不丢失 从而使数据具有最 大的可恢复性 灾难恢复的最重要的工作是设计充足频率的硬盘备份过程 备份过程应该满足 系统要求的可恢复性 例如 如果数据库可有较长的关机时间 则可以每周进 行一次冷备份 并归档重做日志 对于 24 7 的系统 或许我们考虑的只能是 热备份 如果每天都能备份当然会很理想 但要考虑其现实性 企业都在想办 法降低维护成本 现实的方案才可能被采用 只要仔细计划 并想办法达到数 据库可用性的底线 花少量的钱进行成功的备份与恢复也是可能的 二 了解 ORACLE 的运行方式 ORACLE 数据库有两种运行方式 一是归档方式 ARCHIVELOG 归档方式 的目的是当数据库发生故障时最大限度恢复数据库 可以保证不丢失任何已提 交的数据 二是不归档方式 NOARCHIVELOG 只能恢复数据库到最近的回 收点 冷备份或是逻辑备份 我们根据数据库的高可用性和用户可承受丢失的 工作量的多少 对于生产数据库 强烈要求采用为归档方式 那些正在开发和 调试的数据库可以采用不归档方式 如何改变数据库的运行方式 在创建数据库时 作为创建数据库的一部分 就决定了数据库初始的存档方式 一般情况下为 NOARCHIVELOG 方式 当 数据库创建好以后 根据我们的需要把需要运行在归档方式的数据库改成 ARCHIVELOG 方式 1 改变不归档方式为为归档方式 a 关闭数据库 备份已有的数据 改变数据库的运行方式是对数据库的重要改 动 所以要对数据库做备份 对可能出现的问题作出保护 b 修改初试化参数 使能自动存档 修改 添加 初始化文件 init SID ora 参数 log archive start true 启动自动归档 log archive format ARC T S arc 归档文件格式 log archive dest arch12 arch 归档路径 在 8i 中 可以最多有五个归档路径 并可以归档到其它服务器 如备用数据库 standby database 服务器 c 启动 Instance 到 Mount 状态 即加载数据库但不打开数据库 SVRMGRL SVRMGRL connect internal SVRMGRL startup mount d 发出修改命令 SVRMGRL alter database archivelog SVRMGRL alter database open 2 改变归档状态为不归档状态 与以上步骤相同 但有些操作不一样 主要是在以上的 b 操作中 现在为 删除或注释该参数 在 d 操作中 命令为 SVRMGRL alter database noarchivelog 注意 从归档方式转换到非归档方式后一定要做一次数据库的全冷备份 防止意外事件的发生 三 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 文件 这在有些时候是非常管用的 因为传输表空间移动数据就象复制 文件一样快 关于传输表空间有一些规则 即 源数据库和目标数据库必须运行在相同的平台上 源数据库与目标数据库必须使用相同的字符集 源数据库与目标数据库一定要有相同大小的数据块 9i 已经不用 目标数据库不能有与迁移表空间同名的表空间 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 工具 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 级的增量作为增量的基础 可以支持 5 级增量 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 expired backup RMAN release channel 四 定制恰当的备份策略 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 文件将

温馨提示

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

评论

0/150

提交评论