一.查詢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,那麼你就等於安裝了一次資料庫例項,在這個例項...