静默方式安装10g数据库软件+升级patch+手工建库(九)

2015-02-03 03:52:09 · 作者: · 浏览: 80
nomount状态下

--查看$ORACLE_BASE/oradata/prod中新创建的数据文件

[root@prod prod]# ll
total 948624
-rw-r----- 1 oracle oinstall 8863744 Aug 29 21:58 control01.ctl
-rw-r----- 1 oracle oinstall 8863744 Aug 29 21:58 control02.ctl
-rw-r----- 1 oracle oinstall 8863744 Aug 29 21:58 control03.ctl
-rw-r----- 1 oracle oinstall 104865792 Aug 29 21:57 example01.dbf
-rw-r----- 1 oracle oinstall 52429312 Aug 29 21:58 redo01a.log
-rw-r----- 1 oracle oinstall 52429312 Aug 29 21:58 redo01b.log
-rw-r----- 1 oracle oinstall 52429312 Aug 29 21:57 redo02a.log
-rw-r----- 1 oracle oinstall 52429312 Aug 29 21:57 redo02b.log
-rw-r----- 1 oracle oinstall 52429312 Aug 29 21:57 redo03a.log
-rw-r----- 1 oracle oinstall 52429312 Aug 29 21:57 redo03b.log
-rw-r----- 1 oracle oinstall 314580992 Aug 29 21:58 system01.dbf
-rw-r----- 1 oracle oinstall 104865792 Aug 29 21:58 undotbs01.dbf
-rw-r----- 1 oracle oinstall 104865792 Aug 29 21:57 user01.dbf

控制文件也已经生成了,为何还会报错呢,难道是脚本有问题?仔细观察后发现,sysaux01.dbf和temp01.dbf并未创建成功,因为实例遭遇故障,实例终止了

--删除控制文件后重建
[root@prod prod]# rm -rf control*
[root@prod prod]# ll
total 922608
-rw-r----- 1 oracle oinstall 104865792 Aug 29 22:27 example01.dbf
-rw-r----- 1 oracle oinstall 52429312 Aug 29 22:27 redo01a.log
-rw-r----- 1 oracle oinstall 52429312 Aug 29 22:27 redo01b.log
-rw-r----- 1 oracle oinstall 52429312 Aug 29 22:26 redo02a.log
-rw-r----- 1 oracle oinstall 52429312 Aug 29 22:26 redo02b.log
-rw-r----- 1 oracle oinstall 52429312 Aug 29 22:26 redo03a.log
-rw-r----- 1 oracle oinstall 52429312 Aug 29 22:26 redo03b.log
-rw-r----- 1 oracle oinstall 314580992 Aug 29 22:26 system01.dbf
-rw-r----- 1 oracle oinstall 104865792 Aug 29 22:27 undotbs01.dbf
-rw-r----- 1 oracle oinstall 104865792 Aug 29 22:27 user01.dbf

--根据控制文件模板创建一个符合自己数据库的控制文件
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "PROD" NORESETLOGS
MAXLOGFILES 200
MAXLOGMEMBERS 5
MAXLOGHISTORY 200
MAXDATAFILES 100
MAXINSTANCES 2
LOGFILE
GROUP 1 ('/u01/app/oracle/oradata/prod/redo01a.log','/u01/app/oracle/oradata/prod/redo01b.log') SIZE 50M,
GROUP 2 ('/u01/app/oracle/oradata/prod/redo02a.log','/u01/app/oracle/oradata/prod/redo02b.log') SIZE 50M,
GROUP 3 ('/u01/app/oracle/oradata/prod/redo03a.log','/u01/app/oracle/oradata/prod/redo03b.log') SIZE 50M
DATAFILE
'/u01/app/oracle/oradata/prod/system01.dbf',
'/u01/app/oracle/oradata/prod/example01.dbf',
'/u01/app/oracle/oradata/prod/user01.dbf',
'/u01/app/oracle/oradata/prod/undotbs01.dbf'
CHARACTER SET AL32UTF8
;

重建控制文件后,open数据库时会报数据文件system01.dbf需要恢复,无法打开数据库,用resetlogs也不行
--把之前创建的文件全部删除后,再次尝试执行脚本
SQL> @createprod.sql
CREATE DATABASE prod
*
ERROR at line 1:
ORA-01501: CREATE DATABASE failed
ORA-19502: write error on file "/u01/app/oracle/oradata/prod/redo03a.log",
blockno 172033 (blocksize=512)
ORA-27072: File I/O error
Linux Error: 9: Bad file descriptor
Additional information: 4
Additional information: 172033
Additional information: 1003008
SQL> !
[oracle@prod ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
5.7G 5.0G 486M 92% /
/dev/sda1 99M 12M 82M 13% /boot
tmpfs 506M 0 506M 0% /dev/shm
/dev/sdb1 7.9G 2.3G 5.3G 31% /zlm

刚才的问题,初步怀疑是空间分配得太小,无法创建全部的数据库文件所致,可用空间只剩486M了,/dev/sdb1是我另外挂载的一个8G磁盘,用来放安装文件,也是因为可用空间太小的缘故

--删除不必要的文件后,再次查看磁盘空间