달력

5

« 2024/5 »

  • 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
.. .. ..

SELECT TRUNC(MEM_MAX_DB_SIZE/1024/1024, 2) Max,
       TRUNC(MEM_ALLOC_PAGE_COUNT*32/1024, 2) Alloc,
       TRUNC((MEM_ALLOC_PAGE_COUNT - MEM_FREE_PAGE_COUNT) * 32/1024, 2) Used,
       TRUNC(MEM_FREE_PAGE_COUNT*32/1024, 2) Free
FROM V$DATABASE;
 
위에서 MAX 는 메모리테이블스페이스가 늘어날 수 있는 최대 크기를 나타냅니다.
Alloc(이전 쿼리에서 currsize)은 현재 DB에 할당된 메모리 크기를 나타냅니다.
Used는 할당된 크기 안에서 실제로 사용 중인 메모리를 말하며 Free는 사용 가능한 용량을 나타냅니다.
 
Free 사이즈가 존재하는 이유는 사용중인 테이블들에서 delete 또는 테이블 drop 등으로 발생한 여유 메모리를 O/S에 바로 반납하지 않고 재사용을 위해 DB가 가지고 있기 때문입니다.
 
.
:
Posted by .07274.
2010. 7. 15. 11:48

chmod 설정 (사용법) I.lib()/I.lib(Unix)2010. 7. 15. 11:48

.. .. ..

 
사용법: chmod [옵션]... MODE[,MODE]... FILE...
  또는: chmod [옵션]... 8진수-MODE FILE...
  또는: chmod [옵션]... --reference=RFILE FILE...
Change the mode of each FILE to MODE.

  -c, --changes           like verbose but report only when a change is made
      --no-preserve-root  do not treat `/' specially (the default)
      --preserve-root     fail to operate recursively on `/'
  -f, --silent, --quiet   suppress most error messages
  -v, --verbose           output a diagnostic for every file processed
      --reference=RFILE   use RFILE's mode instead of MODE values
  -R, --recursive         change files and directories recursively (하위폴더까지)
      --help     이 도움말을 표시하고 끝냅니다
      --version  버전 정보를 출력하고 끝냅니다


예제 ) 

drwxr-xr--  3 cool  pop  4096  6월 17  2009 test

test 라는 디렉토리가 존재한다. 
현재의 test 라는 디렉토리는 pop 그룹의 cool 유저의 소유에 있는 디렉토리이다. 

앞에 있는 문자를 보면

d : 디렉토리, 
r : 읽기(4), 
w: 쓰기(2), 
x: 실행(1)
rwx(7), r-w(5), r--(4), --x(1)

의 속성을 가지고 있고 세자리씩 구분하여 

rwx : 소유주 권한
r-x : 그룹 권한
r-- : 다른 사용자 권한

으로 나눌수 있다.  
해석하여 본다면 test라는 폴더는 소유주(cool)는 해당 디렉토리에 읽기,쓰기,실행의 권한이 있고
같은 그룹(pop)에 속한 다른 유저는 읽기,실행에 대한 권한이 있습니다. 소유주도 아니고 같은 그룹도
아닌 다른 사용자는 읽기의 권한 밖에 없습니다.

* 같은 그룹(pop)의 사용자(cool2) 가 test폴더 내에 파일을 생성할 경우 
  - 현재 같은 그룹의 cool2 사용자는 test라는 그룹에 쓰기 권한이 없어 파일을 생성할수 없습니다.
  - chmod를 통하여 같은 그룹 사용자도 쓰기가 가능하도록 변경해야 합니다.
    chmod -R 774 test
    drwxrwxr-- 2 cool pop 4096  3월 18 15:34 test
  - 같은그룹사용자도 이제 test폴더에 파일을 생성할수 있습니다.

* 모든사용자가 test폴더를 읽기,쓰기,실행 할경우 
  - 현재 test 폴더의 다른사용자 권한은 읽기 권한 밖에 없습니다. 
  - 다른사용자가 test 폴더에 대하여 읽기,쓰기,실행을 하려면 chmod를 통하여 권한을 변경하여야 합니다.
    chomd -R 777 test
    drwxrwxrwx 2 cool pop 4096  3월 18 15:34 test
  - 이제 다른사용자들도 test폴더에 접근하여 읽기,쓰기,실행을 할수 있는 권한이 생겼습니다.

* 소유주만 해당 디렉토리를 접근 제어하고 싶은경우
  - 현재 test 폴더에 소유주의 읽기,쓰기,실행 권한만을 주고 나머지는 없애버립니다.
    chomd -R 700 test
    drwx------ 2 cool pop 4096  3월 18 15:34 test
  - 이제 소유주(cool)만 test 디렉토리에 대하여 읽기,쓰기,실행이 가능하고 같은 그룹이나 다른 사용자들은 해당 폴더에 엑세스 할수 없습니다.

.
:
Posted by .07274.
.. .. ..

메모리 테이블 스페이스의 초기 크기를 변경할 수는 없습니다.

 

create memory data tablespace ts_bis_master_dat size 100m

checkpoint path 'F:\altibasedata\userdata';

 

이렇게 메모리 테이블 스페이스를 생성하셨으면, ts_bis_master_dat 의 초기 크기는 100m 입니다.

이 크기를 1G 로 늘리고 싶다고 하셨는데요, 최대 1G까지 사용하고 싶다.. 는 것을 말씀하시는 것이라면,

다음과 같이 ALTER TABLESPACE.. 구문으로 변경 가능합니다.

 

ALTER TABLESPACE ts_bis_master_dat

ALTER AUTOEXTEND ON NEXT 256M MAXSIZE 1G;

 

AUTOEXTEND ON 으로 설정하시면, 테이블스페이스의 확장이 필요할 때 자동으로 확장될 수 있도록 설정하는 것이며,

'NEXT 크기' 자동확장 시 확장되는 크기,

'MAXSIZE 크기' 는 최대로 확장할 수 있는 크기

를 의미합니다.

.
:
Posted by .07274.
.. .. ..
1. sys 계정으로 접속한다.
a. ISQL -SYSDBA
b. sys
c. ma....

2. 이중화 프로퍼티 확인 후 수정
$ALTIBASE_HOME/conf/altibase.properties
         server 1 : PORT_NO = 20301                      ,          REPLICATION_PORT_NO = 21301
         server 2 : PORT_NO = 20301                      ,          REPLICATION_PORT_NO = 23301


3. 이중화 테이블 생성  
 CREATE TABLE TEST (I1 INTEGER PRIMARY KEY, I2 CHAR(10) );

4. 이중화 객체 생성 
server 1: create replication rep with '210.223.88.138' , 23301 from dbwork.tb_ip_ne_addr to dbwork.tb_ip_ne_addr      
server 2: create replication rep with '210.223.88.139' , 21301 from dbwork.tb_ip_ne_addr to dbwork.tb_ip_ne_addr


5. 이중화 구동과 종료
  alter replication rep start;
  alter replication rep stop;


6. 이중화 객체 확인
  select * from v$repreceiver;
  select * from v$repsender;
  select * from v$repgap;   < -- gap 확인





기타

이중화 테이블 삭제
1. ALTER REPLICATION REP STOP;
2. ALTER REPLICATION REP DROP TABLE FROM DBWORK.TB_IP_NE_ADDR  TO DBWORK.TB_IP_NE_ADDR

이중화 테이블 추가
1. ALTER REPLICATION REP STOP;
2. ALTER REPLICATION REP ADD TABLE FROM DBWORK.TB_IP_NE_ADDR TO DBWORK.TB_IP_NE_ADDR


이중화 네트워크 추가
1. ALTER REPLICATION REP STOP;
2. ALTER REPLICATION REP ADD HOST '210.223.88.999',30500;  (삭제 : DROP , 변경 : SET )

이중화 이름과 테이블정보등 상세정보 보기
select local_user_name, local_table_name from system_.sys_repl_items_;
.
:
Posted by .07274.
.. .. ..
알티베이스 버젼
version 4.3.9.11 IBM_AIX_5.3-64bit-4.3.9.11-release-xlC_r (powerpc-ibm-aix5.3.0.0) Sep 12 2006 20:39:18, binary db version 4.11.1, meta version 4.8.1, cm protocol version 4.5.1, replication protocol version 4.7.1

set linesize 1000;
set colsize 20;
 
SELECT
         UF.NAME SPACENAME,
         ROUND(DF.MAXSIZE, 3)||' MB' MAXSIZE ,
         ROUND(DF.CURRSIZE, 3)||' MB' CURRSIZE ,
         NVL(to_char(ROUND(UF.USED_PAGE_CNT*8/1024,3)),'N/A')||' MB' USEDSIZE
     FROM
         (SELECT
             SUM(MAXSIZE)*8/1024 MAXSIZE ,
             SUM(CURRSIZE)*8/1024 CURRSIZE ,
             SPACEID
         FROM
             V$DATAFILES
         GROUP BY SPACEID) DF , V$TABLESPACES UF
     where DF.SPACEID = UF.ID
     UNION ALL
     SELECT
         'SYS_TBS_MEMORY' SPACENAME,
         ROUND(MEM_MAX_DB_SIZE/1024/1024,3)||' MB' MAXSIZE,
         ROUND(MEM_ALLOC_PAGE_COUNT*32/1024,3)||' MB' CURRSIZE,
         TO_CHAR(ROUND(MEM_ALLOC_PAGE_COUNT*32/1024,3))||' MB' USEDSIZE
     FROM
         V$DATABASE
     ORDER BY 1;
.
:
Posted by .07274.
.. .. ..

alter session set explain plan = on
.
:
Posted by .07274.
.. .. ..
4.3.9 버전에서 테이블 스페이스 사용량 조회 확인 쿼리입니다.
 
set linesize 1000;
set colsize 20;
 
SELECT
    UF.NAME SPACENAME,
    ROUND(DF.MAXSIZE, 3)||' MB' MAXSIZE ,
    ROUND(DF.CURRSIZE, 3)||' MB' CURRSIZE ,
    NVL(to_char(ROUND(UF.ALLOCATED_PAGE_COUNT*8/1024,3)),'N/A')||' MB' USEDSIZE
FROM
    (SELECT
        SUM(MAXSIZE)*8/1024 MAXSIZE ,
        SUM(CURRSIZE)*8/1024 CURRSIZE ,
        SPACEID
    FROM
        V$DATAFILES
    GROUP BY SPACEID) DF , V$TABLESPACES UF
where DF.SPACEID = UF.ID
UNION ALL
SELECT
    'SYS_TBS_MEMORY' SPACENAME,
    ROUND(MEM_MAX_DB_SIZE/1024/1024,3)||' MB' MAXSIZE,
    ROUND(MEM_ALLOC_PAGE_COUNT*32/1024,3)||' MB' CURRSIZE,
    TO_CHAR(ROUND(MEM_ALLOC_PAGE_COUNT*32/1024,3))||' MB' USEDSIZE
FROM
    V$DATABASE
ORDER BY 1;
.
:
Posted by .07274.
2010. 6. 25. 15:27

아이폰 개발자 등록 절차 I.lib()/I.lib(etc)2010. 6. 25. 15:27

.. .. ..
견해는 정말 환상적었지만 개발 환경에 대한 개인적인 견해는 그리 좋은 평을 하고 싶지는 않다...
뭐랄까? 전세계 소프트웨어 개발자들에게 iPhone App를 개발하기 위해선 싫든 좋든 그들을 충실히 따르는 Third party가 되어야 한다는 無言의 압박을 가하고 있다는 느낌마저 들게 하는데

그 단적인 예로로
  첫번째, iPhone App를 개발하기 위해서는 무조건 Mac PC가 필요하다는것
  두번째, 개발에 사용되는 Mac PC, iPhone, Application, 심지어 개발자까지 돈을 지불해 가며 승인을 거쳐야
             iPhone Device에서 직접 테스트 할수 있다는 것이다...

            참고로 모든 라이센스는 1년동안 유효하고 개인이나 소규모 법인들이 사용하는 Standard는 99달러 , 
                      대규모 법인( 500명 이상 )는 255달러를 지불해야 한다. 
                      라이센스를 받지 않고서는 iPhone Device를 가지조 직접 테스트 할수도 없고 App Store에 등록도 하지 못한다. 
                       
지금까지 개인용 PC OS 의 독점 업체로 MS가 횡포를 부렸다면 앞으로는 스마트폰 OS 독점 업체로 애플이 횡포를 부릴지 않을까라는 우려심이 살짝 들기도 하고 이런 변화무쌍한 무한 경쟁시대에서 살아 남기 위해 발버둥 치는 소프트웨어 엔지니어의 고충을 생각하면 서글프기 짝이 없다...

자.. 용기를 내서 한번 iPhone을 한번 쑤셔 보자...

순서는 1, 개발자 등록 및 라이센스 계약하기 , 2, Sample iPhone App 개발, 3, xcode 시뮬레이터로 테스트 하기 , 4, iPhone Device에서 테스트하기 로 진행하겠다

1. 개발자 등록 및 라이센스 계약 하기
   준비사항 : 
                  공통 : Mac PC, 신용카드(Visa)
                  법인:  영문 사업자 등록증, 법적 책임자 정보

                  주의 사항 : 신청자의 영문 이름이 결제 카드의 영문이름과 동일해야 한다 
                                  법인 신청시 영문 사업자 등록증과 토시 하나 틀리면 안된다

    - 개발자 등록 사이트 접속(http://developer.apple.com/programs/register/)
       

         - 상단 ( Get Started )  클릭
             * Create ApplD : 새로운 ID 생성
             * Use an existing Apple ID : 이미 만들어진 ID 사용
             * 여기서는 새로운 ID 생성을 선택하고 Continue 버튼을 클릭 
          *주소랑 메일은 정확히 기재해야함

           * 이것 저것 개인정보 넣고 Continue
          * 동의하고 I Agree 클릭(클릭하는 순간 기재한 메일로 Verification Code가 날라 갑니다. )
 
           * 앞 단계에서 입력한 메일주소로 Verification( 확인서 )가 보내졌을거구 그 메일에 보면 확인 코드가 있는데..
             그 코드를 빈 박스에 복사해서 넣구 Continue
           * 여기서 주의 할것은 iPhone에서 보내는 메일은 모두 영문으로  날라 오기때문에 스팸메일로 빠질수 있으니 
             스펨 메일함도 체크....

           - 메일 내용 -
                * 메일에서 부여 받은 확인서 코드 "28961" 를 복사해서 붙혀 넣고 Continue.. ^^

        
           * 뭐.. 이제 등록 되었으니 ...아이디랑 패스워드로 로그인 하면 여러가지 지원을 받을 수 있다... 정도로 해석하면 될듯하고
              Continue 클릭

           이제 개발자 등록 되었으니 실제로 SDK를 구입해야 할차례...
     
            
            * 오른쪽 상단 "Join the Developer Programs 메뉴의 "Join Today" 클릭



           * Contine ( iPhone SDK로 개발하기 위해선 Mac OS X Leopard나 그 이후 버전이 필요하다라고 되어 있군.. 도둑놈들..)

           
           * 좀전에 개발자 ID는 등록 했고 프로그램 사용에 대한 등록만 하면 되니.. "New Apple Developer" 에 enrollment 항목
             에 체크하고 Continue

            * 여기서 개인으로 등록할거야 법인으로 등록할거냐.. 선택...
             
              법인 선택 시 영문 사업자 등록증에 기재된 내용과 똑같이 기재해야 하고
              회사 대표 전화번호, 법적 책임자 정보를 기재하는 화면이 개인 신청에 비해 추가된 화면임
              영문 사업자 등록증을 팩스로 보내 달라는 전화가 옴.

            "Company" 클릭 시 화면 

              여기서는 개인으로 신청할거니깐.. "Individual" 버튼에 클릭
          * 결제 카드에 적힌 이름을 넣어달라구 하구 주소랑 전화번호는 똑바로 기재 해 달라고 하고..
             요거 잘못 기재하면 승인 안납니다...
             
          * iPhone SDK를 구입할건지 Mac SDK를 구입할건지 체크 
    
         *입력한 내용 한번 더 확인 해주고...
         
          * License 동의하고
        
         *"Add to cart" 클릭하면 결제 창이 나오고 결제하기 버튼 크릭하면됨
          * 결제하는것으로 끝이 납니다..

          * 하지만 여기서 끝이 아니라는거......
          결제가 되더라도 바로 iPhone Device를 테스트 할 수 없습니다. 

          결제가 된 후 승인에 이르기까지 iPhone에서 몇번의 메일과 필요에 따라 전화가 올수 있습니다. 
          물론 전화는 한국 사람이 합니다..^^

          법인일 경우 법적 책임자에게 전화가 오고 또 영문 사업자 등록증을 팩스로 보내 달라는 메일도 날라 옵니다. 

          그때 지시에 따라 찬찬히 수용하시면 iPhone Device로 테스트 할수 있는 첫번째 과정이 끝납니다.
            
          다음 강좌에서는 개발자 등록 승인이 이루어지고 난뒤 어떻게 iPhone Device로 테스트 할수 있는지 알아보도록 하지요...

iPhone Device test 강좌 바로가기
iPhone Sim Unlock & iPhone jailbreak 강좌 바로가기

'I.lib() > I.lib(etc)' 카테고리의 다른 글

ojdbc14 // 부적합한 열 유형 에 대한 대처법. // oracle  (3) 2010.09.06
[펌] 호스트 파일 ( Hosts file )  (1) 2010.08.13
OSGi 란?  (0) 2010.05.27
페이스북,트위터 기능  (0) 2010.03.22
WiseGrid  (0) 2010.03.15
.
:
Posted by .07274.
.. .. ..

디폴트로 되어 있는 프롬프트를 바꾸고 싶은가? 화려한 컬러를 넣고 싶은가? 그렇다면 당신은 제대로 찾아 왔다.

bash는 프롬프트 유지를 위해 PS1에서 PS4까지 네 가지 환경변수를 갖고 있다. 여기서는 로긴쉘에 적용되는 PS1만 다룬다.

먼저 /etc/profile에서 설정된 기본 PS1 값을 살펴 보자. 어쩌면 당신은 아직도 이 기본값을 사용하고 있을 지도 모른다.

잠시후 당신은 /etc/profile에서 PS1에 대한 언급이 전혀 없음을 발견하고는 분노에 휩싸여 이 사이트를 떠나려고 할 지도 모른다. 잠깐! 파트1에서 얘기했던 내용을 다시 한번 떠올려 보자, /etc/profile의 맨 아래에 보면 /etc/bashrc가 존재할 경우 이것을 source 한다고 말했다. /etc/bashrc에 바로 기본 PS1 값이 들어 있다.

PS1='\h:\w \u\$ '

한 부분씩 설명하겠다. 첫번째 \h는 호스트이름을 보여준다. 그러고 콜론을 찍고 \w는 현재 작업 디렉토리를 보여준다. 그다음 \u는 유저네임을 보여준다. \$는 UID가 영이면 #를 아니면 $을 출력한다. 마지막으로 사용자가 명령어를 입력하는 공간과 분리를 위해 공백이 하나 들어가 있다.

그런데 참고로, 오리지널 bash 배포판에서 PS1의 기본값은 PS1='\s-\v\$ ' 이다.

\h, \w 등등 이렇게 하나의 백슬래쉬와 하나의 문자로 구성된 문자열이 프롬프트에 어떠한 정보를 넣을 것인지를 결정한다. 이 문자열들에 대한 전체 리스트는 다음과 같이 얻을 수 있다.

  1. man bash
  2. 슬래쉬를 하나 치고 PROMPTING 라고 입력한 후, 리턴을 친다
  3. 슬래쉬를 하나 치고 리턴을 친다

PROMPTING은 반드시 대문자로 해야 한다. 즉, bash 메뉴얼에서 두번째 나타나는 PROMPTING 이라는 문자열을 찾는다.

그럼 이제 색깔 넣는 연습을 해 보자. 안시 컬러는 \033[으로 시작되고 컬러코드가 이어 나오고 m으로 끝난다. bash에서는 \033 대신에 \e를 사용할 수 있다.

다음은 컬러코드 리스트이다.

0 = 기본값 1 = 볼드체 4 = 밑줄 5 = 점멸 7 = 역상
31 = 빨강 32 = 초록 33 = 오렌지 34 = 파랑 35 = 자주 36 = 청록 37 = 회색
40 = 검정 배경
41 = 빨강 배경
42 = 초록 배경
43 = 오렌지 배경
44 = 파랑 배경
45 = 자주 배경
46 = 청록 배경
47 = 회색 배경
90 = 진회 색
91 = 연빨강
92 = 연두 93 = 노랑 94 = 연한 파랑 95 = 연한 자주 96 = 하늘색
100 = 진회색 배경
101 = 연한 빨강 배경
102 = 연두 배경
103 = 노랑 배경
104 = 연한 파랑 배경
105 = 연한 자주 배경
106 = 하늘색 배경

이제 파트1에서 소개했던 예제 .bash_profile에 나오는 PS1의 값을 이해할 수 있다.

PS1="\e[33m[\w]\e[0m\n\!: \u$ "

오렌지 색깔로 현재 작업디렉토리를 표시한 후, 색깔을 까만색으로 다시 주고 (이것은 내 터미널의 기본바탕 색깔이 까만색이기 때문이다) 다음 줄로 가서, 유저네임을 표시하고 $을 붙여 준 후, 공백을 하나 표시한다.

고급예제 하나 살짝 소개한다. 네트웍 관리자라면 현재 얼마나 많은 사용자들이 로긴했는지 모니터링하고 싶어한다. 간단하게 프롬프트에 이 정보를 집어 넣을 수 있다.

PS1='$(who | wc -l) \w\$ '

$(..)은 다른 쉘의 백틱(물결무늬 아래에 있는 문자)이 bash에서 개선된 형태이다. $(..)에 대해 본격적으로 다루는 것은 이 기사의 범위를 벗어 난다.

2.2 히스토리 전방/후방 검색 키 바인딩 변경하기

히스토리를 앞뒤로 왔다 갔다 하는 키는 익히 아는 대로 상향키와 하향키로 되어 있다. 히스토리 전방/후방 검색 키는 너무 복잡해서 나 자신도 잊어 버렸다. 이렇게 복잡한 키를 상향키와 하향키로 변경해 보자. 소개했던 예제 .bash_profile에 나오는 내용이다.

bind '"\M-[A":history-search-backward'
bind '"\M-[B":history-search-forward'

이 키 바인딩은 기존의 상향키와 하향키로 히스토리를 누비는 기능을 해치지 않는다. 이것은 글자를 몇 개 입력한 후, 상향키와 하향키를 움직였을 때 동작한다.

즉, 히스토리 상에 cd 명령을 몇 개 내리고 다른 명령도 몇 개 내린 후라고 가정해 보자. 이때 프롬프트에서 cd까지만 입력하고 상향키를 눌러 보면 cd로 시작되는 히스토리의 내용만 보여 준다


.
:
Posted by .07274.
.. .. ..
vi를 실행할 때 단말기 폭 초과라는 메시지가 나오는 것은
터미널 창의 Column 이 vi가 한 줄에 표현할 수 있는 글자 수보다 더 크기 때문이다.

오래된 버전의 vi 일 경우 한 줄에 표현할 수 있는 글자 수가 적어서
이런 문제가 종종 발생하기 때문에 명령어로 폭을 넓혀 주면 된다.

shell> stty columns 160


이렇게 명령어를 쳐주면 해결된다.
.
:
Posted by .07274.