使用Disql執行表空間還原的複雜用法
下面將介紹一些不常用且較複雜的還原場景。主要內容包括:
1. 指定歸檔目錄還原
2. 還原表空間中指定的資料檔案
3. 指定對映檔案還原
1.指定歸檔目錄還原
由於磁碟空間的影響,伺服器歸檔可能出現分佈在多個目錄的情況。出現這種情況時就需要指定歸檔目錄還原。還原時指定多個歸檔目錄的操作步驟如下:
1) 備份使用者表空間MAIN。
SQL> backup tablespace main to ts_main_bak_for_arch backupset 'E:\dmdbms\backup\ts_main_bak_for_arch'; 操作已執行 已用時間: 00:00:01.116. 執行號:80.
2) 校驗備份。此步驟可選。
SQL> select sf_bakset_check('disk','E:\dmdbms\backup\ts_main_bak_for_arch'); 行號 SF_BAKSET_CHECK('disk','E:\dmdbms\backup\ts_main_bak_for_arch') ---------- --------------------------------------------------------------- 1 1 已用時間: 18.229(毫秒). 執行號:81.
3) 還原使用者表空間MAIN。假設歸檔日誌分佈在目錄為E:\dmdbms\data\arch和E:\dmdbms\data\arch1兩個目錄下。
SQL> alter tablespace main offline; 操作已執行 已用時間: 111.415(毫秒). 執行號:82. SQL> restore tablespace main from backupset 'E:\dmdbms\backup\ts_main_bak_for_arch' with backupdir 'E:\dmdbms\data\arch','E:\dmdbms\data\arch1'; 操作已執行 已用時間: 414.930(毫秒). 執行號:83. SQL> alter tablespace main online; 操作已執行 已用時間: 27.742(毫秒). 執行號:84.
2.還原表空間中指定的資料檔案
DM7不僅支援從資料庫備份和表空間備份中還原表空間,還支援還原表空間中特定的資料檔案。若表空間已經被破壞,則不允許執行特定資料檔案的還原。使用資料庫備份還原表空間或表空間中的資料檔案與使用表空間備份操作類似,區別在於RESTORE語句中指定的備份集為資料庫備份集。因此,本節僅以使用表空間備份為例說明還原資料檔案的操作步驟。
1) 建立待備份的表空間TS_FOR_RES_01, 並在庫目錄下建立3個資料檔案。
SQL> create tablespace ts_for_res_01 datafile 'ts_for_res_01_01.dbf' size 128; 操作已執行 已用時間: 83.275(毫秒). 執行號:87. SQL> alter tablespace ts_for_res_01 add datafile 'ts_for_res_01_02.dbf' size 128; 操作已執行 已用時間: 38.806(毫秒). 執行號:88. SQL> alter tablespace ts_for_res_01 add datafile 'ts_for_res_01_03.dbf' size 128; 操作已執行 已用時間: 42.169(毫秒). 執行號:89.
2) 備份表空間。
SQL> backup tablespace ts_for_res_01 backupset 'E:\dmdbms\backup\ts_for_res_01_bak'; 操作已執行 已用時間: 00:00:01.161. 執行號:93.
3) 查詢資料檔案的檔案編號或路徑。還原指定的資料檔案需知道資料檔案對應的檔案編號或路徑,相關資訊可透過查詢動態檢視V$DATAFILE獲取。
SQL> select group_id,id,path from v$datafile; 行號 GROUP_ID ID PATH ---------- ----------- ----------- ---------------------------------------- 1 0 0 E:\dmdbms\data\jydm\SYSTEM.DBF 2 1 0 E:\dmdbms\data\jydm\ROLL.DBF 3 3 0 E:\dmdbms\data\jydm\TEMP.DBF 4 4 0 E:\dmdbms\data\jydm\MAIN.DBF 5 5 0 E:\dmdbms\data\jydm\BOOKSHOP.DBF 6 6 0 E:\dmdbms\data\jydm\DMHR.DBF 7 7 0 E:\dmdbms\data\jydm\ts_for_res_01_01.dbf 8 7 1 E:\dmdbms\data\jydm\ts_for_res_01_02.dbf 9 7 2 E:\dmdbms\data\jydm\ts_for_res_01_03.dbf 9 rows got 已用時間: 1.655(毫秒). 執行號:94.
如果想還原ts_for_res_01_02.dbf和ts_for_res_01_03.dbf兩個資料檔案,透過查詢結果可知它們的檔案編號(1和2)以及相應的路徑。
4) 校驗備份。此步驟為可選。
SQL> select sf_bakset_check('disk','E:\dmdbms\backup\ts_for_res_01_bak'); 行號 SF_BAKSET_CHECK('disk','E:\dmdbms\backup\ts_for_res_01_bak') ---------- ------------------------------------------------------------ 1 1 已用時間: 32.108(毫秒). 執行號:95.
5) 透過檔案編號還原表空間TS_FOR_RES_01中的資料檔案ts_for_res_01_02.dbf和ts_for_res_01_03.dbf。
SQL> alter tablespace ts_for_res_01 offline; 操作已執行 已用時間: 105.157(毫秒). 執行號:96. SQL> restore tablespace ts_for_res_01 datafile 1,2 from backupset 'E:\dmdbms\backup\ts_for_res_01_bak'; 操作已執行 已用時間: 358.862(毫秒). 執行號:97.
如果不想使用檔案編號還原,使用指定資料檔案路徑還原資料檔案的語句如下:
SQL> restore tablespace ts_for_res_01 datafile 'E:\dmdbms\data\jydm\ts_for_res_01_02.dbf','E:\dmdbms\data\jydm\ts_for_res_01_03.dbf' from backupset 'E:\dmdbms\backup\ts_for_res_01_bak'; 操作已執行 已用時間: 344.008(毫秒). 執行號:98. SQL> alter tablespace ts_for_res_01 online; 操作已執行 已用時間: 24.644(毫秒). 執行號:99.
3.指定對映檔案還原
對映檔案用於指定存放還原目標路徑,即備份集裡面的資料檔案路徑。指定對映檔案還原可以重新指定備份集中資料檔案的路徑。下面以MAIN表空間為例說明如何使用對映檔案還原。
1) 備份MAIN表空間。
SQL>BACKUP TABLESPACE MAIN BACKUPSET '/home/dm_bak/ts_bak_for_map';
2) 使用DMRMAN的DUMP命令生成對映檔案ts_bak_mapped.txt,存至'E:\dmdbms\backup\目錄。檔案中指定資料檔案MAIN.DBF還原後的路徑為E:\dmdbms\data\jydm\MAIN.DBF。
RMAN> dump backupset 'E:\dmdbms\backup\ts_main_bak_for_map' device type disk mapped file 'E:\dmdbms\backup\ts_bak_mapped.txt'; dump backupset 'E:\dmdbms\backup\ts_main_bak_for_map' device type disk mapped file 'E:\dmdbms\backup\ts_bak_mapped.txt'; dump mapped file successfully. time used: 28.360(ms) /**************************************************************/ /*** Delete the unnecessary modified groups **/ /*** Modify the data_path or mirror_path only in one group **/ /**************************************************************/ /**=============================================================**/ /*[jydm_MAIN_FIL_0]*/ fil_id = 0 ts_id = 4 ts_name = MAIN data_path = E:\dmdbms\data\jydm\MAIN.DBF mirror_path = /***************************** END ****************************/
3) 還原MAIN表空間。
SQL> alter tablespace main offline; 操作已執行 已用時間: 119.506(毫秒). 執行號:102. SQL> select * from tab_for_res_2; select * from tab_for_res_2; [-3408]:表空間[MAIN]處於離線狀態. 已用時間: 1.372(毫秒). 執行號:0. SQL> restore tablespace main from backupset 'E:\dmdbms\backup\ts_main_bak_for_map' mapped file 'E:\dmdbms\backup\ts_bak_mapped.txt'; 操作已執行 已用時間: 377.253(毫秒). 執行號:104. SQL> alter tablespace main online; 操作已執行 已用時間: 17.211(毫秒). 執行號:105. SQL> select * from tab_for_res_2; 行號 C1 ---------- ----------- 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 10 rows got 已用時間: 2.604(毫秒). 執行號:106.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-2711613/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DM7使用Disql執行表還原的複雜用法SQL
- DM7使用Disql執行表空間還原SQL
- DM7使用Disql執行表還原SQL
- 使用聯機SQL執行表空間還原(一)SQL
- DM7使用DMRMAN執行表空間還原
- 達夢使用聯機SQL執行表空間還原(二)SQL
- 時間複雜度跟空間複雜度時間複雜度
- 時間複雜度和空間複雜度時間複雜度
- 時間複雜度與空間複雜度時間複雜度
- 還原表空間系列命令之一
- 還原表空間系列命令之二
- 時間複雜度O(n)和空間複雜度時間複雜度
- 時間複雜度和空間複雜度 順序時間複雜度
- 還原表空間過大的解決方案
- 關於計算時間複雜度和空間複雜度時間複雜度
- 【資料結構】-時間複雜度和空間複雜度資料結構時間複雜度
- 時間與空間複雜度分析複雜度
- 演算法的空間複雜度演算法複雜度
- 冰與火之歌:「時間」與「空間」複雜度複雜度
- 那些年忽略的知識:時間複雜度和空間複雜度詳解時間複雜度
- 什麼才是真正的空間複雜度?複雜度
- 資料結構-邏輯關係&物理關係、時間複雜度、空間複雜度、順序表資料結構時間複雜度
- MySQL innodb表使用表空間物理檔案複製表MySql
- 122 演算法的時間複雜度和空間複雜度詳解演算法時間複雜度
- 如何不用演算法對陣列進行(0時間複雜度,0空間複雜度)排序?演算法陣列時間複雜度排序
- 到底什麼才是真正的空間複雜度?複雜度
- 易被忽略的知識點之 ---- 各種時間複雜度和空間複雜度時間複雜度
- PHP 演算法基礎----時間複雜度和空間複雜度(轉載)PHP演算法時間複雜度
- 最詳細的解說—時間和空間複雜度複雜度
- 說說你對演算法中時間複雜度,空間複雜度的理解?如何計算?演算法時間複雜度
- 2 Day DBA-管理Oracle例項-使用還原指導來計算最小的還原表空間大小Oracle
- oracle的還原表空間UNDO寫滿磁碟空間,解決該問題的具體步驟Oracle
- DM7使用dmrestore執行指定時間點或LSN還原REST
- 我們常說的演算法時間複雜度和空間複雜度到底是什麼?演算法時間複雜度
- 一文講透演算法中的時間複雜度和空間複雜度計算方式演算法時間複雜度
- 查使用表空間的sessionSession
- 使用Oracle可傳輸表空間的特性複製資料(7)實戰RMAN備份傳輸表空間Oracle
- 【原創】表空間相關操作