服务器是 Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit
是否有一种简单快捷的方法来更改服务器上测试数据库的 SID?
删除和重新创建数据库对我来说是一种选择。但我正在寻找需要更少时间的东西。
在客户端 tnsnames.ora 中分配名称的另一个选项容易出错,因为它们不是集中管理的。
与在 SQL-Server 上删除和创建数据库的时间相比,创建一个新的 Oracle 数据库所需的时间要长得多。在 SQL-Server 上,您可以重命名 SQL-Server 实例。[通常您重命名运行 SQL-Server 的服务器并且在重命名服务器之前会遇到一些问题]。
您需要重新创建控制文件
Kaunain Ahmed 的这篇文章描述了必要的步骤:
线程中还引用了其他工具。
这是 AskTom 的一篇文章,其中更详细地引用了该过程。虽然它适用于 10g,但它仍然可以工作。
从 9i 开始,dbnewid 实用程序 (nid) 可用于更改数据库名称(如果需要,还可以更改 DBID)。如果仅更改数据库名称,则不需要 resetlogs:
1 挂载模式下的启动数据库
2 运行 nid 更改数据库名称:
3 以挂载模式关闭并启动数据库:
4 更改
db_name
spfile(或在 pfile 中编辑文件):5 重新创建密码文件:
6 启动数据库
7个帖子重命名步骤:
是的,你可以,而且也很容易。
在 Oracle 中,ORACLE_SID 只是 Oracle Instance 的名称,与 DBNAME 没有太大关系。名称为 PROD 的数据库可以使用任何有效名称的实例提供服务。SID 和 DBNAME 之间没有直接连接。此连接是使用参数建立的。
参数文件标识为 init${ORACLE_SID}.ora 或 spfile${ORACLE_SID}.ora 参数文件中为参数 db_name。这是在 Oracle 实例和数据库之间建立连接的地方。
因此,您不需要重新创建控制文件,也不需要使用 nid,只需确保您的参数文件具有正确的名称,在设置 ORACLE_SID 后关闭旧的 Oracle 实例并启动新的 Oracle 实例到新的 Oracle 实例名称。参数文件和密码文件都使用 ${ORACLE_SID} 作为其名称的一部分。
仅当必须更改 DBNAME 时才需要重新创建控制文件。克隆操作后需要 nid ,您需要更改 DBID 以防止可能损害源数据库备份的事故。
在linux上更改oracle sid的步骤:
以 sysdba 身份登录 sqlplus 并执行以下操作
数据库以新的实例名称启动