Chinaunix首页 | 论坛 | 博客
  • 博客访问: 426042
  • 博文数量: 239
  • 博客积分: 8010
  • 博客等级: 中将
  • 技术积分: 2431
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-02 21:12
文章分类
文章存档

2008年(239)

我的朋友

分类: Oracle

2008-06-17 22:35:07

数据库系统

ORACLE数据库系统可以使用日志的非归档和归档模式。由于系统在执行检查点操作时,除了日志文件,还需要在每一个控制文件、数据文件的头部,写入相应的时间戳信息,因而系统可以对单个的表空间、数据文件进行备份和恢复,操作比较方便和灵活。但因此对数据库系统性能的不利影响,就不可避免。

 

1. 数据库备份

 

ORACLE系统采用多实例单数据库结构。可以使用以下两种方式备份数据库:

1)使用rman工具。在rman运行环境中,可以手工使用命令备份数据库,也可以设定备份操作的执行脚本、执行时间,由系统自动完成数据库的备份。

2)使用操作系统命令。数据库管理员执行操作系统命令,拷贝组成数据库的数据文件到另外的存储位置上,从而达到备份的作用,这种备份被称为用户管理备份。

ORACLE系统中,把rman工具备份和用户管理备份统称为物理备份。因为这两种备份方式,是直接对组成数据库的物理文件进行备份。把使用数据导入和导出工具执行的备份称为逻辑备份,因为这种备份不仅要导出数据库中的数据,而且会把各种对象的创建语句放置到二进制文件中。

ORACLE数据库的物理备份,可以使用联机和脱机备份,也可以使用完整和部分备份。数据库的日志归档模式,决定了可以采用的备份方式。

使用rman工具备份,必须要保证实例被启动。要执行脱机备份,数据库需要处于mount状态;可以在数据库被打开、mount状态下,执行联机备份。

ORACLE系统支持两种类型的数据库部分备份。部件备份能够在表空间、数据文件的级别上实现,rman工具和用户管理备份均支持部件备份;增量备份只能在rman工具中实现,不能在用户管理备份中使用。部分备份在rman工具和用户管理备份中的具体实现和要求,与使用脱机备份还是联机备份有关。

使用用户管理备份,可以在实例没有启动,或者实例启动、数据库处于mount或只读状态下,进行脱机备份。在执行联机备份时,首先要使用alter tablespace命令,使要备份的表空间、数据文件处于备份状态,然后才能使用操作系统命令进行拷贝。在拷贝完成后,再次使用alter tablespace命令结束表空间、数据文件的备份状态。

 

2. 数据库恢复

 

用户要访问ORACLE数据库,首先要启动实例。数据库在被打开时,系统会检查它的状态。如果数据库处于不一致状态,系统就自动执行崩溃恢复。

ORACLE系统的介质恢复,使用命令restore databaserecover database来完成,这两个命令分别对应介质恢复的两个阶段。命令restore database使用数据库备份,将数据库恢复到备份操作执行的那一时刻;而命令recover database使用日志信息,将数据库恢复到故障发生的那一刻或者之前的任一时刻。

对应于数据库备份,ORACLE系统有两种类型的介质恢复方式:rman工具和用户管理恢复。不管采用那种介质恢复方式,数据库的日志归档模式,决定了恢复操作的处理步骤。

使用rman工具进行介质恢复,要求数据库处于mount状态,这样系统可以从控制文件中获取数据库的备份信息。在使用restore databaserecover database命令恢复数据库之后,数据库的日志归档模式,就决定了数据库可以被打开的方式。

对用户管理恢复,如果数据库使用非归档日志模式,那么可以执行操作系统命令,用数据库备份(备份中包含日志文件)覆盖数据库现有的数据文件,在此之后,就可以启动实例、打开数据库,数据库的恢复处理完成,不会用到命令restore databaserecover database

如果数据库使用归档日志模式,在使用数据库备份(备份中不包含日志文件)覆盖现有数据文件之后,需要启动实例、使数据库处于mount状态。然后使用recover database命令,根据需要选择全部或者部分日志文件,进行完整或者不完整恢复,将数据库恢复到故障发生的那一刻或者之前的任一时刻。在此之后,才可以打开数据库,结束数据库的恢复处理。

另外,在数据库的日志归档模式下,可以基于表空间、数据文件,进行数据库的部分恢复。这种部分恢复,可以在系统联机状态下进行,从而不会中断用户对其它数据的访问。

阅读(511) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~