- 浏览: 197241 次
- 性别:
- 来自: 济南
文章分类
最新评论
-
Kesin97:
不错 很有用。选择性锁也不太影响性能。
sqlserver的updlock锁 (转) -
fox-idea:
学习
用PC作数据库服务器的容灾问题 -
xwei78:
话说这个下载地址不太好找啊,我去oracle网站转了好一会才找 ...
oracle10g官方客户端配置
作为一个dba,最重要的工作莫过于保证数据库中数据的安全,当一个数据库down掉之后,恢复旧变成了至关重要的事情。能否成功的恢复,并不在于数据库down掉时采取的恢复策略,要保证数据的万无一失,一套完整的备份方案是必须的。但作为dba,还应该了解和掌握各种情况下应该采取哪些恢复措施,并且清楚的指导每一种恢复方式的会产生什么样的结果。以下是几种常用的的备份和恢复方式的具体示例,是入门的dba必须掌握的。
实例1:归档的数据库,完整的数据库全库备份,完整的归档备份,此时数据库down掉,只留下控制文件和日志文件可用。
1:安全关闭当前数据库。(确保当前数据库处于归档模式下)。
2:copy所有的数据文件,日志文件和控制文件到一个目录下。
3:打开数据库,建新用户user1
create user user1 identified by aaaaaa;
grant dba to user1;
connect user1/aaaaaa;
4:在user1 下建表T1,向T1中插入10000条数据。
Begin
For I in 1..100000 loop
Insert into t1 values(i);
End loop;
Commit;
End;
/
5:切换几次日志,使所有日志都已经归档。
Alter system switch log file;
6:正常关闭数据库。Shutdown immediate;
7:恢复:
把当前数据库所有文件移动到一个临时文件夹里,模拟数据库损坏。
8:COPY最初复制的数据库的所有文件,但控制文件和日志文件要使用目前数据库的。
9:启动数据库 startup
mount 后会提示SYSTEM表空间需要恢复。并给出恢复使用的归档日志文档。
确定归档日志位置正确后,输入auto.
ORACLE将一个一个的应用归档文档。直至提示完全恢复成功。
10:打开数据库 alter database open;
11:查看user1用户及t1表中是否有刚才插入的10000条记录。
至此,整个使用归档日志对完整的数据库冷备份进行完全恢复的模拟成功完成。
实例2:上面的例子,并且在线日志online redo也丢失,在这种情况下,只能做不完全恢复。前8步同上。
9:startup mount;
10:步完全恢复:
recover database until cance;
o mount 后会提示SYSTEM表空间需要恢复。并给出恢复使用的归档日志文档。
确定归档日志位置正确后,回车,一个个应用归档日志,直至最后提示的归档日志用完后下一个归档日志时输入cancel.
Oracle 提示:
Log applied.
ORA-00279: change 84852341 generated at 09/24/2003 12:16:41 needed for thread 1
ORA-00289: suggestion : D:\ORACLE\ORADATA\SAMPLE\ARCHIVE\TESTT001S01349.ARC
ORA-00280: change 84852341 for thread 1 is in sequence #1349
ORA-00278: log file 'D:\ORACLE\ORADATA\SAMPLE\ARCHIVE\TESTT001S01348.ARC' no lon
recovery
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
Media recovery cancelled.
这是需要resetlogs参数打开数据库。
Alter database open resetlogs;
实例3:上面的例子也可以做基于时间的不完全恢复,但时间必须是数据已经保留在归档日志中的时间及以前。
9:startup mount;
10:基于时间点的不完全恢复:
recover database until time ‘2003-9-24 12:20’;
SVRMGR> recover database until time '2003-9-24 11:20';
ORA-00279: ?? 84851370 (? 09/24/2003 11:16:01 ??) ???? 1 ????
ORA-00289: ??: D:\ORACLE\ORADATA\SAMPLE\ARCHIVE\TESTT001S01324.ARC
ORA-00280: ?? 84851370 ???? 1 ???? # 1324 ???
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
应用的记录。
SVRMGR> alter database open resetlogs;
实例4:归档模式下单个数据文件丢失或损坏,从冷备份中恢复的模拟练习
1:已经做了冷备份。
2:abort方式关掉前的数据库,模拟由于数据文件丢失造成数据库非正常关闭。
3:从冷备份当中copy丢失的数据文件。
4:startup mount;
5:只对这个文件进行恢复。
Recover datafile 'D:\ORACLE\ORADATA\SAMPLE\DR01.DBF';
ORA-00279: 更改 84851719 (在 09/24/2003 12:15:51 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ORACLE\ORADATA\SAMPLE\ARCHIVE\TESTT001S01330.ARC
ORA-00280: 更改 84851719 对于线程 1 是按序列 # 1330 进行的
ORA-00278: 此恢复不再需要日志文件 'D:\ORACLE\ORADATA\SAMPLE\ARCHIVE\TESTT001S01329.ARC'
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
auto 指定为自动恢复。
应用的记录。
直至完成。
ORA-00278: 此恢复不再需要日志文件 'D:\ORACLE\ORADATA\SAMPLE\ARCHIVE\TESTT001S01343.ARC'
应用的记录。
完成介质的恢复。
6:打开数据库
alter database open;
另一种方法:
1:startup mount;
2:alter database datafile 'D:\ORACLE\ORADATA\SAMPLE\DR01.DBF' offline;
3:alter database open;
4:recover datafile 'D:\ORACLE\ORADATA\SAMPLE\DR01.DBF';;
5:alter database datafile 'D:\ORACLE\ORADATA\SAMPLE\DR01.DBF' online;
实例5:归档模式下热备份的恢复模拟练习
1:对某个表空间进行热备份.
Ater tablespace user begin backup
2:在os下把USER表空间对应的文件复制到备份的目录下。
3:结束热备。
Alter tablespace user end backup.
4:shutdown abort;
5:删除该表空间的数据文件。
6:startup;
7:提示文件不存在。
8:还原热备的文件,令该文件脱机。
Alter database datafile ‘88888888’ offline;
9:打开数据库。
10:恢复该文件。
Recover databfile ‘88888888’;
11:alter database datafile online.
也可以对所有的表空间进行热备,删除数据库所有文件,还原热备文件。利用归档日志进行恢复,方法同上。
注:一定要保留热备之后的所有归档日志,联机日志和控制文件,如果联机日志丢失(指状态为active或者current的日志文件),只能进行不完全恢复。方法是按照提示输入日志文件,知道最后一个没有归档的日志文件时CANCEL掉就可以了。
一点心得:
在数据库归档模式下,即使是数据库非正常DOWN掉,通过归档日志和联机日志都可以进行完全恢复。可是如果某个状态为ACTIVE或者CURRENT的日志文件丢失或者损坏,ORACLE肯定不能完整的打开,即使使用
recover database until cancel时,也基本上会报:
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
ORA-01194: 文件1需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'D:\ORACLE\ORADATA\SAMPLE\SYSTEM01.DBF'
这种情况下由于数据库不能恢复到一致的状态,
一种方法:
在数据库中加入:
_allow_resetlogs_corruption=true
让ORACLE不验证数据一致性的情况下强行打开数据库。
然后EXPORT出数据,重建数据库。
或者:
把以前的的数据文件拿来,做不完全恢复,一直恢复到提示使用丢失的联机日志序列号时时打入cancel
recover database until cancel;
然后使用resetlogs的选项打开数据库
alter database open resetlogs;
所以在归档模式下当前数据库的控制文件和联机日志文件在恢复时候至关重要:
其中控制文件用来对旧数据进行恢复,应用归档日志。
而联机日志则可以保证数据库恢复到发生事故时的状态,算是完全恢复。
如果没归档的联机日志丢失(状态为ACTIVE或者CURRENT),则只能使用归档日志恢复到最后一个归档日志的地方,是不完全恢复。
发表评论
-
hsqldb使用命令
2012-03-05 23:12 872REM 启动hsqldb服务器: java -cp ... -
h2 数据库使用 转
2011-10-14 15:32 1258转载请注明: 转自LifeBa,谢谢合作:) 本文永久链接 : ... -
数据库一些问题
2011-05-25 21:53 5871.内外连接 内连接是返回两个表都存在的记录. 外连接是返回 ... -
sql server 面试--转
2011-05-25 21:08 7961.磁盘柜上有14块73G的磁盘, 数据库为200G ... -
mysql增量备份 转
2011-03-06 22:06 1312MySQL 增量备份步骤: 1. 启用 MySQL 二进制 ... -
mysql用户操作
2011-02-22 11:27 678六、修改密码 格 ... -
oracle10g官方客户端配置
2010-11-22 10:20 1683先到官网上下载10G的客户端 我下载的是 instant ... -
完全删除oracle
2010-11-22 09:59 7061、停止所有Oracle服务; 2、开始->程序->O ... -
用PC作数据库服务器的容灾问题
2010-07-30 16:01 881现在好多小单位都有自己的财务等一些小系统,但是又不想花大价 ... -
linux下MySQL配置文件讲解[转载
2010-07-24 16:44 1557MySQL配置文件文章来源:[url]http://www.l ... -
Linux(centos) 更改MySQL数据库目录位置 转
2010-07-24 16:29 1527MySQL默认的数据文件存储目录为/var/lib/mysql ... -
CentOS系统MySQL优化详解 转
2010-07-24 16:25 1141CentOS系统的确很好用,但是还是很多地方需要我们进行正确的 ... -
oracle精简客户端配置
2010-07-24 10:46 214程序员都知道 <script ... -
sqlserver newid() 锁问题
2010-01-28 17:29 829select top 1 * from callback wi ... -
是否需要增加表空间的数据文件
2009-12-16 08:10 1183--1查看表空间已经使用的百分比 Sql代码 ... -
Mysql 日志文件介绍
2009-12-15 17:40 1104MYSQL日志 Mysql提供了一下几组日志,用来帮助你 ... -
MySQL数据库二进制日志恢复方法
2009-12-15 17:39 1180如果MySQL服务器启用了 ... -
数据库在误操作下,日志恢复
2009-12-15 17:24 1669在使用了updata,delete,或者其他情况让数据库遭到破 ... -
sqlserver日志文件收缩 通过日志恢复
2009-12-15 16:18 1569解决方法 日志文件满而 ... -
把数据导入不同的表空间(exp,imp) 转
2009-08-06 09:19 1378很多人在进行数据迁移时,希望把数据导入不同于原系统的表空间,在 ...
相关推荐
Oracle里面HR表或者Scott表里面一些经典的练习!
oracle数据库sql练习题(含答案)用于练习增删改查操作。
Oracle数据库SQL练习(路漫漫其修远、吾将上下而求索)
ORACLE数据库恢复演练报告
oracle 数据库所有示例 --有去除功能的 是通过交集做的计算 select sname,sal,sage,sdeptno from student where sdeptno in(20,10) union select sname,sal,sage,sdeptno from student where sdeptno=20 ; --没有...
赤兔Oracle数据库恢复软件是一款专业好用的Oracle数据库抢修恢复软件。软件功能强大,持修复因各种原因造成的数据库无法打开或数据库删除后没有备份的问题,从而实现对Oracle数据库的抢修恢复,最大限度减少数据丢失...
oracle数据库的练习题,难度一般,适合应付期末考试
Oracle数据库教程——nbu恢复oracle数据库案例
员工表包含:employees表,departments表,locations表,job_grades表,jobs表:
vc 用ado访问Oracle数据库的代码示例
ORACLE数据库ORACLE数据库ORACLE数据库ORACLE数据库ORACLE数据库ORACLE数据库ORACLE数据库ORACLE数据库
SQL SERVER连接oracle数据库几种方法 查询oracle数据库中的表 在master数据库中查看已经存在的链接服务器 要在企业管理器内指定登录帐号
同时也有单库超过10TB的使用例子,这得益于PRM-DUL 内置了小型嵌入式数据库,当索要恢复的ORACLE数据库很大时,PRM-DUL采用嵌入的数据库来存放找到的ORACLE 源数据,这样可以对源数据做索引和灵活的查询。
《Oracle 12c数据库基础教程》教学课件—03Oracle数据库管理工具.pdf《Oracle 12c数据库基础教程》教学课件—03Oracle数据库管理工具.pdf《Oracle 12c数据库基础教程》教学课件—03Oracle数据库管理工具.pdf《Oracle...
进行详细oracle数据库的备份和恢复策略讲解,方便大家进行数据库备份恢复工作。
vc 用ado访问Oracle数据库的代码示例 ;几种方法的写法代码,全面配置文档说明解释;远程访问oracle数据库服务器
oracle示例数据库 用于学习oracle
oracle数据库相关练习与答案,可以去试试哦,在项目中可能遇得着。。
dbview for oracle是一个oracle数据恢复工具,能在没有安装oracle数据库的电脑上,通过对数据库的数据文件进行分析, 得到oracle的数据、表、视图、 函数、存储
Veeam 备份恢复oracle数据库详细配置文档