oracle 单张表恢复问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 单张表恢复问题相关的知识,希望对你有一定的参考价值。
Oracle10g的数据库,不小心删除了一张表,之前有dmp备份。1、不能用闪回、回滚等Oracle自带的回复,因为系统正在使用,还有别的重要数据。2、dmp很大【14G】不方便转移到其他服务器。而且导入导出很费时想知道有没有办法,直接从dmp里把这张表弄出来?
假如你的数据库没有关闭回收站。那么可以根据10g的新特性进行单表闪回恢复。下面例子如下SQL> create table test as select * from tab;表已创建。SQL> drop table test;表已删除。SQL> show recyclebin;ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
TEST BIN$K2gvVzqfRfi+epAhf22V3Q==$0 TABLE 2009-07-16:15:55:53
SQL> flashback table "BIN$K2gvVzqfRfi+epAhf22V3Q==$0" to before drop;闪回完成。SQL> select * from tab where tname=\'TEST\';TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
TEST TABLE 如果要是想把闪回的表定义到一个新的表名,可以如下操作 SQL> select * from tab where tname=\'TEST\';TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
TEST TABLESQL> drop table test;表已删除。SQL> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
TEST BIN$v4b9XUSfTYadA1Xssas6rA==$0 TABLE 2009-07-16:15:57:08
SQL> flashback table "BIN$v4b9XUSfTYadA1Xssas6rA==$0" to before drop
2 rename to test_old;闪回完成。SQL> select * from tab where tname like \'%TEST%\';TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
TEST_OLD TABLE 我想这个应该可以最快的速度帮你处理你当前的难题。以上内容都是我一步一步操作的结果,完全可行而且不应该会有任何风险。希望对你有所帮主 参考技术A 是不是可以用Imp命令导入这张表。
Linux命令:MySQL系列之十三--MySQL备份与还原(针对单张表SELECT备份)
对于只备份单张表的备份与还原,通过SELECT命令,可以更快速的达到备份和恢复的目的;
以及通过此方法把一个数据库中表的数据,导入至另一数据库的表中去。
备份格式:SELECT * INTO OUTFILE ‘/PATH/TO/somefile.txt‘
FROM table_name [WHERE CLAUSE];
#备份table_name表中的[或者备份满足WHERE语句的数据]数据至服务器上保存。
注释:table_name:需要备份的表 WHERE:满足的条件,可选项。
/PATH/TO:服务器上的路径目录,且此目录必须是执行SELECT语句的用户有写的权限,
否则无法备份。
还原格式:LOAD DATA INFILE ‘/PATH/TO/somefile.txt‘ INTO TABLE table_name;
注释:table_name:需要还原的表的名称,此表必须先在数据库中存在。
/PATH/TO:备份所存放的路径
mysql> CREATE TABLES tutor LIKE tutors; #仿照tutors表的框架创建一个空表tutor
实例:备份一个数据库表的数据,导入至另一个数据库表的数据;
mysql> USE jiaowu;
Database changed
mysql> SELECT * FROM tutors; #查询表tutors的信息
+-----+------------------+--------+-----+
| TID | Tname | Gender | Age |
+-----+------------------+--------+-----+
| 1 | HongQigong | M | 93 |
| 2 | HuangYaoshi | M | 63 |
| 3 | HuangRong | F | 46 |
| 4 | HuYidao | M | 65 |
| 5 | XiaoLongnv | F | 28 |
| 6 | HuFei | M | 45 |
| 7 | GuoXiang | F | 32 |
+-----+------------------+--------+-----+
7 rows in set (0.00 sec)
mysql> SELECT * INTO OUTFILE ‘/tmp/tutor.txt‘ FROM tutors;
Query OK, 7 rows affected (0.01 sec)
mysql> CREATE TABLE tutor LIKE tutors;
Query OK, 0 rows affected (0.03 sec)
mysql> DESC tutor;
+---------+---------------------------+------+-----+---------+------------------+
| Field | Type | Null | Key | Default | Extra |
+---------+---------------------------+------+-----+---------+------------------+
| TID | smallint(5) unsigned | NO | PRI | NULL | auto_increment |
| Tname | varchar(50) | NO | | NULL | |
| Gender | enum(‘F‘,‘M‘) | YES | | M | |
| Age | tinyint(3) unsigned | YES | | NULL | |
+---------+---------------------------+------+-----+---------+------------------+
4 rows in set (0.01 sec)
mysql> DESC tutors ;
+---------+---------------------------+------+-----+---------+------------------+
| Field | Type | Null | Key | Default | Extra |
+---------+---------------------------+------+-----+---------+------------------+
| TID | smallint(5) unsigned | NO | PRI | NULL | auto_increment |
| Tname | varchar(50) | NO | | NULL | |
| Gender | enum(‘F‘,‘M‘) | YES | | M | |
| Age | tinyint(3) unsigned | YES | | NULL | |
+---------+---------------------------+------+-----+---------+------------------+
4 rows in set (0.01 sec)
mysql> DROP TABLE tuors;
Query OK, 0 rows affected (0.03 sec)
mysql> SELECT * FROM tutor; #查询表tutor的信息
Empty set (0.04 sec) (暂时无数据)
mysql> LOAD DATA INFILE ‘/tmp/tutor.txt‘ INTO TABLE tutor;
Query OK, 7 rows affected (0.04 sec)
Records: 7 Deleted: 0 Skipped: 0 Warnings: 0
mysql> SELECT * FROM tutor; #查询表tutor的信息
+-----+------------------+--------+-----+
| TID | Tname | Gender | Age |
+-----+------------------+--------+-----+
| 1 | HongQigong | M | 93 |
| 2 | HuangYaoshi | M | 63 |
| 3 | HuangRong | F | 46 |
| 4 | HuYidao | M | 65 |
| 5 | XiaoLongnv | F | 28 |
| 6 | HuFei | M | 45 |
| 7 | GuoXiang | F | 32 |
+-----+------------------+--------+-----+
至此通过SELECT备份还原操作完成。
本文出自 “学linux历程” 博客,请务必保留此出处http://woyaoxuelinux.blog.51cto.com/5663865/1932270
以上是关于oracle 单张表恢复问题的主要内容,如果未能解决你的问题,请参考以下文章
Linux命令:MySQL系列之十二--MySQL备份与还原(针对单张表SELECT备份)