Oracle NID工具修改数据库DBID和数据库名称
DBID是数据库的唯一标识符,在一些特殊场合会涉及到DBID的相关内容,本篇文章的目的是演示将DB_NAME的值从ORCL1修改为ORCL。
一.查看当前的环境。
[oracle@rhel2 ~]$ echo $ORACLE_SID
orcl1
[oracle@rhel2 ~]$ sql
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Nov 21 12:41:26 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> show parameter db_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_name string ORCL1
SQL> show parameter service_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
service_names string ORCL1
SQL> show parameter instance_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
instance_name string orcl1
SQL> select dbid,name from v$database;
DBID NAME
---------- ---------
1152218060 ORCL1
SQL> !
[oracle@rhel2 ~]$ lsnrctl status
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 21-NOV-2011 12:42:06
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rhel2)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date 20-NOV-2011 23:28:15
Uptime 0 days 13 hr. 13 min. 50 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/db_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/db_1/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rhel2)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
Services Summary...
Service "ORCL1_XPT" has 1 instance(s).
Instance "orcl1", status READY, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "orcl1" has 1 instance(s).
Instance "orcl1", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
Instance "orcl1", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@rhel2 ~]$ exit
exit
二.启动数据库到MOUNT模式。
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 369098752 bytes
Fixed Size 2020864 bytes
Variable Size 113248768 bytes
Database Buffers 251658240 bytes
Redo Buffers 2170880 bytes
Database mounted.
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
三.使用NID工具将DB_NAME从orcl1修改为orcl。
[oracle@rhel2 ~]$ nid target=sys/oracle dbname=orcl
DBNEWID: Release 10.2.0.1.0 - Production on Mon Nov 21 12:43:13 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to database ORCL1 (DBID=1152218060)
Connected to server version 10.2.0
Control Files in database:
/u01/app/oracle/oradata/orcl/control01.ctl
/u01/app/oracle/oradata/orcl/control02.ctl
/u01/app/oracle/oradata/orcl/control03.ctl
Change database ID and database name ORCL1 to ORCL? (Y/[N]) => y
Proceeding with operation
Changing database ID from 1152218060 to 1295536737
Changing database name from ORCL1 to ORCL
Control File /u01/app/oracle/oradata/orcl/control01.ctl - modified
Control File /u01/app/oracle/oradata/orcl/control02.ctl - modified
Control File /u01/app/oracle/oradata/orcl/control03.ctl - modified
Datafile /u02/system01.dbf - dbid changed, wrote new name
Datafile /u02/sysaux01.dbf - dbid changed, wrote new name
Datafile /u02/users01.dbf - dbid changed, wrote new name
Datafile /u02/undotbs01.dbf - dbid changed, wrote new name
Datafile /u02/temp01.dbf - dbid changed, wrote new name
Control File /u01/app/oracle/oradata/orcl/control01.ctl - dbid changed, wrote new name
Control File /u01/app/oracle/oradata/orcl/control02.ctl - dbid changed, wrote new name
Control File /u01/app/oracle/oradata/orcl/control03.ctl - dbid changed, wrote new name
Instance shut down
Database name changed to ORCL.
Modify parameter file and generate a new password file before restarting.
Database ID for database ORCL changed to 1295536737.
All previous backups and archived redo logs for this database are unusable.
Database is not aware of previous backups and archived logs in Recovery Area.
Database has been shutdown, open database with RESETLOGS option.
Succesfully changed database name and ID.
DBNEWID - Completed succesfully.
四.新建密码文件。
[oracle@rhel2 dbs]$ orapwd file=$ORACLE_HOME/dbs/orapworcl password=oracle entries=5
五.修改参数文件中的DB_NAME参数值。
由于nid修改了控制文件和数据文件中的DB_NAME值,所以将参数文件中的DB_NAME修改来和控制文件、数据文件相同,修改为ORCL。
[oracle@rhel2 ~]$ echo $ORACLE_SID
orcl1
[oracle@rhel2 ~]$ sql
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Nov 21 12:43:33 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup nomount
ORACLE instance started.
Total System Global Area 369098752 bytes
Fixed Size 2020864 bytes
Variable Size 113248768 bytes
Database Buffers 251658240 bytes
Redo Buffers 2170880 bytes
SQL> show parameter db_name
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
db_name string
ORCL1
SQL> alter system set db_name=orcl scope=spfile;
System altered.
SQL> shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 369098752 bytes
Fixed Size 2020864 bytes
Variable Size 113248768 bytes
Database Buffers 251658240 bytes
Redo Buffers 2170880 bytes
Database mounted.
确定DB_NAME修改之后,数据库打开必须以RESETLOGS的方式打开。
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
SQL> alter database open resetlogs;
Database altered.
注意:以resetlogs模式打开数据库之后需要立即执行全库备份。
六.查看修改后的环境。
修改后的数据库DB_NAME和Service_name都会自动发生变化,instance_name不会发生变化。
SQL> show parameter db_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_name string ORCL
SQL> show parameter service
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
service_names string ORCL
SQL> show parameter instance_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
instance_name string orcl1
DBID和数据库名称都发生了变化。
SQL> select dbid,name from v$database;
DBID NAME
---------- ---------
1295536737 ORCL
SQL> !
监听状态中,Service的名称自动变成了ORCL,这是由Service_name控制的,Instance没有发生变化,这是由instance_name控制的。
[oracle@rhel2 ~]$ lsnrctl status
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 21-NOV-2011 12:45:06
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rhel2)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date 20-NOV-2011 23:28:15
Uptime 0 days 13 hr. 16 min. 50 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/db_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/db_1/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rhel2)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
Services Summary...
Service "ORCL" has 1 instance(s).
Instance "orcl1", status READY, has 1 handler(s) for this service...
Service "ORCL_XPT" has 1 instance(s).
Instance "orcl1", status READY, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
Instance "orcl1", status READY, has 1 handler(s) for this service...
The command completed successfully
从以上的例子还可以看出,环境变量ORACLE_SID也没有发生变化,这只是用于找到参数文件而已。
重建控制文件不会导致DBID和数据库名称发生变化。例子如下:
SQL> select dbid,name from v$database;
DBID NAME
---------- ---------
1295536737 ORCL
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup nomount
ORACLE instance started.
Total System Global Area 369098752 bytes
Fixed Size 2020864 bytes
Variable Size 117443072 bytes
Database Buffers 247463936 bytes
Redo Buffers 2170880 bytes
SQL> CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/u02/redo01.log' SIZE 50M,
GROUP 2 '/u02/redo02.log' SIZE 50M,
GROUP 3 '/u02/redo03.log' SIZE 50M
-- STANDBY LOGFILE
DATAFILE
'/u02/system01.dbf',
'/u02/sysaux01.dbf',
'/u02/users01.dbf',
'/u02/undotbs01.dbf'
CHARACTER SET ZHS16GBK
;
Control file created.
SQL> alter database open;
Database altered.
SQL> select dbid ,name from v$database;
DBID NAME
---------- ---------
1295536737 ORCL
Oracle NID工具修改数据库DBID和数据库名称相关推荐
- 使用nid工具修改db_name和DBID
#########原来的################## SQL> select dbid from v$database; DBID ---------- 1490502756 SQL&g ...
- 修改 oracle dbid,更改数据库DBID
当克隆一个数据库到另外一台机器上,具有相同的数据库名称或者如果一个新的数据库名称是通过重建的控制文件, 那么需要改变DBBID,特别是如果是新的数据库在相同的rman catalog是注册. 尤其是如 ...
- 使用nid的修改数据库名
Use Nid to Change dbname-NID的用法 Nid是Oracle从9iR2开始提供的工具,可以用来更改数据库名称,而无需通过之前重建控制文件等繁琐方式. 需要说明的是,虽然这个工具 ...
- Oracle10表数据编辑器,Oracle ORACLE 快速批量导入文本数据到数据库(sqlldr工具)方法与分析 (Windows CMD 方式)...
Oracle ORACLE 快速批量导入文本数据到数据库(sqlldr工具)方法与分析 (Windows CMD 方式) 在实际生产环境中,常会碰到将一些如通过通讯接口传过来的数据(文本文件 txt) ...
- Oracle数据库:oracle启动,oracle客户端工具plsql安装教程和使用方法
Oracle数据库:oracle启动,oracle客户端工具plsql安装教程和使用方法 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的 ...
- oracle数据库怎么更改表名,oracle如何修改表名_数据库
Oracle建表语句是什么_数据库 Oracle建表语句是CREATE TABLE tablename(column_name datatype).其中tablename是要创建的表名,column_ ...
- oracle数据库超大表名更改,oracle如何修改表名_数据库,oracle,修改表名
Oracle建表语句是什么_数据库 Oracle建表语句是CREATE TABLE tablename(column_name datatype).其中tablename是要创建的表名,column_ ...
- 使用nid命令修改 db name 及 dbid
工作中不可避免地碰到需要修改dbname以及dbid的情形,如将数据库恢复到同一台机器的情形是其中之一.但dbname以及dbid是用于标识数据库的重要标志之一,尤其是dbid,具有唯一性,因此对其修 ...
- oracle为什么不用指定数据库,两个数据库怎么保持数据正确显示
当前位置:我的异常网» Oracle管理 » 两个数据库怎么保持数据正确显示 两个数据库怎么保持数据正确显示 www.myexceptions.net 网友分享于:2015-08-26 浏览:23 ...
最新文章
- python3 python2 字符串与hex互转区别
- 《Debug Hacks》和调试技巧
- 2的幂次方表示(信息学奥赛一本通-T1208)
- python数据抓取课程_Python爬虫入门教程 22-100 CSDN学院课程数据抓取
- 【CSS】解决图片和盒子底部产生的缝隙问题
- Proxy pattern-代理模式
- BIO、NIO、AIO差别
- C语言如何制作dIL文件,C语言学习笔记———指针
- Redis进程异常退出排查
- 达内JAVA云笔记_达内云笔记项目完整代码+注释
- 计算机学院三下乡,重庆理工大学计算机学院”三下乡“教师情牵故乡
- vnc远程控制软件下载,四款神级能够下载的vnc远程控制软件
- GSM、PLMN区、msc区、位置区、基站区、小区、TAC、CI 名词解析
- Java JDK8/JAVA8以及后版本收费后还能用吗
- c语言开发的cli,Package - cyy-cli
- Python——时间与时间戳之间的转换
- office如何从非第一页开始插入页码
- 微信小程序中判断用户是否已关注公众号的两种实现
- weblogic修改密码
- Eclipse中如何查看使用的JDK版本?