亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 數據庫 > 
  • DB2使用resize命令擴容表空間引起rebalance問題的分析

DB2使用resize命令擴容表空間引起rebalance問題的分析

發布時間:2020-08-10 19:31:42 來源:ITPUB博客 閱讀:337 作者:icycastle 欄目:數據庫
問題描述:
最近一次表空間擴容,環境是DB2 10.1FP4,Suse 11.3,文件系統使用的是Symantec StorageFoundation,有個表空間共32個容器,每個容器大小都是20G,打算擴容這個表空間,于是使用了resize (all 24G)的命令,db2 "alter tablespace tbs resize (all 24G)",執行完成后發現 tbs開始rebalance了,這個有點奇怪,我是在現有的container增加空間,不會影響表空間的HWM,為什么會觸發rebalance呢?


問題分析:
查看表空間的snapshot,發現這個表空間的映射有點奇怪(這個是rebalance完成后的),container大小都是一樣,為什么映射是這樣的?

  Range  Stripe Stripe  Max         Max  Start  End    Adj.   Containers

   Number Set    Offset  Extent      Page Stripe Stripe

   [   0] [   0]      0  163835   5242751      0  40958   0    4 (0,1,2,3)

   [   1] [   0]      0  237563   7602047  40959  49150   0    9 (0,1,2,3,4,5,6,7,8)

   [   2] [   0]      0  401398  12844767  49151  81917   0    5 (4,5,6,7,8)

   [   3] [   0]      0  499702  15990495  81918  90109   0    12 (4,5,6,7,8,9,10,11,12,13,14,15)

   [   4] [   0]      0  600054  19201759  90110 104445   0    7 (9,10,11,12,13,14,15)

   [   5] [   0]      0 1212383  38796287 104446 131068   0    23 (9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31)

   [   6] [   0]      0 1572831  50330623 131069 153596   0    16 (16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31)


查了信息中心,有一些關于tablespace map的說明,但沒有很確切說明問什么會引起rebalance,我堅信本次問題是和表空間分布有關,于是做了一些表空間擴容的測試,最終重現了該現象。

實驗測試:
===測試1:增加數據庫文件,新增數據文件大于原有的數據文件===
最初表空間分布
db2 get snapshot for tablespaces on sampledb >> ts1.out


  Table space map:


   Range  Stripe Stripe  Max         Max  Start  End    Adj.   Containers
   Number Set    Offset  Extent      Page Stripe Stripe
   [   0] [   0]      0      77      2495      0     38   0    2 (0,1)


執行
db2 "alter tablespace USERSP4 add (file '/db2data/db2inst1/sampledb/data/usersp4_c03' 20M, file '/db2data/db2inst1/sampledb/data/usersp4_c04' 20M)"


查看表空間分布
db2 get snapshot for tablespaces on sampledb >> ts2.out


Table space map:


   Range  Stripe Stripe  Max         Max  Start  End    Adj.   Containers
   Number Set    Offset  Extent      Page Stripe Stripe
   [   0] [   0]      0     155      4991      0     38   0    4 (0,1,2,3)
   [   1] [   0]      0     235      7551     39     78   0    2 (2,3)


執行
db2 "alter tablespace USERSP4 resize (all 20M)"   


查看表空間分布
db2 get snapshot for tablespaces on sampledb >> ts3.out


 Table space map:


   Range  Stripe Stripe  Max         Max  Start  End    Adj.   Containers
   Number Set    Offset  Extent      Page Stripe Stripe
   [   0] [   0]      0     315     10111      0     78   0    4 (0,1,2,3)
自動降表空間分布規整了。



===測試2:增加數據庫文件,新增數據文件小于原有的數據文件===
最初表空間分布
db2 get snapshot for tablespaces on sampledb >> ts1.out


  Table space map:


   Range  Stripe Stripe  Max         Max  Start  End    Adj.   Containers
   Number Set    Offset  Extent      Page Stripe Stripe
   [   0] [   0]      0      77      2495      0     38   0    2 (0,1)


執行
db2 "alter tablespace USERSP4 add (file '/db2data/db2inst1/sampledb/data/usersp4_c03' 5M, file '/db2data/db2inst1/sampledb/data/usersp4_c04' 5M)"


查看表空間分布
db2 get snapshot for tablespaces on sampledb >> ts4.out


  Table space map:


   Range  Stripe Stripe  Max         Max  Start  End    Adj.   Containers
   Number Set    Offset  Extent      Page Stripe Stripe
   [   0] [   0]      0      39      1279      0     19   0    2 (0,1)
   [   1] [   0]      0     115      3711     20     38   0    4 (0,1,2,3)
執行
db2 "alter tablespace USERSP4 resize (all 10M)"   


查看表空間分布
db2 get snapshot for tablespaces on sampledb >> ts5.out


   Range  Stripe Stripe  Max         Max  Start  End    Adj.   Containers
   Number Set    Offset  Extent      Page Stripe Stripe
   [   0] [   0]      0      39      1279      0     19   0    2 (0,1)
   [   1] [   0]      0     115      3711     20     38   0    4 (0,1,2,3)
   [   2] [   0]      0     155      4991     39     58   0    2 (2,3)
resize all命令執行后,表空間分布沒有自動規整好!!


db2 "alter tablespace USERSP4 resize (all 20M)"   
db2 get snapshot for tablespaces on sampledb >> ts6.out
  Table space map:


   Range  Stripe Stripe  Max         Max  Start  End    Adj.   Containers
   Number Set    Offset  Extent      Page Stripe Stripe
   [   0] [   0]      0      39      1279      0     19   0    2 (0,1)
   [   1] [   0]      0     275      8831     20     78   0    4 (0,1,2,3)
   [   2] [   0]      0     315     10111     79     98   0    2 (2,3)


再次執行resize (all 20M)進行表空間擴容,表空間分布還是沒有自動規整!


db2 "alter tablespace USERSP4 resize (all 30M)"   
db2 get snapshot for tablespaces on sampledb >> ts7.out


  Table space map:


   Range  Stripe Stripe  Max         Max  Start  End    Adj.   Containers
   Number Set    Offset  Extent      Page Stripe Stripe
   [   0] [   0]      0      39      1279      0     19   0    2 (0,1)
   [   1] [   0]      0     435     13951     20    118   0    4 (0,1,2,3)
   [   2] [   0]      0     475     15231    119    138   0    2 (2,3)


再次執行resize (all 30M)進行表空間擴容,表空間分布還是沒有自動規整!
如果執行完resize (all 20M)后,表空間使用率很高了,比如使用到了第三個Stripe,即276號extent以后的空間,再執行resize (all 30M)后,276號開始的extent會觸發rebalance


結論:通過以上測試可以看到DB2在增加新的數據文件的時候,如果新增數據文件大于原來的數據文件,使用resize命令可以自動規整表空間分布;如果新增數據文件小于原來的數據文件,使用resize命令無法自動規整表空間分布,導致數據分布不整齊,可能在擴容期間會引起表空間rebalance。建議DB2每次增加數據文件,與原來的數據文件大小一致,或者至少比原來的數據文件大。

還有一個疑問:如果出現了這種數據文件不對齊的現象,如何才能讓數據文件變為規整?


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

唐海县| 丰都县| 小金县| 双辽市| 两当县| 玛沁县| 宜都市| 格尔木市| 洪雅县| 旺苍县| 德兴市| 磐石市| 玛沁县| 铁岭市| 江口县| 买车| 保康县| 三江| 杨浦区| 烟台市| 威信县| 合作市| 富川| 灵丘县| 潜山县| 筠连县| 华坪县| 松潘县| 太白县| 马关县| 贺州市| 雷山县| 项城市| 尚义县| 和政县| 康乐县| 青州市| 清原| 田林县| 邳州市| 镇原县|