文档库 最新最全的文档下载
当前位置:文档库 › 清除oracle表空间

清除oracle表空间

清除oracle表空间
清除oracle表空间

如果在清除表空间之前,先删除了表空间对应的数据文件,会造成数据库无法正常启动和关闭。

可使用如下方法恢复(此方法已经在oracle9i中验证通过):

下面的过程中,filename是已经被删除的数据文件,如果有多个,则需要多次执行;tablespace_name是相应的表空间的名称。

$ sqlplus /nolog

SQL> conn / as sysdba;

如果数据库已经启动,则需要先执行下面这行:

SQL> shutdown abort

SQL> startup mount

SQL> alter database datafile 'filename' offline drop;

SQL> alter database open;

SQL> drop tablespace tablespace_name including contents;

创建用户并指定表空间

create user zfmi identified by zfmi

default tablespace zfmi temporary tablespace zfmi_temp;

identified by 参数必须有

授予message用户DBA角色的所有权限

GRANT DBA TO zfmi;

给用户授予权限

grant connect,resource to zfmi; (db2:指定所有权限)

导入导出命令:

在Oracle 删除表空间之前,Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件, imp命令可以把dmp文件从本地导入到远处的数据库服务器中。利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。

执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,

DOS中可以执行时由于在oracle 8i 中安装目录ora81BIN被设置为全局路径,

该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。

oracle用java编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。

SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导出功能。

文章来源:网络编辑:联动北方技术论坛

(如有侵权请及时联络以便删除)

oracle 备份恢复语句整理(最全)

Oracle备份恢复场景总结 一、数据文件、表空间恢复 1、数据库文件恢复 1>场景一: 问题描述: test.dbf丢失,有RMAN备份。 重启报错: Startup; ORA-01157: cannot identify/lock data file 5 - see DBWR trace file ORA-01110: data file 5: '/oracle/app/oracle/oradata/orcl/test01.dbf' run{ startup mount; allocate channel ch00 type 'SBT_TAPE'; restore datafile 5; recoverdatafile 5; alter database open; release channel ch00; }

2>场景二 问题描述: 模拟test表空间损坏,删除数据文件(恢复到新目录) 旧目录:/oracle/app/oracle/oradata 新目录: /home/oracle run{ allocate channel ch00 type 'SBT_TAPE'; sql 'alter database datafile 5 offline'; setnewname for datafile 5 to '/home/oracle/test01.dbf'; restoredatafile 5; switchdatafile 5; recoverdatafile 5; sql 'alter database datafile 4 online'; release channel ch00; } 说明: set newname for 告诉RMAN 还原数据文件的新位置在哪里。这个命令在restore 前出现。 switch datafile更新controlfile,记录这个新位置。这个命令要在recover 前出现

彻底删除oracle重新安装

彻底删除oracle,重新安装 下载vistar版本,解压,搜索refhost.xml文件,修改之。 当前任何版本的ORACLE客户端在任何版本的WINDOWS7上都不能正常完成安装。 主要是因为ORACLE安装的先决条件里操作系统版本不符合,但是这个疑问可以修改refhost.xml 处理,具体是在refhost.xml中添加 <!--Microsoft Windows 7--> <OPERATING_SYSTEM> <VERSION VALUE="6.1"/> </OPERATING_SYSTEM> 即可 -------------------------------------------------------------------- 彻底删除oracle: 1、开始->设置->控制面板->管理工具->服务停止所有Oracle服务。 2、开始->程序->Oracle - OraHome81->Oracle Installation Products->Universal Installer 卸装所有Oracle产品,但Universal Installer本身不能被删除 5、运行regedit,选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE,按del键删除这个入口。 6、运行regedit,选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services,滚动这个列表,删除所有Oracle入口。 7、运行refedit,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application,删除所有Oracle入口。 8、开始->设置->控制面板->系统->高级->环境变量删除环境变量CLASSPATH和PATH中有关Oracle的设定 9、从桌面上、STARTUP(启动)组、程序菜单中,删除所有有关Oracle的组和图标 10、删除\Program Files\Oracle目录 11、重新启动计算机,重起后才能完全删除Oracle所在目录(到这基本可以安装) 12、删除与Oracle有关的文件,选择Oracle所在的缺省目录C:\Oracle,删除这个入口目录及所有子目录,并从Windows 2000目录(一般为C:\WINNT)下删除以下文件ORACLE.INI、oradim73.INI、oradim80.INI、oraodbc.ini等等。 13、WIN.INI文件中若有[ORACLE]的标记段,删除该段 14、如有必要,删除所有Oracle相关的ODBC的DSN 15、到事件查看器中,删除Oracle相关的日志说明:如果有个别DLL文件无法删除的情况,则不用理会,重新启动,开始新的安装,安装时,选择一个新的目录,则,安装完毕并重新启动后,老的目录及文件就可以删除掉了。 ------------------------------------------------------------------

oracle 如何删除被误删物理文件的表空间

oracle 如何删除被误删物理文件的表空间.txt为什么我们在讲故事的时候总要加上从前?开了一夏的花,终落得粉身碎骨,却还笑着说意义。oracle 如何删除被误删物理文件的表空间.txt如果有来生,要做一棵树,站成永恒,没有悲伤的姿势。一半在土里安详,一半在风里飞扬,一半洒落阴凉,一半沐浴阳光,非常沉默非常骄傲,从不依靠从不寻找。如何删除alter database ... offline drop掉文件的表空间? QL> connect / as sysdba Connected to an idle instance. SQL> startup ORACLE instance started. Total System Global Area 336662768 bytes Fixed Size 450800 bytes Variable Size 117440512 bytes Database Buffers 218103808 bytes Redo Buffers 667648 bytes Database mounted. ORA-01157: cannot identify/lock data file 3 - see DBWR trace file ORA-01110: data file 3: '/home/oracle/oradata/esal/ts_cybercafe01.dbf' SQL> alter tablespace cybercafe offline; alter tablespace cybercafe offline * ERROR at line 1: ORA-01109: database not open SQL> alter database datafile '/home/oracle/oradata/esal/ts_cybercafe01.dbf' offline drop; Database altered. SQL> alter database open; Database altered. //如果还提示文件不存在的话,那就继续执行datafile的drop命令,直到数据库可以open 为止; SQL> select * from v$tablespace; TS# NAME INC ---------- ------------------------------ ---

Oracle删除表的几种方法

Oracle删除表的几种方法 2010年07月27日星期二 13:07 引言: drop table books;的指令会将表放到回收站里, 用 flashback table "BIN$1Oiy3qm/QJubov1BwBUOgw==$0" to before drop; 就能恢复。 删除表: drop table books purge;是绕过回收站,彻底删除 建议你先 purge recyclebin; 清除当前用户的回收站,不会影响其他用户的回收站 或者 purge table 表名; 清除回收站内指定的表 正文: 删除表(记录和结构)的语名delete ———— truncate ————drop DELETE (删除数据表里记录的语句) DELETE FROM表名 WHERE 条件; 注意:删除记录并不能释放ORACLE里被占用的数据块表空间. 它只把那些被删除的数据块标成unused. 如果确实要删除一个大表里的全部记录, 可以用 TRUNCATE 命令, 它可以释放占用的数据块表空间 TRUNCATE TABLE 表名; 此操作不可回退. 相同点 truncate和不带where子句的delete, 以及drop都会删除表内的数据 注意:这里说的delete是指不带where子句的delete语句 不同点: 1. truncate和 delete只删除数据不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.

2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发. truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger. 3.delete语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动 显然drop语句将表所占用的空间全部释放 truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage; truncate会将高水线复位(回到最开始). 4.速度,一般来说: drop>; truncate >; delete 5.安全性:小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不 及 使用上,想删除部分数据行用delete,注意带上where子句. 回滚段要足够 大. 想删除表,当然用drop 想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还是用delete. 如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据 oracle中删除表中的一列语句 alter table 表名 drop colum 列名

Oracle误删数据的恢复

有很多原因导致了数据记录的误删,怎样恢复误删的记录呢?先来看看这个概念: SCN(系统改变号),它的英文全拼为:System Change Number ,它是数据库中非常重要的一个数据结构。 SCN提供了Oracle的内部时钟机制,可被看作逻辑时钟,这对于恢复操作是至关重要的 注释:Oracle仅根据 SCN 执行恢复。 它定义了数据库在某个确切时刻提交的版本。在事物提交时,它被赋予一个唯一的标示事物的SCN 。一些人认为 SCN 是指, System Commit Number ,而通常 SCN 在提交时才变化,所以很多情况下, 这两个名词经常被交替使用。 究竟是哪个词其实对我们来说并不是最重要的,重要的是我们知道 SCN 是Oracle 内部的时钟机制, Oracle 通过 SCN 来维护数据库的一致性,并通过SCN 实施 Oracle 至关重要的恢复机制。 具体执行流程我们可从以下几个示例图中体会; 1.原表记录 $ sqlplus eygle/eygle SQL*Plus: Release 10.1.0.2.0 - Production on Wed Mar 30 08:52:04 2005 Copyright (c) 1982, 2004, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production With the Partitioning, OLAP and Data Mining options SQL>select count(*) from t1; COUNT(*) ---------- 9318 2.误删除所有记录 并且提交更改。

Oracle恢复truncate删除表的数据

Oracle恢复truncate删除表的数据 SQL> show parameter flashback NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_flashback_retention_target integer 1440 flashback功能默认为1440分钟,也就一天时间 数据库闪回状态可以从v$database视图中查询 SQL> select dbid,name,flashback_on,current_scn from v$database; DBID NAME FLASHBACK_ON CURRENT_SCN ---------- --------- ------------------ ----------- 2274326636 RISENET NO 997660 flashback_on为NO,也就是没有开flashback功能,当truncate删除数据时,无法使用flashback 启动flashback_on(需要数据库在mount状态下打开) SQL> shutdown immediate; 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup mount ORACLE 例程已经启动。 Total System Global Area 272629760 bytes Fixed Size 1248476 bytes Variable Size 109052708 bytes Database Buffers 155189248 bytes Redo Buffers 7139328 bytes 数据库装载完毕。 SQL> alter database flashback on; 数据库已更改。 SQL> select dbid,name,flashback_on,current_scn from v$database; DBID NAME FLASHBACK_ON CURRENT_SCN ---------- --------- ------------------ ----------- 2274326636 RISENET YES 0 SQL> alter database open; 数据库已更改。 SQL> connect scott/mzl 已连接。 SQL> select table_name from user_tables;

Oracle数据库表数据误删还原

一、如果是刚刚删除,那么有两方法: 首先用show parameter undo;命令查看当时的数据库参数undo_retention设置。显示如下: undo_management string AUTO undo_retention integer 10800 undo_suppress_errors boolean FALSE undo_tablespace string UNDOTBS1 undo_retention(保持力),10800单位是秒。即3个小时。 修改默认的undo_retention参数设置: ALTER SYSTEM SET undo_retention=10800 SCOPE=BOTH; 方法1,通过oracle提供的回闪功能: exec dbms_flashback.enable_at_time(to_date('2007-07-23 10:21:00','yyyy-mm-dd hh24:mi:ss')); set serveroutput on DECLARE r_temp hr.job_history%ROWTYPE; CURSOR c_temp IS SELECT * FROM hr.job_history; BEGIN OPEN c_temp; dbms_flashback.disable; LOOP FETCH c_temp INTO r_temp; EXIT WHEN c_temp%NOTFOUND; insert into hr.job_history(EMPLOYEE_ID,JOB_ID,START_DATE,END_DATE) values (r_temp.EMPLOYEE_ID,r_temp.JOB_ID,r_temp.START_DATE,r_temp.END_DA TE);

Oracle误删UNDO表空间故障处理

Oracle 误删UNDO表空间故障处理 H.sdon 操作人员操删除ORACLE UNDO表空间,系统报ORA-01116: error in opening database file 25错误。 解决思路:删除原有UNDO表空间,新建一个UNDOTBS2表空间进行替换。 1、生成init文件 Create pfile from spfile 记住:在生成新的init文件前应对原有文件做好备份或将init文件生成在不同的目录名称下面 2、修改init.ora文件 undo_management=MANUAL undo_retention=10800 undo_tablespace=undotbs01 rollback_segments='SYSTEM' 3、使用PFILE重新启动数据库 Startup pfile=’$ORACLE_HOME/dbs/init[sid].ora 此步数据库已经能正常OPEN,但在做数据库操作的时候还会报以下错误 SQL> shutdown immediate; ORA-00376: file 2 cannot be read at this time ORA-01110: data file 2: '/oradata/irms/undotbs01.dbf' 4、使用以下命令对数据文件进行offline drop alter database datafile '/oradata/irms/undotbs04.dbf' offline drop; alter database datafile '/oradata/irms/undotbs03.dbf' offline drop; alter database datafile '/oradata/irms/undotbs01.dbf' offline drop; alter database datafile '/oradata/irms/undotbs02.dbf' offline drop; 5、创建新的UNDO表空间UNDOTBS2 create undo tablespace undotbs2 datafile '/oradata/irms/undotbs20.dbf' size 500M; 6、在init.ora更改默认UNDO表空间,使其启动后默认UNDO表空间为undotbs2,undo_management=AUTO后重新启动 7、删除UNDOTBS1表空间,报 Drop tablespace undotbs1 ORA-01548: 已找到活动回退段'_SYSSMU1$', 8、查看回滚段使用情况 select segment_name,status,tablespace_name from dba_rollback_segs; SEGMENT_NAME STATUS TABLESPACE_NAME ------------------------------ ---------------- ------------------------------ SYSTEM ONLINE SYSTEM _SYSSMU1$ NEEDS RECOVERY UNDOTBS1

oracle数据恢复

select * from tablename as of timestamp sysdate-10/24/60 oracle误删除表数据后的恢复详解 2009-09-27 14:13 一、undo_retention参数的查询、修改: 用show parameter undo;命令查看当时的数据库参数undo_retention设置。 显示如下: undo_management string AUTO undo_retention integer 10800 undo_suppress_errors boolean FALSE undo_tablespace string UNDOTBS1 undo_retention(保持力),10800单位是秒。即3个小时。 修改默认的undo_retention参数设置: ALTER SYSTEM SET undo_retention=10800 SCOPE=BOTH; 二、oracle误删除表数据后的的快速恢复功能方法: 【方法一】: 通过oracle提供的回闪功能: exec dbms_flashback.enable_at_time(to_date('2007-07-23 10:21:00','yyyy-mm-dd hh24:mi:ss')); set serveroutput on DECLARE r_temp hr.job_history%ROWTYPE; CURSOR c_temp IS SELECT * FROM hr.job_history; BEGIN OPEN c_temp; dbms_flashback.disable; LOOP FETCH c_temp INTO r_temp; EXIT WHEN c_temp%NOTFOUND; insert into hr.job_history(EMPLOYEE_ID,JOB_ID,START_DATE,END_DATE) values (r_temp.EMPLOYEE_ID,r_temp.JOB_ID,r_temp.START_DATE,r_temp.END_DATE); commit; END LOOP; CLOSE c_temp; END; 这种办法可以将删除的数据恢复到对应的表中,首先要保证该用户有执行

Oracle误删除表空间后数据库如何修复的方法

Oracle误删除表空间后数据库如何修复的方法1.创建一个新的表空间 create tablespace rainbow datafile 'd:\oracle\oradata\oa_test5\rainbow01.dbf' size 10m; 2.在其中建表 create table test (emp int) tablespace rainbow; 3.插入数据 insert into test (emp) values(1000); commit; 4.备份控制文件 alter database backup controlfile to 'd:\control.bak'; 5.关闭数据库 shutdown immeidate; 6.进行全备份 备份所有的数据文件 7.打开数据库 startup 8.删除表空间rainbow drop tablespace rainbow including contents; 16:46:03 9.为了验证我们再更新另外一个表空间里的test2表 insert into test2 (emp) values(888);

commit; 10.关闭数据库,并用6进行的全备份restore所有的数据文件(不完全恢复一定要全部的数据文件) 11.打开至mount; startup mount; 12.执行不完全恢复 recover database until time'2007-03-23:16:46:00' using backup controlfile; (为什么要使用using backup controlfile 因为删除表空间后控制文件被修改了) SQL> recover database until time'2007-03-23:16:46:00' using backup controlfile; ORA-00279: 更改471722 (在03/23/2007 16:39:44 生成) 对于线程1 是必需的 ORA-00289: 建议: D:\ORACLE\ORADATA\OA_TEST5\ARCHIVE\ARC00001.001 ORA-00280: 更改471722 对于线程1 是按序列# 1 进行的 指定日志: {=suggested | filename | AUTO | CANCEL} D:\ORACLE\ORADATA\O A_TEST5\redo03.log 已应用的日志 完成介质恢复 13.打开数据库 alter database open resetlogs; 数据库已更改 14.查询原来的数据 select * from test; 结果报错 ERROR at line 1: ORA-00376: file 11 cannot be read at this time

Oracle数据库rman恢复之system表空间恢复详解

system表空间存放着数据字典的信息。当数据库处于开启状态,如果system表空间所对应的数据文件出现介质失败,那么当在其数据文件上执行I/O操作时,数据库会自动关闭; 当数据库处于关闭状态时,如果system表空间所对应的数据文件出现介质失败,数据库将不能打开。恢复system表空间必须在mount状态下进行。 示例一:system表空间的数据文件被误删除备份数据库。 删除system表空间对应的数据文件。启动数据库到mount状态。使用restore datafile转储数据文件,并使用recover datafile命令应用归档日志,最后使用alter database open 打开数据库。 --备份数据库(略) --删除system表空间对应的数据文件 1.RMAN> host rm $ORACLE_BASE/product/10. 2.0/oradatabak/system01.dbf 2.RMAN> startup 3.connected to target database (not started) 4.Oracle instance started 5.database mounted 6.RMAN-00571: =========================================================== 7.RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== 8.RMAN-00571: =========================================================== 9.RMAN-03002: failure of startup command at 08/22/2011 21:56:39 10.ORA-01157: cannot identify/lock data file 1 - see DBWR trace file 11.ORA-01110: data file 1: '/oracle/10g/oracle/product/10.2.0/oradatabak/system01.dbf' 12.SQL> select file#,error from v$recover_file; 13.FILE# ERROR 14.---------- ----------------------------------------------------------------- 15. 1 FILE NOT FOUND 16.SQL> select file#,name from v$datafile where file#=1; 17.FILE# NAME 18.---------- ------------------------------------------------------------------------------------------------------------------------ 19. 1 /oracle/10g/oracle/product/10.2.0/oradatabak/system01.dbf --启动数据库到mount状态并进行恢复 1.RMAN> run { 2.2> startup force mount; 3.3> restore datafile 1; 4.4> recover datafile 1; 5.5> sql 'alter database open'; 6.6> } 示例二:system表空间数据文件所在磁盘出现故障 备份数据库(略)删除system表空间对应的数据文件。启动数据库到mount状态。在restore database之前,执行set newname为数据文件指定新的位置。在restore database 之后,执行switch datafile改变控制文件中数据文件位置和名称。之后通过执行recover database应用归档日志。最后执行alter database open打开数据库。

oracle恢复误删除数据,解除锁定等非常经典实用方法

oracle恢复误删除数据,解除锁定等 非常经典实用方法 - - 转载请注明出处:https://www.wendangku.net/doc/671718109.html,/ 注意:数据库版本是10g,不过大部分9i的也适用,闪回9i就没有. 1.曾经不小心把开发库的数据库表全部删除,当时吓的要死。结果找到下面的语句恢复到了1个小时之前的数据!很简单。 注意使用管理员登录系统: select * from 表名as of timestamp sysdate-1/12 //查询两个小时前的某表数据!既然两小时以前的数据都得到了,继续怎么做,知道了吧。。 2.如果drop了表,怎么办??见下面: drop table 表名; 数据库误删除表之后恢复:(绝对ok,我就做过这样的事情,汗)不过要记得删除了哪些表名。 flashback table 表名to before drop; 2.查询得到当前数据库中锁,以及解锁: 查锁 SELECT /*+ rule */ https://www.wendangku.net/doc/671718109.html,ername, decode(l.type,'TM','TABLE LOCK', 'TX','ROW LOCK', NULL) LOCK_LEVEL, o.owner,o.object_name,o.object_type, s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser FROM v$session s,v$lock l,dba_objects o WHERE l.sid = s.sid AND l.id1 = o.object_id(+) AND https://www.wendangku.net/doc/671718109.html,ername is NOT NULL; 解锁 alter system kill session 'sid,serial'; 如果解不了。直接倒os下kill进程kill -9 spid 3.ORA-28000:账户被锁定 因为密码输入错误多次用户自动被锁定. 解决办法:alter user user_name account unlock; 4.关于查询数据库用户,权限的相关语句: Sql代码 查看所有用户: 1. select * from dba_user;

Oracle误删数据的恢复

Oracle误删除数据的恢复 有很多原因导致了数据记录的误删,怎样恢复误删的记录呢?先来看看这个概念: SCN(系统改变号),它的英文全拼为:System Change Number ,它是数据库中非常重要的一个数据结构。 SCN提供了Oracle的内部时钟机制,可被看作逻辑时钟,这对于恢复操作是至关重要的 注释:Oracle仅根据 SCN 执行恢复。 它定义了数据库在某个确切时刻提交的版本。在事物提交时,它被赋予一个唯一的标示事物的SCN 。一些人认为 SCN 是指, System Commit Number ,而通常 SCN 在提交时才变化,所以很多情况下, 这两个名词经常被交替使用。 究竟是哪个词其实对我们来说并不是最重要的,重要的是我们知道 SCN 是Oracle 内部的时钟机制, Oracle 通过 SCN 来维护数据库的一致性,并通过SCN 实施 Oracle 至关重要的恢复机制。 具体执行流程我们可从以下几个示例图中体会; 1.原表记录 $ sqlplus eygle/eygle SQL*Plus: Release 10.1.0.2.0 - Production on Wed Mar 30 08:52:04 2005 Copyright (c) 1982, 2004, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production With the Partitioning, OLAP and Data Mining options SQL>select count(*) from t1; COUNT(*) ---------- 9318

ORACLE从回收站恢复删除的表

Oracle从回收站恢复删除的表 Oracle10g以后的版本中引入了"回收站"(Recycle Bin)的概念,删除的对象统一放入回收站,以BIN$最为前缀命名.用户删除某个表,可以很容易的从"回收站"中还原回来,但在9i以前是对于删除表这样的DDL操纵是不能直接还原回来的,通常需要做不完全恢复或是使用EXP/IMP来恢复. 1.查看当前回收站功能是否开启(默认情况下是开启的) SQL>column value format a10; SQL>select value from V$parameter where name='recyclebin'; VALUE ---------- On 可以使用如下命令开启或关闭该功能. SQL>alter system set recyclebin=on scope=spfile; 或SQL>alter session set recyclebin=on scope=spfile; SQL>alter system set recyclebin=off scope=spfile; 或SQL>alter session set recyclebin=off scope=spfile; 2.查看回收站里的内容 SQL>show recyclebin; 或SQL>select*from user_recyclebin; 下面将创建的表删除后放入回收站 SQL>show user; user is"HXL" SQL>create table test_rbin(val number); Table created. SQL>insert into test_rbin(val)values(10); 1row created. SQL>commit; Commit complete. SQL>drop table test_rbin; Table dropped. SQL>show recyclebin; ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME ------------------------------------------------------------------------------- TEST_RBIN BIN$S4u3UNw0QQ6t6LRxMMz7hQ==$0TABLE2012-06-22:15:01:30 3.从回收站恢复删除的表 可以使用如下语句从回收站恢复删除的表 SQL>flashback table<>to before drop; 例如我们恢复刚才删除的表

NetApp存储数据误删除恢复报告

NetApp存储数据误删除恢复报告 一、NetApp存储阵列简要: NetApp FAS3220是NetApp推出的中端存储阵列,针对NAS 和SAN环境构建,被定制为虚拟化、私有云或传统、早先的用途,适用于从几TB到超过2PB的存储需求,提供数据保护,可扩展性,自动精简配置,精简克隆,备份和灾难恢复,下面就讲解NetApp FAS 3220存储的数据恢复的方法。 二、NetApp存储阵列故障信息: 本次讲解的NetApp FAS 3220型号的存储,硬件环境是一共96块600G的SAS硬盘,硬盘和普通的硬盘还不一样,这个硬盘的扇区大小是520字节一个扇区,上层应用环境也很复杂,所有的lun都是映射给小型机使用,存放是Oracle数据库文件还是ASM裸设备存储方式。可能是工作人员失误,误操作删除了存储上的是所有lun,据了解当时是要重新规划存储空间,直接把存储卷全部删除进行重新分配。在删除

之后还没有分配的时候,上层业务就宕机了,这个时候运维工程师紧急排查故障情况,发现业务服务器上的磁盘都没有了,没有办法访问数据了,发现操作失误,紧急启动数据恢复预案。 三、解决方案及步骤描述: 为保护好现场环境,防止数据恢复过程中由于误操作对原始磁盘造成二次破坏,北亚数据恢复工程师把每块磁盘都做只读完全镜像。此后所有恢复操作都在镜像文件上进行。 在做完镜像的同时,北亚工程师紧急制定了恢复方案,为客户讲解恢复方案的可行性,客户认可方案,做完镜像之后,我们就立即按照制定方案实施,下面是恢复方案的具体实施步骤: 1、Netapp存储的存储过程分析 第一步,分析盘序和LVM的组成方式; 第二步,扫描硬盘内的所有节点(一般只扫描“MBFI”,即用户节点) 第三步,在节点扫描结果中找到文件大小符合需求的节点并提取此节点uid相同,并判断索引根; 第四步,根据索引根内的第一级数据指针提取本文件的所有直接数据指针(需要参考节点中0x03位置的MAP深度,为0x00时直接从节点内提取数据,0x01时需要提取一次MAP,0x02时需要提取两次MAP......)。在指针提取完毕后开始提

Oracle数据库删除还原步骤

数据库还原步骤,分两种情况,一种是创建新库还原(1),一种是在老库上进行还原(2)。第一种情况:(1) ?首先在数据库服务器上创建表空间,和存储文件。执行以下语句,注意:创建表空间尽量和还原的库保存一致,不一致的情况下可能会报错,没测试过。 create tablespace MDF_DATA datafile 'D:\app\oracle\oradata\tsmes\MDF_DATA.DBF' size 500M AUTOEXTEND ON NEXT 50M; ?第二创建用户,并给用户分配表空间.将前面所创建的表空间分配给用户。 create user cpt identified by cpt Default Tablespace MDF_DATA; create user dbo identified by dbo Default Tablespace MDF_DATA; create user dps identified by dps Default Tablespace MDF_DATA; create user prm identified by prm Default Tablespace MDF_DATA; create user pub identified by pub Default Tablespace MDF_DATA; create user qua identified by qua Default Tablespace MDF_DATA; create user std identified by std Default Tablespace MDF_DATA; create user mdfsys identified by mdfsys Default Tablespace MDF_DATA; create user tpm identified by tpm Default Tablespace MDF_DATA; create user aps identified by aps Default Tablespace MDF_DATA; create user itg identified by itg Default Tablespace MDF_DATA; create user spc identified by spc Default Tablespace MDF_DATA; create user di identified by di Default Tablespace MDF_DATA; ?给用户赋权限。 grant connect,resource,dba to cpt; grant connect,resource,dba to dbo; grant connect,resource,dba to dps; grant connect,resource,dba to prm; grant connect,resource,dba to pub; grant connect,resource,dba to qua; grant connect,resource,dba to std; grant connect,resource,dba to mdfsys; grant connect,resource,dba to tpm; grant connect,resource,dba to aps; grant connect,resource,dba to itg; grant connect,resource,dba to spc; grant connect,resource,dba to di; ?导入备份的数据库文件。 Imp 用户名/密码@数据库名 file=文件地址下面为示例: imp system/meszz@meszznew file=C:\data0624-2.dmp full=y 第二种情况(2) 还原数据库跟第一种操作上稍微不同,步骤如下: ?删除用户,语句如下。 drop user cpt cascade; drop user dbo cascade; drop user dps cascade; drop user prm cascade;

相关文档
相关文档 最新文档