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
운영게시판
최근게시물
Sybase Q&A 968 게시물 읽기
No. 968
log 백업시 에러...
작성자
류재현
작성일
2004-08-04 17:44
조회수
3,710

Msg 4222, Level 16, State 1:
Line 2:
DUMP TRANSACTION for database 'TOP' failed: log page (657) is on a data-only
segment. This is probably due to an incomplete move of the log to a device
separate from the data. Complete the log migration or contact the System
Administrator.

로그를 보니 위와같이 에러메세지가 뜨는데..

원인이 무엇인지??

고수님들 답변 부탁드립니다..

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

db는 data(system & default) segment와 log segment로 구성됩니다.

 

sp_helpdb AAA

하심

AAA_dev data only...

AAA_log log only

 

이케 나와야 하고요

 

AAA_dev data and log

또는

AAA_dev data

AAA_dev2 data & log

AAA_log log

(기타 상황등등)

이케 나오면 log만 백업을 받을 수 없습니다.

 

지연님이 2004-08-05 08:42에 작성한 댓글입니다. Edit

지연님 답변 감사합니다.

그런데 조회를 해보니 위에 내용대로 나오던데요..

sp_helpdb.. 하니

data only

log only

이렇게 나오던데...

음.. 다른 문제일까요?

류재현님이 2004-08-05 16:48에 작성한 댓글입니다. Edit

제가보기에는 TOP DB의 data_only device 중 하나가 예전에는

data and log 용 device 이었던것 같습니다.

그후 해당 device를 data_only로  변경한것 같습니다.

data_only 로 변경후  해당 device에 있던 기존 log data를 정리

하셔야 하는데 그작업을 않하신것 같습니다..

 

작업

1. 현재 log pointer 를 확인한다.

select logptr from master..sysdatabases where name='TOP'

logptr 값을 확인

 

예)

select logptr from master..sysdatabases where name='mydb'

 logptr
 -----------
        1027

 

2. 해당 logptr값이  어느 device에 위치하는지 확인한다.   

select * from master..sysusages where dbid=db_id('TOP')

(

  lstart 값과 logptr 값을 비교해서 

logptr 값을 포함하는 device의 segmap을 확인한다.)

 

1> select * from sysusages where dbid=db_id('mydb')
2> go
 dbid   segmap      lstart      size        vstart      pad    unreservedpgs crdate
 ------ ----------- ----------- ----------- ----------- ------ ------------- --------------------------
      5           3           0        1024    50331648   NULL           423        Jul 30 2004  9:28PM
      5           4        1024         256    67108864   NULL           255        Jul 30 2004  9:28PM

(2 rows affected)

위의예제 에서 logptr 1027 에 해당 device는 굴은글씨체에 해당

해당 segmap은 4 (log only)

 

3. 2번째 결과가 segmap이 3  이면 log pointer 가 data only 영역에

   존재하는 것이므로 다음과 같은 방법을 사용하여 log pointer를

   log only 영역으로 옮긴다.

 

  - dummy  table을 만들어서 transaction을 발생시킨다.

   1> use TOP

   2> go

   1> create table dummy_tbl ( a char(255),b char(255))

   2> go

   1> insert dummy_tbl values ('a','b')

   2> go 1000 (위의 값은 적절히.. 조절)

 

 - log를 truncate 한다.

    1> dump tran TOP with truncate_only

    2> go

 

 위의 단계1~2 에서 설명한 방법을 사용하여 log pointer값을 확인한다.

 만약 log pointer가 log only device로 아직도 옮겨가지 않았다면

 단계3을 log pointer가 log only device로 이동하게끔반복수행한다.

 

단계4

  위의 단계1~3을 정상적으로 수행하여 log pointer가 log only device

로 옮겨갔다면 

 database 를 full backup 받은후 dump tran 을 수행해 보십시요...

 

(쓰고나니 말이 엄청 어렵네요......)

 

 

 

대발님이 2004-08-05 18:51에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
971Connection 객체의 transaction [1]
conn
2004-08-12
3154
970이상한 에러가 납니다.(ASA Error -1000011)
syzil
2004-08-12
3404
969date 형 질문이요 고수님들 조언부탁드립니다. [1]
벨클
2004-08-11
4532
968log 백업시 에러... [3]
류재현
2004-08-04
3710
967primarykey를 없에고 싶습니다. [1]
박흥배
2004-08-03
4257
966int형을 hex값으로 받아오는 방법좀 알려주세요....
이기수
2004-08-02
3280
965BCP IN을 하려는데 테이블이 없대요.. [3]
박서령
2004-08-02
4962
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다