獲得Oracle資料庫的DBID

2021-06-11 01:49:09 字數 4277 閱讀 6798

一.查詢v$database獲得

dbid儲存在控制檔案、資料檔案、日誌檔案中,當資料庫處於mount狀態或者open狀態時,可以通過v$database檢視查詢dbid。

sys@orcl>startupmount;

oracle instancestarted.

total system globalarea  536870912 bytes

fixedsize                    2085360 bytes

variablesize                  159387152 bytes

databasebuffers          369098752 bytes

redobuffers                    6299648 bytes

database mounted.

sys@orcl>selectdbid from v$database;

dbid

sys@orcl>alterdatabase open;

database altered.

sys@orcl>selectdbid from v$database;

dbid

二、使用rman獲得資料庫dbid

當資料庫處於open時,在rman的登入資訊中可以看到資料庫dbid。

[oracle@oraedu~]$ rman target /

recovery manager:release 10.2.0.4.0 - production on sun nov 18 15:08:53 2012

connectedto target database: orcl (dbid=1320402727)                  

三.從備份中恢復

控制檔案一般有多個拷貝,如果只有其中乙個控制檔案損壞,我們可以shutdown資料庫,然後刪除損壞的控制檔案,再把未損壞的控制檔案複製為損壞的控制檔名,最後重新啟動資料庫到mount狀態就可以查詢到dbid。

如果所有控制檔案都損壞,但是rman備份了控制檔案,可以用rman恢復丟失的控制檔案,只要有了控制檔案,資料庫就可以到mount狀態,也可以通過方法1找到dbid。

rman備份controlfile檔案又分為兩種情況,(1)控制檔案自動儲存在flash_recovery_area,這是rman預設的設定(如果引數flash_recovery_area沒有指定,控制檔案會儲存在$oracle_home/dbs目錄,控制檔案生成的格式與第二種方式生成的格式一樣)。(2)控制檔案儲存在指定的位置。下面就兩種方式分別說明:

(1)控制檔案自動儲存在flash_recovery_area

[oracle@oraedu~]$ rman target /

recovery manager:release 10.2.0.4.0 - production on sun nov 18 15:27:17 2012

connected to target database: orcl (not mounted)           ---資料庫處於

nomount狀態

rman>show all;

……輸出省略……

configure controlfile autobackup on;                   ---rman已設定控制檔案自動備份

configure controlfile autobackup format for device type disk to'%f'; # default   ---default

表示控制檔案備份在

flash_recovery_area

……輸出省略……

如果控制檔案是儲存在flash_recovery_area,恢復控制檔案很簡單,執行下面命令即可:

rman>restore controlfile from autobackup;

starting restore at18-nov-12

using channelora_disk_1

database name (ordatabase unique name) used for search: orcl

channel ora_disk_1:autobackup found in the recovery area

channel ora_disk_1:control file restore from autobackup complete

finished restore at18-nov-12

rman恢復完控制檔案後,sqlplus中設定資料庫到mount狀態就可以查詢到dbid(命令:alter database mount),到這一步查詢dbid已經完成,但是資料庫還要應用重做日誌把資料庫恢復到關閉的那一刻(rman中執行recoverdatabase),最後還需要用alter database open resetlogs;方式開啟資料庫,本文只說明怎麼獲得dbid,在控制檔案恢復後具體要做什麼內容將在其他文件中說明。

(2)控制檔案儲存在指定的位置

設定控制檔案儲存的位置和格式。

using targetdatabase control file instead of recovery catalog

new rmanconfiguration parameters:

new rmanconfiguration parameters are successfully stored

rman>show all;

……輸出省略……

configurecontrolfile autobackup on;

……輸出省略……

rman>backup datafile 4;

starting backup at18-nov-12

allocated channel:ora_disk_1

channel ora_disk_1:sid=159 devtype=disk

channel ora_disk_1:starting full datafile backupset

channel ora_disk_1:specifying datafile(s) in backupset

channel ora_disk_1:starting piece 1 at 18-nov-12

channel ora_disk_1:finished piece 1 at 18-nov-12

channel ora_disk_1:backup set complete, elapsed time: 00:00:01

finished backup at18-nov-12

starting controlfile and spfile autobackup at 18-nov-12

1320402727

即是dbid.

finished controlfile and spfile autobackup at 18-nov-12

恢復指定的自動備份控制檔案,在rman中輸入resotre controlfile from '

'。如果rman的configure命令指定控制檔案儲存在flash_reconver_area的目錄,備份的控制檔名仍然是使用者指定的格式。

[oracle@oraedu~]$ sqlplus / as sysdba

sql*plus: release10.2.0.4.0 - production on sun nov 18 16:00:31 2012

connected to an idleinstance.

sys@orcl>startupnomount;

oracle instancestarted.

total system globalarea  536870912 bytes

fixedsize                    2085360 bytes

variablesize                  159387152 bytes

databasebuffers          369098752 bytes

redobuffers                    6299648 bytes

---dump

出的檔案儲存在

udump

目錄中

dbid=1320402727=0x4eb3bf27, db name='orcl'

除了能夠使用普通的資料檔案外還可以使用undo表空、臨時表空間的資料檔案,所有dump出的檔案都儲存在$oracle_base/admin//udump

--使用臨時表空間資料檔案

---使用日誌檔案

---使用歸檔日誌檔案

perl筆記之DBI操縱資料庫

perl中的dbi 資料庫介面,database inte ce 是個對資料庫操縱很強大的東西,這次正好工作中用到了他的一點皮毛所以做個記錄。具體情況就是插入多條記錄 usr bin perl use dbi open aa,c1 my dbname sverlog my location loca...

oracle資料庫賦權 Oracle資料庫許可權

oracle資料庫許可權基本認識 一 oracle許可權 oracle系統提供三種許可權 object 物件級 system 系統級 role 角色級。許可權分類 1 系統許可權 系統規定使用者使用資料庫的許可權。系統許可權是對使用者而言 2 實體許可權 某種許可權使用者對其它使用者的表或檢視的訪問...

oracle資料庫和資料庫例項

oracle中的資料庫和資料庫例項 oracle的體系結構簡單來分的話,分成2部分 資料庫 database 和資料庫例項 database instance 這是個容易搞糊塗的概念,在sql server裡面,你在你的機器上安裝一次sql server,那麼你就等於安裝了一次資料庫例項,在這個例項...