日期:2013-01-18  浏览次数:20616 次

一、了解备份的重要性

可以说,从计算机系统出世的那天起,就有了备份这个概念,计算机以其强大的速度处理能力,取代了很多人为的任务,但是,往往很多时候,它又是那么弱不由风,主板上的芯片、主板电路、内存、电源等任何一项不能正常任务,都会导致计算机系统不能正常任务。当然,这些损坏可以修复,不会导致使用和数据的损坏。但是,如果计算机的硬盘损坏,将会导致数据丢失,此时必须用备份恢复数据。

其实,在我们的理想世界中,曾经就存在很多备份策略,如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)<