- 最后登录
- 2017-5-4
- 在线时间
- 81 小时
- 威望
- 999
- 金钱
- 2391
- 注册时间
- 2013-9-11
- 阅读权限
- 150
- 帖子
- 1124
- 精华
- 5
- 积分
- 999
- UID
- 1220
|
1#
发表于 2017-4-16 15:09:59
|
查看: 1818 |
回复: 0
07年一月份,现在的一个同事把一个表空间置为read only,然后拷贝出这个表空间的数据文件arch071.dbf,刻了光盘保存起来。
今天开发人员要求恢复这个光盘上的数据。
我登上生产数据库发现这个表空间已经不在了。
无法找回1月到现在的归档日志。
我的同事说这样还是可以恢复这个数据文件的。
我怎么想都觉得不可能。
他说参考 metalink 102786.1。
我看了觉得根本不是那回事!
大家看看有没有希望啊?
谢谢
附 metalink 102786.1
Partial restore of a database (DOC ID: Note:102786.1)
-----------------------------
These are the steps you need to take when restoring just a part
of a backup.
1. List all the datafiles you need to restore (i.e. /db/oradata/ARCH071.dbf etc)
In order to open the database without errors you will need the datafiles for
the following tablespaces:
+ The SYSTEM tablespace
+ The SYSAUX tablespace (for 10g and higher only)
+ Other tablespaces that hold dictionary information. You can use the
following query to track these down:
select distinct tablespace_name from dba_segments where owner in
('SYS', 'SYSTEM');
+ The tablespace(s) that hold the rollback segments
+ The tablespace(s) that hold the data that you want to export.
2. On your original machine (sydeis), backup your control file to trace.
using: ALTER DATABASE BACKUP CONTROLFILE TO TRACE
3. Save this file (create control file script) on your second machine (fxatest2).
4. Edit this create control file script so it includes all the files in the
tablespaces you wish to restore, as listed in step 1 (i.e., delete any files
that correspond to tablespaces that you are not interested in recovering.)
While editing the create control file statement, make changes to the paths
of the files as required.
5. Restore the files as listed in the create control file statement.
that is, restore all the datafiles that were listed in step 1 as the
datafiles you need.
6. Restore the init.ora file from the original database to the new database
making any changes required to directory paths in the init.ora file.
7. Start nomount the database and run the create control file statement/script
as prepared in step 4.
8. Make sure that all archivelog files are available.
In order to roll forward you need to have all the archivelog
files available from the time of the backup until the time that
you want to roll forward to.
9. Bring the database up in MOUNT mode
SVRMGRL> ALTER DATABASE MOUNT
10. Inform database that we're not using some datafiles.
SVRMGRL> ALTER DATABASE DATAFILE '<name>' OFFLINE DROP;
Perform this for all the datafiles that make up the database
except for the ones that we restored in step 5.
The database now knows that we're just using those.
11. Rollforward
SVRMGRL> RECOVER DATABASE UNTIL TIME '<YYYY-MM-DD:HH24:MI:SS>';
If you've restored an old controlfile you need to add
USING BACKUP CONTROLFILE to this command.
12. Open the database
SVRMGRL> ALTER DATABASE OPEN RESETLOGS;
The database is now open, only the objects from the restored
datafiles are accessible, they can now be exported and imported
into the live database.
他做的是对数据文件的 操作系统 拷贝 !!!
就是说没救了?
郁闷啊。
现在开发人员盯着我,
做这个备份的家伙像没事一样的。
嗯。同事完全搞混了备份的概念。
还指点我说建一个同名的表空间,然后指向他备份的那个数据文件。
服了他了。
他就是这么认为的。
他说是只读的,所以就只要建个同名表空间,然后连接到这个恢复出来的文件就可以了。
也是他。
从去年11月到今年8月底我加入公司,都只有他一个DBA,是contractor。
你提醒我了,我查查log看看这个表空间是什么时候被删除的。
公司只保存6个星期的备份。
|
|