我可以更改Oracle数据库的SID吗?
-
16-10-2019 - |
题
服务器是Oracle数据库11G Enterprise Edition版本11.1.0.7.0-64bit
是否有一种简单快捷的方法可以更改服务器上测试数据库的SID?
对我来说,数据库的丢弃和重新创建是一个选择。但是我正在寻找需要更少时间的东西。
在客户端tnsnames.ora中分配名称的另一个选项容易出现错误,因为它们没有集中管理。
与在SQL-Server上删除和创建数据库的时间相比,创建新的Oracle数据库所需的时间过高。在SQL-Server上,您可以重命名SQL-Server实例。 [通常,您会重命名SQL-Server正在运行的服务器,并遇到一些问题,直到您重命名服务器)。
解决方案
由于9i dbNewid实用程序(NID)可用于更改数据库名称(并在需要时dbid)。如果仅更改数据库名称,则不需要重置:
1个启动数据库在安装模式下
shutdown immediate startup mount
2运行NID更改数据库名称:
nid target=sys/syspassword@dbtns dbname=newname setname=YES
3关闭并在安装模式下启动数据库:
shutdown immediate startup mount
4更改
db_name
在SPFILE(或在Pfile编辑文件中):alter system set db_name=newname scope=spfile;
5重新创建密码文件:
orapwd file=orapwnewname password=syspassword
6启动数据库
startup
7个职位重命名步骤:
change SID in listener.ora correct tnsnames.ora remove old trace directories change /etc/oratab (UNIX) or rename windows service using oradim
其他提示
您需要重新创建控制文件
这个 邮政 Kaunain Ahmed描述了必要的步骤:
- 做:更改数据库备份控制文件以跟踪;
- 从背景 - 降点末端痕迹file提取“创建ControlFile”命令。
- 关闭DB。
- 更改init.ora中的db-name,然后更改init.ora
- 更改/etc/oratab或/var/var/opt/oracle/oratab中的SID
- 更改环境中的SID并采购
- 启动数据库到Mount-STATUS启动安装座
- 通过位置2的声明重新创建控制文件。
- 进行ALTE数据库重命名global_name至10.更改TNS-CONFIGURATION
线程中还有其他工具。
这是一个 邮政 通过AskTom,哪个参考过程更详细。虽然它是10克,但仍应工作。
是的,您可以,这也很容易。
在Oracle中,Oracle_SID只是Oracle实例的名称,与DBNAME无关。具有名称产品的数据库,可以使用具有任何有效名称的实例来服务。 SID和DBNAME之间没有直接的连接。此连接是使用参数建立的。
参数文件被标识为init $ {oracle_sid} .ora或spfile $ {oracle_sid} .ora参数文件是参数db_name。这是建立Oracle实例与数据库之间的连接的地方。
因此,您无需重新创建控制文件,而无需使用NID,只需确保您的参数文件具有正确的名称,放下旧的Oracle实例并在设置ORACLE_SID之后启动新的Oracle实例到新的Oracle实例名称。参数文件和密码文件均使用$ {ORACLE_SID}作为其名称的一部分找到。
仅在DBNAME必须更改时需要重新创建控制文件。需要在克隆操作后需要更改dbid以防止可能损害源数据库备份的事故。