最近閒來無事,決定修改一下資料庫的名字,記得曾經學過通過重建控制檔案來修改資料庫的名字,網上找了下也可以通過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 ...