2008年1月11日星期五

Oracle学习笔记20080110

基于时间恢复的例子
情节:当前的时间是晚上12点,employees表被删了,表被删除的时间大概(approximately)是在11点45,数据正在使用的人很少因为大多数的部门正在开会,这个表必须被恢复

步骤:Shut down and back up--Restore all datafiles--Mount the database--Archived log file--Open with Resetlogs--Back up the database

基于取消恢复的例子
情节:当前的时间是晚上12点,employees表被删了当有人试着修复坏块,log file存在于同样的disk,表被删除的时间大概(approximately)是在11点45,大多数的部门正在开会调查findingsredo logs不是多路,有个redolog丢失了,丢失的有不是归档,这个redo log包含了11:34开始的信息,26分钟的信息会丢失,用户需要恢复他们的数据

使用备份的control file当回复的时候
情节:当前时间是12点,表空间包含着employee表被删除了,这个错误大概在11点45,很多employee的记录将被更新但不是从11点开始,备份需要每天晚上做调查备份从前一晚包含的文件和控制文件需要恢复,emp_ts只有一个数据文件,正确的序号是61,你设置这个表空间被删除时在11点44分,数据文件号是4不在线

丢失当前的redo log
如果数据库是关闭的:试图开启数据库,找到当前日志的序号,恢复数据库直到cancel,删除和重建log如果需要,打开数据库使用resetlogs命令,完成这个数据库的备份

RMAN Incomplete Recovery不完整的恢复用RMAN加载数据库,允许多通道,返回数据文件,回复数据库用until time,untile sequence或者until scn.用resetlogs打开数据库,执行数据库全备份。

Cross-check all backups in the database:
CROSSCHECK BACKUPSET OF DATABASE;

Cross-check all copies in the database:
CROSSCHECK COPY;


RMAN Incomplete Recovery UNTIL TIME Example
RMAN> run {
2> allocate channel c1 type DISK;
3> allocate channel c2 type DISK;
4> set until time = !(R)200-12-09:11:44:00';
5> restore database;
6> recover database;
7> alter database open resetlogs; }

RMAN Incomplete Recovery UNTILSEQUENCE Example
RMAN> RUN {
2> SET UNTIL SEQUENCE 120 THREAD 1;
3> ALTER DATABASE MOUNT;
4> RESTORE DATABASE;
5> RECOVER DATABASE; # recovers through log 119
6> ALTER DATABASE OPEN RESESTLOGS;
7> }

RMAN Maintenance(RMAN的维护)
cross checking备份与复制用crosscheck命令
Cross-check all backups in the database:
CROSSCHECK BACKUPSET OF DATABASE;

Cross-check all copies in the database:

CROSSCHECK COPY;


删除备份和复制
使用delete命令删除物理备份和应向拷贝,修改状态deleted,从备份目录移除备份数据
删除特定的backupset
DELETE BACKUPSET 102;

删除到期的backup不经过设置:
DELETE NOPROMPT EXPIRED BACKUP OF TABLESPACE users;

删除所有:
DELETE OBSOLETE;
用BACKUP...DELETE INPUT命令可删除归档日志,数据文件,备份文件
改变有效的备份和拷贝改变备份或者拷贝无效使用change...unavailable命令返回有效change..available
修改到有效状态修改特定的Datafile状态:
CHANGE DATAFILECOPY '/DB01/BACKUP/users01.dbf' UNAVAILABLE;

修改控制文件备份的状态:
CHANGE BACKUP OF CONTROLFILE UNAVAILABLE;CHANGE BACKUP OF CONTROLFILE AVAILABLE;

修改归档日志的状态
CHANGE COPY OF ARCHIVELOG SEQUENCE BETWEEN 230 AND 240 UNAVAILABLE;

免除(exempting)备份和拷贝从the retention policy使用change..keep change..nokeep
建立一个长期备份
CHANGE BACKUPSET 123 KEEP FOREVER NOLOGS;

使一个备份有效60天
CHANGE DATAFILECOPY '/DB01/BACKUP/users01.dbf' KEEP UNTIL'SYSDATE+60';

编目归档日志和用户备份可以用catalog命令加信息到一个操作系统数据文件备份,一个归档日志备份,一个控制文件备份
目录一个备份用操作系统
CATALOG DATAFILECOPY '/DB01/BACKUP/users01.dbf';

目录归档日志
CATALOG ARCHIVELOG '/ORADATA/ARCHIVE1/arch_12.arc',
'/ORADATA/ARCHIVE1/arch_13.arc';

没有目录的RMAN记录使用change...uncatalog命令修改在容器汇总的记录用delete状态删除特定的backup或者拷贝记录从回复目录
TCHANGE..UNCATALO命令移除被删除的归档日志记录
CHANGE ARCHIVELOG...UNCATALOG;

移除被删除的数据文件记录
CHANGE DATAFILECOPY '/DB01/BACKUP/users01.dbf' UNCATALOG;

Recovery Catalog Creation and Maintenance
回复目录建立和维护查询普通报告和列表从恢复目录,建立,保管和跑脚本,说明备份和恢复目录的动作
回复目录中的内容Datafile and archived redo log file backup sets and backup pieces
Datafile copies Archived redo log files
The physical structure of the target database
Persistent RMAN configuration settings
Stored job scripts
利用recover catalog的好处
Metadata about multiple target databases in one catalog
Metadata about multiple incarnations of a single target databaseHistorical metadata
Reporting on the target database at a noncurrent time

没有评论: