跳至主要内容

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 ...

投名状

昨天晚上实在无聊,就屁颠屁颠的去看了《投名状》,本来去奥斯卡的,发觉已经只有9点以后的场次,还特别的翘,我说那九点看了直接去看《集结号》首映算了,别人不愿意,那行,然后出来瞎晃悠,还好几个周围的电影院还近,去了胜利,人那还没上片,看来没希望,突然想去唱歌,行,反正金歌也进,就那么走过去吧,突然眼前豁然开朗,这不是西湖电影院么,一阵小跑,发觉上片,最近的场次还只有头牌了,虽然头牌脖子有点罩不住,但是至少看看片子还可以的。 网上大概了解了下《投名状》,陈可辛翻拍的《刺马》,加上了几个现代的演员。故事的大概是:姜午阳、赵二虎本为草莽,在一次争斗中与庞青云结识。三人惺惺相惜,结为异姓兄弟。不料日就生变,赵二虎的妻子莲生爱上了大哥庞青云,庞青云也对莲生心生爱慕。不久后,庞青云升为两江总督,欲望逐渐膨胀,变得心狠手辣。他的道德防线也逐渐崩溃,霸占莲生,还要对兄弟下手…… 剧情也就那么个回事情,其实故事梗概不然,一个从死人堆里爬出来的人,什么都失去过了 。已经改变了他的原有个性,他已经从开始就知道什么是他要的,而唯一觉得真是的就是老徐那一次,其实古时候也挺简单的,说得好就上了。只是一种人性做本质的释放。受苦挨饿无非就是为了有着一日飞黄腾达,为了生活隐姓埋名,别人都在抢军粮的时候什么都不做,唯一的只是在金城武快要被杀掉的时候救助,然后直接取了押送大将的首级。擒贼先擒王。。。。 而刘德华的出场也特别犀利,从他的眼神看出他已经被锻炼的很老练,已经是一个大将之才,错的地方就是信错了人,在后面苏州一役的时候,从为了一个被困一年的军队,只身一人去刺城主。被困一年无论对于城内还是城外都是极大的考验,心里防线都已经到了崩溃的边缘。而城主以他的解脱来换大众的解脱,这是很等的伟大,而战争是残酷的,不能收编的俘虏虽然答应了别人,可没有粮食来养活那么多人。敌军的气节也让人唏嘘不已。 刘德华的演绎的性格有情有义,到最后死也不认为是李连杰派人杀的他。李连杰演绎的则是在战场上全军覆没后,心里从此极大改变,为了目的不择手段,从始至终就是在利用刘和金,但也为曾经的战场情了矛盾,权还是义一直是在他的心理纠结着,当苏州一役,李看到刘走出城那种又喜又悲的感情时,看出了他心理是多的纠结。金城武么,唉,演技确实很好,但是角色赋予的他是个傻蛋的角色,只为了情谊,一心想挽回情谊,而在战场上也为了情谊能甘当敢死队,同时也为了情谊...