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 162 게시물 읽기
No. 162
Re: 트랜잭션 로그없는 DB에 트랜잭션 로그를 추가하는 법 아시는분!
작성자
hahaman
작성일
2000-06-08 09:10
조회수
9,509

위 문제에 대한 해답을 한국 Informix에서 찾아서 이렇게 적습니다.

참조하세요!

===============================================================

-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

[Top]
No.
제목
작성자
작성일
조회
165컴퓨터를 껏다가 키면 informix의 연결안됨
인포랑
2000-06-08
7968
167┕>Re: 그냥 -461에러의 내용입니다.
hahaman
2000-06-09 09:18:55
8290
169┕>Re: 461 에러 해결책
인포랑
2000-06-09 02:43:37
8115
161인포는 mysql_data_seek($result,$i) 을 어떻게 구현하시는지요?
인포랑
2000-06-07
7828
164┕>Re: 인포는 mysql_data_seek($result,$i) 을 어떻게 구현하시는지요?
hahaman
2000-06-08 09:20:25
8021
160informix 메뉴얼 구할수 있는곳 아시나요?
인포랑
2000-06-07
8186
163┕>Re: informix 메뉴얼 구할수 있는곳 아시나요?
hahaman
2000-06-08 09:16:15
9274
159트랜잭션 로그없는 DB에 트랜잭션 로그를 추가하는 법 아시는분!
hahaman
2000-06-07
7982
162┕>Re: 트랜잭션 로그없는 DB에 트랜잭션 로그를 추가하는 법 아시는분!
hahaman
2000-06-08 09:10:54
9509
153jsp 와 의 연동을 위해서..
이미영
2000-06-01
8072
152Informix on Linux (홈페이지) 에 쓰인 전체 소스공개
서준원
2000-06-01
8075
154┕>Re: Informix on Linux (홈페이지) 에 쓰인 전체 소스공개
이정환
2000-06-02 10:14:36
8322
155 ┕>Re: Re: Informix on Linux (홈페이지) 에 쓰인 전체 소스공개
서준원
2000-06-02 15:26:03
8353
156  ┕>Re: Re: Re: Informix on Linux (홈페이지) 에 쓰인 전체 소스공개
이정환
2000-06-03 00:03:58
8109
157   ┕>Re: Re: Re: Re: Informix on Linux (홈페이지) 에 쓰인 전체 소스공개
서준원
2000-06-03 08:03:06
8240
151공유메모리에러 43
hahaman
2000-05-30
7718
158┕>Re: 공유메모리에러 43
hahaman
2000-06-05 10:58:44
8260
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.030초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다