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

标题: 使用dbnewid修改ORACLE数据库名字 [打印本页]

作者: 郑全    时间: 2022-12-15 15:05
标题: 使用dbnewid修改ORACLE数据库名字
我们在使用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

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







欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2