1
、切换服务器设置归档模式,如果已经是归档模式可跳过此步:
%sqlplus /nolog (
启动
sqlplus)
SQL> conn / as sysdba (
以
DBA
身份连接数据库
)
SQL> shutdown immediate; (
立即关闭数据库
)
SQL> startup mount (
启动实例并加载数据库,但不打开
)
SQL> alter database archivelog; (
更改数据库为归档模式
)
SQL> alter database open; (
打开数据库
)
SQL> alter system archive log start; (
启用自动归档
)
SQL> exit (
退出
)
2
、连接:
%rman target=sys/password@mydb (
启动恢复管理器
)
3
、基本设置:
RMAN> configure default device type to disk; (
设置默认的备份设备为磁盘
)
RMAN> configure device type disk parallelism 2; (
设置备份的并行级别,通道数
)
RMAN> configure channel 1 device type disk fromat '/backup1/backup_%U';
(
设置备份的文件格式,只适用于磁盘设备
)
RMAN> configure channel 2 device type disk fromat '/backup2/backup_%U';
(
设置备份的文件格式,只适用于磁盘设备
)
RMAN> configure controlfile autobackup on;
(
打开控制文件与服务器参数文件的自动备份
)
RMAN> configure controlfile autobackup format for device type disk to '/backup1/ctl_%F';
(
设置控制文件与服务器参数文件自动备份的文件格式
)
4
、查看所有设置:
RMAN> show all
5
、查看数据库方案报表:
RMAN> report schema;
6
、备份全库:
RMAN> backup database plus archivelog delete input;
(
备份全库及控制文件、服务器参数文件与所有归档的重做日志,并删除旧的归档日志
)
7
、备份表空间:
RMAN> backup tablespace system plus archivelog delete input;
(
备份指定表空间及归档的重做日志,并删除旧的归档日志
)
8
、备份归档日志:
RMAN> backup archivelog all delete input;
9
、复制数据文件:
RMAN> copy datafile 1 to '/oracle/dbs/system.copy';
10
、查看备份和文件复本:
RMAN> list backup;
11
、验证备份:
RMAN> validate backupset 3;
12
、从自动备份中恢复服务器参数文件:
RMAN> shutdown immediate; (
立即关闭数据库
)
RMAN> startup nomount; (
启动实例
)
RMAN> restore spfile to pfile '/backup1/mydb.ora' from autobackup;
(
从自动备份中恢复服务器参数文件
)
13
、从自动备份中恢复控制文件:
RMAN> shutdown immediate; (
立即关闭数据库
)
RMAN> startup nomount; (
启动实例
)
RMAN> restore controlfile to '/backup1' from autobackup;
(
从自动备份中恢复控制文件
)
14
、恢复和复原全数据库:
RMAN> shutdown immediate
;
(立即关闭数据库)
RMAN> exit
(退出)
%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak
(将数据文件重命名)
%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak
(将数据文件重命名)
%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak
(将数据文件重命名)
%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak
(将数据文件重命名)
%rman target=rman/rman@mydb
(启动恢复管理器)
RMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.ora
(指定初始化参数文件启动数据库)
RMAN> restore database
;
(还原数据库)
RMAN> recover database
;
(恢复数据库)
RMAN> alter database open
;
(打开数据库)
15
、恢复和复原表空间:
RMAN> sql 'alter tablespace users offline immediate'
;(将表空间脱机)
RMAN> exit
(退出恢复管理器)
%mv /oracle/dbs/users01.dbf /oracle/dbs/users01.bak
(将表空间重命名)
%rman target=rman/rman@mydb
(启动恢复管理器)
RMAN> restore tablespace users
;
(还原表空间)
RMAN> recover tablespace users
;
(恢复表空间)
RMAN> sql 'alter tablespace users online'
;
(将表空间联机)
16
、增量备份与恢复:
第一天的增量基本备份:
RMAN> backup incremental level=0 database plus archivelog delete input
;
第二天的增量差异备份:
RMAN> backup incremental level=2 database plus archivelog delete input
;
第三天的增量差异备份:
RMAN> backup incremental level=2 database plus archivelog delete input
;
第四天的增量差异备份:
RMAN> backup incremental level=1 database plus archivelog delete input
;
第五天的增量差异备份:
RMAN> backup incremental level=2 database plus archivelog delete input
;
第六天的增量差异备份:
RMAN> backup incremental level=2 database plus archivelog delete input
;
第七天的增量差异备份:
RMAN> backup incremental level=0 database plus archivelog delete input
;
增量恢复:
RMAN> shutdown immediate
;
RMAN> exit
%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak
%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak
%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak
%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak
%rman target=rman/rman@mydb
RMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.ora
RMAN> restore database
;
RMAN> recover database
;
RMAN> alter database open.
(
e129
)
on.htm
simulator/doc/license_keys.htm
simulator/doc/sdk.style.css
simulator/doc/davehitzforeword.htm
simulator/doc/faq.htm
simulator/doc/troubleshooting.htm
simulator/license.htm
simulator/readme.htm
simulator/runsim.sh
simulator/setup.sh
simulator/sim.tgz
采用
Oracle Archive Log
模式和非
Archive Log
模式对备份恢复的影响
备份的目的在于,当系统或数据库出现问题时,能够快速将数据库进行恢复。对于
Oracle
数据库,一般有两种备份方式:
“
物理备份
”
和
“
逻辑备份
”
。
“
物理备份
”
指的是以
copy
数据文件方式进行备份;
“
逻辑备份
”
指的是用
export
等方式将数据从数据库中抽取出来。物理备份又可以分为冷备份和热备份。以下是各种备份的说明及前提条件。
- Cold Backup
(冷备份)
主要指在关闭数据库的状态下进行的数据库完全备份,备份内容包括所有数据文件、控制文件、联机日志文件、
ini
文件。
- Hot Backup
(热备份)
指在数据库处于运行状态下,对数据文件和控制文件进行备份,要使用热备份必须将数据库运行在
(Archive Log)
归档方式下。
- Export
(逻辑备份)这是最简单的备份方法,可按数据库中某个表、某个用户或整个数据库来导出,并且支持全部、累计、增量三种方式。使用这种方法,数据库必须处于打开状态,而且如果数据库不是在
restrict
状态将不能保证导出数据的一致性。
“
物理备份
”
方式以相当于
copy
数据文件的方式进行备份,恢复时可以快速以相当于
copy
的方式将备份的数据
copy
回来,所以备份速度特别是恢复速度非常快。
如果不采用
Archive Log
模式运行
Oracle
数据库,只有两种可用的备份方法:冷备份或
export
逻辑备份。根据关键业务服务器的特点,停下数据库进行冷备份是根本不可能的,因此如果不采用
Archive Log
,只能进行逻辑备份。
如果仅采用
“
逻辑备份
”
方式,恢复时会有以下两个主要问题:
1.
无法恢复到最近时间点的数据。只能恢复到上一次
export
时的数据状态,当天的数据将丢失。
Archive Log
模式下的物理备份可以用数据文件备份及
Archive Log
备份,将数据库恢复到数据库失败前的时间点,不会丢失数据。
2.
完成恢复可能需要很长时间。恢复只能用
import
方法进行,所以需要的时间包括:
a. create database
及所有的
tablespace:
以每
2
分钟初始化一个
2G
的数据文件来计算,建立一个
400G
的
Oracle
数据库需要约
6.7
个小时。
b. import
。时间较难确定,但保守估计应在
10
个小时以上(如果
import
过程中出现问题,恢复时间将延长)
3.
恢复时步骤较多,易出现人为故障。
由于
这些原因,一般备份
/
恢复时都把
export/import
的方式做为辅助备份
/
恢复方式,对一些重要的表进行二级保护。这种备份方式也称为
“
逻辑备份
”
方式,当某些重要的表被意外删除时可进行逻辑
import
恢复。
而对于整个数据库的日常备份
/
恢复,需要采用
“
物理备份
”
方式,即以相当于
copy
数据文件的方式进行备份,恢复时可以快速以相当于
copy
的方式将备份的数据
copy
回来。一般物理备份
/
恢复都采用
Oracle RMAN
工具来进行。
下面是
“
逻辑备份
”
与
“
物理备份
”
在数据库故障时的恢复比较:
1. Oracle
逻辑错误造成无法启动
逻辑恢复
:
重新
create database
及各
tablespace
,
import
。可恢复到上次
export
的数据
物理恢复
:
将所有
datafile copy
回来,并利用
archivelog
将数据库
recover
到故障前的状态
2.
某一个
datafile
故障或丢失
逻辑恢复
:
重新
create database
及各
tablespace
,
import
。可恢复到上次
export
的数据
物理恢复
:
将该
datafile copy
回来
3.
某一个
tablespace
故障
逻辑恢复
:
重新
create database
及各
tablespace
,
import
。可恢复到上次
export
的数据
物理恢复
:
将该
tablespace copy
回来
4.
意外
drop table
逻辑恢复
: Import
该
table
物理恢复
:
将备份恢复到另一服务器上,
export
该
table
,在原数据库中
import
5.
意外
drop user
逻辑恢复
: Import
该
user
物理恢复
:
将备份恢复到另一服务器上,
export
该
user
,在原数据库中
import
6.
意外
drop tablespace
逻辑恢复
:
情况较复杂,恢复易造成数据库表之间的参照完整性被破坏。在此不做分析
物理恢复
:
情况较复杂,恢复易造成数据库表之间的参照完整性被破坏。在此不做分析
在进行数据库的恢复时,一定要了解
Oracle
数据库的原理,分析故障的原因,然后针对故障的情况进行相应的恢复。例如以下情况:
- Oracle
程序文件损坏?
- control file
损坏?
- Online redo log
损坏?
- datafile
损坏?
- archive log
损坏?
- table
或其中数据被意外删除?
不同情况下需要采用的恢复手段都是不尽相同的,需根据损坏的情况进行相应的恢复步骤。