|
不需要特定授權 在 NoArchiveLog 模式(默認模式)下操作 重做日誌包含提交和未提交的數據 日誌以循環方式寫入,也就是當最後一個日誌已滿,它將重寫日誌 1 對於長期運行的事務,當所有的日誌是活動時,日誌寫入將以循環方式進行重寫 如果重做日誌沒有被重新寫入,您就可以通過前滾操作來執行恢復 在備份前需要關閉所有事務 最後一次備份以後的所有事務都將丟失 使用操作系統(OS)級實用程序將數據庫文件複製到其他磁盤或媒介 |
SYSADM、SYSCTRL 或 SYSMAINT 授權是必需的 在 LOGRETAIN 和 USEREXIT 兩個參數都被設定為 OFF 時執行操作 循環日誌包含提交和未提交數據 日誌以循環的方式寫入,也就是當最後一個日誌已滿,它將重寫日誌 1 對於長期運行的事務,當所有的日誌是活動時,將根據參數 LOGSECOND 分配二級日誌 禁止前滾 禁止連接。如果有一個活動連接,您將獲得“SQL1035N:數據庫目前在使用中。SQLSTATE=57019″錯誤 最後一次備份以後的所有事務都將丟失 發出 Backup Database 命令來進行備份 |
表 2. 比較 Oracle 和 DB2 UDB 的脫機恢復
|
脫機備份(Oracle) |
脫機備份(DB2 UDB) |
|
不需要特殊的特權 執行備份的管理員需要為它們貼上正確標籤,以便在恢復的過程中,不會恢復備份的錯誤副本 可以用 Alter Database Rename File <oldpath> to <newpath> DDL 語句來重命名和重新定位數據文件 不能恢復到不同的數據庫 |
恢復到現有的數據庫需要 SYSADM、SYSCTRL 或 SYSMAINT 特權。恢復到新數據庫將需要 SYSCTRL 或 SYSADM 特權 在恢復的過程中,管理員可以從某些時間戳中挑出備份。來自 Control Center 和 CLP 的備份命令會為備份創建時間戳簡化恢復過程 通過調用 RESTORE DATABASE 命令,並指定 REDIRECT 參數,您可以重定義表空間容器 可以恢復到現有數據庫或新的數據庫 |
表 3. 比較 Oracle 和 DB2 UDB 的聯機備份
|
聯機備份(Oracle) |
聯機備份(DB2 UDB) |
|
需要 SYSDBA 特權 在 ArchiveLog 模式下進行操作 重做日誌包含提交和未提交的數據。Oracle 使用歸檔日誌來前滾到一致狀態,並撤銷表空間來回滾任何未提交數據 聯機重做日誌以循環的方式進行寫入,也就是當最後一個日誌已滿時,將重寫日誌 1。在日誌切換期間,將歸檔聯機重做日誌 對於長期運行的事務,當所有日誌都處於活動狀態時,如果手動對非活動聯機重做進行歸檔,或者讓 ARCH 進程來為您完成這項工作,那麼只需重寫聯機重做日誌即可。上述任何一項工作失敗都將導致 Oracle 掛起 可以使用 LOG_ARCHIVE_DUPLEX_DEST、LOG_ARCHIVE_DEST_N 來指定 Oracle 寫入日誌的多個位置。LOG_ARCHIVE_DEST_N 的最大值是 10。當路徑有問題時,只要有一條路徑可以工作,Oracle 就會忽略有問題的路徑繼續工作。不過,會有一條消息記錄在審核跟蹤中。不需要對這些路徑進行同步 啟用 ArchiveLog 模式需要一個數據庫回彈(database rebounce),以及嚴格、乾淨的完全備份 控制文件包含數據庫的名稱、日誌序列和檢查點信息、物理文件結構等 表空間級備份 備份所有數據塊(更改和未更改的)。不適合大型倉庫環境 在備份中沒有壓縮 數據庫恢復和前滾不一定要求關閉數據庫 連續備份 —— 一個接一個地備份表空間 發出“Alter Tablespace ts_name Begin Backup”命令 |
SYSADM、SYSCTRL 或 SYSMAINT 特權是恢復現有數據庫所必需的。要通過恢復創建新的數據庫,就需要有 SYSADM 和 SYSCTRL 特權 在 LOGRETAIN=ON 中操作 日誌包含提交和未提交的數據。在 DB2 中,使用日誌進行前滾和回滾 日誌沒有使用循環的方式寫入。因此不用重寫歸檔的日誌。在 DB2 關閉活動日誌之後,活動日誌將變成歸檔日誌 對於長期運行的事務,當所有的日誌都處於活動狀態時,將根據參數 LOGSECOND 來分配二級日誌 MIRRORLOGPATH 配置參數可用於多路復用日誌。MIRROLOGPATH 的最大值是 1。當一條路徑不通時,只要有另一條路徑可以工作,DB2 就會在 DB2 管理通知日誌中寫入一條消息並繼續工作。但是,在完成當前日誌時,DB2 會連續地嘗試寫到壞的路徑。不需要將這些路徑進行同步 在重啟 DB2 數據庫之後,LOGRETAIN 將是惟一有效的參數。您需要進行完全脫機備份 恢復歷史文件包含像下面的一些信息:數據庫或表空間的備份和恢復、從數據庫或表空間進行前滾恢復、修改和停止表空間、REORG 和 RUNSTATS、刪除表等 表空間級和數據庫級的備份 備份所有的數據塊(更改的和未更改的)。不適合大型倉庫環境 已經將備份壓縮作為一個選項添加到 BACKUP DATABASE 命令和 db2Backup API 中 數據庫恢復和前滾必須脫機完成。表空間級的恢復和前滾不要求脫機操作 允許並行操作 發出 Backup Database 命令進行備份。例如 Backup database sample tablespace(userspace1) online to e:\tmp 或 Backup database sample to e:\tmp |
表 4. 比較 Oracle 和 DB2 UDB 的聯機恢復
|
聯機恢復(Oracle) |
聯機恢復(DB2 UDB) |
|
從數據庫文件恢復 數據庫和表空間恢復得到支持 RECOVER DATABASE UNTIL 命令被用於支持不完全恢復 |
從備份映像恢復 數據庫和表空間恢復得到支持 完全和不完全恢復都將使用備份映像,可以啟用或不啟用前滾操作 |
第13章 例子
13.1 分區表空間創建
CREATE REGULAR TABLESPACE TBS01 IN DATABASE PARTITION GROUP IBMDEFAULTGROUP PAGESIZE 32768 MANAGED BY DATABASE
USING (DEVICE ‘/dev/rdb2tbs01_lv01_1’ 1081344) ON DBPARTITIONNUMS (1)
USING (DEVICE ‘/dev/rdb2tbs01_lv01_2’ 1081344) ON DBPARTITIONNUMS (2)
USING (DEVICE ‘/dev/rdb2tbs01_lv01_3’ 1081344) ON DBPARTITIONNUMS (3)
USING (DEVICE ‘/dev/rdb2tbs01_lv01_4’ 1081344) ON DBPARTITIONNUMS (4)
USING (DEVICE ‘/dev/rdb2tbs01_lv03_1’ 1081344) ON DBPARTITIONNUMS (5)
USING (DEVICE ‘/dev/rdb2tbs01_lv03_2’ 1081344) ON DBPARTITIONNUMS (6)
USING (DEVICE ‘/dev/rdb2tbs01_lv03_3’ 1081344) ON DBPARTITIONNUMS (7)
USING (DEVICE ‘/dev/rdb2tbs01_lv03_4’ 1081344) ON DBPARTITIONNUMS (8)
USING (DEVICE ‘/dev/rdb2tbs01_lv05_1’ 1081344) ON DBPARTITIONNUMS (9)
USING (DEVICE ‘/dev/rdb2tbs01_lv05_2’ 1081344) ON DBPARTITIONNUMS (10)
USING (DEVICE ‘/dev/rdb2tbs01_lv05_3’ 1081344) ON DBPARTITIONNUMS (11)
USING (DEVICE ‘/dev/rdb2tbs01_lv05_4’ 1081344) ON DBPARTITIONNUMS (12)
USING (DEVICE ‘/dev/rdb2tbs01_lv07_1’ 1081344) ON DBPARTITIONNUMS (13)
USING (DEVICE ‘/dev/rdb2tbs01_lv07_2’ 1081344) ON DBPARTITIONNUMS (14)
USING (DEVICE ‘/dev/rdb2tbs01_lv07_3’ 1081344) ON DBPARTITIONNUMS (15)
USING (DEVICE ‘/dev/rdb2tbs01_lv07_4’ 1081344) ON DBPARTITIONNUMS (16)
USING (DEVICE ‘/dev/rdb2tbs01_lv02_1’ 1081344) ON DBPARTITIONNUMS (17)
USING (DEVICE ‘/dev/rdb2tbs01_lv02_2’ 1081344) ON DBPARTITIONNUMS (18)
USING (DEVICE ‘/dev/rdb2tbs01_lv02_3’ 1081344) ON DBPARTITIONNUMS (19)
USING (DEVICE ‘/dev/rdb2tbs01_lv02_4’ 1081344) ON DBPARTITIONNUMS (20)
USING (DEVICE ‘/dev/rdb2tbs01_lv04_1’ 1081344) ON DBPARTITIONNUMS (21)
USING (DEVICE ‘/dev/rdb2tbs01_lv04_2’ 1081344) ON DBPARTITIONNUMS (22)
USING (DEVICE ‘/dev/rdb2tbs01_lv04_3’ 1081344) ON DBPARTITIONNUMS (23)
USING (DEVICE ‘/dev/rdb2tbs01_lv04_4’ 1081344) ON DBPARTITIONNUMS (24)
USING (DEVICE ‘/dev/rdb2tbs01_lv06_1’ 1081344) ON DBPARTITIONNUMS (25)
USING (DEVICE ‘/dev/rdb2tbs01_lv06_2’ 1081344) ON DBPARTITIONNUMS (26)
USING (DEVICE ‘/dev/rdb2tbs01_lv06_3’ 1081344) ON DBPARTITIONNUMS (27)
USING (DEVICE ‘/dev/rdb2tbs01_lv06_4’ 1081344) ON DBPARTITIONNUMS (28)
USING (DEVICE ‘/dev/rdb2tbs01_lv08_1’ 1081344) ON DBPARTITIONNUMS (29)
USING (DEVICE ‘/dev/rdb2tbs01_lv08_2’ 1081344) ON DBPARTITIONNUMS (30)
USING (DEVICE ‘/dev/rdb2tbs01_lv08_3’ 1081344) ON DBPARTITIONNUMS (31)
USING (DEVICE ‘/dev/rdb2tbs01_lv08_4’ 1081344) ON DBPARTITIONNUMS (32)
EXTENTSIZE 32 PREFETCHSIZE 192 BUFFERPOOL BP32 OVERHEAD 24.100000 TRANSFERRATE 0.900000 ;
13.2 更改分區參數
$ db2_all “db2 update db cfg for zmccdw using logfilsiz 262144”
$ db2_all “db2 update db cfg for zmccdw using logprimary 46”
$ db2_all “db2 update db cfg for zmccdw using logsecond 0”
$ db2_all “<<+1<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node01′”
$ db2_all “<<+2<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node02′”
$ db2_all “<<+3<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node03′”
$ db2_all “<<+4<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node04′”
$ db2_all “<<+5<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node05′”
$ db2_all “<<+6<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node06′”
$ db2_all “<<+7<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node07′”
$ db2_all “<<+8<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node08′”
$ db2_all “<<+9<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node09′”
$ db2_all “<<+10<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node10′”
$ db2_all “<<+11<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node11′”
$ db2_all “<<+12<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node12′”
$ db2_all “<<+13<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node13′”
$ db2_all “<<+14<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node14′”
$ db2_all “<<+15<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node15′”
$ db2_all “<<+16<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node16′”
$ db2_all “<<+17<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node17′”
$ db2_all “<<+18<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node18′”
$ db2_all “<<+19<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node19′”
$ db2_all “<<+20<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node20′”
$ db2_all “<<+21<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node21′”
$ db2_all “<<+22<db2 update db cfg for zmccdw using newlogpath
以下文章點擊率最高
Loading…