当前位置:  数据库>oracle

oracle 更改数据库名的方法

    来源: 互联网  发布时间:2014-09-07

    本文导语:  如何修改数据库名(db_name)及实例名(Instance_name or Service_name) Nid是Oracle从9iR2开始提供的工具,可以用来更改数据库名称,而无需通过之前重建控制文件等繁琐方式。 nid是自带的工具,在oracle_home/bin目录中.以下方法假设登陆到...

如何修改数据库名(db_name)及实例名(Instance_name or Service_name)

Nid是Oracle从9iR2开始提供的工具,可以用来更改数据库名称,而无需通过之前重建控制文件等繁琐方式。
nid是自带的工具,在oracle_home/bin目录中.以下方法假设登陆到数据库本机做。
目的:在本例中,假设原来的数据库名为orcl,要改成dborcl,原实例名(service_name,instance_name)orcl,要改成dborcl.
步骤概述:

1.检查当前的参数情况
2.shutdown数据库,然后mount数据库
3.运行nid命令
4.更改参数文件pfile.ora(db_name,instance_name)
5.检测更改情况
6.如果是windows平台,要修改服务
7.修改监听服务

C:Documents and SettingsAdministrator>sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 10月 22 11:56:33 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> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
1. 查看更改前的相应名称
SQL> show parameter name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string
db_name string orcl
db_unique_name string orcl
global_names boolean FALSE
instance_name string orcl
lock_name_space string
log_file_name_convert string
service_names string orcl
2. --先shutdown数据库
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
3. --nid需要在mount状态下才能做。因为要更改控制文件的信息
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 180358020 bytes
Database Buffers 423624704 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。

nid是操作系统的命令,所以要用host
SQL> host nid -help
DBNEWID: Release 10.2.0.1.0 - Production on Fri Oct 23 13:40:54 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Keyword Description (Default)
----------------------------------------------------
TARGET Username/Password (NONE)
DBNAME New database name (NONE)
LOGFILE Output Log (NONE)
REVERT Revert failed change NO
SETNAME Set a new database name only NO
APPEND Append to output log NO
HELP Displays these messages NO
以上是nid命令的语法
4。 --运行nid命令
SQL> host nid target=sys/aibo dbname=dborcl
DBNEWID: Release 10.2.0.1.0 - Production on 星期四 10月 22 11:58:27 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接数据库 ORCL (DBID=1224293825)
已连接服务器版本 10.2.0
数据库中的控制文件数:
D:ORACLEPRODUCT10.2.0ORADATAORCLCONTROL01.CTL
D:ORACLEPRODUCT10.2.0ORADATAORCLCONTROL02.CTL
D:ORACLEPRODUCT10.2.0ORADATAORCLCONTROL03.CTL
是否将数据库 ID 和数据库名 ORCL 更改为 DBORCL? (Y/[N]) => y
操作继续进行
将数据库 ID 从 1224293825 更改为 3277448932
将数据库名从 ORCL 更改为 DBORCL
控制文件 D:ORACLEPRODUCT10.2.0ORADATAORCLCONTROL01.CTL - 已修改
控制文件 D:ORACLEPRODUCT10.2.0ORADATAORCLCONTROL02.CTL - 已修改
控制文件 D:ORACLEPRODUCT10.2.0ORADATAORCLCONTROL03.CTL - 已修改
数据文件 D:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF - dbid 已更改,
已写入新名称
数据文件 D:ORACLEPRODUCT10.2.0ORADATAORCLUNDOTBS01.DBF - dbid 已更改,
已写入新名称
数据文件 D:ORACLEPRODUCT10.2.0ORADATAORCLSYSAUX01.DBF - dbid 已更改,
已写入新名称
数据文件 D:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF - dbid 已更改, 已
写入新名称
数据文件 D:ORACLEPRODUCT10.2.0ORADATAORCLEXAMPLE01.DBF - dbid 已更改,
已写入新名称
数据文件 D:ORACLEPRODUCT10.2.0ORADATAORCLTEMP01.DBF - dbid 已更改, 已
写入新名称
控制文件 D:ORACLEPRODUCT10.2.0ORADATAORCLCONTROL01.CTL - dbid 已更改,
已写入新名称
控制文件 D:ORACLEPRODUCT10.2.0ORADATAORCLCONTROL02.CTL - dbid 已更改,
已写入新名称
控制文件 D:ORACLEPRODUCT10.2.0ORADATAORCLCONTROL03.CTL - dbid 已更改,
已写入新名称
实例关闭
数据库名已更改为 DBORCL。
修改参数文件并在重新启动前生成新的口令文件。
数据库 DBORCL 的数据库 ID 已更改为 3277448932。
此数据库的所有以前的备份和归档重做日志均不可用。
数据库无法识别恢复区中以前的备份和归档日志。
数据库已关闭, 用 RESETLOGS 选项打开数据库。
已成功更改数据库名和 ID。
DBNEWID - 已成功完成。
5. ---shutdown数据库
SQL> shutdown immediate
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist

SQL> startup nomount
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 180358020 bytes
Database Buffers 423624704 bytes
Redo Buffers 7135232 bytes

SQL> create pfile='D:oracleproduct10.2.0pfile20091022.ora' from spfile;
文件已创建。
SQL> shutdown immediate;
ORA-01507: ??????

6. ---修改初始化参数文件、spfile文件(init.ora/spfile)

###########################################
instance_name=eyglen
#instance_name=eyglev
###########################################
db_domain=""
db_name=eyglen
# db_name=eyglev
###########################################
7. ---以修改后的参数启动数据库
SQL> startup pfile='D:oracleproduct10.2.0pfile20091022.ora'
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 180358020 bytes
Database Buffers 423624704 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项

SQL> create spfile from pfile='D:oracleproduct10.2.0pfile20091022.ora'
2 ;
文件已创建。
SQL> shutdown immediate
ORA-01109: 数据库未打开

已经卸载数据库。
ORACLE 例程已经关闭。

SQL> startup
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 180358020 bytes
Database Buffers 423624704 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项

SQL> alter database open noresetlogs
2 ;
alter database open noresetlogs
*
第 1 行出现错误:
ORA-01588: 要打开数据库则必须使用 RESETLOGS 选项

SQL> alter database open resetlogs
2 ;
数据库已更改。

8. --现在数据库已经启动了啊,那就检查下吧,看看是否已经修改了
SQL> select open_mode from v$database;
OPEN_MODE
----------
READ WRITE
SQL> show parameter name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string
db_name string dborcl
db_unique_name string dborcl
global_names boolean FALSE
instance_name string dborcl
lock_name_space string
log_file_name_convert string
service_names string dborcl
SQL>
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
orcl

9. 发现v$instance里的没有修改过来,这是因为在windows平台,继续如下操作

********如果是windows平台,v$instance里的instanc_name没有变, 继续如下操作
passwd文件通常放在oracle_home/database目录下,文件命名形式为PWDsid.ora,sid为实例名(Service_name),
如当前的数据库名及service_name为orcl,则passwd文件为PWDorcl.ora

C:Documents and SettingsAdministrator>orapwd file=D:oracleproduct10.2.0db_
1databasePWDdborcl.ora password=aibo entries=5
要注意一下,此时虽然数据库名已经改成dborcl了,但instance_name还是orcl,所以,passwd文件必须跟以前一样。否则会出错。

10. 删除以前的实例orcl
C:Documents and SettingsAdministrator>oradim -delete -sid orcl
实例已删除。
11. 创建新的实例名 dborcl
C:Documents and SettingsAdministrator>oradim -new -sid dborcl -intpwd aibo -st
artmode a -pfile D:oracleproduct10.2.0pfile20091022.ora
OPW-00005: 存在相同名称的文件 - 请删除或重命名
实例已创建。
12.

C:Documents and SettingsAdministrator>set oracle_sid=dborcl
C:Documents and SettingsAdministrator>sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 10月 22 13:41:12 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> quit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开

13.检查服务名
C:Documents and SettingsAdministrator>lsnrctl reload
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 22-10月-2009 13:4
3:13
Copyright (c) 1991, 2005, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.2.56)(PORT=1521)))
命令执行成功
C:Documents and SettingsAdministrator>sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 10月 22 13:43:21 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> select open_mode from v$database;
OPEN_MODE
----------
READ WRITE
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
dborcl
SQL> show parameter name;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string
db_name string dborcl
db_unique_name string dborcl
global_names boolean FALSE
instance_name string dborcl
lock_name_space string
log_file_name_convert string
service_names string dborcl

SQL> quit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开
检查service是否被更改
C:Documents and SettingsAdministrator>tnsping dborcl
TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 22-10月-
2009 13:50:00
Copyright (c) 1997, 2005, Oracle. All rights reserved.
已使用的参数文件:
D:oracleproduct10.2.0db_1networkadminsqlnet.ora
已使用 EZCONNECT 适配器来解析别名
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=dborcl.gdgg.local
))(ADDRESS=(PROTOCOL=TCP)(HOST=202.106.195.30)(PORT=1521)))
^C

测试不通过,说明dborcl配置有问题

修改tnsnames.ora文件,添加如下内容:
×××××××××××××××××××××××××××××××××××××××××××××××××××××
DBORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.56)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dborcl)
)
)
×××××××××××××××××××××××××××××××××××××××××××××××××××××

--重启监听
C:Documents and SettingsAdministrator>lsnrctl reload
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 22-10月-2009 13:5
0:46
Copyright (c) 1991, 2005, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.2.56)(PORT=1521)))
命令执行成功

---在测试
C:Documents and SettingsAdministrator>tnsping dborcl
TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 22-10月-
2009 13:52:18
Copyright (c) 1997, 2005, Oracle. All rights reserved.
已使用的参数文件:
D:oracleproduct10.2.0db_1networkadminsqlnet.ora

已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.
2.56)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = dborcl)
))
OK (20 毫秒)

到此所有的 数据库名(db_name)及实例名(Instance_name or Service_name) ,都已经更改

    
 
 

您可能感兴趣的文章:

  • 更改Oracle数据库的归档模式
  • linux-3ES-13.9.5安装oracle10g时更改/etc/sysctl.conf没有kernel.shmmax,kernel.shmmni
  • ORACLE查询表最近更改数据的方法
  • Oracle数据库进程数与会话数的更改
  • 更改Oracle数据库到归档模式
  • Oracle数据更改后出错的解决方法
  • Oracle 中如何更改用户名
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • Oracle 数据库开发工具 Oracle SQL Developer
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • 关于JDBC连接Oracle数据库,是否必须有Oracle客户端
  • ORACLE数据库常用字段数据类型介绍
  • win2000+jbuilder6+oracle817编出的程序,在win2000下执行很好,在win98下却访问不了oracle数据库
  • oracle数据库导出和oracle导入数据的二种方法(oracle导入导出数据)
  • Oracle发布Oracle SQL Developer 1.2数据库开发工具 帮助用户简化开发工作
  • 怎样调出ORACLE数据库中的数据,该如何连接?
  • Oracle收购TimesTen 提高数据库软件性能
  • 卸载oracle数据库
  • Oracle数据库恢复后心得
  • linux上安装oracle 数据库后,是否能写shell程序实现数据库的自动启动。
  • Linux下如何用C语言操作Oracle数据库相关的图书推荐
  • Oracle数据库运行Oracle form时避免出现提示信息
  • Oracle欲收购开源数据库MySQL未果
  • 如何在JBuilder中连接Oracle数据库?
  • Oracle数据库访问参数文件的顺序
  • 循序渐进学习Oracle数据库
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux下安装oracle后使用命令行启动的方法 linux启动oracle
  • ORACLE 中修改用户密码的方法
  • Linux下完全卸载ORACLE 10G的方法
  • 将Oracle 8i数据成功移植Oracle 10g的方法
  • Oracle Connect to Idle Instance解决方法
  • oracle增加表空间大小两种实现方法
  • linux下用ODBC链接Oracle怎么连啊?跪求具体方法!!!
  • Linux系统下查看oracle SID的方法
  • oracle 彻底删除方法
  • window中oracle环境变量设置方法分享
  • Oracle 忘记密码的找回方法
  • oracle的job不能运行问题的解决方法
  • Linux下Oracle 10G DBCA等汉字乱码解决方法
  • Oracle中serveroutput参数一次设置永久保存方法
  • Oracle指定IP访问数据库方法
  • Oracle SID存在解決方法
  • 登录oracle数据库时密码忘记的解决方法
  • PB7 连接 Oracle 的设置方法
  • Oracle删除后不能重新安装的解决方法
  • oracle删除文件后数据库启动不了的处理方法
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle 10g和Oracle 11g网格技术介绍
  • Oracle EBS R12 支持 Oracle Database 11g
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • ORACLE日期相关操作


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3