跳至主要内容

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

评论

此博客中的热门博文

Python学习笔记20100117

映射list   Dictionary 是用{}. list 是一那个[]. turple是用() 当你定义过dictionary后,你可以使用d.keys(), d.values(),d.items()将定义后的时候分别显示出来 当然可以将list里的值加减乘除,也可以如一般的定义直接重新复制这个list. 链接与分割字符串的 li=";", join(li) 则显示的就是 分隔符为;的数 如果使用li=li.split(";")则将刚刚;的分隔符删除,而split里也可定义域,如li.split(";",1)   自省 <---这是啥 之前在使用的时候发觉有些书本上的模块不能调用,很多是py脚本定义过的函数。 下载该脚本s,然后上传至指定位置。 >>>import sys >>>sys.path >>>sys.path.append("绝对位置")然后就能调用这些脚本和参数了。 删除 >>>sys.path.pop() 定义一个参数是 def info(test, test1=10.test2=12): info是函数名,test是必备参数,因为没有定义值,test1和test2是可选参数,定义了初始值   以上是外部函数的调用,下面转到内部函数 内部函数有type,str,dir及其他   ---type 返回任意字符的类型,模块也可以。types模块 >>> type(1) <type 'int'> >>> li=[] >>> type(li) <type 'list'> >>> import odbchelper >>> type(odbchelper) <type 'module'> >>> type(sys) <type 'module'> >>> import types ...

Suse 开机不能进入os

接到个case。机器通电后死活进不了系统,onsite也不知道怎么进去看。 service desk只能派case到我这里。因为不能用正确的root password直接登录,所以只能另想办法。其实网上说要进入failsafe在打init=/bin/bash, 其实从个人使用后,发觉如果有failsafe以后硬盘是无法加载的,也许是因为这个机器之前的原因。 从总体上来看, 是因为硬盘出错导致没有办法做fsck。 系统提示只能手动做fsck. 按照init=/bin/bash后,进入会(none)#, 然后因为硬盘还没加载,但你可以使用大部分命令,可以run fsck.ext3然后就开始检测,这时候狂按y就成。系统检查完了,想reset root password但是这时候不能进入会提示module is unkwon...然后正常启动的时候,登录界面也没有办法得到焦点,切到ctrl+alt+f1也没办法登入。 那个郁闷啊, 这个时候只能停下来,看google。大部分的原因是因为pam不能正常工作导致的, 这点也是比较失败的地方,其实可以直接从/var/log/messages里面看到。  后来查看了一下,确实pam出问题了,但是这个问题并不是源于机器本身的pam而是vas登录的时候在/opt/quest/lib/security/pam_vas.so这个文件丢失了, 那只能先把vas全部卸掉,然后重启,在rest root password. 这个时候就成功了, 然后只需要重新安装vas就好了  -- Alex Tu ----------------------------------------------------------- ShangHai,China