2024年6月8日发(作者:)

有时我们需要修改数据库的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_->hc_

lkORCL->lkCNHTM

orapworcl->orapwcnhtm

snapcf_orcl.f->snapcf_cnhtm.f

->

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