Oracle rman 備份與恢復 臨時表空間的檔案問題解決
- ---------- rman 備份與恢復 ------
- -- rman 自動備份指令碼 2011/7/23 14:32:55
- rman target / log=/oracle/bk_rman/rmanbackup.log <<!
- # -- as compressed backupset 壓縮備份
- # -- filesperset 2 用多少個執行緒;---好像翻譯名字不對;
- backup as compressed backupset filesperset 2 database format '/oracle/bk_rman/%u';
- backup archivelog all format '/oracle/bk_rman/%u.bk';
- delete noprompt obsolete;
- !
- -- 玩恢復;2011/7/23 14:38:36
- -- 做業務
- col NAME for a50
- select FILE#, name from V$datafile;
- update scott.emp set sal=sal+1;
- commit;
- alter system switch logfile;
- -- rman 恢復到新的位置 2011/7/23 15:15:48
- -- 假如 原始檔 為 去哪
- -- 到哪去
- -- 原始檔
- -- 原始檔
- -- 到哪去
- -- 去 rman 中執行;
- RUN
- {
- ALLOCATE CHANNEL d1 DEVICE TYPE DISK;
- SQL "ALTER TABLESPACE users OFFLINE IMMEDIATE";
- SET NEWNAME FOR DATAFILE '/oracle/oradata/orcl_new/users01.dbf'
- TO '/oracle/oradata/users01.QQ';
- RESTORE DATAFILE '/oracle/oradata/orcl_new/users01.dbf';
- SWITCH DATAFILE '/oracle/oradata/orcl_new/users01.dbf';
- RECOVER DATAFILE '/oracle/oradata/users01.QQ';
- SQL "ALTER TABLESPACE users ONLINE";
- }
- ------- rman 遠端伺服器使用 rman 備份的資料庫 恢復到本地 實驗2011/7/23 20:55:23 -----------
- ------- begin --------
- -- 首先 把 rman 備份複製到本地; scp... /tmp/rman_bk
- 1.無配置啟動
- 1)rman target /
- 在日誌中找出pfile檔案引數;並寫出initxxx.ora中;
- 2)sqlplus 中 startup nomount;
- 2.找控制檔案, 從複製回來的備份檔案中;
- 找到從備份檔案中找出儲存控制檔案的那個備份檔案,特性是,小,時間靠後;
- pfile中指定controfile位置 -- 參考 最後的pfile 檔案格式; initXXX.ora
- sqlplus
- startup nomount force
- 3.-- 恢復控制檔案 檔案是根據 2 步驟找出來的;
- rman
- restore controlfile from '/tmp/rman_bk/0kmi5ov2'
- 4.登記到catalog
- -- sqlplus 中
- startup force mount
- -- rman 中, 校驗 copy 與backup 檔案
- crosscheck copy;
- crosscheck backup;
- -- 檢視恢復ctlF中記錄的copy(archivelog), backup(rman的備份)資訊
- list copy ;
- list backup;
- -- 清空恢復的檔案中的copy(archivelog), backup(rman的備份) 記錄
- delete noprompt expired copy;
- delete noprompt expired backup;
- -- 登記備份的檔案到 controlfile中;
- catalog start with '/tmp/rman_bk';
- -- 恢復 spfile --> 檢視在哪個備份檔案中;
- list backup of spfile;
- restore spfile;
- ---------- 將資料檔案恢復到新的路徑 -- 控制檔案從儲存了各個資料檔案的存放地址,所以改恢復路經;-------------
- -- 1.組合成要恢復的路經設定語句;
- select 'set newname for datafile '''||name||''' to ''/oracle/oradata/orcl/'|| substr(name,7)||''';' from v$datafile;
- -- 2. rman中執行恢復 set newname .... 來自於 1.的輸出結果
- run
- {
- set newname for datafile '/o254/system01.dbf' to '/oracle/oradata/orcl/system01.dbf';
- set newname for datafile '/o254/undotbs01.dbf' to '/oracle/oradata/orcl/undotbs01.dbf';
- set newname for datafile '/o254/sysaux01.dbf' to '/oracle/oradata/orcl/sysaux01.dbf';
- set newname for datafile '/o254/users01.dbf' to '/oracle/oradata/orcl/users01.dbf';
- set newname for datafile '/o254/example01.dbf' to '/oracle/oradata/orcl/example01.dbf';
- restore database;
- switch datafile all;
- recover database;
- }
- /* 出現如下錯誤,正常--- 因為log檔案位置不對;
- RMAN-06054: media recovery requesting unknown log: thread 1 seq 9 lowscn 1531825
- */
- -- 3. 在sqlplus中修改日誌檔案路經 因 controlfile 檔案中儲存了 日誌檔案的路經( rman 備份的那個 controlfile ),所以要替換成新的路經;
- select 'alter database rename file '''||member||''' to '''|| replace(member,'/o254/','/oracle/oradata/orcl/')||''';' from v$logfile;
- -- 得出如下修改命令 --> 修改 controlfile 儲存日誌檔案的地址;
- alter database rename file '/o254/redo03.log' to '/oracle/oradata/orcl/redo03.log';
- alter database rename file '/o254/redo02.log' to '/oracle/oradata/orcl/redo02.log';
- alter database rename file '/o254/redo01.log' to '/oracle/oradata/orcl/redo01.log';
- -- 啟動 DB 用 resetlog方式;
- alter database open resetlog;
- ----- end ---------
- ----------------- 臨時表空間的檔案恢復後不能用的解決方法 ---------------------
- -- 檢視臨時表空間資訊;
- select file#, NAME, status, CREATION_TIME from v$tempfile;
- -- 臨時表空間 增加檔案;
- alter tablespace temp add tempfile '/oracle/oradata/orcl/temp02.dbf'
- size 50m
- maxsize 100m
- autoextend on;
- -- 讓臨時表空間資料檔案下線, 並刪除之
- alter database tempfile '/oracle/oradata/orcl/temp.dbf' offline;
- alter database tempfile '/oracle/oradata/orcl/temp.dbf' drop ;
- -- 查詢出表空間建立的 DDL語句;
- set long 99999
- set pagesize 9999
- SELECT DBMS_METADATA.GET_DDL('TABLESPACE', TS.TABLESPACE_NAME) from dba_tablespaces ts;
- ---------------- end --------------------------------------------------------
- ---- pfile 檔案 樣例 initXXX.ora------------------------
- __shared_pool_size = 113246208
- __large_pool_size = 4194304
- __java_pool_size = 4194304
- __streams_pool_size = 0
- sga_target = 285212672
- pga_aggregate_target = 94371840
- db_block_size = 8192
- __db_cache_size = 159383552 # 152M
- compatible = 10.2.0.1.0
- control_files = /oracle/oradata/orcl/control01.ctl, /oracle/oradata/orcl/control02.ctl, /oracle/oradata/orcl/control03.ctl
- # archive file save path
- log_archive_dest_1 = 'location=/oracle/arc'
- log_archive_format = %s_%t_%r.arc
- db_file_multiblock_read_count= 16
- db_recovery_file_dest = /oracle/flash_recovery_area
- db_recovery_file_dest_size= 2147483648
- undo_management = AUTO
- undo_tablespace = UNDOTBS1
- remote_login_passwordfile= EXCLUSIVE
- job_queue_processes = 10
- background_dump_dest = /oracle/admin/orcl/bdump
- user_dump_dest = /oracle/admin/orcl/udump
- core_dump_dest = /oracle/admin/orcl/cdump
- audit_file_dest = /oracle/admin/orcl/adump
- db_name = orcl
-
open_cursors = 300
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/90618/viewspace-1983190/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【管理篇備份恢復】rman恢復測試(一) 表空間資料檔案
- 解決Oracle臨時表空間佔滿的問題Oracle
- rman恢復資料檔案 恢復表空間
- oracle的臨時表空間解決問題的步驟Oracle
- Oracle RMAN 表空間恢復Oracle
- 轉:Oracle 臨時表空間過大問題解決Oracle
- Oracle 12C RMAN備份佔用大量臨時表空間Oracle
- 【實驗】重建臨時表空間解決臨時表空間過大問題
- 備份與恢復系列 九 丟失表空間資料檔案的還原與恢復
- Oracle RMAN 表空間的完全恢復Oracle
- 非系統表空間損壞,rman備份恢復
- undo表空間檔案丟失恢復(1)--有備份
- Oracle 11g RMAN恢復-只讀表空間的恢復(備份是在表空間只讀狀態下做的)Oracle
- Oracle臨時表空間檢視、新增臨時表空間資料檔案、修改預設臨時表空間 方法!Oracle
- 表空間不完全恢復(全備--備份控制檔案--刪除表空間andy--日誌檔案)
- 歸檔模式下,offline表空間備份與恢復模式
- 臨時表空間資料檔案損壞的解決
- rman備份恢復-rman恢復資料檔案測試
- RMAN備份恢復之控制檔案的恢復(三)
- RMAN備份恢復之控制檔案的恢復(二)
- RMAN備份恢復之控制檔案的恢復(一)
- oracle實驗記錄 (恢復-表空間基於時間點恢復(rman))Oracle
- 【rman 備份與恢復】恢復丟失所有的控制檔案
- 臨時表空間ORA-1652問題解決
- 執行RMAN表空間及時點恢復——使用者管理備份和恢復手冊
- 備份與恢復--利用備份的控制檔案恢復
- 無新表空間資料檔案備份,歸檔都存在的還原與恢復
- Oracle備份與恢復【丟失控制檔案的恢復】Oracle
- 【物理熱備】(下)備份恢復系統表空間 手工備份恢復
- oracle的臨時表空間寫滿磁碟空間,解決改問題的具體步驟Oracle
- Oracle 10g備份與恢復高階使用者指南--第八章 RMAN表空間時間點恢復(TSPITR)Oracle 10g
- 關於移動臨時表空間檔案位置的問題
- 備份與恢復系列 十一 控制檔案的備份與恢復
- 【RMAN】表空間基於時間點的RMAN恢復-TSPITR
- 不完全恢復(資料檔案備份--新建表空間--控制檔案備份--日誌歸檔檔案)
- oracle 9i 臨時表空間問題Oracle
- oracle監控表空間,JOB,rman備份Oracle
- Oracle12c多租戶資料庫備份與恢復 - 備份表空間Oracle資料庫