DBNEWID 是一個數據庫實用程序,用于更改 Oracle 數據庫的 DBNAME 和 DBID。可以更改 DBID 或 DBNAME 或兩者。
DBNAME 是在創建數據庫時指定的數據庫名稱,DBID 是創建數據庫時分配給數據庫的唯一編號。
以下步驟演示如何使用 DBNEWID 實用程序更改 Oracle 數據庫的 DBNAME 和 DBID。
重要提示:開始此過程之前,請確保擁有數據庫的完整備份。
Step 1:開始之前,找出數據庫當前的 DBNAME 和 DBID:
SQL> SELECT DBID,NAME from V$DATABASE;DBID NAME
---------- ---------
2426088413 MYORDB
Step 2:第一步是啟動實例并掛載數據庫,但不打開數據庫。
sqlplus / as sysdbaSQL> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.SQL> startup mount
ORACLE instance started.Total System Global Area 1071333376 bytes
Fixed Size 1375792 bytes
Variable Size 553648592 bytes
Database Buffers 511705088 bytes
Redo Buffers 4603904 bytes
Database mounted.SQL> exit
Disconnected from Oracle Database 11g Release 11.2.0.1.0 - Production
Step 3. 通過指定連接字符串和數據庫的新名稱來運行 DBNEWID 實用程序。 連接字符串中指定的用戶應具有 SYSDBA 權限。
nid target=sys/MYPASS@MYORDB dbname=MYNEWDB setname=YES
DBNEWID: Release 11.2.0.1.0 - Production on Tue May 30 12:50:01 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.Connected to database MYORDB (DBID=2436089413)Connected to server version 11.2.0Control Files in database:C:ORADATAMYORDBCONTROL01.CTLC:ORADATAMYORDBCONTROL02.CTLChange database name of database MYORDB to MYNEWDB? (Y/[N]) => YProceeding with operation
Changing database name from MYORDB to MYNEWDBControl File C:ORADATAMYORDBCONTROL01.CTL - modifiedDatafile C:ORADATAMYORDBSYSTEM01.DB - wrote new nameDatafile C:ORADATAMYORDBSYSAUX01.DB - wrote new nameDatafile C:ORADATAMYORDBUNDOTBS01.DB - wrote new nameDatafile C:ORADATAMYORDBUSERS01.DB - wrote new nameDatafile C:ORADATAMYORDBMYORDBDAT01.DB - wrote new nameDatafile C:ORADATAMYORDBMYORDBIDX01.DB - wrote new nameDatafile C:ORADATAMYORDBTEMP01.DB - wrote new nameControl File C:ORADATAMYORDBCONTROL01.CTL - wrote new nameControl File C:ORADATAMYORDBCONTROL02.CTL - wrote new nameInstance shut downDatabase name changed to MYNEWDB.
Modify parameter file and generate a new password file before restarting.
Succesfully changed database name.
DBNEWID - Completed succesfully.
Step 4: Shut down the database.
SQL> shutdown immediate
Step 5:將初始化參數文件中的DB_NAME初始化參數設置為新的數據庫名稱。
sqlplus / as sysdbaSQL> show parameter db_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_name string MYORDBSQL> alter system set db_name=MYNEWDB scope=spfile;
System altered.
Step 6: 創建一個新的密碼文件。
orapwd file=orapwMYNEWDB password=MYPASS
Step 7: 啟動DB
SQL> startup mount
Step 8:驗證名稱更改
SELECT DBID,NAME from V$DATABASE;DBID NAME
---------- ---------
2426088413 MYNEWDB