Oracle的db_name和instance_name[3]

文章作者 100test 发表时间 2007:03:14 13:58:45
来源 100Test.Com百考试题网


我们再看看如果参数文件中的db_name和控制文件中的db_name不一致会出现什么错误.
修改参数db_name:

[oracle@jumper dbs]$ grep name initjulia.ora
*.db_name=julia
*.instance_name=julia

在启动过程中,我们看到,在mount阶段,数据库会对参数文件和控制文件进行比较,如果两者记录的db_name不一致,则数据库无法启动:

SQL> startup nomount.
ORACLE instance started.

Total System Global Area 139531744 bytes
Fixed Size 452064 bytes
Variable Size 121634816 bytes
Database Buffers 16777216 bytes
Redo Buffers 667648 bytes
SQL> alter database mount.
alter database mount
*
ERROR at line 1:
ORA-01103: database name EYGLE in controlfile is not JULIA

另外的一个区别是,db_name通常限制在8个字符之内;instance_name最多应该支持21个字符。通常我们都是设置db_name和instance_name一致。需要注意的是如果db_name设置过长,则会被Oracle截断为8个字符,而instance_name仍然会保留在21个字符之内,如果你的环境变量设置的instance_name=db_name,则启动时就会出现问题,你需要重建pfile/spfile并且修改环境变量才能启动实例,加载数据库。

这个问题可以参考Itpub曾经出现的案例:

http://www.itpub.net/showthread.php?threadid=604507

本文通过实例来介绍instance_name和db_name的区别,希望大家能对这两个参数以及instance和database有进一步的认识。



相关文章


Oracle的db_name和instance_name[1]
备份的控制文件和新的数据文件
Oracle初学者必知的100个问题(下)(1)
Oracle初学者必知的100个问题(下)(2)
Oracle的db_name和instance_name[3]
Oracle的db_name和instance_name[2]
Oracle字符集乱码问题分析及解决办法
Oracle10G数据库软硬件环境的要求(1)
查找运行系统里低劣的SQL方法
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛