db2與oracle的全面對比18

    不需要特定授權

     NoArchiveLog 模式(默認模式)下操作

    重做日誌包含提交和未提交的數據

    日誌以循環方式寫入,也就是當最後一個日誌已滿,它將重寫日誌 1

    對於長期運行的事務,當所有的日誌是活動時,日誌寫入將以循環方式進行重寫

    如果重做日誌沒有被重新寫入,您就可以通過前滾操作來執行恢復

    在備份前需要關閉所有事務

    最後一次備份以後的所有事務都將丟失

    使用操作系統(OS)級實用程序將數據庫文件複製到其他磁盤或媒介

    SYSADMSYSCTRL 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 語句來重命名和重新定位數據文件

    不能恢復到不同的數據庫

    恢復到現有的數據庫需要 SYSADMSYSCTRL 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_DESTLOG_ARCHIVE_DEST_N 來指定 Oracle 寫入日誌的多個位置。LOG_ARCHIVE_DEST_N 的最大值是 10。當路徑有問題時,只要有一條路徑可以工作,Oracle 就會忽略有問題的路徑繼續工作。不過,會有一條消息記錄在審核跟蹤中。不需要對這些路徑進行同步

    啟用 ArchiveLog 模式需要一個數據庫回彈(database rebounce),以及嚴格、乾淨的完全備份

    控制文件包含數據庫的名稱、日誌序列和檢查點信息、物理文件結構等

    表空間級備份

    備份所有數據塊(更改和未更改的)。不適合大型倉庫環境

    在備份中沒有壓縮

    數據庫恢復和前滾不一定要求關閉數據庫

    連續備份 —— 一個接一個地備份表空間

    發出“Alter Tablespace ts_name Begin Backup”命令

    SYSADMSYSCTRL 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…

     

如果這文章對你有幫助,請掃左上角微信支付-支付寶,給於打賞,以助博客運營