1、rman下備份數據庫時,cannot reclaim XXX bytes disk space from XXX limit
問題描述:問題是在db_recovery_file_dest_size 備份時沒有足夠的空間造成的 解決方案:爲db_recovery_file_dest_size 添加或清理空間: SQL> show parameter db_recovery_file_dest SQL> alter system set db_recovery_file_dest_size=10G scope=both; SQL> alter system set log_archive_dest_1='LOCATION=F:\oradata\orcl\frarea' scope=both ; 或 查看歸檔日誌 RMAN> list archivelog all; 使用目標數據庫控制文件替代恢復目錄 可以先把歸檔日誌備份到其他的空間,然後用rman刪除歸檔日誌; RMAN> delete archivelog all;-------------------------------------------------------------------------------------------------------------------------------------------------------------
2、rman下備份數據庫時,ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode
問題描述:問題是數據庫日誌模式爲NOARCHIVELOG 備份時修改爲ARCHIVELOG模式。 解決方案:修改數據庫爲歸檔模式: 詳細請參考:http://blog.csdn.net/hbtianmimi/article/details/9094971-------------------------------------------------------------------------------------------------------------------------------------------------------------
3、Oracle報ORA-01078和LRM-00109錯解決方法
問題描述: ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file '/oracle/product/11.1.0/dbs/initorcl.ora' 解決方法:將$ORACLE_BASE/admin/數據庫名稱/pfile目錄下的init.ora.012009233838形式的文件copy 到$ORACLE_HOME/dbs目錄下initoracle.ora即可。(注:initoracle.ora中的oracle爲你的實例名 ORACLE_SID) 比如:cp /oracle/admin/xok/pfile/init.ora.75200916276 /oracle/product/11.1.0/dbs/initorcl.ora
-------------------------------------------------------------------------------------------------------------------------------------------------------------
4、ORA-00845 MEMORY_TARGET not supported on this system (oracle11g for asianux3 )
問題描述:這個問題是由於設置SGA的大小超過了操作系統/dev/shm的大小: 解決方案:一種是修改初始化參數,使得初始化參數中SGA的設置小於/dev/shm的大小,另一種方法就是調整/dev/shm的大小。 [root@db2 ~]# df -h /dev/shm //查看/dev/shm大小 tmpfs 1.0G 500M 500M 50% /dev/shm [root@db2 ~]#vi /etc/fstab //更換/dev/shm默認大小爲2G LABEL=/ / ext3 defaults 1 1 LABEL=/boot /boot ext3 defaults 1 2 #tmpfs /dev/shm tmpfs defaults 0 0 tmpfs /dev/shm tmpfs defaults,size=2048M 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 LABEL=SWAP-hda3 swap swap defaults 0 0 //注:本行defaults,size=10240M 中間無空格 [root@db2 ~]# [root@db2 ~]# umount /dev/shm [root@db2 ~]# mount /dev/shm [root@db2 ~]# df -h /dev/hda2 8.2G 4.1G 3.8G 53% / /dev/hda1 92M 12M 75M 14% /boot tmpfs 2.0G 240M 1.8G 12% /dev/shm /dev/sda 7.9G 7.5G 39M 100% /array 修改/etc/fstab,重新mount /dev/shm,然後就可以啓動數據庫了。 詳細請參考:http://ibmcn.blog.51cto.com/510174/766996
-------------------------------------------------------------------------------------------------------------------------------------------------------------
5、ORA-01102: cannot mount database in EXCLUSIVE mode
問題描述:出現ORA-1102錯誤可能有以下幾種可能: 一、在HA系統中,已經有其他節點啓動了實例,將雙機共享的資源(如磁盤陣列上的裸設備)佔用了; 二、說明Oracle被異常關閉時,有資源沒有被釋放,一般有以下幾種可能, 1、 Oracle的共享內存段或信號量沒有被釋放; 2、 Oracle的後臺進程(如SMON、PMON、DBWn等)沒有被關閉; 3、 用於鎖內存的文件lk<sid>和sgadef<sid>.dbf文件沒有被刪除。 第一點,可以通過在備節點上查數據庫狀態來判斷是否已啓動實例。 第二點,如果系統是因爲斷電引起數據庫宕機的,並且系統在接電被重啓後,我們可以排除第二種可能的1、2點。接下來考慮第3點。 查$ORACLE_HOME/dbs目錄: [oracle@localhost dbs]$ ls sgadef* ls: cannot access sgadef*: No such file or directory [oracle@localhost dbs]$ ls lk* lkORCL [oracle@localhost dbs]$ lk<sid>文件沒有被刪除。將它刪除掉 [oracle@localhost dbs]$ rm lkORCL 再啓動數據庫,成功。 如果是Oracle進程沒有關閉,用以下命令查出存在的oracle進程: [root@localhost dbs]# ps -ef|grep oracle root 2310 2358 0 16:00 pts/0 00:00:00 su - oracle oracle 2311 2310 0 16:00 pts/0 00:00:00 -bash root 2427 2403 0 10:47 pts/1 00:00:00 su - oracle …… 然後用kill -9命令殺掉進程 $kill -9 <PID> 總結: 當發生1102錯誤時,可以按照以下流程檢查、排錯: 1.如果是HA系統,檢查其他節點是否已經啓動實例; 2.檢查Oracle進程是否存在,如果存在則殺掉進程; 3.檢查信號量是否存在,如果存在,則清除信號量; 4.檢查共享內存段是否存在,如果存在,則清除共享內存段; 5.檢查鎖內存文件lk<sid>和sgadef<sid>.dbf是否存在,如果存在,則刪除。 詳細請參考:http://blog.csdn.net/jscpb/article/details/6790653