linux数据库只恢复数据库数据,只有数据文件恢复数据库

上周一数据库盘阵挂了,数据库软件、数据库日志文件、控制文件以及备份都放在挂的这个磁盘,到最后什么文件都没有,只剩下数据文件!!

恢复步骤:这是10G+linux5 的环境,其他版本步骤一样,区别就在参数文件相关参数而已!

1、安装数据库软件:这个就不说了。。。安装的时候最好保持所在的目录、ORACLE_SID,以及数据库名和原来数据库一样!这样避免很多麻烦

2、创建一个pfile,建一个空实例

参数文件如下:注意创建参数文件中的相关目录

[oracle@dba dbs]$ cat initabc.ora

*.audit_file_dest='/u01/oracle/admin/abc/adump'

*.background_dump_dest='/u01/oracle/admin/abc/bdump'

*.user_dump_dest='/u01/oracle/admin/abc/udump'

*.core_dump_dest='/u01/oracle/admin/abc/cdump'

*.compatible='10.2.0.1.0'

*.db_name='abc'

*.sga_target=300M

指定参数文件启动数据库到nomount

SQL> startup nomount pfile='$ORACLE_HOME/dba/initabc.ora';

ORACLE 例程已经启动。

Total System Global Area  535662592 bytes

Fixed Size                  1375792 bytes

Variable Size             272630224 bytes

Database Buffers          255852544 bytes

Redo Buffers                5804032 bytes

SQL>

3、创建控制文件,现在只有数据文件,可以从其他正常的数据库生成控制文件的创建脚本进行修改,且以RESETLOGS open数据库

SQL> alter database backup controlfile to trace as '/home/oracle/control.sql';

cat /home/oracle/control.sql

CREATE CONTROLFILE REUSE DATABASE "abc" RESETLOGS  ARCHIVELOG

--  SET STANDBY TO MAXIMIZE PERFORMANCE

MAXLOGFILES 5

MAXLOGMEMBERS 3

MAXDATAFILES 100

MAXINSTANCES 1

MAXLOGHISTORY 453

LOGFILE-------------------日志文件可以没有

GROUP 1 '/data/oradata/redo01.log'  SIZE 100M,

GROUP 2 '/data/oradata/redo02.log'  SIZE 100M,

GROUP 3 '/data/oradata/redo03.log'  SIZE 100M

-- STANDBY LOGFILE

DATAFILE

'/data/oradata/system01.dbf',

'/data/oradata/undotbs01.dbf',

.

.

.(数据文件太多了,就不写了,这里就是存放的数据文件的位置)

CHARACTER SET ZHS16GBK----------------字符集的设置,这个看实际情况 不要也可以的!

;

创建完成后数据库自动启动到mount

open数据库:

alter database open resetlogs;

这样基本就完成恢复了,可能需要重建一下临时表空间,因为控制文件里面是不记录临时表的信息的,如果临时表数据文件还在,reuser一下就OK

alter tablespace temp add tempfile '/data/oradata/temp1.dbf'  reuse;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值