update 并commit后 数据恢复

SQL*Plus 、oracle 更新多条数据。详细步骤,谢谢!
2024-12-26 16:20:14
推荐回答(5个)
回答1:

你可以使用基于时间的不完全恢复,应该记得差不多在多少时间之前是正常的吧?
Incomplete Recovery Using UNTIL TIME
1. 关闭数据库:shutdown IMMEDIATE
2. 从备份恢复数据文件:把备份的数据文件替换现在的数据文件。做这个之前,最好先把现在的数据文件备份下,哈哈。
Restore all datafiles from backup (the most recent if possible). You may need to restore archived logs. If there is enough space available, restore to the
LOG_ARCHIVE_DEST location or use the ALTER SYSTEM ARCHIVE LOG
START TO or SET LOGSOURCE to change the
location.
3.挂装数据库但不要open。 Mount the database.
4. 恢复数据库Recover the database:
SQL> recover database until time ’2002-03-09:11:44:00’
ORA-00279: change 148448 …03/09/02 17:04:20 needed for thread
ORA-00289: suggestion : /disk1/archive/arch_6 .rdo
ORA-00280: change 148448 for thread 1 is in sequence #6 Log
applied.
...
Media recovery complete.
5. 为了使数据文件与控制文件和重做文件同步,带RESRTLOG方式打开数据库。To synchronize datafiles with control files and redo logs, open the database by using
the RESETLOGS option:
SQL> alter database open resetlogs;
SQL> archive log list
...
Oldest online log sequence 0
Next log sequence to archive 1
Current log sequence 1
6. 这一句说的是验证,看对不对Before performing the whole closed database backup, query the EMPLOYEES table to
make sure it exists.
When recovery is successful and the backup has completed, notify users that the database is
available for use, and any data entered after the recovery time (11:44 a.m.) will need to be
reentered.
以上文字来自于Oracle9i Database Administration Fundamentals II 14-13
,同样适用于10g/11,请自己找到这本书的第14张去仔细研读下

回答2:

这种情况下用闪回表是最好的,前提是你的撤销段中还保存着update操作之前的信息。
1.启用表闪回第一个步骤是启用表上的记录转移,否则会报错:alter table enable row movement;
2.表闪回通常涉及外键关系,解决方法是一次闪回多个表
(1)基于时间的闪回:
flashback table [,] to timestamp to_timestamp('.......','yyyy-mm-dd hh24:mi:ss');
(2)基于系统改变号的闪回:
flashback table [,] to SCN ......;

回答3:

你可以试试PRM for Oracle。

ParnassusData Recovery Manager(以下简称PRM)是企业级ORACLE数据灾难恢复软件,可直接从Oracle9i,10g,11g,12c的数据库数据文件(datafile)中抽取还原数据表上的数据,而不需要通过ORACLE数据库实例上执行SQL来拯救数据。ParnassusDataRecovery Manager是一款基于JAVA开发的绿色软件,无需安装,下载解压后便可直接使用。

恢复场景1 误Truncate表的常规恢复

D公司的业务维护人员由于误将产品数据库当做测试环境库导致错误地TRUNCATE了一张表上的所有数据,DBA尝试恢复但是发觉最近的备份不可用,导致无法从备份中恢复出该数据表上的记录。 此时DBA决定采用PRM来恢复已经被TRUNCATE掉的数据。

回答4:

提取备份,用归档日志做不完全回复,基于时间点或者SCN。。。技术比较高的。描述起来很复杂。。。。

回答5:

char型就是把不足位补空格的
把char改成varchar就好了,后边就没空格了