每次修改都是:
NID-00135: 存在 1 个活动的线程
执行如下解决:
C:>sqlplus sys/ggyy@ggyy as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 6月 27 15:37:37 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> shutdown immediate
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 289406976 bytes
Fixed Size 1248600 bytes
Variable Size 96469672 bytes
Database Buffers 188743680 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
SQL> exit
c:exit
此时退出CMD,然后重进入CMD即可!
C:>nid target=sys/ggyy@ggyy dbname=test setname=yes
即可运行成功:
数据库名已更改为 TEST。
修改参数文件并在重新启动前生成新的口令文件。
数据库TEST的数据库 ID 已更改为 ******
此数据库的所有以前的备份和归档重做日志均不可用。
数据库无法识别恢复区中以前的备份和归档日志。
数据库已关闭, 用 RESETLOGS 选项打开数据库。
已成功更改数据库名和 ID。
DBNEWID - 已成功完成。
C:>
接下来要先重启SERVER,(ORACLE_SID变成了TEST,
改ORACLE__SID=DEMO,不知道是不是必需,但没改之前始终报错,也许是例程名和SID必定一致的原因)
修改:SPFILE(创建SPFILETEM。ORA,然后停止SERVER,改名SPFILEDEMO)
最后start nomount
alter database mount --(这里很奇怪,如果不一步步来,直接startup open resetlogs 每次都报错,需要确认??)
SQL> startup open
ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它
SQL> alter database open
2 ;
alter database open
*
第 1 行出现错误:
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项
SQL> alter database open noresetlogs;
alter database open noresetlogs
*
第 1 行出现错误:
ORA-01588: 要打开数据库则必须使用 RESETLOGS 选项
SQL> alter database open resetlogs;
数据库已更改。
至此终于改名完全成功。
同时网络服务名是否要改也要确定?
此时的例程名仍是DEMO,但数据库名是TEST ,如果要改,那么监听里面的SID为DEMO不变,全局数据库名为TEST,同时网络服务名中服务也要改为TEST;但如果同时都不修改也可以使用(待确认),也许这是NID修改数据库名和手动修改SPFIL,重建控制文件来修改数库名的一个区别。
[@more@]来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/118400/viewspace-1023551/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/118400/viewspace-1023551/