修改oracle实例名sid和数据库名dbnameWord文件下载.docx
《修改oracle实例名sid和数据库名dbnameWord文件下载.docx》由会员分享,可在线阅读,更多相关《修改oracle实例名sid和数据库名dbnameWord文件下载.docx(10页珍藏版)》请在冰豆网上搜索。
echo$ORACLE_SID
orcl
sqlplus/assysdba
SQL*Plus:
Release10.2.0.1.0-ProductiononSunDec2011:
14:
492009
Copyright(c)1982,2005,Oracle.Allrightsreserved.
Connectedto:
OracleDatabase10gEnterpriseEditionRelease10.2.0.1.0-Production
WiththePartitioning,OLAPandDataMiningoptions
sys@ORCL>
selectinstancefromv$thread;
INSTANCE
--------------------------------------------------------------------------------
1.2、关闭数据库
注意不能用shutdownabort,只能是shutdownimmediate或shutdownnormal
shutdownimmediate
Databaseclosed.
Databasedismounted.
ORACLEinstanceshutdown.
exit
DisconnectedfromOracleDatabase10gEnterpriseEditionRelease10.2.0.1.0-Production
1.3、修改oracle用户的ORACLE_SID环境变量,如由orcl修改为ybbe
1.4、修改/etc/oratab文件,将sid名由旧的修改为新的,如从orcl修改为ybbe
可省略,只要确认好ORACLE_SID就可以了
1.5、进入到$ORACLE_HOME/dbs目录
将所有文件名中包含原来的sid的修改为对应的新sid的
如我对如下文件修改为其后对应的文件
hc_orcl.dat->
hc_ybbe.dat
lkORCL->
lkYBBE
orapworcl->
orapwybbe
snapcf_orcl.f->
snapcf_cnhtm.f
spfileorcl.ora->
spfilecnhtm.ora
cd$ORACLE_HOME/dbs
orapwdfile=orapwybbepassword='
ybbe'
entries=5force=y
可以用次命令进行对上面的文件进行自动生成
1.6、使新修改的ORACLE_SID环境变量生效
oracle@oracle[/oracle/app/10.1/dbs]>
.~/.bash_profile
echo$ORACLE_SID
cnhtm
1.7、重建口令文件
因为口令文件改名后不能在新实例中使用,所以重建
orapwdfile=$ORACLE_HOME/dbs/orapw$ORACLE_SIDpassword=oracleentries=5force=y
ls-lrtorapw*
-rw-r-----1oracleoinstall2048Dec2011:
27orapwybbe
1.8、启动数据库
sqlplus/assysdba
29:
532009
Connectedtoanidleinstance.
idle>
startup
ORACLEinstancestarted.
TotalSystemGlobalArea167772160bytes
FixedSize1218292bytes
VariableSize62916876bytes
DatabaseBuffers96468992bytes
RedoBuffers7168000bytes
Databasemounted.
Databaseopened.
1.9、检查数据库实例名
通过如下语句检查数据库实例名,发现实例名已经由orcl变成ybbe
ybbe
虽然已经修改过了实例名(sid),但是数据库的名称(dbname还是原来的名称orcl)
conn/assysdba
Connected.
showparametername
NAMETYPEVALUE
-----------------------------------------------------------------------------
db_file_name_convertstring
db_namestringorcl
db_unique_namestringorcl
global_namesbooleanFALSE
instance_namestring
lock_name_spacestring
log_file_name_convertstring
service_namesstringorcl
可以通过如下步骤修改数据库名(dbname)
2.1、首先切换一下在线日志,使数据库做checkpoint
altersystemarchivelogcurrent;
Systemaltered.
2.2、生成重建控制文件的脚本
alterdatabasebackupcontrolfiletotraceresetlogs;
Databasealtered.
2.3、关闭数据库,需要干净关闭,不能shutdownabort
2.4、进入$ORACLE_BASE/admin/<
sid>
/udump目录中,找到最新生成的trc文件,这就是重建控制文件的脚本
oracle@oracle[/oracle/admin/orcl/udump]>
ls-lrt
total2608
-rw-r-----1oracleoinstall577Nov713:
37orcl_ora_12020.trc
......
-rw-r-----1oracleoinstall4407Dec2011:
36ybbe_ora_7789.trc
2.5、将找到的trc文件复制一份,并命名为ccf.sql
cpybbe_ora_7789.trcccf.sql
2.6、修改ccf.sql
查找STARTUPNOMOUNT语句,将这一行上面的所有行都删除
查找所有以--开始的行,把这些行删除
查找所有的orcl修改为ybbe,所有的ORCL修改为YBBE
找到CREATECONTROLFILEREUSEDATABASE...语句,将其中的REUSE修改为SET
找到RECOVERDATABASEUSINGBACKUPCONTROLFILE语句,将其用双横线(--)注释掉
如果有精力,可以修改这个脚本中的datafile和logfile部分使用新的文件名称,其实这部分不修改也可以,我为了测试的目的进行了修改,修改后要记得去重命名数据文件和log文件,将对应的数据文件和log文件与这里的名称相对应
我修改后的ccf.sql文件内容如下
STARTUPNOMOUNT
CREATECONTROLFILEsetDATABASE"
cnhtm"
RESETLOGSARCHIVELOG
MAXLOGFILES16
MAXLOGMEMBERS3
MAXDATAFILES100
MAXINSTANCES8
MAXLOGHISTORY292
LOGFILE
GROUP1'
+DATA/cnhtm/onlinelog/group_1.LOG'
SIZE100M,
GROUP2'
+DATA/cnhtm/onlinelog/group_2.LOG'
GROUP3'
+DATA/cnhtm/onlinelog/group_3.LOG'
GROUP4'
+DATA/cnhtm/onlinelog/group_4.LOG'
SIZE100M
DATAFILE
'
+DATA/cnhtm/datafile/system01.DBF'
+DATA/cnhtm/datafile/undotbs101.DBF'
+DATA/cnhtm/datafile/sysaux01.DBF'
+DATA/cnhtm/datafile/users01.DBF'
+DATA/cnhtm/datafile/example01.DBF'
+DATA/cnhtm/datafile/tbs_lmt01.DBF'
+DATA/cnhtm/datafile/tbs_lmt_201.DB