달력

12

« 2018/12 »

  •  
  •  
  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  
  •  
.. .. .. 알티베이스를 DBMS 로 사용한지도 꽤 된것 같다.
주로 대용량 데이터 처리 업무를 하는데 Altibase가 잘 따라와준 덕분인지 DBMS를 안바꾸고 계속 사용하고 있다.
하지만 역시 산재해있던 버그들로 고생했던것들을 생각하면 아직도 머리가 지끈지끈.. (Altibase 4 초기 버젼 사용때.)

Altibase 5가 나왔다고 들었다. 어떤 매체를 통해서였는지는 잘 모르겠지만 성능이 얼마나 향상되었는지 , 어떤 기능이 생겼는지 궁금하던 차에 마침 이메일로 이벤트 소식이 날아와서 덥썩 물고 신청했다..

1장 알티베이스 개념과 소개
택배로 책이왔다. 올컬러다.. 표지 디자인도 괜찮고 마음에 들었다.
"자~ 이제 HDB가 무엇인지 책을 펴볼까?"
라는 마음으로 책을 폈다.. 하이브리드를 H 라고 쓰는거 같은데 하이브리드가 모야?! 라는 마음으로 한참을 찾다가 두줄 나온것을 간신히 봤다.
"실시간 처리를 요청하는 데이터는 메인 메모리 영역을 이용하고, 대용량의 데이터 처리는 디스크를 이용함으로써 범용 DBMS로서의 기간계 시장을 공략하게 된다"
라고 써있다. 그림이라도 좀 넣어두지. HDB가 뭔지도 모르면 이책은 보지도 못한다는 건가?! Altibase 를 써본 사람이야 이해가 되겠지만 안써본 사람들은 저게 무슨소린지는 아려나;

2장 알티베이스 설치
메뉴를 보니 뭐가 많다.
2-1 알티베이스 DBMS 설치(GUI)
2-2 알티베이스 패치 설치(GUI)
2-3 알티베이스 DBMS 설치 (커맨드 라인)
무슨 설치를 이렇게 복잡하게 나눠놓은거지?! 패치 설치는 뭐지? (초보자라면 GUI가 모지?!) 라는 궁금증으로 일단 첫장을 넘겼다.
"패키지 설치의 개념이라..응?? 응~~??  으응???????? 뭐야 어디서 다운받으라는거야? 무슨소린지 하나도 못알아 듣겠다. 알티베이스 4는 설치가 초 간단하고 심플했는데 5는 뭔가 대단해진건가?! "
라는 생각을 잠깐 하고 보니 책 속에 딸려왔던 A4 용지 한장이 생각나 찾아보니 역시나 다운로드 방법에 대해 언급되어 있다. 나중에 책에 반영하려나 보지?!

서버에 FTP 로 파일을 내려받아서 실행을 하니 바로 설치가 된다. Linux 환경이라 GUI는 기대할수 없지만 심플하니 설치하기 편하다. 이것저것 설정에 대해서 물어보는데 모르면 그냥 Enter를 치면 설치가 되도록 해주는 배려심 ㅎ 책 또한 설정에 대해 보기 편하게 적어줘서 설치에 문제는 없었다.

3장 알티베이스 시작과 종료
isql -u sys -p manager -sysdba 를 시작하면 된다고 하는데 안된다.. 뭐가 문제인지 봤더니 ALTIBASE_HOME을 환경변수로 잡아줘야 한다. 책에도 있는데 조막만하게 써놓으면 내가 아나 ;
무튼 환경변수를 잡아주고(난 root 계정 설치를 했기때문에 root에 환경변수 설정함) 실행하니 된다.

글을 마치며
이제 계정도 만들고 테이블 생성도 해보고 환경설정도 변경해보며 이리저리 뚝딱 거려봐야 겠지만 그부분들은 차후 추가하도록 하겠다. Altibase 를 잘 아는 개발자라고 생각하고 덤벼도 생각보다 설치는 까다로우면서 편했다. (오라클 설치는 더 극악인지라..)
궁금사항은 댓글을 달면 아는 범위 안에서 열심히 설명해줄테니 물어보시고 오늘의 글은 여기서 마무리~!

2012-01-27 pm1 추가사항
책에 유져 생성/수정/삭제 에 대한부분을 못찾겠다.. 가이드북에는 원래 이런게 없는건가 ?! 책보다 검색을 통해 생성을 하는방법을 찾았다.
create user test identified by test123;
위만보면 무슨말인지 모르지.. 해석해서 밑에 쓴다면
create user 사용자 id identified by 패스워드;
이다. 이외에 테이블 스페이스나 부가적으로 이것저것 설정이 되는것 같은데 무슨말인지 잘 모르기에 패스
테이블 스페이스를 미리 생성해두고 유저 생성시 테이블 스페이스를 설정해두는 것이 순서에 맞는듯 하다.
뒷부분에 테이블스페이스를 생성하는데 설정을 따로 해주지 않는이상 테이블 스페이스 접근이 불가능하기에
유저 생성시 테이블스페이스 설정을 꼭 해준다 (안해주면 나중에 alter user 명령어로 수정은 가능하다만 ;;)

2012-01-27 pm2 추가사항
게시판을 만들어 보려고 작업중인데 생각보다 할일이 많다. 우선 테이블 스페이스에 대해서 공부를 해야되고 이후 생성을 해야되며 테이블 생성을 위한 스크립트도 만들어야 되고 시퀀스도 생성해야 되고... 생각보다 쉽지않다.
테이블 스페이스 생성 명령어
CREATE MEMORY TABLESPACE BOARD_TEST SIZE 256M;
시퀀스 생성 명령어
create sequence board_test_seq;

.
Posted by .07274.

댓글을 달아 주세요

  1. Favicon of http://4266.theminaretsonline.com BlogIcon ugg 2013.07.20 00:10 신고  댓글주소  수정/삭제  댓글쓰기

    지금은 반짝반짝 빛이 나겠지,, 하지만 시간이 흐르면 그빛은 사라저버릴거야,지금 우리처럼

.. .. .. 메모리 테이블 사용량 확인

select
  b.user_name || '.' || a.table_name table_name,
  round((c.fixed_alloc_mem+c.var_alloc_mem)/1024/1024,3) alloc,
  round((c.fixed_used_mem+c.var_used_mem)/1024/1024,3) used,
  round((c.fixed_used_mem+c.var_used_mem)*100/ (c.fixed_alloc_mem+c.var_alloc_mem),2) '%USED'
from
 system_.sys_tables_ a,
 system_.sys_users_ b,
 v$memtbl_info c
where a.user_id = b.user_id
  and a.table_oid = c.table_oid
  --and a.tbs_id=0
  and b.user_name <> 'SYSTEM_'
  and a.table_type='T'
 order by 2 desc;


물리 디스크 각 테이블당 사용량 확인 (version 4만 허용)


SELECT /* for Disk Tables */
             C.NAME TBS_NAME,
             B.USER_NAME||'.'||A.TABLE_NAME TABLE_NAME,
             (C.A_EXTENT_PAGE_COUNT*C.PAGE_SIZE*D.EXTENT_TOTAL_COUNT)/1024/1024 'ALLOC(M)',
             (E.disk_page_cnt*8)/1024 'USED(M)',
             A.TABLE_ID,
             REPLICATION_COUNT REPL_COUNT
FROM    SYSTEM_.SYS_TABLES_ A,
             SYSTEM_.SYS_USERS_ B,
             V$TABLESPACES C,
             V$SEGMENT D,
             V$DISKTBL_INFO E
WHERE  A.USER_ID = B.USER_ID AND
             A.TBS_ID = C.ID AND
             D.TABLE_OID = A.TABLE_OID AND
             D.TABLE_OID = E.TABLE_OID AND
             D.SEGMENT_TYPE='TABLE' AND
             A.TBS_ID != 0 AND A.USER_ID != 1;

물리 디스크 스페이스 사용량 확인

  
select
      rpad(ts.name, 20)             as Phy_tbs_name,
      ts.max                        as Phy_max_size,
      ts.init                       as Phy_alloc_size,
      (ts.init-ts.used)             as Phy_free_size,
      ts.used                       as Phy_used_size,
      trunc(ts.used/ts.init*100,2)  as Phy_used_rate
  from(
      select  ts.name,
           trunc(sum(df.maxsize)*8/1024,0) max,
           trunc(sum(df.initsize)*8/1024,0) init,
           trunc((ts.ALLOCATED_PAGE_COUNT*ts.page_size)/1024/1024,0) used
      from  v$tablespaces TS,
           v$datafiles DF
      where  ts.id = df.spaceid
      group by ts.name, ts.page_size, ts.total_page_count, ts.ALLOCATED_PAGE_COUNT
   ) ts

.
Posted by .07274.

댓글을 달아 주세요

  1. Favicon of http://9367.blatsoffcomics.com BlogIcon ghd 2013.07.21 22:15 신고  댓글주소  수정/삭제  댓글쓰기

    슬퍼서 우는거 아니야..바람이 불어서 그래..눈이 셔서..

.. .. ..


Version 4

#!/bin/ksh

# 1. Session Count(S)
loop1()
{
is -silent <<EOF
set heading off;
set linesize 200;
set colsize 35;
select substr(comm_name,1,20), 'CNT='||count(*) from v\$session
group by comm_name;
EOF
}

# 2. Statement Count(S)
loop2()
{
is -silent <<EOF
set heading off;
select 'STATEMENT_CNT='||count(*) from v\$statement;
EOF
}

# 3. memtbl
loop3()
{
is -silent <<EOF
set heading off;
set linesize 200;
set colsize 35;
select a.max_db_size, b.alloc_size, b.used_size from
(select 'MEM_MAX_DB_SIZE='||MEM_MAX_DB_SIZE/1024/1024||'M' max_db_size from v\$database) a,
(select 'ALLOC_SIZE='||ceil(sum(fixed_alloc_mem+var_alloc_mem)/1024/1024)||'M' AS alloc_size,
           'USED_SIZE='||ceil(sum(fixed_used_mem+var_used_mem)/1024/1024)||'M' AS used_size
from v\$memtbl_info) b;
EOF
}


# 4. GC
loop4()
{
is -silent <<EOF
set heading off;
set linesize 200;
set colsize 35;
select GC_NAME, ADD_OID_CNT-GC_OID_CNT from v\$memgc
union all
select GC_NAME, ADD_TSS_CNT-GC_TSS_CNT from v\$diskgc;
EOF
}

# 5. replication
loop5()
{
is -silent <<EOF
set linesize 200;
set colsize 35;
select rep_name,rep_gap from v\$repgap;
select rep_name,status from v\$repsender;
select rep_name,peer_ip from v\$repreceiver;
EOF
}

# 6. datafile
loop6()
{
is -silent <<EOF
set linesize 200;
set colsize 35;
select name, maxsize*8/1024||'M' maxsize, currsize*8/1024||'M' currsize, autoextend, state from v\$datafiles;
EOF
}

# 7. memstat
loop7()
{
is -silent <<EOF
set linesize 200;
set colsize 35;
select 'ALLOC_SIZE='||ceil(sum(alloc_size)/1024/1024)||'M' alloc_size_M, 'MAX_SIZE='||ceil(sum(max_total_size)/1024/1024)||'M' max_size_M from v\$memstat ;
select name, ceil(alloc_size/1024)||'K' alloc_size_K, ceil(max_total_size/1024)||'K' max_total_size_K from v\$memstat order by 2 desc;
EOF
}

#vsz
loop8()
{
ps -o vsz -p $PID 
}

# 9.tablespace
loop9()
{
is -silent <<EOF
set linesize 200;
set colsize 35;
select name
     , total||'M' TOTAL
     , used||'M' USED
     , case2( ROUND(USED/TOTAL,4) * 100 > 100, '99.99', ROUND(USED/TOTAL,4) * 100)||'%' UTIL
  from (
       select name,c.maxsize*8192/1024/1024 total, used*b.A_EXTENT_PAGE_COUNT*b.PAGE_SIZE/1024/1024 used
             from (select space_id, sum(extent_total_count) used
                   from v\$segment
                   group by space_id) a, v\$tablespaces b,
                   (select spaceid,sum(maxsize) maxsize from v\$datafiles
                    group by spaceid) c
             where a.space_id = b.id
             and b.id = c.spaceid
       )
;
EOF
}

getDisk()
{
UNAME=`uname`
if [ $UNAME = "HP-UX" ]
then
    bdf
else
    df -k
fi
}


getProp()
{
echo "** Altibase Properties **"
altibase -v
grep "MEM_DB_DIR" $ALTIBASE_HOME/conf/altibase.properties | grep -v "\#"
grep "DEFAULT_DISK_DB_DIR" $ALTIBASE_HOME/conf/altibase.properties | grep -v "\#"
grep "LOG_DIR" $ALTIBASE_HOME/conf/altibase.properties | grep -v "\#"
grep "LOGANCHOR_DIR" $ALTIBASE_HOME/conf/altibase.properties | grep -v "\#"
grep "LOGANCHOR_DIR" $ALTIBASE_HOME/conf/altibase.properties | grep -v "\#"
echo "ALTIBASE is install ==> `which altibase`"
echo "** Disk arry **"
ls -lrt /
echo ""
}

#PID=`ps -ef|grep $HOME|grep "altibase -p" |grep -v grep|awk '{print $2}'`
PID=`ps -ef|grep altibase | grep "boot from" | grep -v grep | tail -1  | awk '{print $2}'`
PID=${PID:=0}

echo '# VSZ'
loop8
echo ' '
echo ' '

echo '#1 CONNECTION COUNT'
loop1
echo ' '
echo ' '

echo '#2 STATEMENT COUNT'
loop2
echo ' '
echo ' '

echo '#3 sum of memtbl'
loop3
echo ' '
echo ' '

echo '#4 GC'
loop4
echo ' '
echo ' '

echo '#5 replication'
loop5
echo ' '
echo ' '

echo '#6 datafile'
loop6
echo ' '
echo ' '

echo '#7 memstat'
loop7
echo ' '
echo ' '

echo '#8 tablespace'
loop9
echo ' '
echo ' '


echo '#9 disk'
getProp
echo '================================================'
getDisk
echo ' '
echo ' '

echo '#10 vmstat'
echo 'fre*4 = ?K'
vmstat 1 5
echo ' '
echo ' '


 
version 5

#!/bin/ksh

# 1. Session Count(S)
loop1()
{
is -silent <<EOF
set heading off;
set linesize 200;
set colsize 35;
select substr(comm_name,1,20), 'CNT='||count(*) from v\$session
group by comm_name;
EOF
}

# 2. Statement Count(S)
loop2()
{
is -silent <<EOF
set heading off;
select 'STATEMENT_CNT='||count(*) from v\$statement;
EOF
}

# 3. memtbl
loop3()
{
is -silent <<EOF
set heading off;
set linesize 200;
set colsize 35;
select a.max_db_size, b.alloc_size, b.used_size from
(select 'MEM_MAX_DB_SIZE='||MEM_MAX_DB_SIZE/1024/1024||'M' max_db_size from v\$database) a,
(select 'ALLOC_SIZE='||ceil(sum(fixed_alloc_mem+var_alloc_mem)/1024/1024)||'M' AS alloc_size,
           'USED_SIZE='||ceil(sum(fixed_used_mem+var_used_mem)/1024/1024)||'M' AS used_size
from v\$memtbl_info) b;
EOF
}


# 4. GC
loop4()
{
is -silent <<EOF
set heading off;
set linesize 200;
set colsize 35;
select GC_NAME, ADD_OID_CNT-GC_OID_CNT from v\$memgc;
EOF
}

# 5. replication
loop5()
{
is -silent <<EOF
set linesize 200;
set colsize 35;
select rep_name,rep_gap from v\$repgap;
select rep_name,status from v\$repsender;
select rep_name,peer_ip from v\$repreceiver;
EOF
}

# 6. datafile
loop6()
{
is -silent <<EOF
set linesize 200;
set colsize 35;
select name, maxsize*8/1024||'M' maxsize, currsize*8/1024||'M' currsize, autoextend, state from v\$datafiles;
EOF
}

# 7. memstat
loop7()
{
is -silent <<EOF
set linesize 200;
set colsize 35;
select 'ALLOC_SIZE='||ceil(sum(alloc_size)/1024/1024)||'M' alloc_size_M, 'MAX_SIZE='||ceil(sum(max_total_size)/1024/1024)||'M' max_size_M from v\$memstat ;
select name, ceil(alloc_size/1024)||'K' alloc_size_K, ceil(max_total_size/1024)||'K' max_total_size_K from v\$memstat order by 2 desc;
EOF
}

#vsz
loop8()
{
ps -o vsz -p $PID 
}

# 9.tablespace
loop9()
{
is -silent <<EOF
set linesize 200;
set colsize 35;
select
    rpad(ts.name, 20) as TBS_NAME,
    ts.max || 'M'  as MAX_SIZE,
    ts.used || 'M' as USED_SIZE
from
(
    select
        ts.name,
        trunc(sum(df.maxsize)*8/1024,0) max,
        trunc((ts.ALLOCATED_PAGE_COUNT*ts.page_size)/1024/1024,0) used
    from
        v\$tablespaces TS,
        v\$datafiles DF
    where
    ts.id = df.spaceid
    group by ts.name, ts.page_size, ts.total_page_count, ts.ALLOCATED_PAGE_COUNT
) ts
order by name;

EOF
}

getDisk()
{
UNAME=`uname`
if [ $UNAME = "HP-UX" ]
then
    bdf
else
    df -k
fi
}


getProp()
{
echo "** Altibase Properties **"
altibase -v
grep "MEM_DB_DIR" $ALTIBASE_HOME/conf/altibase.properties | grep -v "\#"
grep "DEFAULT_DISK_DB_DIR" $ALTIBASE_HOME/conf/altibase.properties | grep -v "\#"
grep "LOG_DIR" $ALTIBASE_HOME/conf/altibase.properties | grep -v "\#"
grep "LOGANCHOR_DIR" $ALTIBASE_HOME/conf/altibase.properties | grep -v "\#"
grep "LOGANCHOR_DIR" $ALTIBASE_HOME/conf/altibase.properties | grep -v "\#"
echo "ALTIBASE is install ==> `which altibase`"
echo "** Disk arry **"
ls -lrt /
echo ""
}

PID=`ps -ef|grep altibase | grep "boot from" | grep -v grep | tail -1  | awk '{print $2}'`
PID=${PID:=0}

echo '# VSZ'
loop8
echo ' '
echo ' '

echo '#1 CONNECTION COUNT'
loop1
echo ' '
echo ' '

echo '#2 STATEMENT COUNT'
loop2
echo ' '
echo ' '

echo '#3 sum of memtbl'
loop3
echo ' '
echo ' '

echo '#4 GC'
loop4
echo ' '
echo ' '

echo '#5 replication'
loop5
echo ' '
echo ' '

echo '#6 datafile'
loop6
echo ' '
echo ' '

echo '#7 memstat'
loop7
echo ' '
echo ' '

echo '#8 tablespace'
loop9
echo ' '
echo ' '


echo '#9 disk'
getProp
echo '================================================'
getDisk
echo ' '
echo ' '

echo '#10 vmstat'
echo 'fre*4 = ?K'
vmstat 1 5
echo ' '
echo ' '



 

.
Posted by .07274.

댓글을 달아 주세요

  1. Favicon of http://2379.eastendtalking.com/ghdstraightener.html BlogIcon GHd 2013.07.21 01:02 신고  댓글주소  수정/삭제  댓글쓰기

    희미한 달빛이 샘물 위에 떠있으면,나는 너를 생각한다.

.. .. .. select a.name index_space_name  ,d.table_name table_name , e.user_name user_name , b.index_name index_name
from v$tablespaces a , system_.SYS_INDICES_ b , v$index c , system_.SYS_TABLES_  d , system_.sys_users_ e
where a.id=b.tbs_id and b.index_id=c.INDEX_ID and b.table_id = d.table_id and b.user_id = e.user_id
.
Posted by .07274.

댓글을 달아 주세요

.. .. .. aexport의 사용법은 아래와 같습니다.

1. aexport를 수행합니다.
 (편의를 위해 새로운 디렉토리를 생성하고 (ex. /home/altibase/aexport) 그 디렉토리 내에서 작업.)
  -> sh> aexport -S 127.0.0.1 -U sys -P manager
    (위 작업중 다른 계정으로 사용하고 싶으면 사용계정 id , pw를 넣으면 된다.)

2. 작업이 완료되면 여러 파일이 생성된다 . 그 파일들의 명칭은 아래와 같다.
SYS_CRT_USER.sql : 유저 생성
SYS_PRIV_USER.sql : 유저 권한.
SYS_CRT_TBS.sql : 테이블 스페이스 생성
SYS_CRT_REP.sql : 이중화 객체 생성
ALL_CRT_VIEW.sql : 뷰 생성
ALL_CRT_PROC.sql : 저장 프로시저 생성.
{유저명}_CRT_TBL.sql : 테이블 생성
{유저명}_CRT_INDEX.sql : 인덱스 생성
{유저명}_CRT_FK.sql : 외래키 생성

run_il_in.sh : 데이터 로드 스크립트
run_il_out.sh : 데이터 다운로드 스크립트
run_is.sh : 스키마 생성 스크립트
run_is_fk.sh : 외래키 생성 스크립트
run_is_index.sh : 인덱스 생성 스크립트.


3. aexport 에 의하여 생성된 쉘 스크립트(.sh)를 실행하여 테이블의 데이터를 추출한다.
   --> sh>sh run_il_out.sh
  (위 스크립트는 iloader를 이용하여 모든 테이블의 데이터를 download 받는 스크립트입니다.)

4. 3번 작업을 완료하면, 테이블의 개수만큼 fmt파일, dat파일, log파일들이 생성되어 있을 겁니다.

5. 4번작업까지 완료하면 기존의 데이터베이스에서 데이터를 다운로드 하는 작업(백업)까지 완료된 것입니다.
  생성된 파일들을 백업파일로 보관하시면 됩니다.
6번 작업부터는 새로운 서버에 데이터베이스를 덥로드 하는 방법입니다.

6. 데이터베이스가 설치될 대상 서버에 알티베이스를 설치합니다. (db를 지우고 새로 설치하는 경우도 포함)

7. 4번까지의 작업을 통해 생성된 쉘스크립트를 이용해 대상 데이터베이스 구조를 생성.
  - sh> sh run_is.sh

8. 완료후 isql로 접속해 db 구조가 기존의 구조와 동일한지 확인.

9, 정상 생성되었다면 대상 데이터베이스에 기존의 데이터를 업로드 하는 작업을 수행.
  -> sh> sh run_il_in.sh

10. 9번 작업은 3번 작업으로 생성된 fmt파일dat파일 log파일들을 이용해 기존의 데이터를 대상 데이터베이스에 업로드 하는 작업이다.

11. 9번 작업이 완료되면 대상 데이터베이스에 인덱스 및 외래 키를 생성합니다.
--> sh> sh run_is_index.sh


TIP .  테이블 전체의 백업이 아닌 부분의 백업이 필요하다면 .sh 파일들을 원하는 테이블 부분만 돌아가도록 수정하면 된다.

.
Posted by .07274.

댓글을 달아 주세요

  1. Favicon of http://qy.cheapoakleysunglassesmz.com/ BlogIcon oakley sunglasses cheap 2013.04.14 05:06 신고  댓글주소  수정/삭제  댓글쓰기

    만금을 주고도 살 수 없는 행복감에 가슴이 부풀었다.

  2. Favicon of http://5193.4secat.net/ghd.php BlogIcon ghd 2013.07.24 03:29 신고  댓글주소  수정/삭제  댓글쓰기

    슬퍼서 우는거 아니야..바람이 불어서 그래..눈이 셔서..

.. .. .. /oracle/app/oracle/product/920/network/admin/tnsnames.ora
.
Posted by .07274.

댓글을 달아 주세요

.. .. ..

1. OS Command ( 디스크 정보 확인. )

df -k

Available Partition Check

 

2. Memory  ( Table 정보 확인. )

select

    b.user_name || '.' || a.table_name table_name,

    round((c.fixed_alloc_mem+c.var_alloc_mem)/1024/1024,3) alloc,

    round((c.fixed_used_mem+c.var_used_mem)/1024/1024,3) used,

    round((c.fixed_used_mem+c.var_used_mem)*100/ (c.fixed_alloc_mem+c.var_alloc_mem),2) '%USED'

from system_.sys_tables_ a, system_.sys_users_ b, v$memtbl_info c

where a.user_id = b.user_id

    and a.table_oid = c.table_oid

    and a.tbs_id=0

    and b.user_name <> 'SYSTEM_'

    and a.table_type='T'

order by 2 desc


3.Data export
( db의 테이블의 정보를 파일로 받아내린다.)

- table 의 컬럼 정보를 내려 받는다.

${ALTIBASE_HOME}/bin/iloader -s 127.0.0.1 -u DBWORK -p chrhthr formout -f DBWORK_IP_CUR_SESSION.fmt -T IP_CUR_SESSION

f: formout 생성옵션

( T: 작업대상 테이블의 이름 )

 

- table의 데이터를 정해진 구분자를 이용해 파일로 내려 받는다. )

${ALTIBASE_HOME}/bin/iloader -s 127.0.0.1 -u DBWOK -p **** out -f DBWORK_IP_CUR_SESSION.fmt -d IP_CUR_SESSION.dat -log IP_CUR_SESSION.log -r "^T-t^%n" -t "^C-c^"

(  r: 라인 및 로우 구분자

t: 컬럼구분자

d: 떨어뜨릴 데이터 파일 이름 )

 

4.Data import  ( 내려받은 데이터 파일을 db에 넣는다. Db에 동일한 스키마를 가진 테이블이 필요 )

- 정해진 테이블에 데이터를 정해진 구분자 규칙에 따라 입력한다.

${ALTIBASE_HOME}/bin/iloader -s 127.0.0.1 -u DBWOk -p ****in -f DBWORK_IP_CUR_SESSION.fmt -d IP_CUR_SESSION.dat -log IP_CUR_SESSION.bad -array 100 -commit 2000 -r "^T-t^%n" -t "^C-c^"

(  Array: 통신 비용을 줄이기 위한 배열 옵션 권장값은 100 ~ 200

Commit: 2000건마다 커밋을 하겠다. 권장값은 1000 ~ 3000 )


 

 

.
Posted by .07274.

댓글을 달아 주세요

.. .. .. AIO 와 관련해서 AIX 버전과 관계없이 posix_aio0 커널 값이 Available 로 설정되어 있어야 한다. 만약 Available 로 설정되어
있지 않은 경우 서버 구동이 실패하며 다음과 같은 메시지를 확인할 수 있다. AIO 의 값은 다음과 같이 확인할 수 있다.

$ lsdev -C |grep aio
aio0 Available Asynchronous I/O (Legacy)
posix_aio0 Defined Posix Asynchronous I/O


위와 같이 posix_aio0 값이 Defined 로 설정되어 있다면 smit 를수행한 후 Device > Asynchronous I/O > Posix Asynchronous I/O > Configure Defined Asynchronous I/O 에서 posix_aio0 를 Defined 에서 Available 로 변경한다.
AIO 가 설정되어 있지 않을 경우 알티베이스 구동 시 다음과 같은 에러 메시지가 출력된다.

$ altibase –v
Could not load program altibase:
Symbol resolution failed for
/usr/lib/threads/libc.a[posix_aio_64.o] because:
Symbol _posix_kaio_rdwr64 (number 2) is not exported from
dependent module /unix.
Symbol _posix_listio64 (number 3) is not exported from
dependent module /unix.
.
Posted by .07274.

댓글을 달아 주세요

  1. Favicon of http://10139.acelgxc.com/ugg.php BlogIcon ugg boots 2013.07.23 08:14 신고  댓글주소  수정/삭제  댓글쓰기

    다른 남자 부르면서 울거면 나한테 이쁘지나 말던지

.. .. ..

create table tb_ip_XXXX

(   IPS                                  VARCHAR(15)     FIXED   NOT NULL ,

    IPE                                      VARCHAR(15)     FIXED   NOT NULL ,

    INTIPS                                   BIGINT          FIXED   NOT NULL ,

    INTIPE                                   BIGINT          FIXED   NOT NULL ,

    CONSTRAINT TB_IP_XXXX_IDX_PR1 PRIMARY KEY (IPS,IPE)

);  CREATE INDEX tb_ip_XXXX_idx1 ON tb_ip_XXXX(INTIPS,INTIPE)



CREATE UNIQUE INDEX PK_USER_MENU ON TB_USER_MENU(USER_GRP_CD, MENU_ID) TABLESPACE KTIDP_IDX;

.
Posted by .07274.

댓글을 달아 주세요

2010.08.11 11:09

테이블 복사 스크립트 I.lib()/I.lib(Altibase)2010.08.11 11:09

.. .. ..
insert into tb_xxxx
(  PSAID , TELURI , OID , HDONGCODE , POSTALCODE , ADDRESS , RDATE , ODATE , IP , IP_ADDR )
select
     PSAID , TELURI , OID , HDONGCODE , POSTALCODE , ADDRESS , RDATE , ODATE , IP , IP_ADDR
 from  TB_xxxx2;
.
Posted by .07274.

댓글을 달아 주세요

  1. Favicon of http://ad.planchasghdav.com/ BlogIcon ghd 2013.04.12 16:33 신고  댓글주소  수정/삭제  댓글쓰기

    높임법은 남을 존경하는 말투로 말하는 방법이다.

  2. Favicon of http://822.eastendtalking.com/nikeshoes.html BlogIcon nike air max 2013.07.23 05:21 신고  댓글주소  수정/삭제  댓글쓰기

    좋으면 좋고 싫으면 싫은 거지, 뭐가 이렇게 어렵고 복잡하냐구