db2haicu 내용
 

HADR 데이터베이스 HADRDB() 도메인에 추가하고 있습니다...

HADR 데이터베이스 HADRDB() 고가용성에 유효한 것으로 판별되었습니다. 그러나 노드는 HADR 데이터베이스 HADRDB 대기 노드이기 때문에 노드의 클러스터에 데이터베이스를 추가할 없습니다.  데이터베이스에 대해 자동 장애 복구를 구성하려면 HADR 데이터베이스 HADRDB 기본 노드에서 db2haicu 실행하십시오.

 

 db2diag 내용

 

[ Standby db2diag.log ]

 

RETCODE : ECF=0x9000056F=-1879046801=ECF_SQLHA_HADR_VALIDATION_FAILED

          The HADR DB failed validation before being added to the cluster

MESSAGE : Standby Node not configured for HADR.

 

[ Primary db2diag.log ]

 

RETCODE : ECF=0x9000056F=-1879046801=ECF_SQLHA_HADR_VALIDATION_FAILED

          The HADR DB failed validation before being added to the cluster

MESSAGE : Please verify that HADR_REMOTE_INST and HADR_REMOTE_HOST are correct and in the exact format and case as the Standby instance name and hostname.

 

 원인
 

다음과 같이 db2haicu 설정에서 Private Network 대한 호스트 이름을 입력할 , Private Hostname 사용하면 안됨!

 

도메인에 클러스터 노드 10.0.0.1이(가) 없습니다. 호스트 이름을 다시 입력하십시오.

svr1priv

도메인에 클러스터 노드 10.0.0.2이(가) 없습니다. 호스트 이름을 다시 입력하십시오.

svr2priv

 

 조치
 

다음과 같이 Private Network 대한 호스트 이름을, Public Hostname 사용해야 !!!

 

도메인에 클러스터 노드 10.0.0.1이(가) 없습니다. 호스트 이름을 다시 입력하십시오.

svr1

도메인에 클러스터 노드 10.0.0.2이(가) 없습니다. 호스트 이름을 다시 입력하십시오.

svr2

 

 

db2 "VALUES(NEXT VALUE FOR 시퀀스_스키마.시퀀스_)"

 

NEXT VALUE 이용하여 값을 발행하여 조회함!

 

db2 "ALTER SEQUENCE 시퀀스_스키마.시퀀스_ RESTART WITH [ 명령의 결과로 나온 ]"

 

위에서 값을 조회하기 위해서 새로 발행하였으므로 다시 원상복귀 시킴!

 

WITH n 앞으로 발행될 값을 n으로 설정함!

 

Cache 사용하지 않은 Sequence 현재 값은 다음과 같이 있음

 

db2 "SELECT NEXTCACHEFIRSTVALUE, CACHE FROM SYSCAT.SEQUENCES WHERE SEQSCHEMA='시퀀스_스키마' AND SEQNAME='시퀀스_'"

 

CACHE값이 1이면 NO CACHE!

 

CACHE값이 1 , NEXTCACHEFIRSTVALUE값이 앞으로 발행될 값을 의미함!

[요약]

Oracle에서 지원하는 Function Based Index (이하 FBI) DB2에서 구현하여 테스트

 

[내용]

DB2 V9.7 FBI를 공식적으로 지원하지 않기 때문에, 이와 비슷한 기능을 하도록 구성하여 성능 테스트를 수행

 

  1. 테이블 생성

 

DROP TABLE DB2INST1.ZIP

 

CREATE TABLE DB2INST1.ZIP (

ZIPCODE CHAR(7)     NOT NULL,

SIDO    CHAR(6)     NOT NULL,

GUGUN   VARCHAR(24) NOT NULL,

DONG    VARCHAR(81) NOT NULL,

BUNJI   VARCHAR(48),

SEQ     INTEGER     NOT NULL,

CONSTRAINT PK_ZIP PRIMARY KEY(SEQ)

)

 

CREATE INDEX DB2INST1.IX_ZIP ON DB2INST1.ZIP (ZIPCODE)

 

  1. 데이터 이행

 

IMPORT FROM ./zipcode_1_20100225.csv OF DEL COMMITCOUNT 1000 REPLACE INTO DB2INST1.ZIP

 

  1. 통계정보 갱신

 

RUNSTATS ON TABLE DB2INST1.ZIP ON ALL COLUMNS WITH DISTRIBUTION AND DETAILED INDEXES ALL

 

  1. Predicate 함수를 사용하지 않은 쿼리 작성 , 수행

 

-- db2batch 입력 파일 (query1.bat)

--#COMMENT FBI Test on DB2 V9.7

--#SET PERF_DETAIL 0

 

--#BGBLK 1

  --#COMMENT Predicate 함수를 사용하지 않은 일반적인 경우

  --#SET ROWS_OUT -1

 

  SELECT *

    FROM DB2INST1.ZIP

   WHERE ZIPCODE LIKE '142-%';

 

--#EOBLK

 

db2batch -d SAMPLE -f query1.bat -i complete -o e YES p 1 r -1

 

* 292 페치(fetch), 292 출력됨.

 

* 경과 시간:       0.039400

 

* 블록 번호 1

* 요약 테이블:

 

유형             반복      총시간() 최소 시간() 최대 시간() 산술 평균  기하 평균  페치(fetch) 출된

--------- ----------- ----------- -------------- ------------------ ------------------ -------------- -------------- -------------------- -------------

블록              1           1       0.039400           0.039400           0.039400       0.039400       0.039400                  292           292

 

* 항목:                  1

* 총시간:                  0.039400

* 최소 시간:               0.039400

* 최대 시간:               0.039400

* 산술 평균 시간:          0.039400

* 기하 평균 시간:          0.039400

---------------------------------------------

 

  1. 실행계획 확인

 

db2exfmt -d SAMPLE -1

 

Access Plan:

-----------

Total Cost:                 15.135

Query Degree:                1

 

               Rows

              RETURN

              (   1)

               Cost

                I/O

                |

              2.64573

              FETCH

              (   2)

              15.135

                 2

           /----+-----\

       2.64573         50838

       IXSCAN   TABLE:    DB2INST1

       (   3)           ZIP

       7.57267          Q1

          1

         |

        50838

 INDEX:    DB2INST1

       IX_ZIP

         Q1

 

  1. Predicate 함수를 사용한 쿼리 작성 , 수행

 

-- db2batch 입력 파일 (query2.bat)

--#COMMENT FBI Test on DB2 V9.7

--#SET PERF_DETAIL 0

 

--#BGBLK 1

  --#COMMENT Predicate 함수를 테스트 목적으로 사용한 경우

  --#SET ROWS_OUT -1

 

  SELECT *

    FROM DB2INST1.ZIP

   WHERE TRIM(ZIPCODE) LIKE '142-%';

 

--#EOBLK

 

db2batch -d SAMPLE -f query2.bat -i complete -o e YES p 1 r -1

 

* 292 페치(fetch), 292 출력됨.

 

* 블록 번호 1

* 요약 테이블:

 

유형             반복      총시간() 최소 시간() 최대 시간() 산술 평균  기하 평균  페치(fetch) 출된

--------- ----------- ----------- -------------- ------------------ ------------------ -------------- -------------- -------------------- -------------

블록              1           1       0.051749           0.051749           0.051749       0.051749       0.051749                  292           292

 

* 항목:                  1

* 총시간:                  0.051749

* 최소 시간:               0.051749

* 최대 시간:               0.051749

* 산술 평균 시간:          0.051749

* 기하 평균 시간:          0.051749

---------------------------------------------

 

  1. 실행계획 확인

 

db2exfmt -d SAMPLE -1

 

Access Plan:

-----------

Total Cost:                 473.96

Query Degree:                1

 

        Rows

       RETURN

       (   1)

        Cost

         I/O

         |

       5083.8

       TBSCAN

       (   2)

       473.96

         454

         |

        50838

 TABLE:    DB2INST1

         ZIP

         Q1

 

  1. Generate Always 옵션으로 함수가 적용된 컬럼을 테이블에 추가 , 인덱스 생성

 

SET INTEGRITY FOR DB2INST1.ZIP OFF

ALTER TABLE DB2INST1.ZIP ADD COLUMN TRIM_ZIPCODE GENERATED ALWAYS AS (TRIM(ZIPCODE))

SET INTEGRITY FOR DB2INST1.ZIP IMMEDIATE CHECKED FORCE GENERATED

 

CREATE INDEX DB2INST1.IX_TRIM_ZIPCODE ON DB2INST1.ZIP (TRIM_ZIPCODE)

 

  1. 통계정보 갱신

 

RUNSTATS ON TABLE DB2INST1.ZIP ON ALL COLUMNS WITH DISTRIBUTION AND DETAILED INDEXES ALL

 

  1. Predicate 함수를 적용한 쿼리를 다시 수행

 

db2batch -d SAMPLE -f query2.bat -i complete -o e YES p 1 r -1

 

* 292 페치(fetch), 292 출력됨.

 

* 블록 번호 1

* 요약 테이블:

 

유형             반복      총시간() 최소 시간() 최대 시간() 산술 평균  기하 평균  페치(fetch) 출된

--------- ----------- ----------- -------------- ------------------ ------------------ -------------- -------------- -------------------- -------------

블록              1           1       0.014503           0.014503           0.014503       0.014503       0.014503                  292           292

 

* 항목:                  1

* 총시간:                  0.014503

* 최소 시간:               0.014503

* 최대 시간:               0.014503

* 산술 평균 시간:          0.014503

* 기하 평균 시간:          0.014503

---------------------------------------------

 

  1. 실행계획 확인

 

db2exfmt -d SAMPLE -1

 

Access Plan:

-----------

Total Cost:                 224.481

Query Degree:                1

 

               Rows

              RETURN

              (   1)

               Cost

                I/O

                |

              154.13

              FETCH

              (   2)

              224.481

              29.6758

           /----+-----\

       154.13          50838

       IXSCAN   TABLE:    DB2INST1

       (   3)           ZIP

       7.61844          Q1

          1

         |

        50838

 INDEX:    DB2INST1

   IX_TRIM_ZIPCODE

         Q1

 

  1. 테스트를 위해 추가했었던 컬럼 삭제

 

ALTER TABLE DB2INST1.ZIP DROP COLUMN TRIM_ZIPCODE CASCADE

'Laboratory' 카테고리의 다른 글

[웹서버 구축] Apache + PHP + DB2 연동  (0) 2013.07.15

+ Recent posts