天天看點

nid 修改資料庫的名字

Nid是Oracle從9iR2開始提供的工具,可以用來更改資料庫名稱,而無需通過之前重建控制檔案等繁瑣方式。

需要說明的是,雖然這個工具來自9iR2,但是仍然可以被用于Oracle8i.

先看一下幫助:

C:\>nid -help

DBNEWID: Release 10.1.0.2.0 - Production

Copyright (c) 2001, 2004, Oracle. All rights reserved.

關鍵字 說明 (預設值)

----------------------------------------------------

TARGET 使用者名/密碼 (無)

DBNAME 新的資料庫名 (無)

LOGFILE 輸出日志 (無)

REVERT 還原失敗的更改 否

SETNAME 僅設定新的資料庫名 否

APPEND 附加至輸出日志 否

HELP 顯示這些消息 否

我們通過範例來看一下用法:

1.資料庫目前設定

SQL> select * from v$version;

BANNER

----------------------------------------------------------------

Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production

PL/SQL Release 9.2.0.1.0 - Production

CORE 9.2.0.1.0 Production

TNS for 32-bit Windows: Version 9.2.0.1.0 - Production

NLSRTL Version 9.2.0.1.0 - Production

SQL> show parameter name

NAME                                         TYPE                VALUE

------------------------------------ ----------- ------------------------------

db_file_name_convert             string

db_name                                 string              eyglev

global_names                          boolean          FALSE

instance_name                        string             eyglev

lock_name_space                    string

log_file_name_convert            string

oracle_trace_collection_name string

oracle_trace_facility_name      string             oracled

plsql_native_make_file_name  string

service_names                         string             eyglev

2.Shutdown資料庫

SQL> connect sys/orasys as sysdba

Connected.

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

3.Startup mount

SQL> startup mount

ORACLE instance started.

Total System Global Area 135338868 bytes

Fixed Size 453492 bytes

Variable Size 109051904 bytes

Database Buffers 25165824 bytes

Redo Buffers 667648 bytes

Database mounted.

4. 使用NID更改

SQL> host

Microsoft Windows 2000 [Version 5.00.2195]

(C) 版權所有 1985-2000 Microsoft Corp.

C:\Documents and Settings\Administrator>nid target=sys/liu123 dbname=otclt

DBNEWID: Release 10.2.0.1.0 - Production on 星期二 10月 30 15:44:33 2012

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

已連接配接資料庫 ORCL (DBID=1292164344)

已連接配接伺服器版本 10.1.0

資料庫中的控制檔案數:

    D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\CONTROL01.CTL

    D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\CONTROL02.CTL

    D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\CONTROL03.CTL

是否将資料庫 ID 和資料庫名 ORCL 更改為 OTCLT? (Y/[N]) => Y

操作繼續進行

将資料庫 ID 從 1292164344 更改為 2981374306

将資料庫名從 ORCL 更改為 OTCLT

    控制檔案 D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\CONTROL01.CTL - 已修改

    控制檔案 D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\CONTROL02.CTL - 已修改

    控制檔案 D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\CONTROL03.CTL - 已修改

    資料檔案 D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSTEM01.DBF - dbid 已更改

已寫入新名稱

    資料檔案 D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\UNDOTBS01.DBF - dbid 已更改

    資料檔案 D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSAUX01.DBF - dbid 已更改

    資料檔案 D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\USERS01.DBF - dbid 已更改,

寫入新名稱

    資料檔案 D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\EXAMPLE01.DBF - dbid 已更改

    資料檔案 D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\TEMP01.DBF - dbid 已更改,

    控制檔案 D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\CONTROL01.CTL - dbid 已更改

    控制檔案 D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\CONTROL02.CTL - dbid 已更改

    控制檔案 D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\CONTROL03.CTL - dbid 已更改

    執行個體關閉

資料庫名已更改為 OTCLT。

修改參數檔案并在重新啟動前生成新的密碼檔案。

資料庫 OTCLT 的資料庫 ID 已更改為 2981374306。

此資料庫的所有以前的備份和歸檔重做日志均不可用。

資料庫無法識别恢複區中以前的備份和歸檔日志。

資料庫已關閉, 用 RESETLOGS 選項打開資料庫。

已成功更改資料庫名和 ID。

DBNEWID - 已成功完成。

C:\Documents and Settings\Administrator>

5.Shutdown database

ORA-01109: database not open

6.修改初始化參數檔案、spfile檔案(init.ora/spfile)

###########################################

instance_name=eyglen

#instance_name=eyglev

db_domain=""

db_name=eyglen

# db_name=eyglev

7.重建spfile檔案

如果你沒有使用spfile,當然無需重建,跳至8

SQL> startup pfile=E:\Oracle\admin\eyglen\pfile\init.ora

ORA-01991: invalid password file 'e:\oracle\Ora9iR2\DATABASE\PWDeyglen.ORA'

SQL> CREATE SPFILE='E:\Oracle\Ora9iR2\database\SPFILEEYGLEN.ORA' FROM

 PFILE='E:\Oracle\admin\eyglen\pfile\init.ora';

File created.

8.重建密碼檔案

C:\>orapwd file=E:\Oracle\Ora9iR2\database\PWDeyglen.ORA password=oracle entries=5

9.shutdown資料庫

如果不使用spfile,則可以跳至10

10.Startup mount,resetlogs打開

11.修改後的參數

NAME                                          TYPE                  VALUE

db_name                                 string                  eyglen

global_names                          boolean              FALSE

instance_name                        string                 eyglen

log_file_name_convert             string

oracle_trace_facility_name       string              oracled

service_names                          string             eyglen

12.對資料庫做個全備份