database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
ㆍInformix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Informix Q&A 361 게시물 읽기
No. 361
-256 오류: 데이터베이스 로깅 모드 변경
작성자
그리움
작성일
2000-11-03 19:18
조회수
5,939

-256 오류: 데이터베이스 로깅 모드 변경

 

Q2 데이터베이스를 새로 생성하고 데이터를 로드한 후에 기존의 응용 프로그램을 사용했더니 "-256 Transaction not available." 오류가 발생했습니다. 오류가 발생한 문장은 BEGIN WORK; 문장이었습니다. 잘 사용하던 프로그램이었는데, 왜 이런 오류가 발생하는 것인지요?

 

A -256 오류는 트랜잭션을 사용할 수 없다는 내용으로, 새로 생성한 데이터베이스가 "No Logging" 모드이기 때문입니다.

Informix의 데이터베이스는 "Logging Mode"와 "No Logging Mode"로 나뉘며, Logging Mode는 다시 "Buffered Logging Mode"와 "Unbuffered Logging Mode" 그리고 "ANSI Mode"가 있습니다. 크게 Logging Mode와 No Logging Mode는 논리로그 파일에 해당 데이터베이스의 변경에 관한 정보를 기록하느냐 안하느냐의 차이이며, 기록하는 경우에는 여러 SQL 구문을 하나의 단위로 처리하고 때에 따라서는 ROLL BACK을 실행할 수 있는 트랜잭션 처리가 가능하며, 장애 발생시 backup한 데이터 외에 남아있는 논리로그를 가지고 Logical Recovery를 행할 수 있습니다.

 

이러한 Logging Mode는 데이터베이스 생성시 결정되는 것이며, 지금의 경우처럼 이미 생성된 후에는 ontape 명령이나 onmonitor의 "Logical-Logs" 옵션에서 변경할 수 있습니다. 단, onmonitor에서는 No Logging Mode를 Logging Mode로 변경할 수는 없습니다.

 

데이터베이스를 생성하는 문장은 다음과 같습니다.

 

CREATE DATABASE seoul; -- No Logging Mode

CREATE DATABASE kangwon WITH LOG; -- Unbuffered Logging Mode

CREATE DATABASE pusan WITH BUFFERED LOG;

-- Buffered Logging Mode

 

 

각 데이터베이스의 Logging Mode를 확인하기 위해서는 onmonitor의 Status옵션의 Database 메뉴를 이용하거나 다음의 SQL 구문을 실행하면 됩니다.

 

database sysmaster;

select name,created,is_logging, is_buff_log

from sysdatabases;

 

name

created

is_logging

is_buff_log

 

sysmaster 1999.10.25 1

0

 

sysutils 1999.10.25 1

0

 

seoul 2000.03.28 0

0

 

kangwon 2000.03.28 1

0

 

pusan 2000.03.28 1

1

 

 

위의 질의에서 is_logging 칼럼이 '1'인 경우가 Logging Mode이고, is_buff_log 칼럼이 '1'일 때 Buffered Logging Mode라는 것을 알 수 있습니다.

 

위와 같이 만들어진 데이터베이스의 Logging Mode를 변경할 때는 다음과 같이 할 수 있습니다. 우선 ontape 명령의 옵션을 살펴보십시오.

 

K400:/post01/vol9> ontape

Ontape

usage:

{ -a |

-c |

-l |

-p |

-r [-D DBspace_list] |

-s [-L archive_level] [-A database_list]

[-B database_list] [-N database_list]

[-U database_list] }

 

-a Automatic backup of logical logs

-c Continuous backup of logical logs

-l Logical restore

-p Physical restore for HDR

-r Full restore DBspaces/BLOBspaces as listed

-s Archive full system

-A set the following database(s) to ansi logging

-B set the following database(s) to buffered logging

-N set the following database(s) to no logging

-U set the following database(s) to unbuffered logging

 

 

다음의 예를 참고 하십시오.

 

1. seoul 데이터베이스를 Buffered Logging Mode로 변경

 

K400:/post01/case/byrhee/test/vol9> ontape -s -B seoul

Archive to tape device '/dev/null' is complete.

 

Program over.

 

 

2. kangwon 데이터베이스를 No Logging으로 변경

 

K400:/post01/case/byrhee/test> ontape -s -N kangwon

Archive to tape device '/dev/null' is complete.

 

Program over.

 

 

3. pusan 데이터베이스를 Unbuffered Logging Mode로 변경

 

K400:/post01/case/byrhee/test/vol9> ontape -s -U pusan

Archive to tape device '/dev/null' is complete.

 

Program over.

 

 

한가지 주의할 사항은, ontape -s는 system archive 명령이므로 dummy archive가 될 수 있도록 아래와 같이 먼저 $INFORMIXDIR/etc/$ONCONFIG 파일의 TAPEDEV 파라미터 값을 /dev/null로 바꾸어 준 후 작업을 하는 것이 좋습니다.

 

... ...

 

#TAPEDEV /dev/rmt/0 # Tape device path

TAPEDEV /dev/null # Tape device path

TAPEBLK 16 # Tape block size (Kbytes)

TAPESIZE 300000 # Maximum amount of data to put on tape (Kbytes)

... ...

 

위와 같이 변경한 후 다시 앞의 질의를 실행하면 그 결과는 다음과 같습니다.

 

database sysmaster;

select name,created,is_logging, is_buff_log

from sysdatabases;

 

name created is_logging is_buff_log

sysmaster 1999.10.25 1 0

sysutils 1999.10.25 1 0

seoul 2000.03.28 1 1

kangwon 2000.03.28 0 0

pusan 2000.03.28 1 0

이 글에 대한 댓글이 총 1건 있습니다.

자바 개발자 입니다.

informix 를 win2003 테스트 서버에서 사용할 때는 잘 사용했었는데. unix 로 이관하는 과정에서 무슨 문제가 있었는지 컨넥션은 가져오는것 같은데 transaction not supported! 에러가 나데요.. 어제 하루종일 고생하고 오늘 아침에 이 글을 읽고 혹시나 하는 마음에 로깅모드 설정이 안되있는것 같아 바꾸어보니 오케!!! 잘 되네요.

꽤 오래된 글이라 다시 보실지 모르겠지만 정말 감사합니다.

새해 복 많이 받으세요..

 

고마움님이 2006-01-07 11:41에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
364JDBC 드라이브 이용에 관한 질문
그리움
2000-11-03
5233
363ESQL/C 를 이용한 multi-connection
그리움
2000-11-03
5463
362"Must be dbsa to run this program." 또는 -951 오류
그리움
2000-11-03
5236
361-256 오류: 데이터베이스 로깅 모드 변경 [1]
그리움
2000-11-03
5939
360Insert 후 serial column 의 값 알아내기; sqlca.sqlerrd[1]
그리움
2000-11-03
6929
359ASP; TEXT 자료형에 자료입력하기.
그리움
2000-11-03
4935
358데이터베이스에서 몇몇 테이블의 크기를 SQL 로 구할수 있나.
그리움
2000-11-03
5312
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다