oracle中的newid,11g Oracle DBNEWID的改进

在11g中,DBNEWID工具也做了一些改进使用上更加的方便。

看一下11g的DBNEWID工具的操作:

bash-3.00$ sqlplus "/ as sysdba"

SQL*Plus: Release 11.1.0.6.0 - Production on星期二4月7 17:11:53 2009

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

连接到:

Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select dbid, name from v$database;

DBID NAME

---------- ------------------

835491368 TEST11G

SQL> select * from global_name;

GLOBAL_NAME

--------------------------------------------------------------------------------

TEST11G.NETDB

SQL> shutdown immediate数据库已经关闭。已经卸载数据库。ORACLE例程已经关闭。SQL> startup mount

ORACLE例程已经启动。

Total System Global Area 5279498240 bytes

Fixed Size                  2094528 bytes

Variable Size            3192597056 bytes

Database Buffers         2080374784 bytes

Redo Buffers                4431872 bytes数据库装载完毕。SQL> exit从Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options断开

下面执行NID命令:

bash-3.00$ nid target=/ dbname=new11g

DBNEWID: Release 11.1.0.6.0 - Production on星期三4月8 00:52:41 2009

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

已连接数据库TEST11G (DBID=835491368)

已连接服务器版本11.1.0

数据库中的控制文件数:

/data/oracle/oradata/test11g/control01.ctl

/data/oracle/oradata/test11g/control02.ctl

/data/oracle/oradata/test11g/control03.ctl

以下数据文件是只读的:

/data/oracle/oradata/test11g/test01.dbf (6)此实用程序必须能够写入这些文件。

是否将数据库ID和数据库名TEST11G更改为NEW11G? (Y/[N]) => y

操作继续进行将数据库ID从835491368更改为2655088921将数据库名从TEST11G更改为NEW11G控制文件/data/oracle/oradata/test11g/control01.ctl -已修改控制文件/data/oracle/oradata/test11g/control02.ctl -已修改控制文件/data/oracle/oradata/test11g/control03.ctl -已修改数据文件/data/oracle/oradata/test11g/system01.dbf - dbid已更改,已写入新名称数据文件/data/oracle/oradata/test11g/sysaux01.dbf - dbid已更改,已写入新名称数据文件/data/oracle/oradata/test11g/undotbs01.dbf - dbid已更改,已写入新名称数据文件/data/oracle/oradata/test11g/users01.dbf - dbid已更改,已写入新名称数据文件/data/oracle/oradata/test11g/yangtk01.dbf - dbid已更改,已写入新名称数据文件/data/oracle/oradata/test11g/test01.dbf - dbid已更改,已写入新名称数据文件/data/oracle/oradata/test11g/temp01.dbf - dbid已更改,已写入新名称控制文件/data/oracle/oradata/test11g/control01.ctl - dbid已更改,已写入新名称控制文件/data/oracle/oradata/test11g/control02.ctl - dbid已更改,已写入新名称控制文件/data/oracle/oradata/test11g/control03.ctl - dbid已更改,已写入新名称实例关闭

数据库名已更改为NEW11G。修改参数文件并在重新启动前生成新的口令文件。数据库NEW11G的数据库ID已更改为2655088921。此数据库的所有以前的备份和归档重做日志均不可用。数据库无法识别恢复区中以前的备份和归档日志。数据库已关闭,用RESETLOGS选项打开数据库。已成功更改数据库名和ID。DBNEWID -已成功完成。

可以看到,执行完NID命令后会自动关闭数据库,而9i中是需要手工关闭的,而且11g的提示信息更加详细。

在11g的alert文件中,DBNEWID工具会添加必要的信息来说明所进行的修改:

*** DBNEWID utility started ***

DBID will be changed from 835491368 to new DBID of 2655088921 for database TEST11G

DBNAME will be changed from TEST11G to new DBNAME of NEW11G

Starting datafile conversion

Setting recovery target incarnation to 1

Datafile conversion complete

Database name changed to NEW11G.

Modify parameter file and generate a new password file before restarting.

Database ID for database NEW11G changed to 2655088921.

All previous backups and archived redo logs for this database are unusable.

Database has been shutdown, open with RESETLOGS option.

Succesfully changed database name and ID.

*** DBNEWID utility finished succesfully ***

而在9i中则看不到任何的信息。

而且虽然Oracle提示需要重现生成新的密码文件,但是在11g不生成新的密码文件仍然可以正常登陆,而9i中则会报错ORA-01991错误:

bash-3.00$ sqlplus "/ as sysdba"

SQL*Plus: Release 11.1.0.6.0 - Production on星期三4月8 01:31:54 2009

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

已连接到空闲例程。

SQL> startup nomount

ORACLE例程已经启动。

Total System Global Area 5279498240 bytes

Fixed Size                  2094528 bytes

Variable Size            3192597056 bytes

Database Buffers         2080374784 bytes

Redo Buffers                4431872 bytes

SQL> alter system set db_name = new11g scope = spfile;

系统已更改。

SQL> shutdown immediate

ORA-01507: ??????

ORACLE例程已经关闭。SQL> startup mount

ORACLE例程已经启动。

Total System Global Area 5279498240 bytes

Fixed Size                  2094528 bytes

Variable Size            3192597056 bytes

Database Buffers         2080374784 bytes

Redo Buffers                4431872 bytes数据库装载完毕。SQL> alter database open resetlogs;

数据库已更改。

最后在11g中,GLOBAL_NAME也会自动修改,而9i还必须手工的修改GLOBAL_NAME:

SQL> select dbid, name from v$database;

DBID NAME

---------- ------------------

2655088921 NEW11G

SQL> select * from global_name;

GLOBAL_NAME

--------------------------------------------------------------------------------

NEW11G.NETDB

当然这些改进是10g和11g两个版本的改进,而不仅仅是11g一个版本的增强。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值