dba在部署应用或者数据库迁移的时候,常常需要更改数据库的名称或者数据库id。Oracle提供了一个命令来完成这个操作。
1 使用nid命令更改数据库名称
nid命令位于Oracle_home/bin目录下,在将此目录设置为操作系统环境变量PATH路径时可以直接使用。使用nid命令的前提是数据文件,控制文件没有异常,且数据库处于归档模式下。使用nid命令连接数据库更改数据库id或者数据库名称时,数据库需要启动至mount模式下。
如只更改数据库id,则只需要在nid命令后面加一个target参数,如同时需要更改数据库名称,需要再加上一个dbname参数,参数的值是数据库更改后的名称。
[oracle@dbserver ~]$ nid target=sys dbname=testdb
DBNEWID: Release 19.0.0.0.0 - Production on Mon Jun 26 16:21:06 2023
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
### 输入sys密码
Password:
###连接至数据库后nid命令自动发现数据库的dbid和控制文件
Connected to database ORCL (DBID=1668353783)
Connected to server version 19.3.0
Control Files in database:
/opt/oracle/oradata/ORCL/control01.ctl
/opt/oracle/oradata/ORCL/control02.ctl
### 在下面提示后输入Y确认更改数据库id和名称
Change database ID and database name ORCL to TESTDB? (Y/[N]) => y
Proceeding with operation
### 显示更改前后的dbid及数据库名称
Changing database ID from 1668353783 to 2923884663
Changing database name from ORCL to TESTDB
#### 调整控制文件
Control File /opt/oracle/oradata/ORCL/control01.ctl - modified
Control File /opt/oracle/oradata/ORCL/control02.ctl - modified
#### 调整数据文件
Datafile /opt/oracle/oradata/ORCL/system01.db - dbid changed, wrote new name
Datafile /opt/oracle/oradata/ORCL/sysaux01.db - dbid changed, wrote new name
Datafile /opt/oracle/oradata/ORCL/undotbs01.db - dbid changed, wrote new name
Datafile /opt/oracle/oradata/ORCL/users01.db - dbid changed, wrote new name
Datafile /opt/oracle/oradata/ORCL/temp01.db - dbid changed, wrote new name
### dbid更改后,写入新的数据库名称至控制文件
Control File /opt/oracle/oradata/ORCL/control01.ctl - dbid changed, wrote new name
Control File /opt/oracle/oradata/ORCL/control02.ctl - dbid changed, wrote new name
### 关闭实例
Instance shut down
Database name changed to TESTDB.
### 数据库id和名称更改后,需要调整参数文件,如果使用password文件,需要重新生成。
Modify parameter file and generate a new password file before restarting.
Database ID for database TESTDB changed to 2923884663.
### 以前的备份和归档日志文件都已经不可用。需要使用RESETLOGS重启数据库,
All previous backups and archived redo logs for this database are unusable.
Database has been shutdown, open database with RESETLOGS option.
Succesfully changed database name and ID.
DBNEWID - Completed succesfully.
复制
2 调整参数文件
数据库的名称更改后,设置一下环境变量ORACLE_SID为TESTDB,更改参数为文件的名称,原来的参数文件名称是 spfileORCL.ora,需要更改为spfileTESTDB.ora。
[oracle@dbserver ~]$ export ORACLE_SID=TESTDB;
[oracle@dbserver ~]$ cd $ORACLE_HOME/dbs
[oracle@dbserver dbs]$ ls
c-1668353783-20230626-00 hc_ORCLCDB.dat hc_ORCL.dat init.ora lkORCL orapwORCL snapcf_ORCL.f spfileORCL.ora
[oracle@dbserver dbs]$ mv spfileORCL.ora spfileTESTDB.ora
复制
然后将数据库启动至nomount模式下,更改数据库名称。
alter system set db_name='TESTDB' scope=spfile;
alter system set db_unique_name='TESTDB' scope=spfile;
复制
3 重新启动数据库
ORACLE instance started.
Total System Global Area 3707763120 bytes
Fixed Size 8903088 bytes
Variable Size 654311424 bytes
Database Buffers 2617245696 bytes
Redo Buffers 7872512 bytes
In-Memory Area 419430400 bytes
Database mounted.
--数据库不能打开,提示必须使用RESETLOGS or NORESETLOGS选项
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
--使用RESETLOGS选项打开数据库
SQL> alter database open RESETLOGS;
Database altered.
--检查数据库实例名称
SQL> select instance_name, status from v$instance;
INSTANCE_NAME STATUS
---------------- ------------
TESTDB OPEN
--检查数据库名称
SQL> select NAME,DB_UNIQUE_NAME from v$database;
NAME DB_UNIQUE_NAME
--------- ------------------------------
TESTDB TESTDB、
复制
最后修改时间:2023-07-28 10:01:28
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
这个世界根本不存在“不会做”、“不能做”,只有“不想做”和“不敢做”,当你失去所有依靠的时候,你自然就什么都会了。
9月前

评论
相关阅读
Oracle数据库调整内存应该注意的几个问题
听见风的声音
349次阅读
2025-03-18 09:43:11
Oracle SQL 执行计划分析与优化指南
Digital Observer
287次阅读
2025-04-01 11:08:44
Oracle 10G DG 修复从库-磁盘空间爆满导致从库无法工作
Albert Tan DBA 之路
156次阅读
2025-03-27 16:52:57
Oracle 加密不求人:一篇文章教你搞定 TDE
Digital Observer
89次阅读
2025-04-09 15:31:52
Google Cloud 与 Oracle 合作推出数据库合作伙伴计划
通讯员
61次阅读
2025-04-10 10:22:20
记一次watchdog引起的Oracle数据库异常
Digital Observer
55次阅读
2025-04-01 09:59:38
Oracle大表数据导出指南
yuki
54次阅读
2025-03-20 16:27:24
紧急救援!SCN调整秘籍(二)
呆呆的私房菜
53次阅读
2025-03-25 10:37:52
oracle 补丁包
凉冰
47次阅读
2025-03-19 15:20:17
oracle巡检的其他检查
听溪
42次阅读
2025-03-23 22:17:19