进行备份,然后通过在DOS中输入命令还原即可。
数据库备份:在DOS窗口 *** 作命令符中输入:expsystem/managerinctype=completefile=C:\20080918DMP,即完成备份。数据库还原:
1、安装情况:为了进行内蒙科技项目系统的开发,于2008年09月18号进行了Oracle数据库系统的安装与设置工作。将Oracle数据库系统安装在C盘,数据库文件位置在D:\oracle\oradata。
2、数据库设置:全局数据库名:oracleSIDbeijing。SID:oracleSID。用户:sys。口令:change_on_installsystem。口令:manager。
3、准备工作:将要还原的数据库备份文件DMP放到某盘根目录下(目的就是为了不让文件目录很深,方便写文件路径)。我这里放到了C盘根目录下。文件名为20080918DMP,文件位置:c:\20080918DMP,在还原之前需要在数据库实例oracleSID中创建一用户user1,这个用户要与还原的数据库文件中的用户一致,使还原后修改量最少。当然也可以采用新的用户名,还原到指定的用户空间中。
4、执行还原:点击开始菜单中“运行”,在文本框中输入“cmd”,回车,d出DOS命令 *** 作窗口。还原数据库文件必须使用Sysdba角色,这样才有权进行数据库的还原与备份工作。在DOS命令行中输入还原 *** 作指令:impsystem/managerfile=C:\20080918DMP。full=Y后回车即开始还原。
把你备份的所有东西拷贝到相应的文件夹中,然后
startup mount;
recover database( using backup controlfile);
根据提示看需不需要后面的参数
alter database open( resetlogs);
根据提示看需不需要参数。
Linux 平台误删 oracle 数据文件的恢复方法
模拟误 *** 作:
数据库在正常运行,人工直接rm 掉了数据文件。
--1测试环境情况:
$ cat /etc/redhat-release
CentOS release 65 (Final)
select file_name from dba_data_files;
/u01/app/oracle/oradata/orcl/testdbf
$ sqlplus / as sysdba
SQLPlus: Release 112040 Production on 星期四 3月 5 15:55:14 2015
Copyright (c) 1982, 2013, Oracle All rights reserved
连接到:
Oracle Database 11g Enterprise Edition Release 112040 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
开启数据库归档
archive log list;
数据库日志模式 非存档模式
自动存档 禁用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 3002
当前日志序列 3004
mkdir /u01/arch
alter system set log_archive_dest_1='location=/u01/arch' scope=spfile;
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area 10088E+10 bytes
Fixed Size 2261928 bytes
Variable Size 1644170328 bytes
Database Buffers 8422162432 bytes
Redo Buffers 19595264 bytes
数据库装载完毕。
SQL> alter database archivelog;
数据库已更改。
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 /u01/arch
最早的联机日志序列 3002
下一个存档日志序列 3004
当前日志序列 3004
SQL> alter database open;
数据库已更改。
SQL> select open_mode from v$database;
OPEN_MODE
------------------------------------------------------------
READ WRITE
--2新建测试数据
select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/users01dbf
SQL> create tablespace wind datafile '/u01/app/oracle/oradata/orcl/wind01dbf' size 200m;
SQL> create user wind identified by wind01 default tablespace wind;
SQL> grant connect,resource,dba to wind;
$ sqlplus wind/wind01
create table t1
(
sid int not null primary key,
sname varchar2(10)
)
tablespace wind;
--循环导入数据
declare
maxrecords constant int:=100000;
i int :=1;
begin
for i in 1maxrecords loop
insert into t1 values(i,'ocpyang');
end loop;
dbms_outputput_line(' 成功录入数据! ');
commit;
end;
/
select count() from t1;
COUNT()
----------
100000
--3模拟删除数据
SQL> col tablespace_name for a20
SQL> select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME STATUS
-------------------- ---------------------------
SYSTEM ONLINE
SYSAUX ONLINE
UNDOTBS1 ONLINE
TEMP ONLINE
USERS ONLINE
TTSPACE ONLINE
OCPYANG ONLINE
OCPYANGINDEX ONLINE
LOBOCPYANG ONLINE
LOBOCPYANG01 ONLINE
LOBOCPYANG02 ONLINE
TABLESPACE_NAME STATUS
-------------------- ---------------------------
WIND ONLINE
rm -rf /u01/app/oracle/oradata/orcl/wind01dbf
ls /u01/app/oracle/oradata/orcl/ | grep wind
SQL> show user;
USER 为 "WIND"
SQL> select count() from t1;
COUNT()
----------
100000
SQL> desc t1
名称 是否为空 类型
----------------------------------------- -------- ----------------------------
SID NOT NULL NUMBER(38)
SNAME VARCHAR2(10)
SQL> delete from t1 where sid>99000;
已删除1000行。
SQL> commit;
提交完成。
SQL> select count() from t1;
COUNT()
----------
99000
--4恢复
ps -eaf|grep dbw0 |grep -v grep
oracle 1928 1 0 15:59 00:00:00 ora_dbw0_orcl
SQL> col tablespace_name for a20
SQL> select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME STATUS
-------------------- ---------------------------
SYSTEM ONLINE
SYSAUX ONLINE
UNDOTBS1 ONLINE
TEMP ONLINE
USERS ONLINE
TTSPACE ONLINE
OCPYANG ONLINE
OCPYANGINDEX ONLINE
LOBOCPYANG ONLINE
LOBOCPYANG01 ONLINE
LOBOCPYANG02 ONLINE
TABLESPACE_NAME STATUS
-------------------- ---------------------------
WIND ONLINE
cd /proc/1928/fd
ll
lr-x------ 1 oracle oinstall 64 Mar 5 16:20 0 -> /dev/null
l-wx------ 1 oracle oinstall 64 Mar 5 16:20 1 -> /dev/null
lrwx------ 1 oracle oinstall 64 Mar 5 16:20 10 -> /u01/app/oracle/product/1120/db_1/dbs/lkORCL
lr-x------ 1 oracle oinstall 64 Mar 5 16:20 11 -> /u01/app/oracle/product/1120/db_1/rdbms/mesg/orausmsb
l-wx------ 1 oracle oinstall 64 Mar 5 16:20 2 -> /dev/null
lrwx------ 1 oracle oinstall 64 Mar 5 16:20 256 -> /u01/app/oracle/oradata/orcl/control01ctl
lrwx------ 1 oracle oinstall 64 Mar 5 16:20 257 -> /u01/app/oracle/fast_recovery_area/orcl/control02ctl
lrwx------ 1 oracle oinstall 64 Mar 5 16:20 258 -> /u01/app/oracle/oradata/orcl/system01dbf
lrwx------ 1 oracle oinstall 64 Mar 5 16:20 259 -> /u01/app/oracle/oradata/orcl/sysaux01dbf
lrwx------ 1 oracle oinstall 64 Mar 5 16:20 260 -> /u01/app/oracle/oradata/orcl/undotbs01dbf
lrwx------ 1 oracle oinstall 64 Mar 5 16:20 261 -> /u01/app/oracle/oradata/orcl/users01dbf
lrwx------ 1 oracle oinstall 64 Mar 5 16:20 262 -> /u01/app/oracle/oradata/orcl/ttspace01dbf
lrwx------ 1 oracle oinstall 64 Mar 5 16:20 263 -> /u01/app/oracle/oradata/orcl/ocpyang01dbf
lrwx------ 1 oracle oinstall 64 Mar 5 16:20 264 -> /u01/app/oracle/oradata/orcl/ocpyangindex01dbf
lrwx------ 1 oracle oinstall 64 Mar 5 16:20 265 -> /u01/app/oracle/oradata/orcl/lobocpyang01dbf
lrwx------ 1 oracle oinstall 64 Mar 5 16:20 266 -> /u01/app/oracle/oradata/orcl/lobocpyang0101dbf
lrwx------ 1 oracle oinstall 64 Mar 5 16:20 267 -> /u01/app/oracle/oradata/orcl/lobocpyang0202dbf
lrwx------ 1 oracle oinstall 64 Mar 5 16:20 268 -> /u01/app/oracle/oradata/orcl/temp01dbf
lrwx------ 1 oracle oinstall 64 Mar 5 16:20 269 -> /u01/app/oracle/oradata/orcl/wind01dbf (deleted) --注
lr-x------ 1 oracle oinstall 64 Mar 5 16:20 3 -> /dev/null
lr-x------ 1 oracle oinstall 64 Mar 5 16:20 4 -> /dev/null
lr-x------ 1 oracle oinstall 64 Mar 5 16:20 5 -> /dev/null
lr-x------ 1 oracle oinstall 64 Mar 5 16:20 6 -> /u01/app/oracle/product/1120/db_1/rdbms/mesg/orausmsb
lr-x------ 1 oracle oinstall 64 Mar 5 16:20 7 -> /proc/1928/fd
lr-x------ 1 oracle oinstall 64 Mar 5 16:20 8 -> /dev/zero
lrwx------ 1 oracle oinstall 64 Mar 5 16:20 9 -> /u01/app/oracle/product/1120/db_1/dbs/hc_orcldat
直接cp该句柄文件名回原位置:
$ pwd
/proc/1928/fd
cp /proc/1928/fd/269 /u01/app/oracle/oradata/orcl/wind01dbf
NOTE:
由于数据库一直是打开使用的,数据在不断变更则SCN也会不断的变化,
cp数据文件和数据库当前的信息明显不一致,此时需要对数据文件进行recover
--脱机数据文件
alter database datafile '/u01/app/oracle/oradata/orcl/wind01dbf' offline;
select count() from t1;
第 1 行出现错误:
ORA-00376: 此时无法读取文件 11
ORA-01110: 数据文件 11: '/u01/app/oracle/oradata/orcl/wind01dbf'
--恢复数据文件
recover datafile '/u01/app/oracle/oradata/orcl/wind01dbf';
--联机数据文件
alter database datafile '/u01/app/oracle/oradata/orcl/wind01dbf' online;
select count() from t1;
COUNT()
----------
99000
成功恢复
在oracle系统中的文件名后缀被文件本身是没有什么作用的,他只是便于用户领会文件的作用/含义等,便于oracle系统更加方便的去管理文件。在创建一个文件的时候,可以任意指定一个后缀,例如:sql>
create
tablespace
test
datafile
'/oracle/oradata/hello/testsql'
size
20mtablespace
created这样也能成功,但是我相信没有人会这样指定一个文件名。以上解释不知道对不对,清高手指点
Oracle数据库异常恢复检查脚本(Oracle Database Recovery Check)
Oracle Database Recovery Check 介绍
根据多年来的数据库恢复经验,提炼出来数据库恢复关键点信息收集脚本(Oracle Database Recovery Check),该脚本主要是在数据库mount状态情况下查询数据库的一些基础表信息等信息,不对数据库进行任何写 *** 作(只做读和dump *** 作),不会在坏的数据库基础之上带来任何破坏,不影响任何数据库后续的恢复工作。通过该脚本收集信息能够快速定位数据库异常原因,并初步判断数据库恢复疑难程度,减少数据库异常恢复诊断时间,提供恢复效率和准确性。
具体参考:网页链接
Oracle DBA神器:PRM灾难恢复工具,Schema级别数据恢复。PRM For Oracle Database – schema级别oracle数据库数据恢复特性 ,PRM即ParnassusData Recovery Manager是企业级别Oracle数据库灾难恢复工具。PRM可以在无备份的情况下恢复被truncated掉的表,也可以恢复无法打开的Oracle数据库(Alter Database Open失败)中的数据。 PRM是图形化增强版的Oracle DUL工具,同时具备很多Oracle DUL不具备的特性
以上就是关于Oracle VM VirtualBox管理器 不小心删除启动项怎么恢复全部的内容,包括:Oracle VM VirtualBox管理器 不小心删除启动项怎么恢复、怎样恢复Oracle冷备份、Oracle 误删控制文件,oracle 数据库没重启的情况下,怎么恢复等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)