重建控制文件导致密码文件变化探讨 - 站长资讯 中国站长第一门户:WWW.CHINAHTML.COM网通镜像技术文档CH Blog极 客 集 电信 论坛网通论坛 免费体验" name="description" />

重建控制文件导致密码文件变化探讨

发表于:2007-07-04来源:作者:点击数: 标签:
"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.d td "> 重建控制文件导致密码文件变化探讨 - 站长资讯 中国站长第一门户:WWW.CHINAHTML.COM网通镜像技术文档CH Blog极 客 集 电信 论坛网通论坛 免费体验
"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 重建控制文件导致密码文件变化探讨 - 站长资讯 中国站长第一门户:WWW.CHINAHTML.COM 网通镜像 技术文档 CH Blog 极 客 集 电信论坛 网通论坛 首页 免费体验美国主机条码条形码打印机文字广告位招租 首页 新闻资讯 搜索优化 推广研究 策划盈利 建站心得 站长故事 商业 人物 门户 报告 评论 网站欣赏 极客集   网页制作 网络编程 数据库 图象媒体 服务器 网络应用 软件教学 产品 新知  安全 开源 访谈 网址大全 实用查询       栏目搜索     标题 简介 内容 作者 搜索全部
搜索全部 新闻资讯 网站运营 网页制作 网络编程 数 据 库 图象设计 服 务 器 网络应用 软件教学 代码下载 工具下载 素材下载 书籍下载 网站欣赏 Flash欣赏         你的位置:首页 > 数 据 库 > 数据库综合 >   重建控制文件导致密码文件变化探讨 日期:2006-12-13 10:32:24  点击:28  作者:  来源:

今天在测试的时候发现,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;

数据库已更改。

密码文件由于可以方便的重建,因此,很少包括在备份集中,不过由于存在上述问题,进行全备份的时候,不妨同时备份当时的密码文件,可以避免产生错误。

原文转自:http://www.ltesting.net