1【参考资料】
对以上资料的作者表示感谢
2【环境参数】
Vmware workstation ACE editionversion 6.0
Windows server 2003service pack 1
Oracle 10.2.0.1.0
3【执行步骤】
黑体部分是步骤/命令
SQL> conn /as sysdba
已连接。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE例程已经关闭。
SQL> startup mount
ORACLE例程已经启动。
Total System Global Area 1048576000 bytes
Fixed Size1252976 bytes
Variable Size444596624 bytes
Database Buffers599785472 bytes
Redo Buffers2940928 bytes
数据库装载完毕。
SQL> quit
从Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options断开
C:\Documents and Settings\Administrator>nid target=/as sysdba dbname=cslcs
DBNEWID: Release 10.2.0.1.0 - Production on星期二6月29 10:12:19 2010
Copyright (c) 1982, 2005, Oracle.All rights reserved.
口令:
已连接数据库ORCL (DBID=1247201848)
已连接服务器版本10.2.0
数据库中的控制文件数:
C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL
C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL02.CTL
C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL03.CTL
是否将数据库ID和数据库名ORCL更改为CSLCS? (Y/[N]) => y
操作继续进行
将数据库ID从1247201848更改为2653598407
将数据库名从ORCL更改为CSLCS
控制文件C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL -已修改
控制文件C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL02.CTL -已修改
控制文件C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL03.CTL -已修改
数据文件C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF - dbid已更改,
已写入新名称
数据文件C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF - dbid已更改,
已写入新名称
数据文件C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF - dbid已更改,
已写入新名称
数据文件C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF - dbid已更改,已
写入新名称
数据文件C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SALE_TS01.DBF - dbid已更改,
已写入新名称
数据文件C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\PAY_TS01.DBF - dbid已更改,
已写入新名称
数据文件C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\INDEX_TS01.DBF - dbid已更改,
已写入新名称
数据文件C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\OTHER_TS01.DBF - dbid已更改,
已写入新名称
数据文件C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REP_TS01.DBF - dbid已更改,
已写入新名称
数据文件C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP01.DBF - dbid已更改,已
写入新名称
控制文件C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL - dbid已更改,
已写入新名称
控制文件C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL02.CTL - dbid已更改,
已写入新名称
控制文件C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL03.CTL - dbid已更改,
已写入新名称
实例关闭
数据库名已更改为CSLCS。
修改参数文件并在重新启动前生成新的口令文件。
数据库CSLCS的数据库ID已更改为2653598407。
此数据库的所有以前的备份和归档重做日志均不可用。
数据库无法识别恢复区中以前的备份和归档日志。
数据库已关闭,用RESETLOGS选项打开数据库。
已成功更改数据库名和ID。
DBNEWID -已成功完成。
C:\Documents and Settings\Administrator>orapwd file=C:\oracle\product\10.2.0\db_
1\database\PWDcslcs.ora password=sys enters=10 force=y
Usage: orapwd file=password=entries=force=
where
file - name of password file (mand),
password - password for SYS (mand),
entries - maximum number of distinct DBA andforce - whether to overwrit
e existing file (opt),
OPERs (opt),
There are no spaces around the equal-to (=) character.
Orapwd命令
File新生成的口令文件名
Password新口令
Enters sysdba权限的记录数(不详)
运气不好没执行过。
这个命令执行成功没有提示,会直接推出命令行。如果没有成功会显示命令的说明,如上。
C:\Documents and Settings\Administrator>orapwd file=C:\oracle\product\10.2.0\db_
1\database\PWDcslcs.ora password=sys
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on星期二6月29 10:28:36 2010
Copyright (c) 1982, 2005, Oracle.All rights reserved.
SQL> conn /as sysdba
已连接到空闲例程。
SQL> startup nomount
ORACLE例程已经启动。
Total System Global Area 1048576000 bytes
Fixed Size1252976 bytes
Variable Size444596624 bytes
Database Buffers599785472 bytes
Redo Buffers2940928 bytes
SQL> alter system set db_name=cslcs scope=spfile;
系统已更改。
SQL> shutdown immediate
ORA-01507: ??????
ORACLE例程已经关闭。
>>手工修改了一把pfile文件中的db_name
SQL> startup mount;
ORACLE例程已经启动。
Total System Global Area 1048576000 bytes
Fixed Size1252976 bytes
Variable Size444596624 bytes
Database Buffers599785472 bytes
Redo Buffers2940928 bytes
数据库装载完毕。
SQL> alter database open resetlogs;
数据库已更改。
SQL> select dbid,name from v$database;
DBID NAME
---------- ------------------
2653598407 CSLCS
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE例程已经关闭。
SQL> startup
ORACLE例程已经启动。
Total System Global Area 1048576000 bytes
Fixed Size1252976 bytes
Variable Size448790928 bytes
Database Buffers595591168 bytes
Redo Buffers2940928 bytes
数据库装载完毕。
数据库已经打开。
SQL>
4【参考步骤】
(1).进行数据库完全备份以防万一修改失败
(2).将数据库正常关闭然后MOUNT
SQL> connect / as sysdba
已连接。
SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP MOUNT
(3).运行NID指定一个具有SYSDBA权限的ORACLE用户
C:\> NID TARGET=SYS/SYSYTMF DBNAME=O9201NEW
注:改变DBID,新DBID值由工具自动生成不用指定,
O9201NEW是指定的新数据库NAME
也可以用NID TARGET=SYS/SYSYTMF@service_name DBNAME=O9201NEW
如果没有使用DBNAME参数则操作只改变DBID
也可以用操作系统验证如:NID TARTET=/
(4).修改提示成功后正常关闭数据库
SQL> shutdown immediate;
ORA-01109: ??????
已经卸载数据库。
ORACLE例程已经关闭。
(5).创建密码文件(要求还用原来的密码文件名字PWDO9201.ORA如果生成PWDO9201NEW.ORA则提示错误:原来文件找不到)
将原来的密码文件PWDO9201。ORA随便改个名字然后执行:
c:\>orapwd file=f:\oracle\ora92\database\pwdo9201.ora password=sysytmf enters=10
确认是否成功生成密码文件
(6),修改数据初始化参数文件中的DB_NAME为新的的DB_NAME(O9201NEW)
SQL> startup nomount;
ORACLE例程已经启动。
Total System Global Area135338868 bytes
Fixed Size453492 bytes
Variable Size109051904 bytes
Database Buffers25165824 bytes
Redo Buffers667648 bytes
SQL> alter system set db_name=o9201new scope=spfile;
系统已更改。
(如果使用PFILE就手工修改相应值)
(7)
SQL> shutdown immediate;
ORA-01507: ??????
ORACLE例程已经关闭。
(8)startup
SQL> startup;
ORACLE例程已经启动。
Total System Global Area135338868 bytes
Fixed Size453492 bytes
Variable Size109051904 bytes
Database Buffers25165824 bytes
Redo Buffers667648 bytes
数据库装载完毕。
ORA-01589:要打开数据库则必须使用RESETLOGS或NORESETLOGS选项
(9)用RESETLOGS模式OPEN数据库(如果没有修改DBNAME就不必用RESETLOGS选项)
SQL> alter database open resetlogs;
数据库已更改。
SQL> select dbid,name from v$database;
DBID NAME
---------- ---------
3677577861 O9201NEW
已选择1行。