Oracle數據庫物理文件備份/恢復
之前也寫過一篇類似的,雖然恢復不成問題,但總感覺有不對的地方,后面才了解到,以前自己有存在誤區的地方,重新用此文方法簡便得多。
環境:CentOS release 5.6 (Final)
Oracle Database Release 11.2.0.1.0
1、解壓壓縮好的數據庫文件到相應目錄
[root@OATest oabak]# tar -jxvf testoa_20140702.tar.bz2
2、還原文件
[root@OATest temp]# su - oracle
[oracle@OATest /]$ export ORACLE_SID=testoa
[oracle@OATest /]$ sqlplus "/as sysdba";
OPEN_MODE
--------------------
READ WRITE
3、關閉數據庫
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> exit
4、在sql模式下直接質數據庫物理文件至相應的目錄(先顯示各類文件的路徑所在,后拷貝到相應路徑)
--顯示控制文件 select name from v$controlfile; --顯示數據文件 select name from v$datafile; --顯示延續性的初始化參數文件(延續性:對初始化參數的在線修改可以直接作用到參數文件中) show parameter spfile; --顯示日志文件 select member from v$logfile; --orapw$ORACLE_SID密碼文件:password file路徑 在$ORACLE_HOME/dbs/orapw$ORACLE_SID //跟備份關系不大,可以隨時生成。 [oracle@OATest temp]$ sqlplus "/as sysdba"; host cp /usr/oabak/temp/control01.ctl /app/oracle/oradata/testoa/control01.ctl host cp /usr/oabak/temp/control02.ctl /app/oracle/flash_recovery_area/testoa/control02.ctl host cp /usr/oabak/temp/system01.dbf /app/oracle/oradata/testoa/system01.dbf host cp /usr/oabak/temp/sysaux01.dbf /app/oracle/oradata/testoa/sysaux01.dbf host cp /usr/oabak/temp/undotbs01.dbf /app/oracle/oradata/testoa/undotbs01.dbf host cp /usr/oabak/temp/users01.dbf /app/oracle/oradata/testoa/users01.dbf host cp /usr/oabak/temp/redo03.log /app/oracle/oradata/testoa/redo03.log host cp /usr/oabak/temp/redo02.log /app/oracle/oradata/testoa/redo02.log host cp /usr/oabak/temp/redo01.log /app/oracle/oradata/testoa/redo01.log host cp /usr/oabak/temp/spfile${ORACLE_SID}.ora $ORACLE_HOME/dbs/ host cp /usr/oabak/temp/orapw${ORACLE_SID} $ORACLE_HOME/dbs/ |
--要刪除臨時文件, 重啟的時候會自動創建temp01.dbf
若不刪除臨時文件,會出現下面的報錯:
ORA-01187: cannot read from file because it failed verification tests
ORA-01110: data file 201: '/app/oracle/oradata/testoa/temp01.dbf'
恢復文件時候沒有刪除,舊的臨時表空間數據文件(300MB),無法創建新的臨時表空間文件(500MB) ..所以一直報錯
5、啟動數據庫
SQL> startup ORACLE instance started. Total System Global Area 4275781632 bytes Fixed Size 2220200 bytes Variable Size 2113933144 bytes Database Buffers 2147483648 bytes Redo Buffers 12144640 bytes Database mounted. Database opened. SQL> exit |
6、修改用戶密碼
SQL> alter user oaadmin identified by oaadmin;
User altered.
7、解鎖帳戶
SQL> alter user oaadmin account unlock;
User altered.
上面第4步也可以利用一條命令直接處理:
select 'host cp /u03/backup/'||substr(name,(instr(name,'/',-1)+1))|| ' '||name from v$controlfile union all select 'host cp /u03/backup/'||substr(name,(instr(name,'/',-1)+1))|| ' '||name from v$controlfile union all select 'host cp /u03/backup/'||substr(member,(instr(member,'/',-1)+1)) ||' '||member from v$logfile union all select 'host cp /u03/backup/spfile${ORACLE_SID}.ora $ORACLE_HOME/dbs/' from dual union all select 'host cp /u03/backup/orapw${ORACLE_SID} $ORACLE_HOME/dbs/' from dual; |
posted on 2014-09-01 10:50 順其自然EVO 閱讀(224) 評論(0) 編輯 收藏 所屬分類: 測試學習專欄