重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1058|回复: 0
打印 上一主题 下一主题

[Oracle] 使用dbnewid修改ORACLE数据库名字

[复制链接]
跳转到指定楼层
楼主
发表于 2022-12-15 15:05:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我们在使用DG的逻辑备库完成数据库迁移后,发现数据库的名字变了,我们想修改回原来的名字,怎么办呢,
如果只是想修改回DB-NAME,可以使用dbnewid 工具来完成

比如我们想把 ORCL 修改为 SZTECH, 下面是我们的修改步骤:

1. 数据库启动到MOUNT状态
   要修改名字,数据库必须启动到MOUNT状态
    C:\Users\zq>sqlplus /nolog

SQL*Plus: Release 19.0.0.0.0 - Production on 星期四 12月 15 13:50:43 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

SQL> conn / as sysdba
已连接。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area 1258287416 bytes
Fixed Size                  9027896 bytes
Variable Size             620756992 bytes
Database Buffers          620756992 bytes
Redo Buffers                7745536 bytes
数据库装载完毕。
SQL> exit
从 Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0 断开


2.使用NID只修改DB-NAME


C:\Users\zq>nid target=sys/oracle dbname=sztech setname=y

DBNEWID: Release 19.0.0.0.0 - Production on 星期四 12月 15 13:52:37 2022

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

已连接数据库 ORCL (DBID=1642233991)

已连接服务器版本 19.3.0

数据库中的控制文件数:
    D:\ORACLE\ORADATA\ORCL\CONTROL01.CTL

是否将数据库 ORCL 的数据库名更改为 SZTECH? (Y/[N]) => Y

操作继续进行
将数据库名从 ORCL 更改为 SZTECH
    控制文件 D:\ORACLE\ORADATA\ORCL\CONTROL01.CTL - 已修改
    数据文件 D:\ORACLE\ORADATA\ORCL\SYSTEM01.DB - 已写入新名称
    数据文件 D:\ORACLE\ORADATA\ORCL\SYSAUX01.DB - 已写入新名称
    数据文件 D:\ORACLE\ORADATA\ORCL\UNDOTBS01.DB - 已写入新名称
    数据文件 D:\ORACLE\ORADATA\ORCL\TSP_TEST01.DB - 已写入新名称
    数据文件 D:\ORACLE\ORADATA\ORCL\USERS01.DB - 已写入新名称
    数据文件 D:\ORACLE\ORADATA\ORCL\TEMP01.DB - 已写入新名称
    控制文件 D:\ORACLE\ORADATA\ORCL\CONTROL01.CTL - 已写入新名称
    实例关闭

数据库名已更改为 SZTECH。
修改参数文件并在重新启动前生成新的口令文件。
已成功更改数据库名。
DBNEWID - 已成功完成。

3.修改参数db_name=sztech

C:\Users\zq>sqlplus /nolog

SQL*Plus: Release 19.0.0.0.0 - Production on 星期四 12月 15 13:53:31 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

SQL> conn / as sysdba
已连接到空闲例程。
SQL> startup nomount;
ORACLE 例程已经启动。

Total System Global Area 1258287416 bytes
Fixed Size                  9027896 bytes
Variable Size             620756992 bytes
Database Buffers          620756992 bytes
Redo Buffers                7745536 bytes

SQL> show parameter db_name

NAME                                          TYPE                              VALUE
------------------------------------ ----------------------       ------------------------------
db_name                                     string                                     orcl
SQL> show parameter instance_name

NAME                                          TYPE                              VALUE
------------------------------------ ----------------------       ------------------------------
instance_name                            string                                  orcl
SQL> show parameter db_uni

NAME                                          TYPE                              VALUE
------------------------------------ ----------------------       ------------------------------
db_unique_name                          string                               orcl
SQL> show parameter service_name

NAME                                          TYPE                              VALUE
------------------------------------ ----------------------       ------------------------------
service_names                              string                             orcl

SQL> alter system set db_name=sztech scope=spfile;

系统已更改。



4.直接打开,不需要使用resetlogs,因为没有修改DBID

SQL> shutdown immediate;
ORA-01507: ??????


ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area 1258287416 bytes
Fixed Size                  9027896 bytes
Variable Size             620756992 bytes
Database Buffers          620756992 bytes
Redo Buffers                7745536 bytes
数据库装载完毕。


SQL> alter database open;

数据库已更改。

SQL> show parameter db_name

NAME                                          TYPE                            VALUE           
------------------------------------ ----------------------     ------------------------------
db_name                                      string                                   SZTECH
SQL> show parameter service_name

NAME                                          TYPE                            VALUE
------------------------------------ ----------------------     -----------------------------
service_names                               string                                 SZTECH
SQL> show parameter instance_name

NAME                                          TYPE                          VALUE
------------------------------------ ----------------------   ------------------------------
instance_name                             string                          orcl
SQL> select open_mode from v$database;

OPEN_MODE
----------------------------------------
READ WRITE

至此,数据库名字已经修改完成。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-6-29 08:46 , Processed in 0.094831 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表