修改oracle資料庫的名字

2021-09-30 09:53:25 字數 2136 閱讀 5522

最近閒來無事,決定修改一下資料庫的名字,記得曾經學過通過重建控制檔案來修改資料庫的名字,網上找了下也可以通過oracle自帶的nid修改資料庫的名字,不過這個方法有些麻煩,並且修改的資料庫名字不能帶「_"。

1,通過重建控制檔案修改資料庫名字。

為了方便查詢trace檔案我們在進行備份控制檔案的時候我們可以標記下trace檔案:

alter session set tracefile_identifier='control_bak'

下面我們備份我們的控制檔案:

alter database backup controlfile to trace;

10g是在我們的$oracle_base/admin\orcl\bdump下面的包含」control_bak「的檔案

11g是在我們的$oracle_base/diag/rdbms/orcl/orcl/trace下面包含的」control_bak的檔案

無論是那個版本的資料庫我們可以通過查詢查詢到trace檔案的路徑

select * from v$diag_info;

單純的修改資料庫的名字這步可以省略,我們需要修改pfile檔案:主要是修改資料庫的檔案路徑和資料庫的名字,以修改後的資料檔案啟動新庫到nomount階段。

開啟剛才找到的trace檔案,複製建立控制檔案的一段(一般以create controlfile 開始)

我們需要修改兩個地方:

1,將「reuse」修改為「set」,原資料庫名修改資料庫名,其他檔案的路徑按需修改

·2,需要移除recover database using backup controlfile這一句

執行我們複製的腳步

以resetlog的方式開啟我們的資料庫

alter database open resetlogs;

啟用臨時檔案

alter tablespace temp add tempfile '/.../temp01.dbf' reuse;

如果只是修改資料庫的名字這一步可以省略。

可以正常開啟表示修改資料庫的名字成功

2,通過nid修改資料庫的名字

啟動資料庫到mount階段,修改資料庫的名字

startup mount;

host nid target=sys/orcl dbname=new_name

關閉再次啟動到mount階段

alter system set db_name=new_name scope=spfile;

shutdown immediate;

重建控制檔案

host orapwd file=/../pwdorcl.ora password=orcl entries=5(其實這個引數用處不大,多少個這樣的使用者是根據系統來設定的)

以resetlogs方式開啟

startup mount;

alter database open resetlogs;

檢視資料庫的名字

select dbid,name from v$database;

更改資料庫的instance_name,windows下面停止所有的服務

重建例項

oradim -delete -sid old_name;

oradim -new -sid new_name -intpwd pwd -startmode a -pfile c:\..\initonew_name.ora(修改原來的引數檔案)

進入到資料庫中建立spfile檔案

set oracle_sid=new_name

sqlplus sys/orcl as sysdba

create spfile from pfile='c:\..\initnew_name.ora';

重新載入監聽檔案

lsnrctl reload;

如果不能啟動可以執行resetlogs

alter database open resetlogs;

在使用2方法修改資料庫的名字的時候切忌修改的名字不能帶「_",否則會報:dim-00003: 引數缺失變元。

網上查了下是oracle的乙個bug,oracle在bug no. 6000490中進行了描述。

解決方式就是去掉」_",並說這個bug已經提交進行到開發,但是要等到12版本才能解決。

目前解決方式只能是去掉下劃線。

修改Oracle資料庫的大小

在簡歷資料庫的時候,不注意把資料庫設定大了,磁碟空間不夠,這時候就需要修改db檔案大小了 首先在plsql裡面用下面sql進行檢視 select file name as 資料檔案,tablespace name as 表空間名稱,autoextensible as 自動擴充套件,status as...

Oracle資料庫修改主鍵

一 資料表有主鍵但無主鍵約束名 先刪除之前的主鍵,後新增主鍵 a.alter table 表名 drop primary key b.alter table 表名 add primary key 想要更改的欄位名稱 二 資料表有主鍵也有主鍵約束名 1 刪除已有的主鍵約束名 a.若已知主鍵約束名 al...

資料庫修改表名,欄位名 字段型別

修改表 1 修改表的名稱呢 alter table 表名 rename to 新的名字 demo alter table ta1 rename to ta0 2 新增乙個新字段 alter table 表名 add 新字段 欄位的型別 demo alter table ta0 add unames ...