日期:2014-05-16  浏览次数:20476 次

Linux修改数据库的sid和dbname 查看oracle 实例

有时我们需要修改数据库的sid和dbname,除了使用rman进行备份恢复之外,也可以通过手工方式修改,主要由两个主要过程完成:
1、修改实例名(SID)
2、修改数据库名(dbname)

下面演示将数据库sid和dbname由orcl修改为cnhtm的过程:

?


1、修改实例名(sid)

1.1、检查原来的数据库实例名(sid)

?

oracle@oracle[/home/oracle]> echo $ORACLE_SID
orcl
oracle@oracle[/home/oracle]> sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Dec 20 11:14:49 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
sys@ORCL> select instance from v$thread;
INSTANCE
--------------------------------------------
orcl

?

1.2、关闭数据库

注意不能用shutdown abort,只能是shutdown immediate或shutdown normal

?

sys@ORCL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
sys@ORCL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

?

1.3、修改oracle用户的ORACLE_SID环境变量,如由orcl修改为cnhtm

?

oracle@oracle[/home/oracle]> cat ~/.bash_profile|grep -i sid
ORACLE_SID=cnhtm
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH

?

1.4、修改/etc/oratab文件,将sid名由旧的修改为新的,如从orcl修改为cnhtm

?

oracle@oracle[/home/oracle]> cat /etc/oratab
......
cnhtm:/oracle/app/10.1:Y
+ASM:/oracle/app/10.1:Y

?

1.5、进入到$ORACLE_HOME/dbs目录

将所有文件名中包含原来的sid的修改为对应的新sid的
如我对如下文件修改为其后对应的文件

hc_orcl.dat->hc_cnhtm.dat
lkORCL->lkCNHTM
orapworcl->orapwcnhtm
snapcf_orcl.f->snapcf_cnhtm.f
spfileorcl.ora->spfilecnhtm.ora

?

1.6、使新修改的ORACLE_SID环境变量生效

?

oracle@oracle[/oracle/app/10.1/dbs]> . ~/.bash_profile
oracle@oracle[/oracle/app/10.1/dbs]> echo $ORACLE_SID
cnhtm

?

1.7、重建口令文件

因为口令文件改名后不能在新实例中使用,所以重建

oracle@oracle[/oracle/app/10.1/dbs]> orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=oracle entries=5 force=y
oracle@oracle[/oracle/app/10.1/dbs]> ls -lrt orapw*
-rw-r----- 1 oracle oinstall 2048 Dec 20 11:27 orapwcnhtm

?

1.8、启动数据库

?

oracle@oracle[/oracle/app/10.1/dbs]> sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Dec 20 11:29:53 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
idle> startup
ORACLE instance started.
Total System Global Area 167772160 bytes
Fixed Size 1218292 bytes
Variable Size 62916876 bytes
Database Buffers 96468992 bytes
Redo Buffers 7168000 bytes
Database mounted.
Database opened.

?

1.9、检查数据库实例名

通过如下语句检查数据库实例名,发现实例名已经由orcl变成cnhtm

idle> select instance from v$thread;
INSTANCE
---------------------