今天在测试的时候发现,oracle控制文件重建的话,密码文件也会相应的发生变化。 重建控制文件后,虽然密码文件内容没有发生变化。但是密码文件本身的状态已经发生了改变,最明显的一点,就是利用以前的备份进行恢复时,会报密码文件的错误。
今天在测试的时候发现,oracle控制文件重建的话,密码文件也会相应的发生变化。
重建控制文件后,虽然密码文件内容没有发生变化。但是密码文件本身的状态已经发生了改变,最明显的一点,就是利用以前的备份进行恢复时,会报密码文件的错误。
首先创建一个备份:
|
sql> select 'alter tablespace ' || tablespace_name || ' begin backup;' from dba_tablespaces 'altertablespace'||tablespace_name||'beginbackup;' |
已选择6行。
| sql> alter tablespace system begin backup; |
表空间已更改。
| sql> alter tablespace undotbs1 begin backup; |
表空间已更改。
| sql> alter tablespace indx begin backup; |
表空间已更改。
| sql> alter tablespace tools begin backup; |
表空间已更改。
| sql> alter tablespace users begin backup; |
表空间已更改。
| sql> alter tablespace yangtk begin backup; |
表空间已更改。
|
sql> host copy f:oracleoradatatest*.* f:oraclebackuptest20061106 sql> select 'alter tablespace ' || tablespace_name || ' end backup;' from dba_tablespaces 'altertablespace'||tablespace_name||'endbackup;' |
已选择6行。
| sql> alter tablespace system end backup; |
表空间已更改。
| sql> alter tablespace undotbs1 end backup; |
表空间已更改。
| sql> alter tablespace indx end backup; |
表空间已更改。
| sql> alter tablespace tools end backup; |
表空间已更改。
| sql> alter tablespace users end backup; |
表空间已更改。
| sql> alter tablespace yangtk end backup; |
表空间已更改。
下面看看重建控制文件后的情况:
| sql> conn yangtk/yangtk@test as sysdba |
已连接。
| sql> shutdown immediate |
数据库已经关闭。
已经卸载数据库。
oracle 例程已经关闭。
| sql> startup nomount |
oracle 例程已经启动。
| total system global area 76619308 bytes fixed size 454188 bytes variable size 50331648 bytes database buffers 25165824 bytes redo buffers 667648 bytes sql> create controlfile reuse database "test" noresetlogs archivelog 2 -- set standby to maximize performance 3 maxlogfiles 50 4 maxlogmembers 5 5 maxdatafiles 100 6 maxinstances 1 7 maxloghistory 680 8 logfile 9 group 1 'f:oracleoradatatestredo01.log' size 100m, 10 group 2 'f:oracleoradatatestredo02.log' size 100m, 11 group 3 'f:oracleoradatatestredo03.log' size 100m 12 -- standby logfile 13 datafile 14 'f:oracleoradatatestsystem01.dbf', 15 'f:oracleoradatatestundotbs01.dbf', 16 'f:oracleoradatatestindx01.dbf', 17 'f:oracleoradatatesttools01.dbf', 18 'f:oracleoradatatestusers01.dbf', 19 'f:oracleoradatatestyangtk01.dbf' 20 character set zhs16gbk 21 ; |
控制文件已创建
| sql> alter database open; |
数据库已更改。
这个时候,密码文件已经被修改。从操作系统中文件的信息也可以看到,文件最后修改时间就是控制文件的重建时间。
这个时候,如果需要利用以前的备份恢复数据库,那么就需要重建密码文件:
| sql> shutdown immediate |
数据库已经关闭。
已经卸载数据库。
oracle 例程已经关闭。
| sql> host copy f:oraclebackuptest20061106*.ctl f:oracleoradatatest sql> host copy f:oraclebackuptest20061106*.log f:oracleoradatatest sql> host copy f:oraclebackuptest20061106*.dbf f:oracleoradatatest sql> startup mount |
oracle 例程已经启动。
|
total system global area 76619308 bytes sql> shutdown |
已经卸载数据库。
oracle 例程已经关闭。
| sql> host del f:oracleoracle920databasepwdtest.ora sql> host orapwd file=f:oracleoracle920databasepwdtest.ora password=test sql> startup mount |
oracle 例程已经启动。
| total system global area 76619308 bytes fixed size 454188 bytes variable size 50331648 bytes database buffers 25165824 bytes redo buffers 667648 bytes |
数据库装载完毕。
| sql> recover database; |
完成介质恢复。
| sql> alter database open; |
数据库已更改。
密码文件由于可以方便的重建,因此,很少包括在备份集中,不过由于存在上述问题,进行全备份的时候,不妨同时备份当时的密码文件,可以避免产生错误。
闽公网安备 35060202000074号