oracle 更改数据库名的方法建站知识
导读:1建站知识这两天一朋友问如何更改数据库名,于是做个测试,简单记录下,以便说明问题。企业网站建设seo网站关键词优化。
如何修改数据库名(db_name)及实例名(Instance_name or Service_name) Nid是Oracle从9iR2开seo网站关键词优化始提供的工具,可以用来更改数据库名称,而无需通过之前重建控制文件等繁琐方式。 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 Settings\Administrator>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:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL02.CTL D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL03.CTL 是否将数据库 ID 和数据库名 ORCL 更改为 DBORCL? (Y/[N]) => y 操作继续进行 将数据库 ID 从 1224293825 更改为 3277448932 将数据库名从 ORCL 更改为 DBORCL 控制文件 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL - 已修改 控制文件 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL02.CTL - 已修改 控制文件 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL03.CTL - 已修改 数据文件 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF - dbid 已更改, 已写入新名称 数据文件 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF - dbid 已更改, 已写入新名称 数据文件 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF - dbid 已更改, 已写入新名称 数据文件 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF - dbid 已更改, 已 写入新名称 数据文件 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF - dbid 已更改, 已写入新名称 数据网站推广优化seo文件 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP01.DBF - dbid 已更改, 已 写入新名称 控制文件 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL - dbid 已更改, 已写入新名称 控制文件 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL02.CTL - dbid 已更改, 已写入新名称 控制文件 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL03.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:\oracle\product\10.2.0\pfile20091022.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:\oracle\product\10.2.0\pfile20091022.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:\oracle\product\10.2.0\pfile20091022.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 Settings\Administrator>orapwd file=D:\oracle\product\10.2.0\db_ 1\database\PWDdborcl.ora password=aibo entries=5 要注意一下,此时虽然数据库名已经改成dborcl了,但instance_name还是orcl,所以,passwd文件必须跟以前一样。否则会出错。 10. 删除以前的实例orcl C:\Documents and Settings\Administrator>oradim -delete -sid orcl 实例已删除。 11. 创建新的实例名 dborcl C:\Documents and Settings\Administrator>oradim -new -sid dborcl -intpwd aibo -st artmode a -pfile D:\oracle\product\10.2.0\pfile20091022.ora OPW-00005: 存在相同名称的文件 - 请删除或重命名 实例已创建。 12. C:\Documents and Settings\Administrator>set oracle_sid=dborcl C:\Documents and Settings\Administrator>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 Settings\Administrator>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 Settings\Administrator>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 Settings\Administrator>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:\oracle\product\10.2.0\db_1\network\admin\sqlnet.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 Settings\Administrator>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 Settings\Administrator>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:\oracle\product\10.2.0\db_1\network\admin\sqlnet.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) ,都已经更改相关企业网站建设seo网站关键词优化。
声明: 本文由我的SEOUC技术文章主页发布于:2023-05-23 ,文章oracle 更改数据库名的方法建站知识主要讲述标签,数据库,oracle 更改数据库名的方法建站知识网站建设源码以及服务器配置搭建相关技术文章。转载请保留链接: https://www.seouc.com/article/web_5839.html