IBM DB2基礎知識學習作業

IBM db2與oracle一樣都是後臺大型數據庫,在我國許多銀行的後臺服務器都是db2。

db2的PENDING狀態

  1. backup pending狀態:是在修改數據庫的日誌模式所導致的;解決方法是對數據庫再做一次備份。
  2. set integrity pending狀態:是在load過程中,我們裝載的數據發生違反參照完整性約束的行,導致表無法使用;結局方法:運行腳本:
set integrity for 表名
immediate checked for exception
in 表名 use <exception table name>//將異常行放入例外表中

DB2共有幾種恢復方式?

三種

  1. 版本恢復:恢復通過使用一個以前建立的數據庫備份,可以將數據庫恢復到與原來狀態完全一樣。但只能恢復到你做的備份點上。
  2. 崩潰恢復:一般情況下自動完成,通過對系統參數配置,若服務器突然宕機,系統下次會啓動讀取日誌,做過的進行redo,沒做完的進行回滾。
  3. 前滾恢復:先進行版本恢復,再進行崩潰恢復。

分析import和load的區別。

import:

  1. 移動大量數據時速度變慢
  2. 創建支持XF格式的表和索引
  3. 可以導入到表,視圖,別名中
  4. 在導入期間允許寫的選項訪問
  5. 所有導入的行都會被記錄到日誌
  6. 會檢查約束
    load:
  7. 移動大量數據速度較快
  8. 表和索引事先必須存在
  9. 只能向表中導入
  10. 導入數據期間只能讀操作,不允許寫操作
  11. 觸發器不會檢查,會有唯一性檢查。

若發佈“select * from db2admin.employee”之後,系統返回錯誤信息“db2admin.employee是個未定義的名稱”,分析是什麼原因造成的?

  1. 可能是因爲模式名schema不正確,當前並不是代表db2admin
  2. 可能是因爲大小寫有問題,當在建表的時候表名用上了引號,那麼表名就會區分大小寫。

在實驗中曾發佈如下語句:

create trigger reorder

after update

of qty on stock

referencing new as n

for each row mode db2sql

when (n.qty <=5)

insert into reorder values (n.itemno, current timestamp)

請解釋該語句所實現的具體功能。分析該觸發器能否阻止同一商品被重複插入reorder表中?若不能阻止,應該如何修改trigger?

語句功能:當顧客購買商品後,當商品庫存小於5後,就往reorder中添加一條語句,代表該物品需要採購,該觸發器無法阻止,修改如下:

create trigger reorder
after update
of qty on stock 
referncing new as n ,old as m
for each row mode db2sql
when (n.qty<=5 and m.qty>5)
insert into reorder values (n.itemno,current timestamp) 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章