1. 程式人生 > >鎖表怎樣解決?

鎖表怎樣解決?

  1.insert into 表名  values(select * from 表名 where 條件)
     DB2當中的Load命令做的是新增操作,並不是新增更新操作(實現資料無落地的資料同步):
     load from (database TMISPTDB select * from tr_bdgincome_trim7) of cursor  
     insert into tr_bdgincome_trim9 COPY YES TO /tmisdatas/etlloadtmp DATA BUFFER 32768 
     SORT BUFFER 2097152 CPU_PARALLELISM 4 DISK_PARALLELISM 4
     
     1)db2 "declare mycur cursor db sample44 user db2inst1 using db2inst1 for 
        select * from db2inst1.employee"
     2)db2 "load from mycur of cursor insert into employee_test"
     
     ************************針對SQL0668N 錯誤原因3問題:************************
     原因3:
     表處於"裝入暫掛"狀態。先前嘗試裝入(LOAD)此表失敗。在重新啟動
     或終止 LOAD 操作之前不允許對錶進行訪問。
     解決原因3方法:
     通過分別發出帶有 RESTART 或 TERMINATER 選項的 LOAD 來重新啟動
     或終止先前失敗的對此表的 LOAD 操作。
     具體實現示例:
     db2 "CALL SYSPROC.admin_cmd('load from (database tmisoddb select * from tcbs_td_payactor) of cursor  RESTART into tcbs_td_payactor COPY YES TO /tmisdatas/etlloadtmp ')"
     注:因為環境不同,COPY YES TO 之後不需要再帶相關引數(RESTART可換成TERMINATER)
     
   2.鎖表怎樣解決?
      表處於死鎖狀態:(重新啟動資料庫即可解決)
      db2stop force (db2 force applications all)
      db2start
      而後重新連線資料庫即可
   3.表空間掛起怎樣解決?
      查看錶空間是否被掛起
      list tablespaces show detail 
      而後檢視資訊,當表狀態不為"0"(0x0000)時,就說明此表空間現在處於暫掛狀態
      而後進行資料備份即可:
      db2 backup db rdb151 tablespace USERSPACE1(USERSPACE1是表空間名稱,還是從資訊當中得到)
      db2 backup db tmisoddb tablespace USERSPACE1 to /dev/null
       
   4.重新繫結,快取不夠:
      db2 "create bufferpool bp32k pagesize 32k size 32768"
      db2 "create bufferpool bp32k immediate size 32768 pagesize 32k"
      db2 "drop tablespace ts_usrtmp_16k"
      db2 "create user temporary tablespace ts_usrtmp_32k pagesize 32k 
           managed by automatic storage bufferpool bp32k"
      db2 rebind tmisusr
      db2 rebind
      db2 rebind PROC_LOADOLDTMIS_MAIN
      db2 rebind tmisusr.PROC_LOADOLDTMIS_MAIN
      db2rbind tmisptdb -l a.log
      db2 list packages|grep -i p7400351
      db2 rebind package P7400351
      db2 rebind package P7400704
      db2 -x "select 'rebind package '||pkgname||';' from syscat.packages 
              where pkgschema='TMISUSR'">rebind.sql
      db2 -tf rebind.sql
      重新繫結:
      linux-4j1d[/home]db2 rebind TMISUSR.P0040035(包名來自於程式執行後臺日誌SQLERRMAC)
      DB20000I  The REBIND PACKAGE command completed successfully.
      
      db2 rebind tmisusr.PROC_LOADOLDTMIS_MAIN   --繫結儲存過程
      db2rbind tmisptdb -l a.log                 --繫結資料庫(感覺不起作用)
      db2 rebind package P7400351                --繫結包