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
운영게시판
최근게시물
MS-SQL Q&A 2118 게시물 읽기
No. 2118
삭제한 뷰를 살리는 방법이 있을까요?
작성자
질럿(tolerate78)
작성일
2005-07-18 15:21
조회수
3,672

부탁드립니다..급해서요 --;

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

혹시 백업본 있으시면 다른 디비에 복구하시고 해당 뷰를 카피해

오는게 가장 빠르지 않을까요 ^^;

 

석이님이 2005-07-18 15:22에 작성한 댓글입니다. Edit

백업본이 없어서 문제네요 --;

트랜잭션 로그 같은 걸론 살리는 방법이 없나요?

질럿님이 2005-07-18 15:25에 작성한 댓글입니다. Edit

절대 약올리는 것은 아니구요

저두 테이블 한번 날려봤는데 백업이 있어서 다행이었는데요

데이터 베이스에 암묵적 트랜젝션 활성화 옵션이 있습니다.

그럼 그 해당 세션에서 commit 하기 전까지는 들어가지 않습니다.

 

begin tran 을 매번 주의해서 쓰시던지

데이터베이스 셋팅에서 그 옵션을 활성화 해서 쓰시길 바랍니다.

 

석이님이 2005-07-18 15:45에 작성한 댓글입니다. Edit

현재의 트랜잭션 로그를 백업을 받으시고

restore의 STOPAT 옵션을 사용해서,

다른 test 서버 등에서 test 해 보시고, 관련 뷰 부분만 올리시만

될 것 같습니다.

가을남자님이 2005-07-18 16:12에 작성한 댓글입니다.
이 댓글은 2005-07-18 16:15에 마지막으로 수정되었습니다. Edit

시간으로 뒤로 갔을때 !

그전에 그 해당 뷰를 만들었던 로그가 없으면

못살리는 것 아닌지요?

 

 

석이님이 2005-07-18 17:22에 작성한 댓글입니다. Edit

해당 view의 삭제 부분의 로그만 있다면 가능합니다.

(물론 로그 파일만 있는 것이 아니라, 그 때의 로그가 있어야 겠죠..)

--========================================================

-- 데이타 베이스 의 복구 모델이 최대로 설정되어 있는 경우만 test해

-- 보았습니다.

-- 객체 생성 부분

CREATE TABLE  tt
(
  id int identity
 , name varchar(20)
);


DECLARE @i int
  

SET @i = 0 ;

WHILE (@i < 10000)
 BEGIN 
   INSERT INTO  tt(name) values(convert(varchar(20),@i));
   SET @i = @i+1;
 END

   SELECT *
   FROM tt WITH(NOLOCK)
go

CREATE VIEW dbo.vtt
AS
   SELECT *
    FROM tt WITH(NOLOCK)

GO

-- 객체 생성 부분이 있는 트랜잭션 로그 삭제
BACKUP LOG  TEST WITH NO_LOG
go
BACKUP DATABASE TEST TO DISK='E:\TEST'  WITH INIT
GO
WAITFOR DELAY '00:05:00'  -- 5분간 대기 상태로

 

-- 객체 삭제 부분
SELECT 'VIEW 삭제 시간',  GETDATE()    -- VIEW 삭제 시간, 2005-07-18 18:26:59.187
go
DROP VIEW dbo.vtt
go

 

WAITFOR DELAY '00:05:00'  -- 5분간 대기 상태로
SELECT 'TEST해야 할 시간 ',  GETDATE()  --TEST해야 할 시간  2005-07-18 18:32:09.217
go


BACKUP LOG  TEST  TO DISK='E:\TEST' 
go

 


-- RESTORE 부분
USE master
go

RESTORE DATABASE TEST FROM DISK='E:\TEST' WITH NORECOVERY
GO
RESTORE LOG TEST FROM DISK='E:\TEST' WITH NORECOVERY, STOPAT='2005-07-18 18:24:59.187'
GO
RESTORE LOG TEST FROM DISK='E:\TEST' WITH RECOVERY
go

가을남자님이 2005-07-18 18:57에 작성한 댓글입니다. Edit

좋은 정보 정말 감사합니다.

저두 많이 배우면 많이 배풀도록 하겠습니다.

^-------------^ ;

멋진데요 ~

석이님이 2005-07-18 19:01에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
2121MS-SQL과 C와의 연동을 하려고 합니다. [2]
ほや™
2005-07-18
2085
2120한 컴퓨터에 두개의 MS SQL server 깔 경우 구분은 어떻게 하나요? [1]
초보
2005-07-18
2071
2119mssql연결 설치 모듈 어케 만들어요? [2]
궁금이
2005-07-18
1989
2118삭제한 뷰를 살리는 방법이 있을까요? [7]
질럿
2005-07-18
3672
2117그냥 쓰다가 마네요..^^;; [1]
sqler
2005-07-18
2698
2116쿼리된 내용을 어떻게 저장하나요? [6]
커너
2005-07-18
5494
2115전국에서 팔린 상품수를 구하고 싶은데.. 쿼리가~~ [1]
쿼리 초보
2005-07-16
2211
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다