修改oracle 的dbname,在oracle 10g上修改dbname的实验

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行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值