楼主: acosta

[精华] 紧急求救!!在线等待。希望斑竹救命

[复制链接]
论坛徽章:
0
31#
 楼主| 发表于 2003-3-19 23:26 | 只看该作者

谢谢各位!!不胜感激

先多谢每一位出谋出策的朋友,斑竹。

到现在我才回家。今天我请来了扬工程师,把半天前的数据用IMP倒进去了。但是完全恢复可能都做不了了,因为我没有说我机器在前一天发生了突然 掉电的情况,后来到今天看DMP的LOG才发现掉电后的EXP出的DMP文件都有问题,错误是报TOOLS01。DBF出错,找不到TOOLS01。DBF(后来看一下,TOOLS01。DBF都好好的呢),此错误导致纯数据倒出后就异常报错停下了,PROCEDURE,FUNCTION等等都没有倒出,我想这可能对我重建CONTROLFILE都没有正常起来的一个 原因吧。因为我误操作之前,系统都没有SHUTDOWN过,可以说是双重打击!!当时我听 到扬工说那个DMP文件都不知道能不能成功倒出数据时,真的腿都软了。要知道我的完全备份在十多天之前呀。:(
后来总算运气都没有那么背,数据还是 能倒出,哎,我才知道世界还是美好的。!

在此感触良多:当我门事业单位的系统管理员,确实压力太大,平时连业务要做不说,还得管硬件维护,软件修改开发,系统设计等等都轮到你头上,软件业务员说你软件不好用,受气都无法说,谁叫你是对内提供服务呢?服务嘛,生来就是受别人责怪;机器申请购置不成不说,软件硬件维护还得自己想办法解决,发生了故障,靠谁?没人靠,责任都是自己,解决还是自己解决,看看身边的办业务的同事,不管风吹雨打5点半准时下班,业务做不完最多加几天班到晚上10点就OK了,压力和我无法比。在我今天1:00才离开办公室,整晚睡不着觉,咪咪糊糊的都是ALTER,RECOVER命令的 时候,别人都睡得安安稳稳,我明天还得提早上班找人帮手呢!!我想:不就是在单位打工嘛?为啥俺就这么痛苦压力这么大,工资都一样?连我都怀疑自己,是不是该换个岗位的时候了?


今晚终于可以安稳睡觉,或者起身看一下冠军杯。

使用道具 举报

回复
论坛徽章:
168
马上加薪
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-01-04 11:49:54蜘蛛蛋
日期:2011-12-05 16:08:56ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41设计板块每日发贴之星
日期:2011-07-22 01:01:02ITPUB官方微博粉丝徽章
日期:2011-06-30 12:30:16管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:33
32#
发表于 2003-3-20 09:06 | 只看该作者
hehe,
//comfort acosta

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
33#
发表于 2003-3-20 09:47 | 只看该作者

一个例子希望给大家以帮助,搞定!

连接到:
Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production

SQL> shutdown abort
ORACLE 例程已经关闭。


SQL> drop table rn;

表已丢弃。

SQL> alter system checkpoint;

系统已更改。

SQL> drop table test_group;

表已丢弃。

SQL> conn / as sysdba
已连接。
SQL> shutdown abort
ORACLE 例程已经关闭。
SQL> startup nomount
ORACLE 例程已经启动。

Total System Global Area   31229980 bytes
Fixed Size                    75804 bytes
Variable Size              14299136 bytes
Database Buffers           16777216 bytes
Redo Buffers                  77824 bytes
SQL> CREATE CONTROLFILE SET DATABASE "billy" RESETLOGS NOARCHIVELOG
  2     MAXLOGFILES 64
  3     MAXLOGMEMBERS 2
  4     MAXDATAFILES 254
  5     MAXINSTANCES 32
  6     MAXLOGHISTORY 113
  7     LOGFILE
  8     GROUP 1 'E:\ORACLE\ORADATA\BILLY\REDO01.LOG' SIZE 1048576 ,
  9     GROUP 2 'E:\ORACLE\ORADATA\BILLY\REDO02.LOG' SIZE 1048576 ,
10   GROUP 3 'E:\ORACLE\ORADATA\BILLY\REDO03.LOG' SIZE 1048576
11   DATAFILE
12   'E:\ORACLE\ORADATA\BILLY\SYSTEM01.DBF',
13   'E:\ORACLE\ORADATA\BILLY\RBS01.DBF',
14   'E:\ORACLE\ORADATA\BILLY\USERS01.DBF',
15   'E:\ORACLE\ORADATA\BILLY\TEMP01.DBF',
16   'E:\ORACLE\ORADATA\BILLY\TOOLS01.DBF',
17   'E:\ORACLE\ORADATA\BILLY\INDX01.DBF',
18   'E:\ORACLE\ORADATA\BILLY\DR01.DBF',
19   'E:\ORACLE\ORADATA\BILLY\DB4K.DBF'
20   CHARACTER SET ZHS16GBK
21   ;

数据簇已更改。

SQL> shutdown
ORA-01109: ??????


已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area   31229980 bytes
Fixed Size                    75804 bytes
Variable Size              14299136 bytes
Database Buffers           16777216 bytes
Redo Buffers                  77824 bytes
数据库装载完毕。
SQL> recover database using backup controlfile until cancel;
ORA-00279: ?? 25526706 (? 03/20/2003 09:45:25 ??) ???? 1 ????
ORA-00289: ??: E:\ORACLE\ORA81\RDBMS\ARC00001.001
ORA-00280: ?? 25526706 ???? 1 ???? # 1 ???


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
'E:\ORACLE\ORADATA\BILLY\REDO01.LOG'
ORA-00339: ???????????
ORA-00334: ????: 'E:\ORACLE\ORADATA\BILLY\REDO01.LOG'


ORA-01547: ??: RECOVER ??? OPEN RESETLOGS ???????
ORA-01194: ??1?????????????
ORA-01110: ???? 1: 'E:\ORACLE\ORADATA\BILLY\SYSTEM01.DBF'


SQL>  recover database using backup controlfile until cancel;
ORA-00279: ?? 25526706 (? 03/20/2003 09:45:25 ??) ???? 1 ????
ORA-00289: ??: E:\ORACLE\ORA81\RDBMS\ARC00001.001
ORA-00280: ?? 25526706 ???? 1 ???? # 1 ???


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
'E:\ORACLE\ORADATA\BILLY\REDO03.LOG'
已应用的日志。
完成介质恢复。
SQL>  recover database using backup controlfile until cancel;
ORA-00279: ?? 25526718 (? 03/20/2003 09:45:38 ??) ???? 1 ????
ORA-00289: ??: E:\ORACLE\ORA81\RDBMS\ARC00001.001
ORA-00280: ?? 25526718 ???? 1 ???? # 1 ???


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
'E:\ORACLE\ORADATA\BILLY\REDO01.LOG'
ORA-00339: ???????????
ORA-00334: ????: 'E:\ORACLE\ORADATA\BILLY\REDO01.LOG'


SQL> alter database open resetlogs;

数据库已更改。

SQL>
在最后一步注意日志文件选择的正确,一个一个试都没有关系

使用道具 举报

回复
论坛徽章:
3
ITPUB元老
日期:2005-02-28 12:57:00授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34
34#
发表于 2003-3-20 11:07 | 只看该作者
TO biti
controlfile的重建究竟少了什么?
我觉得少了SCNnumber

这样的确可以恢复,但是..........
这么说来controlfile没有用???

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
35#
发表于 2003-3-20 11:38 | 只看该作者

conreol file 重建的时候

本来就没有了 SCN ,也可以认识是标志为 无穷大吧, 重建后看一看其实就知道了

然后恢复的时候只是根据 数据文件头  和 日志文件来核对并决定恢复呀

因为 控制文件头的内容,实际上也   存储    在 数据文件和日志文件头部,信息完全是一样的
所以,这个应该没有关系

使用道具 举报

回复
论坛徽章:
3
ITPUB元老
日期:2005-02-28 12:57:00授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34
36#
发表于 2003-3-20 11:52 | 只看该作者
无穷大就对了

哈哈,一直以为recreate后SCN是零
其实是resetlogs的时候给置成零了

使用道具 举报

回复
论坛徽章:
3
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB元老
日期:2006-09-11 15:36:37
37#
发表于 2003-3-20 19:59 | 只看该作者

Re: 一个例子希望给大家以帮助,搞定!

最初由 biti_rainy 发布
[B]连接到:
Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
........

在最后一步注意日志文件选择的正确,一个一个试都没有关系 [/B]

Bit兄﹕您所做的恢復是基于不歸檔的情況下的嗎﹖

使用道具 举报

回复
论坛徽章:
16
2010数据库技术大会纪念徽章
日期:2010-05-13 10:04:27ITPUB技术丛书作者
日期:2010-09-26 15:24:562011新春纪念徽章
日期:2011-01-25 15:41:01管理团队成员
日期:2011-05-07 01:45:082012新春纪念徽章
日期:2012-02-13 15:11:18马自达
日期:2014-01-27 11:47:11
38#
发表于 2003-3-21 00:46 | 只看该作者
当然是非归档方式下的啊

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
39#
发表于 2003-3-21 14:58 | 只看该作者
我顶,学习中!

使用道具 举报

回复
论坛徽章:
4
ITPUB元老
日期:2005-02-28 12:57:00授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB技术丛书作者
日期:2010-09-26 15:24:56
40#
发表于 2003-3-28 13:50 | 只看该作者
这个帖子真乱,其实搂住的问题,很清晰,也很简单,就是重建控制文件就可以了,我得测试例子如下:

检查当前是否为NOARCHIVE MODE
feptwo> sqlplus internal

SQL*Plus: Release 8.1.7.0.0 - Production on Fri Mar 28 10:48:11 2003

(c) Copyright 2000 Oracle Corporation. All rights reserved.


Connected to:
Oracle8i Enterprise Edition Release 8.1.7.4.0 - Production
JServer Release 8.1.7.4.0 - Production

SQL> archive log list
Database log mode No Archive Mode
Automatic archival Enabled
Archive destination /usr/oracle/app/oracle/product/8.1.7/admin/cint208/arch
Oldest online log sequence 98
Current log sequence 100
SQL>

关闭数据库,并作一个冷备份
(防止恢复过程(测试恢复的方法)如果出现问题)
SQL> alter database backup controlfile to trace;

Database altered.

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> host
$ ls
coldback control03.ctl rbs01.dbf redo03.log testspace1.dbf
control01.ctl drsys01.dbf redo01.log system01.dbf tools01.dbf
control02.ctl indx01.dbf redo02.log temp01.dbf users01.dbf
$ mv *ctl *dbf *log coldback
$ ls
coldback
$ cd coldback
$ ls
control01.ctl drsys01.dbf redo01.log system01.dbf tools01.dbf
control02.ctl indx01.dbf redo02.log temp01.dbf users01.dbf
control03.ctl rbs01.dbf redo03.log testspace1.dbf
$

重新启动数据库,并制作测试数据
(假设命名当前的窗口为:窗口a)
SQL> startup
ORACLE instance started.

Total System Global Area 81884132 bytes
Fixed Size 103396 bytes
Variable Size 57401344 bytes
Database Buffers 24199168 bytes
Redo Buffers 180224 bytes
Database mounted.
Database opened.
SQL> conn lunar
Enter password:
Connected.
SQL> conn lunar
Enter password:
Connected.
SQL> create table test(a number);

Table created.

SQL> insert into test values(1);

1 row created.

SQL> insert into test values(2);

1 row created.

SQL>

再开一个窗口(窗口b)做checkpoin:
feptwo> sqlplus internal

SQL*Plus: Release 8.1.7.0.0 - Production on Fri Mar 28 10:59:13 2003

(c) Copyright 2000 Oracle Corporation. All rights reserved.


Connected to:
Oracle8i Enterprise Edition Release 8.1.7.4.0 - Production
JServer Release 8.1.7.4.0 - Production

SQL> alter system checkpoint;

System altered.

SQL>

回到以前的窗口(窗口a),再次插入数据,并commit:
SQL> insert into test values(3);

1 row created.

SQL> insert into test values(4);

1 row created.

SQL> commit;

Commit complete.

SQL> insert into test values(5);

1 row created.

SQL> insert into test values(6);

1 row created.

SQL>


回到窗口b,做swhtch log:
SQL> alter system switch logfile;

System altered.

SQL>

回到窗口a,继续插入数据:
SQL> insert into test values(6);

1 row created.
错了,误操作了,呵呵,插了两条6,以后不好比对了
SQL> delete from test where a=6;

2 rows deleted.

SQL> insert into test values(7);

1 row created.

SQL> commit;

Commit complete.

SQL> insert into test values(8);

1 row created.

SQL> insert into test values(9);

1 row created.

SQL>

模拟数据crash和丢失所有控制文件
回到窗口b,模拟数据crash:
SQL> shutdown abort
ORACLE instance shut down.
SQL>

删除所有的控制文件:
SQL> host
ls
$ coldback control03.ctl rbs01.dbf redo03.log testspace1.dbf
control01.ctl drsys01.dbf redo01.log system01.dbf tools01.dbf
control02.ctl indx01.dbf redo02.log temp01.dbf users01.dbf
$ rm *ctl
$ ls
coldback indx01.dbf redo01.log redo03.log temp01.dbf tools01.dbf
drsys01.dbf rbs01.dbf redo02.log system01.dbf testspace1.dbf users01.dbf

通过重建控制文件来完全恢复数据库
nomount启动数据库
$ sqlplus internal

SQL*Plus: Release 8.1.7.0.0 - Production on Fri Mar 28 11:50:27 2003

(c) Copyright 2000 Oracle Corporation. All rights reserved.

Connected to an idle instance.

SQL> startup nomount;
ORACLE instance started.

Total System Global Area 81884132 bytes
Fixed Size 103396 bytes
Variable Size 57401344 bytes
Database Buffers 24199168 bytes
Redo Buffers 180224 bytes
SQL>

重建控制文件
SQL> CREATE CONTROLFILE REUSE DATABASE "CINT208" NORESETLOGS NOARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 2
4 MAXDATAFILES 30
5 MAXINSTANCES 1
6 MAXLOGHISTORY 226
7 LOGFILE
8 GROUP 1 '/usr/oracle/data/oradata/cint208/redo03.log' SIZE 500K,
9 GROUP 2 '/usr/oracle/data/oradata/cint208/redo02.log' SIZE 500K,
10 GROUP 3 '/usr/oracle/data/oradata/cint208/redo01.log' SIZE 500K
11 DATAFILE
12 '/usr/oracle/data/oradata/cint208/system01.dbf',
13 '/usr/oracle/data/oradata/cint208/tools01.dbf',
14 '/usr/oracle/data/oradata/cint208/rbs01.dbf',
15 '/usr/oracle/data/oradata/cint208/temp01.dbf',
16 '/usr/oracle/data/oradata/cint208/users01.dbf',
17 '/usr/oracle/data/oradata/cint208/indx01.dbf',
18 '/usr/oracle/data/oradata/cint208/drsys01.dbf',
19 '/usr/oracle/data/oradata/cint208/testspace1.dbf'
20 CHARACTER SET ZHS16GBK
21 ;

Control file created.
SQL>

完全恢复数据库
SQL> recover database;
Media recovery complete.
SQL>

正常打开数据库
SQL> alter database open;

Database altered.

SQL>

验证数据的完整性
SQL> conn lunar/lunarz
Connected.
SQL> select * from test;

A
----------
1
2
3
4
5
7

6 rows selected.

SQL>

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表