知识大全 oracle 更改数据库名的方法
Posted 数据库
篇首语:人生如同故事。重要的并不在有多长,而是在有多好。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 oracle 更改数据库名的方法相关的知识,希望对你有一定的参考价值。
如何修改数据库名(db_name)及实例名(Instance_name or Service_name) Nid是Oracle从 iR 开始提供的工具 可以用来更改数据库名称 而无需通过之前重建控制文件等繁琐方式 nid是自带的工具 在oracle_home/bin目录中 以下方法假设登陆到数据库本机做 目的 在本例中 假设原来的数据库名为orcl 要改成dborcl 原实例名(service_name instance_name)orcl 要改成dborcl 步骤概述 检查当前的参数情况 shutdown数据库 然后mount数据库 运行nid命令 更改参数文件pfile ora(db_name instance_name) 检测更改情况 如果是windows平台 要修改服务 修改监听服务 C:\\Documents and Settings\\Administrator>sqlplus /as sysdba SQL*Plus: Release Production on 星期四 月 : : Copyright (c) Oracle All rights reserved 连接到: Oracle Database g Enterprise Edition Release Production With the Partitioning OLAP and Data Mining options SQL> select * from v$version; BANNER Oracle Database g Enterprise Edition Release Prod PL/SQL Release Production CORE Production TNS for bit Windows: Version Production NLSRTL Version Production 查看更改前的相应名称 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 先shutdown数据库 SQL> shutdown immediate 数据库已经关闭 已经卸载数据库 ORACLE 例程已经关闭 nid需要在mount状态下才能做 因为要更改控制文件的信息 SQL> startup mount ORACLE 例程已经启动 Total System Global Area bytes Fixed Size bytes Variable Size bytes Database Buffers bytes Redo Buffers bytes 数据库装载完毕 nid是操作系统的命令 所以要用host SQL> host nid help DBNEWID: Release Production on Fri Oct : : Copyright (c) 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命令的语法 运行nid命令 SQL> host nid target=sys/aibo dbname=dborcl DBNEWID: Release Production on 星期四 月 : : Copyright (c) Oracle All rights reserved 已连接数据库 ORCL (DBID= ) 已连接服务器版本 数据库中的控制文件数: D:\\ORACLE\\PRODUCT\\ \\ORADATA\\ORCL\\CONTROL CTL D:\\ORACLE\\PRODUCT\\ \\ORADATA\\ORCL\\CONTROL CTL D:\\ORACLE\\PRODUCT\\ \\ORADATA\\ORCL\\CONTROL CTL 是否将数据库 ID 和数据库名 ORCL 更改为 DBORCL? (Y/[N]) => y 操作继续进行 将数据库 ID 从 更改为 将数据库名从 ORCL 更改为 DBORCL 控制文件 D:\\ORACLE\\PRODUCT\\ \\ORADATA\\ORCL\\CONTROL CTL 已修改 控制文件 D:\\ORACLE\\PRODUCT\\ \\ORADATA\\ORCL\\CONTROL CTL 已修改 控制文件 D:\\ORACLE\\PRODUCT\\ \\ORADATA\\ORCL\\CONTROL CTL 已修改 数据文件 D:\\ORACLE\\PRODUCT\\ \\ORADATA\\ORCL\\SYSTEM DBF dbid 已更改 已写入新名称 数据文件 D:\\ORACLE\\PRODUCT\\ \\ORADATA\\ORCL\\UNDOTBS DBF dbid 已更改 已写入新名称 数据文件 D:\\ORACLE\\PRODUCT\\ \\ORADATA\\ORCL\\SYSAUX DBF dbid 已更改 已写入新名称 数据文件 D:\\ORACLE\\PRODUCT\\ \\ORADATA\\ORCL\\USERS DBF dbid 已更改 已 写入新名称 数据文件 D:\\ORACLE\\PRODUCT\\ \\ORADATA\\ORCL\\EXAMPLE DBF dbid 已更改 已写入新名称 数据文件 D:\\ORACLE\\PRODUCT\\ \\ORADATA\\ORCL\\TEMP DBF dbid 已更改 已 写入新名称 控制文件 D:\\ORACLE\\PRODUCT\\ \\ORADATA\\ORCL\\CONTROL CTL dbid 已更改 已写入新名称 控制文件 D:\\ORACLE\\PRODUCT\\ \\ORADATA\\ORCL\\CONTROL CTL dbid 已更改 已写入新名称 控制文件 D:\\ORACLE\\PRODUCT\\ \\ORADATA\\ORCL\\CONTROL CTL dbid 已更改 已写入新名称 实例关闭 数据库名已更改为 DBORCL 修改参数文件并在重新启动前生成新的口令文件 数据库 DBORCL 的数据库 ID 已更改为 此数据库的所有以前的备份和归档重做日志均不可用 数据库无法识别恢复区中以前的备份和归档日志 数据库已关闭 用 RESETLOGS 选项打开数据库 已成功更改数据库名和 ID DBNEWID 已成功完成 shutdown数据库 SQL> shutdown immediate ORA : ORACLE not available ORA : shared memory realm does not exist SQL> startup nomount ORACLE 例程已经启动 Total System Global Area bytes Fixed Size bytes Variable Size bytes Database Buffers bytes Redo Buffers bytes SQL> create pfile= D:\\oracle\\product\\ \\pfile ora from spfile; 文件已创建 SQL> shutdown immediate; ORA : ?????? 修改初始化参数文件 spfile文件(init ora/spfile) ########################################### instance_name=eyglen #instance_name=eyglev ########################################### db_domain= db_name=eyglen # db_name=eyglev ########################################### 以修改后的参数启动数据库 SQL> startup pfile= D:\\oracle\\product\\ \\pfile ora ORACLE 例程已经启动 Total System Global Area bytes Fixed Size bytes Variable Size bytes Database Buffers bytes Redo Buffers bytes 数据库装载完毕 ORA : 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项 SQL> create spfile from pfile= D:\\oracle\\product\\ \\pfile ora ; 文件已创建 SQL> shutdown immediate ORA : 数据库未打开 已经卸载数据库 ORACLE 例程已经关闭 SQL> startup ORACLE 例程已经启动 Total System Global Area bytes Fixed Size bytes Variable Size bytes Database Buffers bytes Redo Buffers bytes 数据库装载完毕 ORA : 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项 SQL> alter database open noresetlogs ; alter database open noresetlogs * 第 行出现错误: ORA : 要打开数据库则必须使用 RESETLOGS 选项 SQL> alter database open resetlogs ; 数据库已更改 现在数据库已经启动了啊 那就检查下吧 看看是否已经修改了 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 发现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\\ \\db_ \\database\\PWDdborcl ora password=aibo entries= 要注意一下 此时虽然数据库名已经改成dborcl了 但instance_name还是orcl 所以 passwd文件必须跟以前一样 否则会出错 删除以前的实例orcl C:\\Documents and Settings\\Administrator>oradim delete sid orcl 实例已删除 创建新的实例名 dborcl C:\\Documents and Settings\\Administrator>oradim new sid dborcl intpwd aibo st artmode a pfile D:\\oracle\\product\\ \\pfile ora OPW : 存在相同名称的文件 请删除或重命名 实例已创建 C:\\Documents and Settings\\Administrator>set oracle_sid=dborcl C:\\Documents and Settings\\Administrator>sqlplus /as sysdba SQL*Plus: Release Production on 星期四 月 : : Copyright (c) Oracle All rights reserved 连接到: Oracle Database g Enterprise Edition Release Production With the Partitioning OLAP and Data Mining options SQL> quit 从 Oracle Database g Enterprise Edition Release Production With the Partitioning OLAP and Data Mining options 断开 检查服务名 C:\\Documents and Settings\\Administrator>lsnrctl reload LSNRCTL for bit Windows: Version Production on 月 : : Copyright (c) Oracle All rights reserved 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST= )(PORT= ))) 命令执行成功 C:\\Documents and Settings\\Administrator>sqlplus /as sysdba SQL*Plus: Release Production on 星期四 月 : : Copyright (c) Oracle All rights reserved 连接到: Oracle Database g Enterprise Edition Release 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 g Enterprise Edition Release Production With the Partitioning OLAP and Data Mining options 断开 检查service是否被更改 C:\\Documents and Settings\\Administrator>tnsping dborcl TNS Ping Utility for bit Windows: Version Production on 月 : : Copyright (c) Oracle All rights reserved 已使用的参数文件: D:\\oracle\\product\\ \\db_ \\neork\\admin\\sqlnet ora 已使用 EZCONNECT 适配器来解析别名 Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=dborcl gdgg local ))(ADDRESS=(PROTOCOL=TCP)(HOST= )(PORT= ))) ^C 测试不通过 说明dborcl配置有问题 修改tnsnames ora文件 添加如下内容 ××××××××××××××××××××××××××××××××××××××××××××××××××××× DBORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = )) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = dborcl) ) ) ××××××××××××××××××××××××××××××××××××××××××××××××××××× 重启监听 C:\\Documents and Settings\\Administrator>lsnrctl reload LSNRCTL for bit Windows: Version Production on 月 : : Copyright (c) Oracle All rights reserved 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST= )(PORT= ))) 命令执行成功 在测试 C:\\Documents and Settings\\Administrator>tnsping dborcl TNS Ping Utility for bit Windows: Version Production on 月 : : Copyright (c) Oracle All rights reserved 已使用的参数文件: D:\\oracle\\product\\ \\db_ \\neork\\admin\\sqlnet ora 已使用 TNSNAMES 适配器来解析别名 Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = )) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = dborcl) )) OK ( 毫秒) 到此所有的 数据库名(db_name)及实例名(Instance_name or Service_name) 都已经更改 cha138/Article/program/Oracle/201405/30862相关参考
更改Oracle数据库的SID 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 概念 SID数据
更改Oracle数据库表的表空间 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在Oracle数
Oracle数据库在配置文件中更改最大连接数 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在连
功能说明成批更改数据库对象的所有者 作者不详 用法execChangeObjectOwnervsdbo 即可将所有vs所有者的对象改为dbo所有运行成功后将提示注意:更改对象名的任一部分都可
oracle物理结构和逻辑结构物理结构查看oracle数据库的物理文件路径一定要用命令查看除非该数据库是你亲自安装并做过所有的安全配置否则非常有可能你的前任对数据库进行了更改而在一不小心酿成大错
Oracle出现奇怪表名的清除方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Oracleg
更改Oracle用户名及外部用户验证授权 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!我的测试机上
在Oracle数据库中有多种方式可以移动数据文件的位置之前介绍过一种方法:OracleHowTo:在非归档模式下如何更改数据文件位置 其实可以采用的方法有多种本文继续补充几种常用方法:
如何更改数据库的SCN? 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 很多时候我们需要调整
一更改日志操作模式三步走 默认情况下Oracle数据库采用的是非归档模式但是非归档模式不能够防止因物理损坏而导致丢失数据问题为此数据库管理员可能需要把日志操作模式从非归档模式转换为归档模式其实要