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 1342 게시물 읽기
No. 1342
백업시 질문있습니다.
작성자
김기택
작성일
2005-10-20 10:01
조회수
4,544

안녕하세요.. 지난번에 백업테입 용량이 다 되었을때 이어서 받는방법에 대해서 질문드렸었는데요..

 

sp_volchagned @session_id, devname, {PROCEED | RETRY}

 

이문장을 사용해서 테입을 바꿔 넣은 후 이어서 했었습니다.

 

그런데 저 문장을 매번 실행시키지 않고 스크립트로 만들려고 하는데요..

매번 바뀌는 session_id 때문에 스크립트를 만들수가 없네요.

그래서 쫌 생각을 해봤는데요..

select spid from master..sysprocesses where hostname = 'SYB_BACKUP'을 하면 백업 session_id를 찾을 수 있는데 저 문장을 sp_volchanged의 @session_id 파라메터에 넣을 수가 없네요..

우선 제가 해본 방법은

 

sp_volchanged (select spid from master..sysprocesses where hostname = 'SYB_BACKUP'), devname, PROCEED

라고 했는데 구문 오류가 납니다.

() 괄호 말고도 {}, "", '', 등등 다 해보았는데 다 에러가 나네요..

좋은 방법 없을까요?? 꼭 자동스크립트를 만들어야 하는데...

 

좋은 하루 되시고 다들 힘내서 열씨미 일하세용.. ^^

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

ㅎㅎ 해결했습니다.

master에 procedure  하나 만들어서 해결했습니다.

아래와 같습니다.

 

CREATE PROCEDURE dbo.tape_backup
AS
declare backup_cursor cursor
for
    select spid from master..sysprocesses where hostname = 'SYB_BACKUP'
for read only
declare @id int

open backup_cursor
fetch backup_cursor into @id
    BEGIN
        execute sp_volchanged @id, streamtape, PROCEED
    END
close backup_cursor
deallocate cursor backup_cursor

 

김기택님이 2005-10-20 10:48에 작성한 댓글입니다. Edit

테잎용량이 꽉 찬 경우, 담당자가 테잎을 교체하고 나서

간단하게 진행하려고 하시는거 같군요.

 

프로시저를 하나 만들어서 하셔도 될 듯 합니다.

 

create procedure backup_continue

as

declare @session_id int

 

select @session_id = spid from master..sysprocesses

where hostname = 'SYB_BACKUP'

 

if @@rowcount = 0

begin

   print 'BACKUP중인 프로세스가 없습니다.'

   return

end

 

print '백업을 계속 진행합니다.'

execute sp_volchanged @session_id, devname, PROCEED

print '백업이 완료되었습니다.'

return

go

 

다음부터 백업중 테잎을 교체하신후

isql -Usa -P패스워드 -S서버명

1> backup_continue

2> go

하시면 됩니다.

존넘님이 2005-10-20 10:53에 작성한 댓글입니다.
이 댓글은 2005-10-20 10:53에 마지막으로 수정되었습니다. Edit

ASE 12.5 버전부터는 dump할 때 압축옵션이 있습니다.

 

device 명 앞에 compress::를 붙여주시면 됩니다.

 

예를 들면,

dump database pubs2 to 'compress::tapedump'

go

 

압축율이 아주 좋습니다. 테잎 하나로 백업이 약간 부족한 경우라면

compress 옵션사용으로 하나로 충분히 받을 수 있습니다.

 

파일로 dump를 해보시고 용량을 확인해 보는 것도 좋겠네요.

존넘님이 2005-10-20 10:57에 작성한 댓글입니다. Edit

댓글 정말 감사드립니다.

 

우선 사용하고 있는 버전이 12.0이라서 압축은 안되고요..

 

위와같이 프로시져를 만들어서 사용해서 처음에 성공해서 된줄 알았는데... 다시하니까 session_id 가 틀리다고 하네요..

 

sp_who에서 나온 id가 백업시 나오는 session_id와 같은줄 알았는데 서로 틀리네요... ㅠㅠ

 

백업시작할때 나오는 session_id는 도데체 어느 시스템테이블에서 가져와야 하나요.. ㅠㅠ

김기택님이 2005-10-22 16:25에 작성한 댓글입니다. Edit

하하하.

김기택님의 글만 보고 답변을 하였는데,

실제 테스트할 때 오류가 난다는 말씀이군요.

 

백업시 나타나는 @session_id는

백업서버의 SPID가 아니라는 말씀이신것 같습니다.

 

session_id를 찾아오는 방법만 찾으면 될 것 같네요.

 

환경상 백업 테스트를 해 볼 수 없는 상황이라 실전테스트를 못해드려서 미안합니다.

 

존넘님이 2005-10-26 11:45에 작성한 댓글입니다. Edit

백업하면서 sp_volchanged 메시지가 나올 때

master..sysprocesses에서 조회를 해보시고,

그때 입력하라고 하는 @session_id와 일치하는 컬럼을 확인해 보세요.

 


1> select * from master..sysprocesses
2> where hostname like 'SYB_BACKUP%'
3> go

존넘님이 2005-10-26 13:24에 작성한 댓글입니다. Edit

 

알아본 바로는,

SP로 작성하는 데에는 한계가 있을 것 같습니다.


극히 정상적인 방법인, SYBASE Backup server가 volumn change를 요청할 때 나타내주는
메시지를 확인해서 Action을 주는 게 맞을 것 같습니다.

 

다음과 같은 메시지가 나오면,

Backup Server: 4.49.1.1: OPERATOR: Volume to be overwritten on
'/dev/rmt4' has not expired: creation date on this volume is Sunday, Nov. 15, 1992, expiration date is Wednesday, Nov. 25, 1992.
Backup Server: 4.78.1.1: EXECUTE sp_volchanged
        @session_id = 8,
        @devname = '/auto/remote/pubs3/SERV/Masters/testdump',
        @action = { 'PROCEED' | 'RETRY' | 'ABORT' }
 
<> Action
# isql -Usa -P -S서버명

1> sp_volchanged 8, '/auto/remote/pubs3/SERV/Masters/testdump', PROCEED2> go
하세요. ^^;

자세한 것은 "http://sybooks.sybase.com/onlinebooks/group-as/asg1251e/sprocs/@Generic__BookTextView/45502;pt=703"를 참조하세요.
Backup 서버와 ASE 서버, Unix 간의 작업 절차가 상세히 설명되어 있습니다.

존넘님이 2005-10-26 13:40에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1345for xml 사용시 한글문제
김지수
2005-10-26
3174
1344insert시 seq 중복 에러.. [2]
김기택
2005-10-26
4732
1343오라클의 pro*c 처럼... [1]
새내기
2005-10-20
4111
1342백업시 질문있습니다. [7]
김기택
2005-10-20
4544
1341테이블 restore 시의 에러 [1]
썩은나무
2005-10-19
3700
1340Sybase 버젼은 어떻게 확인하나요? [3]
홍길동
2005-10-19
6128
1339코드성 테이블 select 시 좋은 방법은? [1]
bonzo
2005-10-19
3292
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다