重建控制文件会导致密码文件发生变化Oracle认证考试
文章作者 100test 发表时间 2009:06:15 06:16:50
来源 100Test.Com百考试题网
今天在测试的时候发现,Oracle控制文件重建的话,密码文件也会相应的发生变化。
重建控制文件后,虽然密码文件内容没有发生变化。但是密码文件本身的状态已经发生了改变,最明显的一点,就是利用以前的备份进行恢复时,会报密码文件的错误。
首先创建一个备份:
SQL>. SELECT ’ALTER TABLESPACE ’ || TABLESPACE_NAME || ’ BEGIN BACKUP.’ FROM DBA_TABLESPACES
2 WHERE CONTENTS != ’TEMPORARY’.
’ALTERTABLESPACE’||TABLESPACE_NAME||’BEGINBACKUP.’
-------------------------------------------------------------
ALTER TABLESPACE SYSTEM BEGIN BACKUP.
ALTER TABLESPACE UNDOTBS1 BEGIN BACKUP.
ALTER TABLESPACE INDX BEGIN BACKUP.
ALTER TABLESPACE TOOLS BEGIN BACKUP.
ALTER TABLESPACE USERS BEGIN BACKUP.
ALTER TABLESPACE YANGTK BEGIN BACKUP.
已选择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
2 WHERE CONTENTS != ’TEMPORARY’.
’ALTERTABLESPACE’||TABLESPACE_NAME||’ENDBACKUP.’
-----------------------------------------------------------
ALTER TABLESPACE SYSTEM END BACKUP.
ALTER TABLESPACE UNDOTBS1 END BACKUP.
ALTER TABLESPACE INDX END BACKUP.
ALTER TABLESPACE TOOLS END BACKUP.
ALTER TABLESPACE USERS END BACKUP.
ALTER TABLESPACE YANGTK END BACKUP.
已选择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
Fixed Size 454188 bytes
Variable Size 50331648 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
ORA-01991: ???????’F:oracleoracle920DATABASEPWDtest.ORA’
SQL>. SHUTDOWN
ORA-01109: ??????
已经卸载数据库。
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.
数据库已更改。
密码文件由于可以方便的重建,因此,很少包括在备份集中,不过由于存在上述问题,进行全备份的时候,不妨同时备份当时的密码文件,可以避免产生错误。
更多优质资料尽在百考试题论坛 百考试题在线题库