1導入dmp文件,報 IMP-00013: only a DBA can import a file exported by another DBA 的問題,解決方法
首先應該登陸編輯模式sqlpluse / as sysdba.修改當前的用戶的許可權內
SQL>grant sysdba to user;
SQL>grant imp_full_database to user;
2在導入的容時候可能以前的這個用戶是存在的並且表也是存在的,那麼在導入的時候會報錯
我的解決方法是兩中新建用戶另一種就是把但前的用戶下面的表和數據全部刪掉。
B. linux輸入重定向接EOF的問題
command <<EOF
(內容)
EOF
意思是自把內容當作標准輸入傳給<<前的程序command
你的例子里,ORACLE_HOME/bin/rman log=${RMAN_FILE}.log 你可以看做是一條命令,「log=。。。」是rman的一個參數
」.....B......「在你說的情況下就是rman的命令,這樣就不用互動式使用rman,而是一條條自動執行
rman所有命令執行完後,返回到shell,繼續執行shell命令」.....C.....「部分
再給你舉個例子:
sqlplus user/password <<EOF
select * from table1;
select * from table2;
EOF
兩條select語句輸入給sqlplus,這樣就不用sqlplus中交互輸入SQL語句了
不知道你看明白了嗎
C. 如何使用netbackup7.6備份oracle資料庫
使用NetBackup進行備份和恢復??
一、環境介紹:
這個實驗都是在vmware workstation里完成的。由於NetBackup7隻能裝在64位的系統上,所以這里採用了64位的rhel5.5系統,以及oracle 10gr2 for linux_x64的軟體包。資料庫的數據文件存儲在ASM中。安裝rhel、oracle、netbackup這里不提,可以參考網上其他博文。NetBackup的服務端、客戶端以及媒體伺服器都在同一台主機上(oradb.xzxj.e.cn)。在安裝netbackup7過程中,資料庫的agent不需要額外再單獨安裝,安裝客戶端以及伺服器端時默認已經安裝了,只需要以oracle身份執行oracle_links將rman和netbackup結合在一塊即可。以下主要針對備份和恢復做詳細描述。
二、備份:
在備份之前要創建一個適用於oracle的策略,否則無法進行備份的。至於如何創建策略,可以參考官方文檔。這里已經創建了一個策略orabak,此策略類型是oracle,如圖所示:
創建完成後在頁面存在一個名為「Default-Application-Backup」的默認日程,可以在日程選項里進行新增、刪除、更新日程等操作。本次試驗不進行策略設置,默認日程已經能夠滿足測試的。
注意:jnbSA程序是netbackup的管理窗口,而jbpSA是客戶端進行備份、恢復、歸檔操作的窗口。
要進行oracle的備份,必須以oracle用戶運行jbpSA命令,如圖所示:
登錄成功後會看到如下畫面:
選中要備份的資料庫實例,這里只有db01一個實例,然後點擊右下角的Backup按鈕,會彈出Netbackup for oracle backup向導畫面:
點擊下一步:
這里選擇認證方式,有OS認證以及oralce認證,如果是OS認證,則NBU會以oracle身份運行相關命令,因為之前登錄的用戶就是oracle。如果是oracle認證,則User Name必須是具有sysdba許可權的資料庫用戶,一般就是sys用戶:
Net service name可選的。下一步:
這里默認就可以了,下一步:
默認即可,下一步:
這里指定備份文件的格式,默認即可,下一步:
這里執行的都是在線熱備份的,所以這里默認即可,下一步:
這里需要手工輸入備份策略名、日程名、服務端名稱以及客戶端名稱。由於這里的伺服器端、客戶端以及資料庫都在同一台上面,所以伺服器端名稱和客戶端名稱是一樣的。下一步:
這里使用rman默認的設置即可,下一步:
這里選中立即執行備份,然後點擊右下角的Finish即可開始備份。
點擊Task Progress可查看備份的實時過程以及備份輸出日誌。在netbackup管理窗口,可以點擊Activity Monitor查看活動的工作,如圖,有一個Job Id是147的正處於活動狀態,在類型欄里可以看到正在備份:
點擊Job Id可以查看備份的詳細過程,如圖:
archivelog文件的備份:
備份完成後,在備份、恢復、歸檔窗口會顯示備份已經成功:
這里運行的rman腳本如下所示:
完了後,可以使用bplist命令查看備份後的文件名稱:
圖中列出的10月5號的備份文件名就是剛才備份的。/27lpkqdb_1_1是10月4號spfile的單獨備份。
其中的/27lpkqdb_1_1是單獨備份spfile的文件名。如果沒有單獨備份spfile,在上述備份過程中,已經自動備份了spfile,文件名是/bk_u29lpm63q_s73_p1_t731584634。
二、恢復:
1、模擬spfile文件丟失,進行恢復spfile操作:
關閉資料庫,執行asmcmd,將spfiledb01.ora文件刪除,刪除之前要確認下dbid的值(使用rman連接,會出現DBID或者查詢v$database視圖),這個在恢復spfile的時候要用到的。
運行rman程序,設置dbid,啟動資料庫至nomount狀態,執行以下腳本:完成後,關閉資料庫,重啟資料庫至open狀態:
2、模擬單個數據文件丟失進行恢復:
目前存在以下數據文件,將資料庫關閉,刪除test.dbf後重啟資料庫至mount狀態,將表空間重置為offline狀態然後進行恢復:
這里恢復可以有兩種,一是在rman中敲命令,另一種是圖形界面,這里用圖形界面操作:
點擊右上角的 ,指定策略類型為oracle:
然後選中要恢復的表空間進行恢復:
點擊右下角的restore開始恢復:
恢復成功完成,將表空間online,資料庫切換至open狀態:
以上操作可以在rman中執行以下命令即可完成:
3、控制文件的丟失:
資料庫實例起不來,報控制文件錯誤,接著使用rman進行恢復:
使用rman連接後,資料庫的狀態是nomount狀態,執行以下語句恢復控制文件:
恢復成功:
然後以resetlogs方式打開資料庫:
這里報錯,因為剛恢復的控制文件比較老,運行recover database後,在以resetlogs方式打開資料庫:
4、完全恢復:
這個是指數據文件、控制文件、日誌文件以及spfile文件丟失,只有備份存在的恢復。這個恢復順序是:
(1)、先恢復spfile文件,然後將資料庫重啟至nomount狀態下,恢復控制文件;
(2)、在nomount狀態下恢復控制文件,完成後將資料庫切換至mount狀態;
(3)、在mount狀態下,執行restore database和recover database命令,恢復資料庫,完了後以resetlogs方式打開資料庫。