ALTIBASE 사용자가이드 Templete
|
|
- 희아 후
- 5 years ago
- Views:
Transcription
1 Real Alternative DBMS ALTIBASE, Since 1999 ALTIBASE 환경의개발시고려사항가이드 Copyright c 2000~2013 ALTBASE Corporation. All Rights Reserved.
2 Document Control Change Record Date Author Change Reference Lim272 Created Reviews Date Name (Position) Distribution Name Location ALTIBASE 환경의개발시고려사항가이드 2 page of 30
3 목차 개요... 4 설계단계의고려사항... 5 이중화환경의고려사항... 5 HA(High Availability) 및백업에대한고려... 6 테이블설계의고려사항... 7 파티션테이블의제한... 7 하드웨어준비의고려사항... 8 Not Support Feature... 8 개발단계의고려사항... 9 DBMS 접속방식의선택... 9 Thread 프로그램, Connection Pool 의관리 Application 의연결해제시확인사항 Session Timeout SELECT Cursor 사용시주의 SQL Error 의체크 LOB 타입의주의 Prepared Statement 의사용 SQL Tuning 대량변경작업의주의 ALTIBASE TRACE 로그 Trace 로그의분류 altibase_boot.log altibase_qp.log altibase_sm.log altibase_rp.log CLIENT APPLICATION 에러메시지 Connection does not exist Communication link failure Calculate stack overflow Conversion not applicable Fixed record size exceed a page size Invalid cursor state Not defined cursor Invalid request to process the SQL statement Invalid literal Invalid length of data type Indicator variable required but not supplied error Incompatible NLS between the client and the server Invalid size of data to bind to host variable [Data Size ] Invalid character in use Too many pages are allocated The Tablespace does not have enough free space The transaction exceeds lock timeout specified by user The update log size is bigger than TRX_UPDATE_MAX_LOGSIZE String data right truncated Value overflow Several statement still opened ALTIBASE 환경의개발시고려사항가이드 3 page of 30
4 개요 본문서는 ALTIBASE DBMS 을이용한개발환경에서개발자가고려해야할사항들을설명한다. 특정개발환경별참고문서는각개발환경별로작성된기술문서를참고하도록한다. 본문서에는일반적인사항을기술하며문서후반에는 ALTIBASE 에러메시지들에대하여설명하고있다. 문서에서설명하는 ALTIBASE 버전은 5.3 이상을기준으로한다. 다음의문서들을환경에맞게같이참고하도록한다. 1. 디스크 IO병목을고려한볼륨구성가이드 2. ALTIBASE 백업정책결정을위한고려사항 3. 효율적인이중화구성가이드 4. ALTIBASE 이중화제약사항가이드 5. ALTIBASE 용량산정가이드 6. ALTIBASE Precompiler 개발가이드 7. ALTIBASE SQL Tuning Guide 8. ALTIBASE 자바개발가이드 9. ALTIBASE & VC Express Edition 개발가이드 10. ORACLE To ALTIBASE 변환가이드 11. ALTIBASE & WAS 연동가이드 ALTIBASE 환경의개발시고려사항가이드 4 page of 30
5 설계단계의고려사항 ALTIBASE 를이용하여 DB 또는시스템설계를수행하는경우고려할사항들을설명한다. 설계단계에서고려하지못한사항들은이후개발뿐아니라운영단계에까지미치는영향이크기때문에반드시아래사항들을고려하여설계에참고할것을권장한다. 이중화환경의고려사항 1 ALTIBASE 는네트웍기반의이중화방식 ALTIBASE 는네트웍을기반으로변경트랜잭션로그를송 / 수신하여데이터를동기화하는형태의이중화방식을채택하고있다. 즉, 일반적으로사용자가흔히이해하는디스크를공유하는방식이아니다. 따라서, 네트웍환경에서발생할수밖에없는데이터전송지연등으로인한동기화부분을고려하여설계를해야한다. ALTIBASE 의이중화방식은 Lazy 방식과 Eager 방식이있다. Lazy 방식은데이터의전송지연을허용하는형태이며 Eager 방식은데이터의지연을허용하지않는형태이다. 이와같은 Lazy/Eager 의설정은세션단위로도설정이가능하다. 따라서, 데이터의전송지연이허용되는수준의업무라면 Lazy 방식을채택하고그렇지않은데이터의동기화가반드시필요한업무라면 Eager 방식을업무별로적절하게설정하여운용하도록한다. 비교 Lazy 방식 Eager 방식 성능단독서버의 90% 성능수준 Lazy 방식대비현저한성능저하 동기화 상대편서버에변경트랜잭션로그의전송성공만을확인하는구조이기때문에성능은우수한반면동기화는지연될수있음 상대편서버에데이터불일치를원천방지하면서반영완료가된후로컬에도 Commit 되기때문에성능은지연되지만데이터의동기화부분은지연되지않음. 2 데이터불일치의방지방안고려 동일한 Primary key 를갖는레코드를양쪽서버에서동시에서로다른값으로변경하는경우이중화방식에서는서로다른레코드로변경되는상황이발생하게된다. 이경우사용자가원치않는데이터의불일치가발생하기때문에업무요건을충분히파악하여변경업무를이중화로구성된그룹내에서한쪽서버에서만발생하도록프로그램을배치하거나동일한 PK 를갖는레코드가이중화로구성된그룹내에서변경이동시에발생하지않도록배치를해야만한다. 예를들면, L4 switch 를사용한다면업무별로프로그램을각기다른서버에배치하여 X 망에서접속한프로그램은 1 번 DBMS 서버로접속을하고 X 망에서접속한프로그램은 2 번 DBMS 서버로접속을수행하는형태의구성이가능할것이다. 또는, 사용자가명시적으로서비스프로그램의 DBMS 접속부분에 IP 를지정하는것도방법이된다. 3 로그기반의이중화방식 ALTIBASE 환경의개발시고려사항가이드 5 page of 30
6 ALTIBASE 의이중화는로컬서버에서발생한트랜잭션의변경로그를전송하는형태이다. 한개의 SQL 문으로백만건을변경하였다하더라도동일하게원격서버로한개의 SQL 문의전송되는형태가아닌백만건의변경트랜잭션로그가모두전송되는구조임을의미한다. 이외도이중화환경의주요고려사항들은 ALTIBASE 의기술문서인 효율적인이중화구성가이드, 이중화제약사항가이드 문서를반드시참고하도록한다. HA(High Availability) 및백업에대한고려 일반적인상황에서는장애가발생하고복구가되면이중화는자동으로자신이가지고있는장애시점에미처보내지못한트랜잭션로그를상대편에보내어데이터동기화를수행하게된다. 하지만, 네트웍의특성상장애시점에변경트랜잭션로그의전송불가에의한데이터불일치로인해서비스를바로 Fail-Over 할수없는업무가있는지를고려해야한다. 반드시데이터가동기화된이후에만서비스가가능한업무라면 ALTIBASE 는데이터미지연분에대한반영을위해 Off-Line replicator 를제공하고있다. 다만, 이것은장애서버의디스크에접속이가능한상태에서만사용이가능하다는제약조건이있다. ( 이기능을쓰고자한다면공유디스크장비를구축하는것을권장한다.) 이러한 Off-Line replicator 를사용할수있는환경이아니라면프로그램에서장애시점의 Raw-Data 를누적하여필요한부분만큼정상서버에반영한후서비스를이관하는형태의 HA 정책을수립해야한다. 예를들면, 증권사의경우대외계를통해나가는모든데이터는고유번호로관리된다. 이번호는대외계시스템과 DB 에동일하게존재하기때문에장애발생시대외계와 DB 시스템간에차이가발생한부분만큼을정상서버에반영하는업무로직을사용하는경우도있다. HA 외에도물리적인디스크장애로인한데이터파일의손상및트랜잭션로그파일의손상으로인한장애에대비하여백업정책을수립해야한다. ALTIBASE 의백업방식은아카이브백업방식이며증분백업방식을제공하고있지않다. 따라서, 사용자는백업시점에모든파일을백업하거나또는, 테이블스페이스별로순차적으로백업을하든 DB 전체를백업해야하는방법을선택해야한다. 백업방식은다음과같은형태중하나를택해야한다. 방식 iloader 아카이브백업방식콜드백업방식 설명 주요테이블별로레코드의스냅샷만을저장하는형태로 iloader 로백업을받는시점의데이터만백업된다. 트랜잭션로그파일을포함하여백업하기때문에파일의손상이없는시점까지복구가가능하다. ALTIBASE 프로세스를내린후모든필요파일을복사하여보관하는형태로파일을복사한시점까지만복구가가능하다. 백업과관련하여 ALTIBASE 백업정책결정을위한고려사항 문서를참고하도록한다. ALTIBASE 환경의개발시고려사항가이드 6 page of 30
7 테이블설계의고려사항 1 테이블의저장위치를목적에맞게선정 ALTIBASE 는메모리 / 디스크테이블스페이스를모두지원한다. 사용자는빠른처리성능이요구되는업무에대해서는어떤테이블들을메모리테이블스페이스위치시킬것인지를선정해야한다. 즉, 메모리 / 디스크테이블스페이스에각각위치할업무목적별테이블의목록을작성할필요가있다. 다만, 하나의테이블명으로메모리 / 디스크에동시에위치할수없기때문에예를들어, 당일처리를메모리테이블에저장하고이전처리를디스크에저장하고한다면테이블을 2 개로분리하여 EXEC_TABLE_MEM / EXEC_TABLE_DISK 와같은형태로테이블을생성해야한다. 조회시에는 2 개의테이블을 UNION ALL 이용하여조회하거나별도의 View 를생성하여조회하는방법을택하면된다. 2 컬럼타입에대한고려 ALTIBASE 가제공하는숫자타입의경우 Numeric (9) 와같은타입은 Integer 타입으로도충분히표현이가능한데차지하는공간은 8byte 를차지한다. Integer 타입에비해레코드당 4 byte 를더점유하게된다. 처리성능측면에서도내부적으로 Numeric 의경우다시 Native 타입으로변환을해야하는비용이발생하기때문에 Integer 타입에비해서는다소느릴수밖에없다. 다음의사항들을컬럼타입의선정에있어고려할것을권장한다. 고려사항 설명 1. Native Non-Native 의변환비용최소화되도록고려 숫자형 (Native 타입 [Integer, Double, BigInt] 이성능면에서는더유리함 ) 2. 실수형의정밀도를요하지않는경우 Double 타입의선택 3. Sum, Avg 가사용되는컬럼이라면 Double, BigInt 타입의선택 날짜형 Join 날짜관련연산이중요한경우라면 Date 타입을선택하고검색및비교연산에국한된경우라면 Char/Varchar 타입을선택 (Date 타입은 8byte 로고정되어있음 ) Join 이발생하는컬럼이라면형변환이발생하지않도록고려 3 이중화대상인경우반드시 Primary key 를가져야한다. 4 Foreign Key 는트랜잭션의성능을저하시킴으로무분별하게사용하지않는다. 파티션테이블의제한 ALTIBASE 파티션테이블의경우현재까지 ( 버전 기준 ) Partition Global Index 를지원하고있지않다. 따라서, 파티션테이블전체를조회하는조건절에파티션키가배제된형태의조회시에는현저한성능저하가발생하기때문에파티션테이블은업무 ALTIBASE 환경의개발시고려사항가이드 7 page of 30
8 목적상히스토리성데이터를월별, 목적별보관형태의목적으로사용할것을권장한다. 하드웨어준비의고려사항 위에서언급한사항들과관련된물리적인고려사항을정리하여설명한다. 고려사항 이중화 디스크 설명 네트웍을이용하기때문에이중화의연결은별도의 Giga-bit 랜카드를이용하여서버간에직접연결하거나 Private 망을이용한환경을권장한다. 백업을고려할경우예측된 DB 용량에추가적으로테이블스페이스전체와함께일부아카이브로그파일이저장될수있는디스크공간이필요하다. 추가적으로 ALTIBASE 의리두로그파일에대한정책은무한생성이라고볼수있다. 몇개의리두로그파일을생성하고재사용하는구조가아니라계속새로운리두로그파일을생성해가는정책을쓰기때문에대량변경작업등으로인한리두로그파일의대량생성이불가피할경우들이있기때문에리두로그파일이저장될디스크의공간은충분히책정하는것이바람직하다. 하드웨어적인용량산정과관련된사항은 ALTIBASE 용량산정가이드 문서를참고하도록한다. Not Support Feature ALTIBASE는 SQL92 표준을준수하지만타 DBMS와비교하여약간상이한부분들이존재한다. 이와관련된자세한사항은각타 DBMS벤더별로제공되고있는기술문서를참고하도록한다. (Ex) ORACLE To ALTIBASE 변환가이드 ALTIBASE 환경의개발시고려사항가이드 8 page of 30
9 개발단계의고려사항 개발단계에서필요한고려사항들을정리하여설명한다. DBMS 접속방식의선택 1 ALTIBASE 접속방식의선택 접속방식 CONNTYPE=1 CONNTYPE=2 CONNTYPE=3 설명 TCP/IP 방식의접속, 일반적인접속방식 UNIX Domain Socket 방식의접속, 로컬서버내에서만사용가능 IPC 방식의접속, 로컬서버내에서만사용가능 CONNTYPE=n 의의미는접속방식을의미하며프로그램내에서접속문자열을지정할경우사용자가명시적으로지정할수있다. DBMS 와응용프로그램이별도의분리된서버에위치하면 CONNTYPE=1 의방법만사용이가능하다. 하지만, DBMS 와응용프로그램을같은서버에서구동할수있는경우라면통신비용의감소를위해서 CONNTYPE=2, 3 을선택하는것을권장한다. 2 ALTIBASE 는 Auto-Commit 모드가기본설정 JDBC 는표준스펙상 Auto-Commit 모드로접속하게된다. 그외응용프로그램은사용자가별도로변경하지않는이상기본적으로 $ALTIBASE_HOME/conf/altibase.properties 파일내에정의된 AUTO_COMMIT 속성에의해결정된다. 이속성값이 1 이면 Auto-Commit 모드로동작한다. (Auto-Commit 이라함은변경트랜잭션정상적으로완료된후자동으로 Commit 이수행됨을의미 ) 따라서, 사용자가이속성값을 Non Auto-Commit 으로변경하고자한다면설정파일에서해당속성값을 0 으로변경한후 ALTIBASE 를재구동해야한다. 만일, 세션별로제어를할경우에는 DBMS 에접속한이후다음과같은 SQL 을수행하면된다. ALTER SESSION SET AUTOCOMMIT = FALSE; (Java 의경우는 setautocommit 함수를이용하여제어하도록한다.) (ALTER SYSTEM 명령을위해시스템전체에반영하도록실시간으로변경할수있으나재구동후에다시원복될것임으로전체에영향을미치는속성의변경은프로퍼티파일을통해수정하고재구동하는방법을권장한다.) ALTIBASE 환경의개발시고려사항가이드 9 page of 30
10 Thread 프로그램, Connection Pool 의관리 Thread 환경의프로그램에서는하나의연결을다수의 Thread 가공유할경우반드시연결에대한동시성제어를개발자가수행해야한다. ALTIBASE 는세션과서버간의통신과정에서약속된프로토콜을주고받는다. 일반적으로 PREPARE BIND EXECUTE FETCH 등의과정을거치게되는데이과정이순차적으로진행되어야할상황에서다른프로토콜이인터럽트가발생하여세션처리과정이잘못처리되는과정에서오류가발생하게되는것이다. Communication link failure (EXEC->INVL) Communication link failure (PREP->EXEC) Invalid request to process the SQL statement 위의오류들은 Thread 프로그램또는 Connection Pool 을사용하는과정에서하나의연결이어떠한 SQL 을수행중에동시성제어가안된상태에서또다른 SQL 을진행시킬경우발생한다. 따라서, 위와같은오류가발생하면먼저개발자가작성한프로그램에서연결부분에대한동시성제어나처리과정중에잘못된인터럽트가발생하지않는지확인이필요하다. ( 간혹, 사용자프로그램에서 Timer 를설정한경우위와같은동시성제어문제가아니어도발생할수있다. 예를들면, SELECT~FETCH 과정중에 Timer 가동작되어아직 FETCH 프로토콜이완료되지않은상태에서다른 SQL 문이수행될경우위와같은오류가발생할수있다.) Application 의연결해제시확인사항 프로그램에서수행한 SQL 문들은개별프로그램과서버에 prepared 된상태로존재한다. 이러한 SQL 문들은사용이완료되면자원을해제하도록코드를개발하는것이바람직하다. 특히, 자바의경우메모리증가현상이발생할수있으므로다음과같은코드가반드시중요하다. Connection con = pool.getconnection(); Statement stmt = con.createstatement(); ResultSet rs = stmt.executequery(); try {. } exception () {.. } finally { // 개발자가프로그램내에서사용한모든자원을명시적으로해제하도록한다. rs.close(); ALTIBASE 환경의개발시고려사항가이드 10 page of 30
11 } stmt.close(); conn.close(); CLI/ODBC 등의개발의경우도마찬가지로 SQLAllocStmt 로메모리가할당된이후사용이끝난시점에는반드시 SQLFreeStmt 함수를통해 SQL_DROP 을수행해야한다. 재사용이된다면 SQL_CLOSE 옵션을이용하도록하며그렇지않고완전히해제할경우라면 SQL_DROP 옵션을통해명시적으로해제하도록한다. Session Timeout 세션은 DB 에접속한프로그램의연결을의미한다. 각세션은 ALTIBASE 고유의 Timeout 정책에의해관리된다. ALTIBASE 는크게 5 가지 Timeout 정책을제공하고있으며다음과같다. ( 아래색상이표기된것은연결문자열에서만제어가가능하다.) 구분 CONNECTION_TIMEOUT TIMEOUT QUERY_TIMEOUT FETCH_TIMEOUT IDLE_TIMEOUT UTRANS_TIMEOUT 에러후세션상태 단절 단절 유지 단절 단절 단절 설명 DB 에접속된상태에서네트웍상의송 / 수신간에블로킹된상태의타임아웃을설정하는옵션 DB 에접속을시도하는시간이이설정값을초과하면발생 DB 에접속된상태에서질의를수행하는전체시간이이설정값을초과하면발생 DB 에접속된상태에서 SELECT 문을수행한이후 FETCH 프로토콜이발생하는시간간격이이설정값을초과하면발생 DB 에접속된상태에서어떠한질의도수행하지않고대기하는시간이이설정값을초과하면발생 DB 에접속된상태에서질의를수행한이후 Commit/Rollback 이수행될때까지이설정값을초과하면발생 ( 수행질의는롤백처리됨 ) 만일, 사용자가연결시도에대한 5 초시간제한과네트웍상의블로킹현상이발생할경우이를 30 초안에응답이없으면연결을해제하겠다고설정한다면다음과같이연결문자열에옵션을추가하면된다. DSN= ;CONNTYPE=2;TIMEOUT=5;CONNECTION_TIMEOUT=30 그외의 TIMEOUT 설정은기본적으로 $ALTIBASE_HOME/conf/altibase.properties 에서설정한단위로동작하게되며세션별로는다음과같은질의를수행하여제어가가능하다. ( 0 으로설정할경우무한대로동작하게됨 ) ALTIBASE 환경의개발시고려사항가이드 11 page of 30
12 ALTER SESSION SET QUERY_TIMEOUT = 30 ( 초단위 ) ALTER SESSION SET FETCH_TIMEOUT = 30 위의 TIMEOUT 에의한오류가발생하면다음과같은에러를응용프로그램에서확인할수있다. 구분 에러메시지 CONNECTION_TIMEOUT TIMEOUT QUERY_TIMEOUT FETCH_TIMEOUT IDLE_TIMEOUT UTRANS_TIMEOUT Connection time out Client unable to establish connection Client's query exceeded in the execution time limitation Communication link failure. Server closed the connection. Communication link failure. Server closed the connection. Communication link failure. Server closed the connection. TIMEOUT 관련에러는 $ALTIBASE_HOME/trc/altibase_boot.log 에도기록이남게된다. [2010/07/06 13:10:35] [Thread ] [Level-1] [Notify : UTrans Timeout] Session Closed by Server : Session ID = 53 CLIENT_INFO => TCP :3992(PID : 13645) Time Limit => 3 Running Time => 5 Last Query => insert into t1 select * from t1 limit 1 Caused by Transaction => 위의로그가 altibase_boot.log 에기록이되면개발자는반드시왜 Timeout 으로인한오류가발생했는지확인하여조치해야한다. 각각의원인은앞에서설명한바와같기때문에질의처리의병목으로발생했다면해당질의를튜닝해야할것이며위의예제처럼 UTrans_Timeout 이발생한다면변경트랜잭션이발생한후 commit/rollback 을수행하지않은것임으로접속정보를통해해당프로그램의트랜잭션제어부분을반드시수정 / 조치해야한다. 사용자가위의조치로해결하기어렵고업무적으로처리를강제로해야한다면 DB 전체의속성값을변경하기보다는해당프로그램의 DB 세션에대해해당 TIMEOUT 설정값을변경하여처리하도록한다. SELECT Cursor 사용시주의 CURSOR 를이용한 SELECT 문을구현할때에는반드시 FETCH 구문에대해에러체크를수행하고에러가발생하거나혹은데이터를모두읽은후에는반드시 CURSOR 를 CLOSE 하도록해야한다. 만일, 이미다읽은 CURSOR 를 FETCH 하려고하거나아직닫히지않는 CURSOR 에어떤작업을시도할경우의도하지않은오류가발생할수있으므로 CURSOR 를사용한뒤에는반드시정상적으로 CLOSE 하도록해야한다. ALTIBASE 환경의개발시고려사항가이드 12 page of 30
13 또하나의주의사항은 ALTIBASE 의경우 FETCH 도중에 COMMIT/ROLLBACK 이발생하게되면자동적으로열린 CURSOR 를닫게된다. 따라서, FETCH 를수행하면서다른트랜잭션을발생하고자할경우에는별도의 DB 세션을생성한후해당세션을통해별도의트랜잭션을처리하도록하거나 FETCH 가모두완료된이후 COMMIT/ROLLBACK 을수행하도록해야한다. 하지만, 처리해야하는레코드건수가많다면대량변경으로수행하기보다는별도의세션을맺어매건처리하는구조로구현하는것을권장한다. 변경될레코드의개수가하나의트랜잭션으로반드시묶여야한다면조건을주어나누어서처리가되도록프로그램을개발하는것이바람직하다. ( 아래의대량변경작업의주의사항을확인하도록한다.) SQL Error 의체크 ALTIBASE 환경의개발자는모든질의처리이후반드시 SQL Error 를체크할것을권장한다. 특히, 다음의경우를반드시체크하도록해야명확한오류를알아낼수있다. EXEC SQL PREPARE. EXEC SQL EXECUTE. If (SQLCODE!= SQL_SUCCESS) Error_log (); 또는, EXEC SQL DECLARE CURSOR EXEC SQL OPEN. If (SQLCODE!= SQL_SUCCESS) Error_log (); 위코드에서는 PREPARE 또는 DECLARE CURSOR 수행후에러체크하는부분이없다. 이경우 PREPARE (DECLARE CURSOR) 단계가오류였을경우라면 EXECUTE (OPEN) 단계에서 SQL 오류는 Not defined (XX) 와같은오류가발생하여실제로 PREPARE (DECLARE CURSOR) 오류로인함임에도불구하고해당오류를정확하게확인할수없다. ALTIBASE 는 PREPARE (DECLARE CURSOR) 수행과정도서버로질의를전송하여 Execute 전단계까지질의처리과정을해놓기때문에 PREPARE (DECLARE CURSOR) 를수행한이후에도반드시에러를체크하는로직을넣어야한다. 중요한점은모든 SQL 처리문이들어간경우는반드시 SQL 에러체크를수행하도록해야한다는점을알아두어야한다. LOB 타입의주의 ALTIBASE 에서 LOB 타입을조회할때에는반드시 Non-Auto-Commit 모드로동작해야한다. Auto-Commit 모드에서는다음과같은오류가발생할수있다. [ERR : Connection is in autocommit mode. One can not operate on LOB datas with ALTIBASE 환경의개발시고려사항가이드 13 page of 30
14 autocommit mode on.] 테이블의컬럼에 LOB 를빼고조회를할경우는상관이없으나 SELECT 타겟절에 LOB 타입이포함될경우위와같은오류가발생한다. 따라서, LOB 타입을조회할때에는반드시세션의속성을 Non-Auto-Commit 모드로변경을한후수행하도록해야한다. Prepared Statement 의사용 ALTIBASE 는질의처리의성능을빠르게하기위해내부에수행된질의의실행계획을저장하고있다. 하지만, 매번 PREPARE/EXECUTE 를하는형태의질의를수행하게되면내부적으로이미 PREPARE 된실행계획을사용하게되지만 PREPARE 를수행하는네트웍비용이매번발생하기때문에이러한성능감소요인을막기위해서는다음과같이코드를작성할것을권장한다. ( O ) ( X ) Prepare statement while (1) { Execute statement } while (1) { Prepare statement Execute statement } 오픈소스중에는 OTL (Oracle, Odbc Template Library) 라는 DB 개발라이브러리가있다. 이라이브러리는모든질의를매번 Prepare/execute 를수행하는형태로처리하고있다. 단, streaming 옵션을활성화시키면한번 prepare 된질의는 execute 만수행하는형태로처리하게되는데이런튜닝요소를통해 ( 네트웍전송비용의감소 ) 응용프로그램의처리속도를 2 배이상향상시키는경우도있으므로개발자는질의처리를수행하는과정에서는가능한 dynamic SQL 을최소화시키고동일한질의를매번 prepare 하고있지는않은지확인하도록해야한다. 다음과같은코드는매우불합리한코드라고할수있다. sprintf (sql, INSERT INTO t1 VALUES (%d, %d), sznum1, sznum2); Exec sql Prepare s for :sql; Execute s; 위의코드는매번실행할 SQL 문장을만들고 prepare 한후 execute 하도록실행한다. 이런경우는다음과같이한다면간결하고합리적이라할것이다. Exec sql INSERT INTO t1 VALUES (:sznum1, :sznum2); SQL Tuning DB 업무와관련해개발작업을진행하다보면질의처리가느린경우들이발생한다. 혹은, 테스트환경에서는빠르게처리되었는데통합테스트또는운영단계에서질의가매우느린경우들이발생한다. 이것은개발자혹은 DBA 가수행되는모든질의에대해실행계획의검증이나테스트과정을소홀히한경우라고볼수있다. ALTIBASE 환경의개발시고려사항가이드 14 page of 30
15 ALTIBASE 는질의의처리과정즉, 실행계획을다음과같이확인할수있다. ALTER SESSION SET EXPLAIN PLAN = ON; 위와같은명령을수행한후 isql 이나또는 AdminCenter2 와같은유틸리티에서질의를수행하면수행된실행계획을확인할수있다. isql> ALTER SESSION SET EXPLAIN PLAN = ON; Alter success. isql> SELECT a, COUNT(*) FROM t1 WHERE a = 1 GROUP BY a; A COUNT row selected PROJECT ( COLUMN_COUNT: 2, TUPLE_SIZE: 16 ) GROUP-AGGREGATION ( ITEM_SIZE: 32, GROUP_COUNT: 1, BUCKET_COUNT: 1024, ACCESS: 1, SELF_ID: 3, REF_ID: 2 ) SCAN ( TABLE: T1, FULL SCAN, ACCESS: , SELF_ID: 2 ) 위의실행계획은 T1 테이블을 FULL SCAN 하고레코드에대해 262,145 번접근했음을확인할수있다. 만일, 인덱스가존재하고인덱스를타도록조건을명시한다면다음과같이출력될수도있을것이다 PROJECT ( COLUMN_COUNT: 1, TUPLE_SIZE: 4 ) SCAN ( TABLE: T1, INDEX: IDX_T1, ACCESS: 2, SELF_ID: 2 ) SQL 튜닝과관련된사항은 ALTIBASE SQL 튜닝가이드 문서를참고하면더많은정보를얻을수있으므로개발전에개발자들은반드시읽어볼것을권장한다. 대량변경작업의주의 일반적인대량변경작업은 ALTIBASE 뿐아니라타 DBMS 에서도부하가크기때문에각벤더별로요구하는주의사항들이존재한다. ALTIBASE 는다음과같은사항의주의가필요하다. 1 메모리테이블의대량변경작업시메모리증가의가능성 ALTIBASE 는 MVCC(Multi Version Concurrency Control) 기법을지원한다. MVCC 기법은변경이발생할경우동일레코드를해당테이블의빈공간에복제하여변경을가하게된다. 만일, 천만건을변경하면천만건의복제본으로인한메모리증가가발생할수밖에없다. ( 물론이렇게늘어난영역은다시데이터또는복제영역으로재활용이되지만실시간으로메모리를해제시키지는않는다.) 2 대량변경작업을수행함으로써트랜잭션로그파일의지속적인증가 ALTIBASE 환경의개발시고려사항가이드 15 page of 30
16 대량의변경작업은각변경대상레코드에대한리두로그를트랜잭션로그파일에기록해야한다. 따라서, 하나의트랜잭션내에변경되는모든레코드의리두로그를기록해야하는데만일, 이대상의범위가많다면그만큼의트랜잭션로그파일도많이생성될수밖에없다. (ALTIBASE 는체크포인트시점에트랜잭션로그파일을삭제하게되는데로그파일에트랜잭션이지속중인정보가존재하면삭제할수없고이로인해로그파일증가에의한디스크부족의장애가발생할가능성이있다.) 3 이중화환경에서의 Dead-Lock 발생가능성및반영지연 이중화환경에서는앞서설명한바와같이하나의트랜잭션이변경한모든레코드의변경정보를상대편서버로전송하게된다. 이과정에서상대편서버의해당하는레코드에대하여락을유지하게되는데만일, 상대편서버에서동일한범위에속하는레코드를변경할경우이중화로그에의해발생한트랜잭션과상대편서버자체에서발생하는트랜잭션간에데드락이유발될수있다. ALTIBASE 환경의개발시고려사항가이드 16 page of 30
17 ALTIBASE Trace 로그 ALTIBASE 는설치된경로인 $ALTIBASE_HOME/trc 경로에모듈별로중요한상태정보및에러등에대해 Trace 로그를기록하고있다. 이에러들에설명한다. Trace 로그의분류 ALTIBASE 가기록하는 Trace 로그는다음과같다. 분류 altibase_boot.log altibase_sm.log altibase_qp.log altibase_rp.log altibase_lk.log 설명 Start/Stop 과정및 DBMS 전반의로그를기록체크포인트및테이블스페이스관련로그를기록 DDL수행및 Query Processing과관련된로그를기록이중화와관련된로그를기록 DB link 사용과관련된로그를기록 해당로그파일은기본적으로 10 개까지 altibase_xx.log 를포함하여 altibase_xx.log-[1-10] 까지순환되면서로그를기록하게된다. 이하에서는사용자에게의미있는중요한메시지들에대한각 Trace 로그별로분리하여설명한다. altibase_boot.log 사용자는 DBMS 에서오류가발생하면 altibase_boot.log 를먼저확인해야한다. 표중에표시는사용자가반드시조치할에러이다. ERR-0108d (errno=0) License is invalid or expired. 구동단계에서라이센스파일이없거나잘못된경우발생한다. ALTIBASE 에서라이센스정보를확인하고필요시재발급을받도록해야한다. ERR-01052(errno=13) Unable to invoke open() function on [/dbs/mydb-0-0] 최초에구동전에 DB 를생성하지않았거나해당파일에접근할권한이없는경우발생한다. DB 를생성하거나또는디렉토리및파일에접근권한이있는지확인한다. 또는, 사용자의실수로데이터파일을삭제한경우일수있으므로이경우백업본을이용하여복구하는절차가필요하게된다. ERR-01052(errno=2) Unable to invoke open() function on [/dblog01/logfile536358] ALTIBASE 구동단계에서는자동복구를수행하게되는데이과정에필요한리두로그파일이손상되었거나존재하지않는경우에발생한다. ALTIBASE 본사로기술지원요청을해야한다. ERR-0001c(errno=76) Unable to shutdown the communication channel ALTIBASE 환경의개발시고려사항가이드 17 page of 30
18 ALTIBASE Shutdown 단계에서세션과관련된정리과정에서나오는 Warning 메시지로운영에는영향이없다. ERR (errno=104) Failed to invoke a system function, write() (read, accept, select) 디스크또는네트웍상의오류로인해발생한다. 파일시스템의체크나네트웍상의문제가없는지확인이필요하다. 또는, 메모리의부족으로시스템콜이실패하는경우가발생할수있다. ERR (errno=16) Failed to invoke a system function, flock_trywrlock() 이미 ALTIBASE 가구동중이거나구동된상태에서다시 ALTIBASE 를재구동하려고하는경우발생한다. 또는, 메모리의부족으로시스템콜이실패하는경우발생할수있다. ERR (errno=2) The version of data file for backup is not compatible with the version of storage manager. Backup DB => [ Version ID = 5.4.1, Bit = 64, Endian = LITTLE LogSize = Transaction Table Size = 1024 ] Server=>[ Version ID = 5.4.1, Bit = 64, Endian = LITTLE LogSize = Transaction Table Size = 2049 ] 백업받은데이터파일을가지고구동하는과정에서현재사용중인 ALTIBASE 버전과호환이되지않는데이터파일을가지고복구하려고시도하거나백업시점에설정한 ALTIBASE 설정값과다른상태로구동을하려고시도하는경우에발생한다. [ERROR] first write () operation failed. errno=32 세션이단절된상태에서 read/write 시스템콜이오류가발생할수밖에없으므로그정보를 Warning 형태로기록을남길경우이다. 응용프로그램에서정상적인 Disconnect 명령없이강제종료시키는경우에도이로그가기록된다. 운영에는영향이없다. ERR-7101d(errno=11) Protocol header error. (TCP :63847) Protocol processing failed. Close connection... ALTIBASE 의접속포트를통해접속한세션이 ALTIBASE 서버버전과호환되지않는버전으로접속을시도한경우로출력된접속정보를통해역추적하여 Server/Client 버전간의호환여부를확인해야한다. 운영에는영향이없다. ERR-4000f(errno=2) No Error Message Loaded $ALTIBASE_HOME/msg/ 경로에위치한파일들이없거나버전과호환되지않는경우발생한다. 또는, 해당경로에읽기권한이없을경우도발생한다. [Notify : Query Timeout] Query Canceled by Server : Session ID = [Notify : Fetch Timeout] Session Closed by Server : Session ID = [Notify : Utrans Timeout] Session Closed by Server : Session ID = [Notify : Idle Timeout] Session Closed by Server : Session ID = QUERY / FETCH / UTRANS / IDLE TIMEOUT 설정에의해 TIMEOUT 이발생한경우그에대한 Warning 형태의로그를기록하는경우이다. 문제가되는경우해당세션정보가메시지와함께기록되기때문에세션을추적하여문제라고판단할경우해결하도록해야한다. ERR-01027(errno=0) No more IPC channel (MAX=50, USED=50, BUFSIZE=65536) IPC 접속가능한자원보다더많은 IPC 접속을시도할경우발생한다. [Warning] Memory allocation failed. Size: Timeout: 0 ALTIBASE 환경의개발시고려사항가이드 18 page of 30
19 ERR-61055(errno=12) Memory allocation failure 메모리가부족한상황에서내부적으로필요한메모리할당에실패하는경우발생한다. 이경우메모리가부족한원인을파악하여조치해야한다. 만일, Swap 메모리까지부족한경우가발생하면 Warning 없이 ALTIBASE 가비정상종료할수있다. ioctl() failed 소켓또는디스크 I/O 작업간에시스템콜수행에일시적인문제가발생한경우발생한다. 일반적으로무시해도상관없으나네트웍또는디스크를점검하는것을권장한다. WANING : write error number : 0, file name : /dblog01/logfile537572, file handle : 440, intended size : , writed size : 또는, File Extending Failed. : The disk space has been exhausted. Error : Extending DataFile : from 0, size 디스크용량이부족하여 ALTIBASE 가필요로하는파일을생성할때용량이부족하여정상적으로생성하지못했다는경고로반드시디스크용량을체크하고조치해야한다. BEGIN-STACK-[CRASH]===================================== END-STACK===================================== [========= FATAL Terminated ==========] ALTIBASE 가버그로인해비정상종료가발생할경우어떤진행과정에서발생했는지자체적인 Trace 로그를출력하게된다. 이에러가발생한경우는 ALTIBASE 프로세스가종료된상태임으로우선 $ALTIBASE_HOME/trc/ 모든파일을백업하도록한다. 다음디스크가충분하다면리두로그파일을확보한다. 이와같은파일백업이완료되면 ALTIBASE 를재구동하도록조치하고 ALTIBASE 에기술지원을요청한다. altibase_qp.log altibase_qp.log 에는사용자가수행한 DDL 의수행기록및 DB 속성값을 ALTER SYSTEM 구문으로변경을가하는경우등에대한로그가기록된다. 아래와같이분류된다. [EXEC_DDL_BEGIN : create index T1_IDX on T1 (A)] 사용자가수행한 DDL 의수행시작을의미하는로그이다. [EXEC_DDL_END : SUCCESS] 사용자가수행한 DDL 의정상완료를의미하는로그이다. [EXEC_DDL_END : FAILURE] errorcode 사용자가수행한 DDL 의오류내역을의미하는로그이다 [SET-PROP] CHECKPOINT_BULK_WRITE_PAGE_COUNT=[0] 사용자가시스템전역에영향을미치는 DB 속성설정값을변경한경우를의미하는로그이다. ALTIBASE 환경의개발시고려사항가이드 19 page of 30
20 altibase_sm.log altibase_sm.log 는체크포인트의수행여부및장시간수행되는질의의존재여부등을판단해볼수있는중요한근거가된다. [CHECKPOINT-BEGIN] 체크포인트가시작되었음을의미한다. Remove Online Log File at LFG [0]: File[220 ~ 227] 체크포인트가수행되면서더이상복구에필요하지않은트랜잭션로그파일들을정리하는메시지이다. 만일, File [None] 이라고지속적으로표시될경우장시간실행되는질의가없는지또는, 이중화로미전송되고있는부분이없는지확인이필요하다. [CHECKPOINT-summary] BeginChkptLSN=[0,83, ], EndChkptLSN=[0,83, ], DiskRecLSN=[0,83, ] 체크포인트가정상적으로완료되는시점에체크포인트의수행정보에대한요약정보를로그에남긴다. [CHECKPOINT-END] 체크포인트가정상적으로완료되었음을의미한다. Minimum LSN = [0,83, ] 위값은현재진행중인트랜잭션의기록중인로그파일의 offset 위치이다. 따라서, 저값이변동하지않고계속같은값을유지한다면위의 Remove 로그와동일하게장시간수행되는질의의존재여부나이중화미전송여부를반드시확인해야한다. Database-Level Backup Completed [SUCCESS] 백업이정상수행되었음을의미한다. DISK TABLESPACE... DATABASE... 디스크테이블스페이스의백업이수행되었음을의미한다. ~/loganchor0 BACKUP TO 로그앵커의백업이수행되었음을의미한다. MEMORY TABLESPACE DATAFILE. BACKUP TO. 메모리테이블스페이스의백업이수행되었음을의미한다. altibase_rp.log altibase_rp.log 에는이중화의동작상태및각종 Conflict 발생시의질의가기록되기때문에이중화문제의추적에있어중요한단서제공을하고있다. ERR-31017(errno=0) Replication not found 이중화관련 DDL 을수행할때지정한이중화객체가존재하지않는경우에발생한다. ALTIBASE 환경의개발시고려사항가이드 20 page of 30
21 따라서, 지정한이중화객체가존재하는지확인이필요하다. ERR-6200f(errno=16) [Sender] Stop sender thread REP1 at [ ], Restart SN[ ] 이중화 Sender 를사용자가명시적으로 Stop 시킨경우발생하는로그이다. ERR-71017(errno=79) Failed to invoke a system function, connect() ERR-61012(errno=79) [Sender] Failed to connect to the peer server ERR-61022(errno=79) [Sender] Sender Sleep : 60 seconds [Sender] getnextlastusedhostno: from :53341 to :53341 ERR-61003(errno=9) Unable to read from a socket ERR-61012(errno=119) [Sender] Failed to connect to the peer server ERR-6100d(errno=119) [Sender] Failed to handshake with the peer server (Handshake Process Error) 이중화 Sender 가상대편서버에접속할수없는경우와재접속을시도하는로그이다. 상대편의서버, 네트웍상태및 ALTIBASE 가정상구동되고있는지확인이필요하다. 만일, 명시적으로상대편이중화를 Drop 한경우라면정상적인에러이다. [Recovery Sender] Replication REP1 Start... at [ ] 이중화가정상개시되어 Sender 가구동된로그이다. [Receiver] Replication REP1 Started... 이중화가정상개시되어 Receiver 가구동된로그이다. RECEIVER:REPLICATION STOP MSG arrived! [ReceiverApply] REPLICATION STOP XLog arrived! Normal Stop! [Receiver] Replication REP1 Stopped... 상대편서버의이중화가사용자에의해명시적으로 Stop 되어중지된경우이다. ERR-61047(errno=0) [Receiver] REP1 receiver has error in recvxlog() ERR-61048(errno=0) [Receiver] REP1 receiver has recvxlog error in run() ERR-6104b(errno=0) [Receiver] REP1 receiver is ended (by thr_exit) 이중화 Receiver 가어떤오류로인해쓰레드가종료된경우이다. ERR-61036(errno=0) [Receiver] err_not found in deletexlog() ERR-61000(errno=0) The received record is not found in the database. 이중화로수신받은 DELETE 트랜잭션을수행하는과정에서해당하는레코드가존재하지않을경우 Conflict 오류를기록한경우이다. ERR-61035(errno=0) [Receiver] An update conflict encountered. ERR-61001(errno=0) A conflict has been occurred while executing the received statement. 이중화로수신받은 UPDATE 트랜잭션을수행하는과정에서해당하는레코드의 Before/After 값이달라 Conflict 오류를기록한경우이다. ERR-6103a(errno=0) [Receiver] err_not_found in updatexlog() ALTIBASE 환경의개발시고려사항가이드 21 page of 30
22 ERR-61000(errno=0) The received record is not found in the database. 이중화로수신받은 UPDATE 트랜잭션을수행하는과정에서해당하는레코드가존재하지않을경우 Conflict 오류를기록한경우이다. ERR-11058(errno=0) The row already exists in a unique index. 이중화로수신받은 INSERT 트랜잭션을수행하는과정에서해당하는레코드가이미수신측에존재하는경우이다. ( 동일한 PK 를가지는데이터가존재함 ) 위예시에서사용된이중화객체명은 REP1 이다. 사용자가지정한이중화객체는이름이다를것이므로에러에대한조회시에이를고려하도록해야하며주로이중화 Sender/Receiver 의동작상태및 Conflict 오류를감지할것을권장한다. 또한, 이중화 Conflict 가발생하면앞서설명한이중화환경의고려사항을제대로준수하지않았거나이중화지연으로데이터불일치가발생했을가능성이있기때문에어떠한이유로그러한지 Conflict 발생시남는 SQL 문을통해원인을찾는것이중요하다. ALTIBASE 환경의개발시고려사항가이드 22 page of 30
23 Client Application 에러메시지 ALTIBASE 를사용하는응용프로그램을운영하는환경에서자주발생하는에러유형들을소개하고각유형들에대해어떤사항들을개발자가확인해야하는지를설명한다. Connection does not exist DBMS 에연결이되지않은상태또는, 단절된상태에서질의를처리하려고할경우발생하는오류이다. 다음의경우들에서발생할수있다. 1. 앞에서설명한 TIMEOUT 정책에의해연결이해제된이후질의를수행할때 2. 쓰레드프로그램의경우존재하지않는연결고유명을사용한경우 위의사항들을점검하고관련사항에적합한조치를취하도록한다. 예를들어, TIMEOUT 정책에의해발생하였다면해당세션의 TIMEOUT 설정값을늘리거나또는질의의튜닝을진행하는식의조치가필요하다. Communication link failure 일반적으로위의 Connection does not exist 는이오류다음으로발생하게된다. 이에러는질의를수행과정에서세션이단절된상태를의미한다. 원인은앞서설명한것처럼 TIMEOUT 정책에의해해제되는경우가일반적이다. 간혹, 네트웍의문제로연결이단절되는경우가발생할수있다. 이문제는통신소켓상의문제로다양한원인으로발생할수있기때문에다음의사항들을체크하고확인할것을권장한다. 1. altibase_boot.log 에세션이단절된로그가있는지확인 2. 쓰레드프로그램인경우지켜야할주의사항이제대로준수되지않았는지확인 3. 네트웍상의일시적인문제가없었는지확인 Calculate stack overflow ALTIBASE 내부적으로질의를처리하는과정에서사용되는객체로수행되는질의가필요로하는 Stack 이부족한경우발생한다. 사용자는해당질의의수행전에다음과같이질의를수행한후에러가발생한질의를수행하면정상적으로처리할수있다. ALTER SESSION SET STACK SIZE = 8192; 이값은메모리의증가를유발하기때문에전체시스템에반영하여사용하기보다는해당세션만변경하여사용하도록할것을권장한다. ALTIBASE 환경의개발시고려사항가이드 23 page of 30
24 Conversion not applicable 다음과같은경우에발생한다. CREATE TABLE t2 (a BYTE (2)); INSERT INTO t2 VALUES (CLOB 1 ); 위의예제처럼 BYTE 컬럼에 CLOB 의데이터를넣을경우형변환을 CLOB 을 BYTE 로변환할수없음으로에러를발생시킨다. 즉, 각컬럼타입끼리는호환이가능한매트릭스가있는데그러한호환가능하지않는질의를처리하게될경우이에러가발생한다. 컬럼타입간의호환은 ALTIBASE ODBC User 매뉴얼을참고하면된다. Fixed record size exceed a page size ALTIBASE 에서는한페이지에저장될수있는 Fixed 컬럼크기의최대는 8K 로제약이되어있기때문에발생한다. ( 버전 이하버전 ) 최신의 5.3 버전부터는디스크의경우이제약사항이해결되었으며메모리테이블의경우도 32K 로제약이완화되어있다. 따라서, 버전을사용하는경우이에러가발생하면 FIXED 컬럼크기의합계가 8K 를넘지않도록고려해야한다. CREATE TABLE t1 (c1 CHAR(4096)); CREATE TABLE t2 (c1 CHAR (4096)); isql> CREATE VIEW view1 AS SELECT a.c1 AS aa, b.c1 AS bb FROM t1 a, t2 b; [ERR-31233: Fixed record size exceeds a page size.] 위의예처럼 t1, t2 테이블은각각 8K 제약에는해당되지않지만 VIEW 를만드는과정에서생성된 FIXED 컬럼의합계는 8K 를넘기때문에동일한에러가발생한다. 마찬가지로질의를수행한 SELECT 타겟절의컬럼중 FIXED 컬럼의합계가 8K 를넘으면이런에러가발생하게된다. t1, t2 테이블의컬럼을생성시점부터 FIXED 가아닌 VARIABLE 로설정하도록한다. CREATE TABLE t1 (c1 CHAR(4096) VARIABLE) Invalid cursor state CURSOR 를사용할때다사용된 CURSOR 를정상적으로 CLOSE CURSOR 처리를하지않은채다시 OPEN CURSOR 를하려고시도할경우발생한다. 또는이미 Fetch 가완료된 CURSOR 를다시 Fetch 하려고시도하는경우에도발생한다. 간혹, 사용자프로그램이쓰레드인경우연결객체에대한동시성제어를제대로하지않아자신의쓰레드에유효하지않은커서를핸들링할경우도발생하게되는데앞에서설명한것처럼반드시 CURSOR 를사용후에는명시적으로 CLOSE CURSOR 구문을사용함으로써문제를해결하도록해야한다. DECLARE CURSOR ALTIBASE 환경의개발시고려사항가이드 24 page of 30
25 OPEN CURSOR FETCH CURSOR /** CLOSE CURSOR **/ 누락된경우들이대표적임. Not defined cursor CURSOR 를사용할때 CURSOR NAME 을명시하는데이 CURSOR NAME 이존재하지않거나혹은 DECLARE(PREPARE) CURSOR 를수행하는과정에서오류가발생했는데이를체크하지않아 EXECUTE 혹은 OPEN CURSOR 단계에서오류가발생할때이에러가나타난다. 사용자는반드시다음과같이개발을해야한다. DECLARE CURSOR1 FOR :statement; If (SQLCODE!= 0) PREPARE 단계에서도반드시에러체크를해야함 Error_process(); OPEN CURSOR1 USING :variable; Invalid request to process the SQL statement 일반적으로쓰레드구조의프로그램에서자주발생하며앞에서설명한바와같이쓰레드구조의연결객체에대한동시성제어가올바르지않을경우 ALTIBASE 서버와클라이언트간에주고받아야하는프로토콜의순서가틀려지는경우발생한다. 먼저, 프로그램의구조가쓰레드라면이러한동시성제어가올바른지확인하도록해야한다. 혹은, PREAPRE->BINDING->EXECUTE 와같이질의를수행해야하는순서가제대로지켜지지않은경우가있는지확인해야한다. Invalid literal 이에러는숫자형타입에문자를입력하는등의오류가발생할경우나타난다. CREATE TABLE t1 (a INTEGER); INSERT INTO t1 VALUES ( AAAA ); 위의예처럼컬럼타입이숫자형임에도데이터를문자열로삽입하려고시도할경우발생한다. 반대로, 문자열을숫자형변수에담으려고할경우에는다음과같이오류가발생한다. Invalid character value for cast specification. ALTIBASE 환경의개발시고려사항가이드 25 page of 30
26 Invalid length of data type 컬럼타입보다더큰값으로데이터가입력되는경우발생한다. CREATE TABLE t1 (a CHAR(2)); INSERT INTO t1 VALUES ('aaaa'); [ERR-2100D : Invalid length of the data type] 위의예처럼컬럼타입은 2byte 까지저장이가능한데입력을 4byte 로하려고하면지정된컬럼크기보다데이터값이크기때문에에러가발생한다. Indicator variable required but not supplied error 이에러는 Precompiler 를사용하는개발환경에서발생을하는데 SELECT 결과에서컬럼의리턴값이 NULL 로리턴될경우 INDICATOR 변수가지정되지않으면 SQL_SUCCESS_WITH_INFO 와함께이오류메시지를발생하게된다. int IND_C1; int IND_C2; EXEC SELECT C1, C2 INTO :H_C1 INDICATOR :IND_C1, :H_C2 INDICATOR :IND_C2; 위의경우처럼 INDICATOR 변수를명시적으로사용하거나또는, Precompiler 의옵션에서 unsafe_null 옵션을이용하여에러가발생하지않도록할수있다. Incompatible NLS between the client and the server ALTIBASE 서버로접속을시도할때서버에설정된문자셋과다른문자셋값으로접속을시도할경우발생한다. 예를들어, 서버는 MS949 로설정된상태인데클라이언트에서 US7ASCII 와값으로접속을시도할경우이러한에러가발생한다. 서버에설정된문자셋을조회하는방법은다음과같다. SELECT * FROM V$NLS_PARAMETERS; ( 버전 5.3 이상 ) SELECT name, value1 FROM V$PROPERTY WHERE name = NLS_USE ; ( 버전 5.1 이하 ) 이에러는 5.3 이전버전들에서만발생하게된다. 5.3 버전부터는문자셋이달라도 US7ASCII 로접속은가능하다. 다만, 서버와클라이언트간의문자셋의차이로한글과같은문자를저장하려할경우올바르지않은데이터로저장될수있음으로주의가필요하다. Invalid size of data to bind to host variable [Data Size ] 이에러는호스트변수의크기보다더큰데이터를넣어질의가처리될경우발생한다. 예를들어, CHAR (20) 으로선언한호스트변수에 20 보다큰문자열이들어올경우 ALTIBASE 환경의개발시고려사항가이드 26 page of 30
27 발생한다. 일반적으로개발자가변수의초기화의실패또는, 쓰레기값이들어올경우발생할수있다. 또는, 쓰레드환경의프로그램에서동시성제어실패로 A 문장을 PREPARE 한후바인딩을해야하는데 B 문장의바인딩을수행할경우발생할수도있다. (A 문장은 20byte 를 binding 하면되는데잘못핸들링하여 B 문장의 100byte 를바인딩하는형태 ) 일단, 사용자는해당호스트변수값을출력하여명확히길이를넘지않는지체크하고쓰레드부분의핸들링에있어서도동시성부분에문제가없는지확인하도록해야한다. Invalid character in use 일반적으로한글에대해 LIKE 검색시발생을하게되는데예를들어 ALTIBASE 서버의문자셋값을 KO16KSC5601 로설정하였는데 KO16KSC5601 의표현범위를넘어선문자가뒤섞여서저장된경우발생한다. 위의오류가발생한경우에는다음과같이작업을하는것을권장한다. 1. iloader 를통해테이블의데이터를다운로드 2. ALTIBASE 구동중지 3. $ALTIBASE_HOME/conf/altibase.properties 의 NLS_USE 값을 MS949 로변경 4. ALTIBASE 구동개시 5. 문제가되는대상테이블을 truncate (delete 는안됨 ) 6. iloader 를통해 (1) 에서받은데이터를다시업로드 즉, 한글을사용하는경우라면 KSC5601 보다 MS949 / UTF8 과같은문자셋을사용하고서버와일치하는문자셋으로접속하여처리할것을권장한다. Too many pages are allocated ALTIBASE 메모리테이블스페이스의경우는모든메모리테이블스페이스의합산이 $ALTIBASE_HOME/conf/altibase.properties 에서 MEM_MAX_DB_SIZE 를초과할수없다. 이에러메시지는모든공간이소진되어발생한다. 따라서, 불필요한테이블을삭제하거나 MEM_MAX_DB_SIZE 를더큰값으로늘리고 ALTIBASE 를재구동해야한다. 이러한임시조치이후에는어떤이유로메모리테이블스페이스의사용량이증가하였는지각테이블별사용량의조회나대량변경작업등이발생하지않았는지확인하여조치할필요가있다. The Tablespace does not have enough free space 테이블스페이스의여유공간이부족할경우발생한다. 디스크테이블스페이스의경우데이터파일의추가작업이필요하다. ALTIBASE 환경의개발시고려사항가이드 27 page of 30
28 The transaction exceeds lock timeout specified by user DML 간에는 Lock 을대기하고서버에설정된 TIMEOUT 정책에의해동작을하게되지만 DML 에의해잡힌 Lock 으로인해 DDL 이대기하게될경우즉시, 이에러가발생하게된다. 시간 A 세션 B 세션 T1 INSERT INTO x1 VALUES (Lock 획득 ) T2 ALTER TABLE x1 ADD COLUMN (Error) 위의표와같이 A 세션이먼저 DML 을통해 Lock 을획득한상태에서 B 세션이 DDL 을수행하려고할경우이에러가발생하기때문에해당테이블에 Lock 이존재하는지체크하고조치한후작업을진행하면된다. The update log size is bigger than TRX_UPDATE_MAX_LOGSIZE ALTIBASE 에서는대량변경작업이유발하는후속적인장애상황을방지하기위해변경트랜잭션에의해발생하는리두로그의양이 $ALTIBASE_HOME/trc/altibase.properties 에 TRX_UPDATE_MAX_LOGSIZE 에명시된값보다커질경우이에러를발생시키고롤백처리를하게된다. 사용자는해당트랜잭션이반드시하나의질의문으로처리되어야한다면세션레벨에서다음과같이이속성값을변경하여처리하도록한다. ALTER SESSION SET TRX_UPDATE_MAX_LOGSIZE = 0; ( 해당제약을없애는설정 ) 이렇게변경하여처리할경우리두로그파일의생성이많아져서디스크풀장애와같은상황이발생할수있으므로주의가필요하다. 또한, ALTIBASE 는대량변경작업시 MVCC 로인한리소스의증가를방지하기위해테이블에 X-Lock 을획득하려고시도하기때문에 X-Lock 획득이후해당테이블에조회및변경이 X-Lock 으로인해대기하게됨으로사용자의주의가필요하다. String data right truncated SELECT 문등에서리턴되는문자타입의값이선언된호스트변수의크기보다클경우발생한다. DB 에접속하여조회하는테이블의컬럼크기를확인하고사용된호스트변수의크기를 ( 컬럼크기 + 1 byte) 로선언하도록해야한다. Value overflow 숫자형컬럼의표현범위보다더큰값이입력될경우발생한다. CREATE TABLE x2 (a NUMERIC(10, 5)); ALTIBASE 환경의개발시고려사항가이드 28 page of 30
29 insert into x2 values ( ); [ERR : Value overflow] Several statement still opened Fetch 프로토콜이진행중에서 CREATE TABLE 과같은질의가수행될때발생한다. 따라서, 모든동일세션에서 CURSOR-FETCH 가완료된후 DDL 을수행하거나열려있는 CURSOR 를 CLOSE 한이후 DDL 질의를수행하도록해야한다. 또는, 별도의세션에서 DDL 질의를수행하도록코드의변경이필요하다. ALTIBASE 환경의개발시고려사항가이드 29 page of 30
30 알티베이스 서울특별시구로구구로 3 동 대륭포스트 2 차 1008 호 대전사무소대전광역시서구둔산동 921 주은리더스텔 901 호 기술지원본부서울특별시구로구구로 3 동 대륭포스트 2 차 908 호 기술지원센터 Copyright c 2000~2013 ALTIBASE Corporation. All Rights Reserved. 이문서는정보제공을목적으로제공되며, 사전에예고없이변경될수있습니다. 이문서는오류가있을수있으며, 상업적또는특정목적에부합하는명시적, 묵시적인책임이일체없습니다. 이문서에포함된 ALTIBASE 제품의특징이나기능의개발, 발표등의시기는 ALTIBASE 재량입니다. ALTIBASE 는이문서에대하여관련된특허권, 상표권, 저작권또는기타지적재산권을보유할수있습니다. ALTIBASE 환경의개발시고려사항가이드 30 page of 30
목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate
ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition
More informationALTIBASE 사용자가이드 Templete
Real Alternative DBMS ALTIBASE, Since 1999 ALTIBASE 환경의개발시고려사항가이드 2014. 10 Copyright c 2000~2014 ALTIBASE Corporation. All Rights Reserved. Document Control Change Record Date Author Change Reference 2010-07
More information목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE
ALTIBASE HDB 6.3.1.10.1 Patch Notes 목차 BUG-45710 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG-45730 ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG-45760 ROLLUP/CUBE 절을포함하는질의는 SUBQUERY REMOVAL 변환을수행하지않도록수정합니다....
More informationALTIBASE 사용자가이드 Templete
Real Alternative DBMS ALTIBASE, Since 1999 WINDOWS ADO.NET 환경의 ALTIBASE 개발가이드 2010. 09 Copyright c 2000~2013 ALTBASE Corporation. All Rights Reserved. Document Control Change Record Date Author Change
More informationTablespace On-Offline 테이블스페이스 온라인/오프라인
2018/11/10 12:06 1/2 Tablespace On-Offline 테이블스페이스온라인 / 오프라인 목차 Tablespace On-Offline 테이블스페이스온라인 / 오프라인... 1 일반테이블스페이스 (TABLESPACE)... 1 일반테이블스페이스생성하기... 1 테이블스페이스조회하기... 1 테이블스페이스에데이터파일 (DATA FILE) 추가
More information목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4
ALTIBASE HDB 6.5.1.5.10 Patch Notes 목차 BUG-46183 DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG-46249 [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 BUG-46266 [sm]
More informationALTIBASE HDB Patch Notes
ALTIBASE HDB 6.5.1.5.6 Patch Notes 목차 BUG-45643 암호화컬럼의경우, 이중화환경에서 DDL 수행시 Replication HandShake 가실패하는문제가있어수정하였습니다... 4 BUG-45652 이중화에서 Active Server 와 Standby Server 의 List Partition 테이블의범위조건이다른경우에 Handshake
More informationInsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins
Project 1-3: Implementing DML Due: 2015/11/11 (Wed), 11:59 PM 이번프로젝트의목표는프로젝트 1-1 및프로젝트 1-2에서구현한프로그램에기능을추가하여간단한 DML을처리할수있도록하는것이다. 구현한프로그램은 3개의 DML 구문 (insert, delete, select) 을처리할수있어야한다. 테이블데이터는파일에저장되어프로그램이종료되어도사라지지않아야한다.
More information강의 개요
DDL TABLE 을만들자 웹데이터베이스 TABLE 자료가저장되는공간 문자자료의경우 DB 생성시지정한 Character Set 대로저장 Table 생성시 Table 의구조를결정짓는열속성지정 열 (Clumn, Attribute) 은이름과자료형을갖는다. 자료형 : http://dev.mysql.cm/dc/refman/5.1/en/data-types.html TABLE
More information10.ppt
: SQL. SQL Plus. JDBC. SQL >> SQL create table : CREATE TABLE ( ( ), ( ),.. ) SQL >> SQL create table : id username dept birth email id username dept birth email CREATE TABLE member ( id NUMBER NOT NULL
More informationDBMS & SQL Server Installation Database Laboratory
DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.
More information13주-14주proc.PDF
12 : Pro*C/C++ 1 2 Embeded SQL 3 PRO *C 31 C/C++ PRO *C NOT! NOT AND && AND OR OR EQUAL == = SQL,,, Embeded SQL SQL 32 Pro*C C SQL Pro*C C, C Pro*C, C C 321, C char : char[n] : n int, short, long : float
More informationBind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터
Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터를사용자에게전송하게되며 Parsing 단계에서실행계획이생성된다. Bind 변수를사용하는 SQL
More informationALTIBASE 사용자가이드 Templete
Real Alternative DBMS ALTIBASE, Since 1999 ALTIBASE 설치시발생할수있는문제상황과조치 ALTIBASE 5.3.3 2010. 03 Copyright c 2000~2013 ALTBASE Corporation. All Rights Reserved. Document Control Change Record Date Author Change
More informationuntitled
(shared) (integrated) (stored) (operational) (data) : (DBMS) :, (database) :DBMS File & Database - : - : ( : ) - : - : - :, - DB - - -DBMScatalog meta-data -DBMS -DBMS - -DBMS concurrency control E-R,
More informationPowerPoint 프레젠테이션
Reasons for Poor Performance Programs 60% Design 20% System 2.5% Database 17.5% Source: ORACLE Performance Tuning 1 SMS TOOL DBA Monitoring TOOL Administration TOOL Performance Insight Backup SQL TUNING
More informationALTIBASE HDB Patch Notes
ALTIBASE HDB 5.3.3.93 Patch Notes Table of Contents BUG-27950 ALL PRIVILEGES 권한을가진계정이다른계정의테이블에 Foreign Key 를 생성하지못한다. 3 BUG-38105 PASSWORD_LIFE_TIME 경과후유예기간 (PASSWORD_GRACE_TIME) 내에 접속을시도할경우알림메시지를발생해야한다.
More informationMySQL-.. 1
MySQL- 기초 1 Jinseog Kim Dongguk University jinseog.kim@gmail.com 2017-08-25 Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 1 / 18 SQL의 기초 SQL은 아래의 용도로 구성됨 데이터정의 언어(Data definition
More informationC# Programming Guide - Types
C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든
More informationCloud Friendly System Architecture
-Service Clients Administrator 1. -Service 구성도 : ( 좌측참고 ) LB(LoadBlancer) 2. -Service 개요 ucloud Virtual Router F/W Monitoring 개념 특징 적용가능분야 Server, WAS, DB 로구성되어 web service 를클라우드환경에서제공하기위한 service architecture
More informationPowerPoint Presentation
FORENSICINSIGHT SEMINAR SQLite Recovery zurum herosdfrc@google.co.kr Contents 1. SQLite! 2. SQLite 구조 3. 레코드의삭제 4. 삭제된영역추적 5. 레코드복원기법 forensicinsight.org Page 2 / 22 SQLite! - What is.. - and why? forensicinsight.org
More informationALTIBASE XDB Release Note APRIL 22, 2014
6.1.3 Release Note APRIL 22, 2014 목차 목차... 2 1. 시스템요구사항... 3 2. 릴리스정보... 4 2.1 6.1.3의주요기능... 4 2.2 변경사항... 8 데이터베이스버전... 8 호환성... 8 프로퍼티... 8 성능뷰... 8 에러메시지... 8 2.3 패키지... 9 2.4 다운로드... 10 위치... 10 설치...
More informationThe Pocket Guide to TCP/IP Sockets: C Version
인터넷프로토콜 5 장 데이터송수신 (3) 1 파일전송메시지구성예제 ( 고정크기메시지 ) 전송방식 : 고정크기 ( 바이너리전송 ) 필요한전송정보 파일이름 ( 최대 255 자 => 255byte 의메모리공간필요 ) 파일크기 (4byte 의경우최대 4GB 크기의파일처리가능 ) 파일내용 ( 가변길이, 0~4GB 크기 ) 메시지구성 FileName (255bytes)
More informationMicrosoft PowerPoint - 10Àå.ppt
10 장. DB 서버구축및운영 DBMS 의개념과용어를익힌다. 간단한 SQL 문법을학습한다. MySQL 서버를설치 / 운영한다. 관련용어 데이터 : 자료 테이블 : 데이터를표형식으로표현 레코드 : 테이블의행 필드또는컬럼 : 테이블의열 필드명 : 각필드의이름 데이터타입 : 각필드에입력할값의형식 학번이름주소연락처 관련용어 DB : 테이블의집합 DBMS : DB 들을관리하는소프트웨어
More informationSQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자
SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전
More informationPowerPoint Presentation
FORENSIC INSIGHT; DIGITAL FORENSICS COMMUNITY IN KOREA SQL Server Forensic AhnLab A-FIRST Rea10ne unused6@gmail.com Choi Jinwon Contents 1. SQL Server Forensic 2. SQL Server Artifacts 3. Database Files
More informationMS-SQL SERVER 대비 기능
Business! ORACLE MS - SQL ORACLE MS - SQL Clustering A-Z A-F G-L M-R S-Z T-Z Microsoft EE : Works for benchmarks only CREATE VIEW Customers AS SELECT * FROM Server1.TableOwner.Customers_33 UNION ALL SELECT
More informationConnection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET
135-080 679-4 13 02-3430-1200 1 2 11 2 12 2 2 8 21 Connection 8 22 UniSQLConnection 8 23 8 24 / / 9 3 UniSQL 11 31 OID 11 311 11 312 14 313 16 314 17 32 SET 19 321 20 322 23 323 24 33 GLO 26 331 GLO 26
More informationNoSQL
MongoDB Daum Communications NoSQL Using Java Java VM, GC Low Scalability Using C Write speed Auto Sharding High Scalability Using Erlang Read/Update MapReduce R/U MR Cassandra Good Very Good MongoDB Good
More informationORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O
Orange for ORACLE V4.0 Installation Guide ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE...1 1....2 1.1...2 1.2...2 1.2.1...2 1.2.2 (Online Upgrade)...11 1.3 ORANGE CONFIGURATION ADMIN...12 1.3.1 Orange Configuration
More information歯sql_tuning2
SQL Tuning (2) SQL SQL SQL Tuning ROW(1) ROW(2) ROW(n) update ROW(2) at time 1 & Uncommitted update ROW(2) at time 2 SQLDBA> @ UTLLOCKT WAITING_SESSION TYPE MODE_REQUESTED MODE_HELD LOCK_ID1
More information<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>
i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,
More informationOPCTalk for Hitachi Ethernet 1 2. Path. DCOMwindow NT/2000 network server. Winsock update win95. . . 3 Excel CSV. Update Background Thread Client Command Queue Size Client Dynamic Scan Block Block
More informationPowerPoint 프레젠테이션
System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소
More information초보자를 위한 분산 캐시 활용 전략
초보자를위한분산캐시활용전략 강대명 charsyam@naver.com 우리가꿈꾸는서비스 우리가꿈꾸는서비스 우리가꿈꾸는서비스 우리가꿈꾸는서비스 그러나현실은? 서비스에필요한것은? 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 적절한기능 서비스안정성 트위터에매일고래만보이면? 트위터에매일고래만보이면?
More informationuntitled
PowerBuilder 連 Microsoft SQL Server database PB10.0 PB9.0 若 Microsoft SQL Server 料 database Profile MSS 料 (Microsoft SQL Server database interface) 行了 PB10.0 了 Sybase 不 Microsoft 料 了 SQL Server 料 PB10.0
More information[Brochure] KOR_TunA
LG CNS LG CNS APM (TunA) LG CNS APM (TunA) 어플리케이션의 성능 개선을 위한 직관적이고 심플한 APM 솔루션 APM 이란? Application Performance Management 란? 사용자 관점 그리고 비즈니스 관점에서 실제 서비스되고 있는 어플리케이션의 성능 관리 체계입니다. 이를 위해서는 신속한 장애 지점 파악 /
More informationMicrosoft Word - ntasFrameBuilderInstallGuide2.5.doc
NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,
More informationWindows 8에서 BioStar 1 설치하기
/ 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar
More information<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>
리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1
More information쉽게 풀어쓴 C 프로그래밊
Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.
More informationISP and CodeVisionAVR C Compiler.hwp
USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler
More information슬라이드 1
Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치
More information문서 템플릿
HDSI 툴분석 [sql injection 기술명세서 ] Sql injection 기술명세서 Ver. 0.01 이문서는 sql injection 기술명세가범위입니다. Copyrights Copyright 2009 by CanvasTeam@SpeeDroot( 장경칩 ) All Rights Reserved. 장경칩의사전승인없이본내용의전부또는일부에대한복사, 전재,
More informationALTIBASE 사용자가이드 Templete
Real Alternative DBMS ALTIBASE, Since 1999 ALTIBASE Quick Install & Start for UNIX ALTIBASE 5 2010. 03 Copyright c 2000~2013 ALTBASE Corporation. All Rights Reserved. Document Control Change Record Date
More informationFileMaker 15 ODBC 및 JDBC 설명서
FileMaker 15 ODBC JDBC 2004-2016 FileMaker, Inc.. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker FileMaker Go FileMaker, Inc.. FileMaker WebDirect FileMaker, Inc... FileMaker.
More information<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >
웹프로그래밍및실습 ( g & Practice) 문양세강원대학교 IT 대학컴퓨터과학전공 소켓 (Socket) (1/2) Socket 이란? 서버와클라이언트가서로특정한규약을사용하여데이터를전송하기위한방식 서버와클라이언트는소켓연결을기다렸다가소켓이연결되면서로데이터를전송 현재네트워크상에서의모든통신의근간은 Socket 이라할수있음 Page 2 1 소켓 (Socket) (2/2)
More informationMicrosoft PowerPoint - chap06-2pointer.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.
More informationALTIBASE 사용자가이드 Templete
Real Alternative DBMS ALTIBASE, Since 1999 WINDOWS 환경의 ALTIBASE ODBC 개발가이드 2010. 09 Copyright c 2000~2013 ALTBASE Corporation. All Rights Reserved. Document Control Change Record Date Author Change Reference
More informationT100MD+
User s Manual 100% ) ( x b a a + 1 RX+ TX+ DTR GND TX+ RX+ DTR GND RX+ TX+ DTR GND DSR RX+ TX+ DTR GND DSR [ DCE TYPE ] [ DCE TYPE ] RS232 Format Baud 1 T100MD+
More informationALTIBASE 사용자가이드 Templete
Real Alternative DBMS ALTIBASE, Since 1999 ALTIBASE 기본적인장애대응절차 ALTIBASE 2010. 03 Copyright c 2000~2013 ALTBASE Corporation. All Rights Reserved. Document Control Change Record Date Author Change Reference
More informationALTIBASE 사용자가이드 Templete
Real Alternative DBMS ALTIBASE, Since 1999 ALTIBASE & Visual C++ 2010 Professional Edition 개발가이드 2014. 04 Copyright c 2000~2013 ALTBASE Corporation. All Rights Reserved. Document Control Change Record
More information이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론
이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 2. 관련연구 2.1 MQTT 프로토콜 Fig. 1. Topic-based Publish/Subscribe Communication Model. Table 1. Delivery and Guarantee by MQTT QoS Level 2.1 MQTT-SN 프로토콜 Fig. 2. MQTT-SN
More informationSMB_ICMP_UDP(huichang).PDF
SMB(Server Message Block) UDP(User Datagram Protocol) ICMP(Internet Control Message Protocol) SMB (Server Message Block) SMB? : Microsoft IBM, Intel,. Unix NFS. SMB client/server. Client server request
More informationALTIBASE HDB Patch Notes
ALTIBASE HDB 6.3.1.10.6 Patch Notes 목차 BUG-45060 offline replication start 와 replication drop 을동시에수행하는경우, replication start 가완료되지않았으면 replication drop 을수행하지못하도록수정하였습니다... 4 BUG-46193 메모리테이블의이중화병렬 sync
More informationJDBC 소개및설치 Database Laboratory
JDBC 소개및설치 JDBC } What is the JDBC? } JAVA Database Connectivity 의약어 } 자바프로그램안에서 SQL 을실행하기위해데이터베이스를연결해주는응용프로그램인터페이스 } 연결된데이터베이스의종류와상관없이동일한방법으로자바가데이터베이스내에서발생하는트랜잭션을제어할수있도록하는환경을제공 2 JDBC Driver Manager }
More information본교재는수업용으로제작된게시물입니다. 영리목적으로사용할경우저작권법제 30 조항에의거법적처벌을받을수있습니다. [ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase sta
[ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase startup-config Erasing the nvram filesystem will remove all configuration files Continue? [confirm] ( 엔터 ) [OK] Erase
More informationWINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역
WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역시쉽게해결할수있다. 이번화이트페이퍼에서는 Window Function 중순위 RANK, ROW_NUMBER,
More informationFileMaker ODBC 및 JDBC 가이드
FileMaker ODBC JDBC 2004-2019 FileMaker, Inc.. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker, FileMaker Cloud, FileMaker Go FileMaker, Inc.. FileMaker WebDirect FileMaker,
More information6주차.key
6, Process concept A program in execution Program code PCB (process control block) Program counter, registers, etc. Stack Heap Data section => global variable Process in memory Process state New Running
More informationuntitled
Push... 2 Push... 4 Push... 5 Push... 13 Push... 15 1 FORCS Co., LTD A Leader of Enterprise e-business Solution Push (Daemon ), Push Push Observer. Push., Observer. Session. Thread Thread. Observer ID.
More informationWindows Server 2012
Windows Server 2012 Shared Nothing Live Migration Shared Nothing Live Migration 은 SMB Live Migration 방식과다른점은 VM 데이터파일의위치입니다. Shared Nothing Live Migration 방식은 Hyper-V 호스트의로컬디스크에 VM 데이터파일이위치합니다. 반면에, SMB
More information휠세미나3 ver0.4
andromeda@sparcs:/$ ls -al dev/sda* brw-rw---- 1 root disk 8, 0 2014-06-09 18:43 dev/sda brw-rw---- 1 root disk 8, 1 2014-06-09 18:43 dev/sda1 brw-rw---- 1 root disk 8, 2 2014-06-09 18:43 dev/sda2 andromeda@sparcs:/$
More informationMicrosoft PowerPoint - 04-UDP Programming.ppt
Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여
More information슬라이드 1
/ 유닉스시스템개요 / 파일 / 프로세스 01 File Descriptor file file descriptor file type unix 에서의파일은단지바이트들의나열임 operating system 은파일에어떤포맷도부과하지않음 파일의내용은바이트단위로주소를줄수있음 file descriptor 는 0 이나양수임 file 은 open 이나 creat 로 file
More informationPowerPoint 프레젠테이션
Spider For MySQL 실전사용기 피망플러스유닛최윤묵 Spider For MySQL Data Sharding By Spider Storage Engine http://spiderformysql.com/ 성능 8 만 / 분 X 4 대 32 만 / 분 많은 DB 중에왜 spider 를? Source: 클라우드컴퓨팅구 선택의기로 Consistency RDBMS
More informationBackup Exec
(sjin.kim@veritas.com) www.veritas veritas.co..co.kr ? 24 X 7 X 365 Global Data Access.. 100% Storage Used Terabytes 9 8 7 6 5 4 3 2 1 0 2000 2001 2002 2003 IDC (TB) 93%. 199693,000 TB 2000831,000 TB.
More informationPowerPoint Presentation
Server I/O utilization System I/O utilization V$FILESTAT V$DATAFILE Data files Statspack Performance tools TABLESPACE FILE_NAME PHYRDS PHYBLKRD READTIM PHYWRTS PHYBLKWRT WRITETIM ------------- -----------------------
More informationMicrosoft PowerPoint - chap02-C프로그램시작하기.pptx
#include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의
More informationchap 5: Trees
5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경
More information항목
Cloud 컴퓨팅기반분산파일시스템개요 개발실 UPDATE : 2012. 11 18 INDEX 1. 가용성 2. 확장성 3. PrismFS 4. Q&A 2 가용성 3 Gmail 장애 2011년 2월 27일 34000명의 Gmail 사용자들이일어나보니메일, 주소록, 채팅기록등이사라진것을발견 2011년 2월 28일 스토리지소프트웨어업데이트를진행하는중 Bug로인해발생했다고공지
More informationData Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager
Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager are trademarks or registered trademarks of Ari System, Inc. 1 Table of Contents Chapter1
More information1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation
1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation Board(EVB B/D) 들과 TCP/IP Protocol로연결되며, 연결된 TCP/IP
More information목 차
Oracle 9i Admim 1. Oracle RDBMS 1.1 (System Global Area:SGA) 1.1.1 (Shared Pool) 1.1.2 (Database Buffer Cache) 1.1.3 (Redo Log Buffer) 1.1.4 Java Pool Large Pool 1.2 Program Global Area (PGA) 1.3 Oracle
More informationSpring Boot/JDBC JdbcTemplate/CRUD 예제
Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.
More informationSimplify your Job Automatic Storage Management DB TSC
Simplify your Job Automatic Storage Management DB TSC 1. DBA Challenges 2. ASM Disk group 3. Mirroring/Striping/Rebalancing 4. Traditional vs. ASM 5. ASM administration 6. ASM Summary Capacity in Terabytes
More informationMicrosoft PowerPoint Predicates and Quantifiers.ppt
이산수학 () 1.3 술어와한정기호 (Predicates and Quantifiers) 2006 년봄학기 문양세강원대학교컴퓨터과학과 술어 (Predicate), 명제함수 (Propositional Function) x is greater than 3. 변수 (variable) = x 술어 (predicate) = P 명제함수 (propositional function)
More information임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과
임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수
More information<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>
SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......
More information<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>
연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.
More informationALTIBASE 사용자가이드 Templete
Real Alternative DBMS ALTIBASE, Since 1999 ALTIBASE STARTUP/STOP 과정의이해 2010. 05 Copyright c 2000~2013 ALTBASE Corporation. All Rights Reserved. Document Control Change Record Date Author Change Reference
More informationMicrosoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx
To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse
More informationSpotlight on Oracle V10.x 트라이얼프로그램설치가이드 DELL SOFTWARE KOREA
Spotlight on Oracle V10.x DELL SOFTWARE KOREA 2016-11-15 Spotlight on Oracle 목차 1. 시스템요구사항... 2 1.1 지원하는데이터베이스...2 1.2 사용자설치홖경...2 2. 프로그램설치... 3 2.1 설치프로그램실행...3 2.2 라이선스사용관련내용확인및사용동의...3 2.3 프로그램설치경로지정...4
More informationObservational Determinism for Concurrent Program Security
웹응용프로그램보안취약성 분석기구현 소프트웨어무결점센터 Workshop 2010. 8. 25 한국항공대학교, 안준선 1 소개 관련연구 Outline Input Validation Vulnerability 연구내용 Abstract Domain for Input Validation Implementation of Vulnerability Analyzer 기존연구
More informationvm-웨어-앞부속
VMware vsphere 4 This document was created using the official VMware icon and diagram library. Copyright 2009 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright
More informationAPI STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum
API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 2012.11.23 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Document Distribution Copy Number Name(Role, Title) Date
More information게시판 스팸 실시간 차단 시스템
오픈 API 2014. 11-1 - 목 차 1. 스팸지수측정요청프로토콜 3 1.1 스팸지수측정요청프로토콜개요 3 1.2 스팸지수측정요청방법 3 2. 게시판스팸차단도구오픈 API 활용 5 2.1 PHP 5 2.1.1 차단도구오픈 API 적용방법 5 2.1.2 차단도구오픈 API 스팸지수측정요청 5 2.1.3 차단도구오픈 API 스팸지수측정결과값 5 2.2 JSP
More information윈도우시스템프로그래밍
데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생
More informationThe Self-Managing Database : Automatic Health Monitoring and Alerting
The Self-Managing Database : Automatic Health Monitoring and Alerting Agenda Oracle 10g Enterpirse Manager Oracle 10g 3 rd Party PL/SQL API Summary (Self-Managing Database) ? 6% 6% 12% 55% 6% Source: IOUG
More information(SW3704) Gingerbread Source Build & Working Guide
(Mango-M32F4) Test Guide http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document History
More informationData Guard 기본개념.doc
Data Guard 개념 (9i R2 9.2.0.1) 김형일 HIKIM000@EMPAL.COM 1 목차 1. DataGuard 개념 3 1.1 Data Guard Architecture 3 1.2 DataGuard 장점 4 1.3 Switch over and Failover 5 1.4 Physical Standby 와 Logical Standby 5 2. Data
More informationAPI 매뉴얼
PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned
More informationChap7.PDF
Chapter 7 The SUN Intranet Data Warehouse: Architecture and Tools All rights reserved 1 Intranet Data Warehouse : Distributed Networking Computing Peer-to-peer Peer-to-peer:,. C/S Microsoft ActiveX DCOM(Distributed
More informationuntitled
Memory leak Resource 力 金 3-tier 見 Out of Memory( 不 ) Memory leak( 漏 ) 狀 Application Server Crash 理 Server 狀 Crash 類 JVM 說 例 行說 說 Memory leak Resource Out of Memory Memory leak Out of Memory 不論 Java heap
More informationInstall stm32cubemx and st-link utility
STM32CubeMX and ST-LINK Utility for STM32 Development 본문서는 ST Microelectronics 의 ARM Cortex-M 시리즈 Microcontroller 개발을위해제공되는 STM32CubeMX 와 STM32 ST-LINK Utility 프로그램의설치과정을설명합니다. 본문서는 Microsoft Windows 7
More information3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT
3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT NOT NULL, FOREIGN KEY (parent_id) REFERENCES Comments(comment_id)
More informationMicrosoft Word - PLC제어응용-2차시.doc
과정명 PLC 제어응용차시명 2 차시. 접점명령 학습목표 1. 연산개시명령 (LOAD, LOAD NOT) 에대하여설명할수있다. 2. 직렬접속명령 (AND, AND NOT) 에대하여설명할수있다. 3. 병렬접속명령 (OR, OR NOT) 에대하여설명할수있다. 4.PLC의접점명령을가지고간단한프로그램을작성할수있다. 학습내용 1. 연산개시명령 1) 연산개시명령 (LOAD,
More informationMicrosoft PowerPoint - chap06-1Array.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어
More informationMicrosoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100
2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack
More informationUSER GUIDE
Solution Package Volume II DATABASE MIGRATION 2010. 1. 9. U.Tu System 1 U.Tu System SeeMAGMA SYSTEM 차 례 1. INPUT & OUTPUT DATABASE LAYOUT...2 2. IPO 중 VB DATA DEFINE 자동작성...4 3. DATABASE UNLOAD...6 4.
More information