熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

oracle 更改數據庫名的方法

2022-06-13   來源: Oracle 
如何修改數據庫名(db_name)及實例名(Instance_name or Service_name)

Nid是Oracle從iR開始提供的工具可以用來更改數據庫名稱而無需通過之前重建控制文件等繁瑣方式
nid是自帶的工具在oracle_home/bin目錄中以下方法假設登陸到數據庫本機做
目的在本例中假設原來的數據庫名為orcl要改成dborcl原實例名(service_nameinstance_name)orcl要改成dborcl
步驟概述

檢查當前的參數情況
shutdown數據庫然後mount數據庫
運行nid命令
更改參數文件pfileora(db_nameinstance_name)
檢測更改情況
如果是windows平台要修改服務
修改監聽服務

C:\Documents and Settings\Administrator>sqlplus /as sysdba
SQL*Plus: Release Production on 星期四 ::
Copyright (c) Oracle All rights reserved

連接到:
Oracle Database g Enterprise Edition Release Production
With the Partitioning OLAP and Data Mining options
SQL> select * from v$version;
BANNER

Oracle Database g Enterprise Edition Release Prod
PL/SQL Release Production
CORE Production
TNS for bit Windows: Version Production
NLSRTL Version Production
查看更改前的相應名稱
SQL> show parameter name
NAME TYPE VALUE

db_file_name_convert string
db_name string orcl
db_unique_name string orcl
global_names boolean FALSE
instance_name string orcl
lock_name_space string
log_file_name_convert string
service_names string orcl
先shutdown數據庫
SQL> shutdown immediate
數據庫已經關閉
已經卸載數據庫
ORACLE 例程已經關閉
nid需要在mount狀態下才能做因為要更改控制文件的信息
SQL> startup mount
ORACLE 例程已經啟動
Total System Global Area bytes
Fixed Size bytes
Variable Size bytes
Database Buffers bytes
Redo Buffers bytes
數據庫裝載完畢

nid是操作系統的命令所以要用host
SQL> host nid help
DBNEWID: Release Production on Fri Oct ::
Copyright (c) Oracle All rights reserved
Keyword Description (Default)

TARGET Username/Password (NONE)
DBNAME New database name (NONE)
LOGFILE Output Log (NONE)
REVERT Revert failed change NO
SETNAME Set a new database name only NO
APPEND Append to output log NO
HELP Displays these messages NO
以上是nid命令的語法
運行nid命令
SQL> host nid target=sys/aibo dbname=dborcl
DBNEWID: Release Production on 星期四 ::
Copyright (c) Oracle All rights reserved
已連接數據庫 ORCL (DBID=)
已連接服務器版本
數據庫中的控制文件數:
D:\ORACLE\PRODUCT\\ORADATA\ORCL\CONTROLCTL
D:\ORACLE\PRODUCT\\ORADATA\ORCL\CONTROLCTL
D:\ORACLE\PRODUCT\\ORADATA\ORCL\CONTROLCTL
是否將數據庫 ID 和數據庫名 ORCL 更改為 DBORCL? (Y/[N]) => y
操作繼續進行
將數據庫 ID 從 更改為
將數據庫名從 ORCL 更改為 DBORCL
控制文件 D:\ORACLE\PRODUCT\\ORADATA\ORCL\CONTROLCTL 已修改
控制文件 D:\ORACLE\PRODUCT\\ORADATA\ORCL\CONTROLCTL 已修改
控制文件 D:\ORACLE\PRODUCT\\ORADATA\ORCL\CONTROLCTL 已修改
數據文件 D:\ORACLE\PRODUCT\\ORADATA\ORCL\SYSTEMDBF dbid 已更改
已寫入新名稱
數據文件 D:\ORACLE\PRODUCT\\ORADATA\ORCL\UNDOTBSDBF dbid 已更改
已寫入新名稱
數據文件 D:\ORACLE\PRODUCT\\ORADATA\ORCL\SYSAUXDBF dbid 已更改
已寫入新名稱
數據文件 D:\ORACLE\PRODUCT\\ORADATA\ORCL\USERSDBF dbid 已更改
寫入新名稱
數據文件 D:\ORACLE\PRODUCT\\ORADATA\ORCL\EXAMPLEDBF dbid 已更改
已寫入新名稱
數據文件 D:\ORACLE\PRODUCT\\ORADATA\ORCL\TEMPDBF dbid 已更改
寫入新名稱
控制文件 D:\ORACLE\PRODUCT\\ORADATA\ORCL\CONTROLCTL dbid 已更改
已寫入新名稱
控制文件 D:\ORACLE\PRODUCT\\ORADATA\ORCL\CONTROLCTL dbid 已更改
已寫入新名稱
控制文件 D:\ORACLE\PRODUCT\\ORADATA\ORCL\CONTROLCTL dbid 已更改
已寫入新名稱
實例關閉
數據庫名已更改為 DBORCL
修改參數文件並在重新啟動前生成新的口令文件
數據庫 DBORCL 的數據庫 ID 已更改為
此數據庫的所有以前的備份和歸檔重做日志均不可用
數據庫無法識別恢復區中以前的備份和歸檔日志
數據庫已關閉 用 RESETLOGS 選項打開數據庫
已成功更改數據庫名和 ID
DBNEWID 已成功完成
shutdown數據庫
SQL> shutdown immediate
ORA: ORACLE not available
ORA: shared memory realm does not exist

SQL> startup nomount
ORACLE 例程已經啟動
Total System Global Area bytes
Fixed Size bytes
Variable Size bytes
Database Buffers bytes
Redo Buffers bytes

SQL> create pfile=D:\oracle\product\\pfileora from spfile;
文件已創建
SQL> shutdown immediate;
ORA: ??????

修改初始化參數文件spfile文件(initora/spfile)

###########################################
instance_name=eyglen
#instance_name=eyglev
###########################################
db_domain=
db_name=eyglen
# db_name=eyglev
###########################################
以修改後的參數啟動數據庫
SQL> startup pfile=D:\oracle\product\\pfileora
ORACLE 例程已經啟動
Total System Global Area bytes
Fixed Size bytes
Variable Size bytes
Database Buffers bytes
Redo Buffers bytes
數據庫裝載完畢
ORA: 要打開數據庫則必須使用 RESETLOGS 或 NORESETLOGS 選項

SQL> create spfile from pfile=D:\oracle\product\\pfileora
;
文件已創建
SQL> shutdown immediate
ORA: 數據庫未打開

已經卸載數據庫
ORACLE 例程已經關閉

SQL> startup
ORACLE 例程已經啟動
Total System Global Area bytes
Fixed Size bytes
Variable Size bytes
Database Buffers bytes
Redo Buffers bytes
數據庫裝載完畢
ORA: 要打開數據庫則必須使用 RESETLOGS 或 NORESETLOGS 選項

SQL> alter database open noresetlogs
;
alter database open noresetlogs
*
行出現錯誤:
ORA: 要打開數據庫則必須使用 RESETLOGS 選項

SQL> alter database open resetlogs
;
數據庫已更改

現在數據庫已經啟動了啊那就檢查下吧看看是否已經修改了
SQL> select open_mode from v$database;
OPEN_MODE

READ WRITE
SQL> show parameter name
NAME TYPE VALUE

db_file_name_convert string
db_name string dborcl
db_unique_name string dborcl
global_names boolean FALSE
instance_name string dborcl
lock_name_space string
log_file_name_convert string
service_names string dborcl
SQL>
SQL> select instance_name from v$instance;
INSTANCE_NAME

orcl

發現v$instance裡的沒有修改過來這是因為在windows平台繼續如下操作

********如果是windows平台v$instance裡的instanc_name沒有變 繼續如下操作
passwd文件通常放在oracle_home/database目錄下文件命名形式為PWDsidorasid為實例名(Service_name)
如當前的數據庫名及service_name為orcl則passwd文件為PWDorclora

C:\Documents and Settings\Administrator>orapwd file=D:\oracle\product\\db_
\database\PWDdborclora password=aibo entries=
要注意一下此時雖然數據庫名已經改成dborcl了但instance_name還是orcl所以passwd文件必須跟以前一樣否則會出錯

刪除以前的實例orcl
C:\Documents and Settings\Administrator>oradim delete sid orcl
實例已刪除
創建新的實例名 dborcl
C:\Documents and Settings\Administrator>oradim new sid dborcl intpwd aibo st
artmode a pfile D:\oracle\product\\pfileora
OPW: 存在相同名稱的文件 請刪除或重命名
實例已創建


C:\Documents and Settings\Administrator>set oracle_sid=dborcl
C:\Documents and Settings\Administrator>sqlplus /as sysdba
SQL*Plus: Release Production on 星期四 ::
Copyright (c) Oracle All rights reserved

連接到:
Oracle Database g Enterprise Edition Release Production
With the Partitioning OLAP and Data Mining options

SQL> quit
從 Oracle Database g Enterprise Edition Release Production
With the Partitioning OLAP and Data Mining options 斷開

檢查服務名
C:\Documents and Settings\Administrator>lsnrctl reload
LSNRCTL for bit Windows: Version Production on :
:
Copyright (c) Oracle All rights reserved
正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=)))
命令執行成功
C:\Documents and Settings\Administrator>sqlplus /as sysdba
SQL*Plus: Release Production on 星期四 ::
Copyright (c) Oracle All rights reserved

連接到:
Oracle Database g Enterprise Edition Release Production
With the Partitioning OLAP and Data Mining options
SQL> select open_mode from v$database;
OPEN_MODE

READ WRITE
SQL> select instance_name from v$instance;
INSTANCE_NAME

dborcl
SQL> show parameter name;
NAME TYPE VALUE

db_file_name_convert string
db_name string dborcl
db_unique_name string dborcl
global_names boolean FALSE
instance_name string dborcl
lock_name_space string
log_file_name_convert string
service_names string dborcl

SQL> quit
從 Oracle Database g Enterprise Edition Release Production
With the Partitioning OLAP and Data Mining options 斷開
檢查service是否被更改
C:\Documents and Settings\Administrator>tnsping dborcl
TNS Ping Utility for bit Windows: Version Production on
::
Copyright (c) Oracle All rights reserved
已使用的參數文件:
D:\oracle\product\\db_\network\admin\sqlnetora
已使用 EZCONNECT 適配器來解析別名
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=dborclgdgglocal
))(ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=)))
^C

測試不通過說明dborcl配置有問題

修改tnsnamesora文件添加如下內容
×××××××××××××××××××××××××××××××××××××××××××××××××××××
DBORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = ))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dborcl)
)
)
×××××××××××××××××××××××××××××××××××××××××××××××××××××

重啟監聽
C:\Documents and Settings\Administrator>lsnrctl reload
LSNRCTL for bit Windows: Version Production on :
:
Copyright (c) Oracle All rights reserved
正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=)))
命令執行成功

在測試
C:\Documents and Settings\Administrator>tnsping dborcl
TNS Ping Utility for bit Windows: Version Production on
::
Copyright (c) Oracle All rights reserved
已使用的參數文件:
D:\oracle\product\\db_\network\admin\sqlnetora

已使用 TNSNAMES 適配器來解析別名
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =
)(PORT = )) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = dborcl)
))
OK ( 毫秒)

到此所有的 數據庫名(db_name)及實例名(Instance_name or Service_name) 都已經更改
From:http://tw.wingwit.com/Article/program/Oracle/201405/30862.html
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.