免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1377 | 回复: 2
打印 上一主题 下一主题

高手请指点如何用备份软件备份与恢复oracle [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-09-11 10:14 |只看该作者 |倒序浏览
最好是netvault,veritas也行。
我用netvault备份,恢复老是不成功。
就是建个表空间,备份完,drop掉表空间,然后shutdown数据库,
然后就开始还原,netvault日志上还原显示成功,但是startup后,表空间没有回来。

论坛徽章:
0
2 [报告]
发表于 2006-09-11 13:27 |只看该作者
oracle完全恢复会把数据库,表空间或者数据文件从备份介质恢复到硬盘,确保已经提交的事务没有丢失。任何已经提交的事务,包括你删除表空间这个事务都不会回滚。

如果想取消某个已经提交的事务(比如删除表空间), 需要执行数据库的不完全恢复,将数据库恢复到事务提交(删除表空间)以前的某个时间点。

论坛徽章:
0
3 [报告]
发表于 2006-09-11 14:22 |只看该作者
原帖由 圣陀螺 于 2006-9-11 10:14 发表
最好是netvault,veritas也行。
我用netvault备份,恢复老是不成功。
就是建个表空间,备份完,drop掉表空间,然后shutdown数据库,
然后就开始还原,netvault日志上还原显示成功,但是startup后,表空间没有回 ...


一般来说oracle recovery可以分为好几种情况:
1. with archived log 和 without archived log
2. complete recovery 和 incomplete recovery
    Incomplete recovery有三种: until time , until change, until cancel.
3. user-managed recovery 和 rman recovery(即使使用 netvault,veritas等备份工具,他们也是调用rman来实现的)

对于drop tablespace之类的recovery,因为drop tablespace会引起controlfile结构信息的改变,因为一般要做incomplete recovery,将数据库恢复到drop tablespace前的时间点。这时候通过user-managed 或者 rman来作都是大同小异,只不过rman更为简单:
1. 必须要有一个完整的备份(在drop tablespace之前的时间)
2. 通过alertxxx.log日志信息获得drop tablespace发生的准确时间,比如drop tablespace发生在9:45:30am.
3. 首先正常关闭数据库,先做好全备份。(即使现在的数据库是个有问题的数据库)
4. 从以前的备份中首先恢复controlfile(这个controlfile应该是包含被drop的tablespace信息的)
5. startup mount restrict
6. recover database until time ‘2006-09-11:09:45:00' using backup controlfile;(这个是user-managed recovery方式)
7. 为了同步controlfile,datafiles,redolog信息,使用
    alter database open resetlogs
    Incomplete recovery都需要重置log信息,所以先做好备份是至关重要的。

这样数据库恢复成功,但是9:45:30发生的数据就会没有。

recovery最重要的是先要做好备份。不光是开始recovery前要做好备份,如果recovery成功更要立即做好备份,至关重要。

[ 本帖最后由 numenhuang 于 2006-9-11 14:28 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP