달력

052018  이전 다음

  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  


exec sp_replmonitorhelpmergesession @publisher = N'OMC-SRV1', @publisher_db = N'DB800', @publication = N'DB_Pub'
Posted by 알이씨


병합복제 동기화 시간 주기 변경

사용자 삽입 이미지

사용자 삽입 이미지


사용자 삽입 이미지



사용자 삽입 이미지
Posted by 알이씨


-- 일정 개수 이전의 데이터를 확인하는 SQL
SELECT * FROM DUMMY_TABLE10
WHERE D_VAL1 < ALL (SELECT TOP 100 D_VAL1 FROM DUMMY_TABLE10 ORDER BY D_VAL1 DESC)
ORDER BY D_VAL1 DESC;

위 질의를 응용하면 다음과 같다.

-- 일정 시간 이전의 데이터를 모두 삭제, 최근의 데이터 일정개수는 남겨두고 과거의 데이터를 삭제한다.
-- D_VAL1이 날짜 형식이 됨
DELETE FROM DUMMY_TABLE10
WHERE D_VAL1 < ALL (SELECT TOP 100 D_VAL1 FROM DUMMY_TABLE10 ORDER BY D_VAL1 DESC);
Posted by 알이씨


키를 변경하기 위해 중복된 데이터를 삭제 하는 SQL

원래는 LRD, DATE는 유일해야 하나 버그로 인하여 중복된 데이터가 들어간 경우 사용

SELECT LRD, DATE FROM AUTO_RPT
GROUP BY LRD, DATE
HAVING COUNT(*) > 1

-- 결과 확인 후 아이디 기록

DELETE FROM AUTO_RPT
WHERE LRD = '0' AND DATE IN
(SELECT DATE FROM AUTO_RPT
GROUP BY LRD, DATE
HAVING COUNT(*) > 1

-- 기존의 키 삭제
ALTER TABLE dbo.AUTO_RPT
DROP CONSTRAINT PK_AUTO_RPT
GO

-- 새로운 키 생성
ALTER TABLE dbo.AUTO_RPT ADD CONSTRAINT
 PK_AUTO_RPT PRIMARY KEY CLUSTERED
 (
 LRD,
 DATE
 ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO

Posted by 알이씨


현재 버퍼 풀을 모두 비웁기
DBCC DROPCLEANBUFFERS;

procedure cache 를 비우기
DBCC FREEPROCCACHE;

Posted by 알이씨


AdventureWorks 데이터베이스를 디스크 c:\dbBackup\08_01_15.bak로 백업
BACKUP DATABASE AdventureWorks TO disk = 'c:\dbBackup\08_01_15.bak'

AdventureWorks 데이터베이스를 디스크 c:\dbBackup\08_01_15.bak에서 복원
RESTORE DATABASE AdventureWorks FROM disk = 'c:\dbBackup\08_01_15.bak'

Posted by 알이씨


USE master;
--Ensure the database is using the simple recovery model:
ALTER DATABASE AdventureWorks SET RECOVERY SIMPLE;
GO
-- Create a logical backup device for the full AdventureWorks backup.
EXEC sp_addumpdevice 'tape', 'DumpTape', '\\.\TAPE0';
GO
-- Back up the full AdventureWorks database:
BACKUP DATABASE BackupDB TO DumpTape
  WITH FORMAT, NOUNLOAD;
GO

--Restore the last of full backup (from backup set 1):
RESTORE DATABASE BackupDB FROM DumpTape
   WITH RECOVERY, NOUNLOAD, KEEP_REPLICATION
GO

--Restore the full backup (from backup set 1):, FILE = 2(Backup Pos)
use master;
RESTORE DATABASE [BackupDB] FROM  TAPE = N'\\.\TAPE0' WITH  FILE = 2,  NOUNLOAD,  STATS = 10

OR

use master;
RESTORE DATABASE [BackupDB] FROM  DumpTape WITH  FILE = 2,  NOUNLOAD,  STATS = 10;

-- List backup set
RESTORE HEADERONLY FROM  [DumpTape] WITH  NOUNLOAD
======================================================================
테스트 후 결과
- 백업 및 복구를 완료하고 난 후엔 테이프를 뱉어버린다.(항상 테이프가 삽입되어 있는지 확인 후 작업)
   . NOUNLOAD 옵션을 주면 뱉지 않는다. 이 옵션을 주도록 하자!!
- 백업할 때 WITH FORMAT 옵션을 주면 기존 데이터를 모두 삭제후 백업한다.
- 복구 시에 use master; 를 하지 않으면 다른 세션에서 사용중이라고 복구를 하지 않는다.(테스트 필요)
  . 다른 세션이 중일 때는 여전히 복구를 못함, 서버를 리붓 시키거나 세션을 종료시키는 작업 필요
- 특정 날짜에 대하여 복구를 할 때는 RESTORE HEADEONLY를 통해 백업 파일 위치를 알아내서 복구한다.
  . Position 필드에 백업 파일 포지션이 나옴
  . FILE = position 으로 넣어주면 됨
Posted by 알이씨


SQL 2005로 넘어오면서 새로 추가된 기능이 있는데 그 중 하나가 미러링이다.

미러링에 관련된 기능 명세나 방법론, 그리고 미러링 모델에 관해서는 MSDN이나

인터넷의 여러 자료에 잘 나와 있으니 생략하기로 한다.

문제는 책이나 MSDN에 나와 있는데로 해보려고 하니 1418에러가 뜨면서 접속이 미러링 세션이 시작이 안된다.

마소 포럼에 가보니 이런 문제를 겪는 사람이 한둘이 아니다.

필자는 우연히(사실 영어가 짧은지 해결방법이 있었어도 몰랐을 수도 있다.) 해결을 하여

미러링을 하는 방법을 올려보기로 한다.

본 예제는 1:1(주서버:미러링서버) 모델로써 모니터링 서버는 없다. 모니터링까지 끼워서 하는 것은

미러링 모델에 관련된 것이므로 생략하기로 한다.(옵션의 차이라고 할까?)

================================================================================
1. SQL 서비스
   다 아시는 그림인데, SQL 2005를 설치 할 때 특정 계정으로 서비스를 구동할 수 있다.
   필자는 처음에 Network Service로 실행하게 하였었는데 주서버와 미러서버의 서비스를
   맞춰주기 위해 Admin 계정을 하나 만들고 그 계정으로 실행하게 변경하였다.
   앞으로 모든 작업은 이 새로 추가한 Admin 계정으로 한다.

사용자 삽입 이미지

    참고 : 필자는 이 녀석때문에 1418 에러가 난것 같다. 미러링이 서비스 프로그램에 접근
             하는게 아닌가 한다.

2. DB 생성, 백업, 복구
  주서버에 아무 DB나 새로이 생성하고 백업한 뒤 미러 서버에 복구 하는 과정을 거쳐야 한다.
사용자 삽입 이미지

 백업은 전체 백업으로 진행...

  자 이제 미러 서버로 백업한 파일을 옮겨놓고 복구를 해야한다.

사용자 삽입 이미지

  복구 옵션은 두번째 걸로 선택
사용자 삽입 이미지

  미러 서버의 DB 복구가 아래 그림처럼 된다. 자 이제 준비는 끝...  미러링을 시작해보자.
사용자 삽입 이미지

  다시 주서버로 돌아와서~~ 
사용자 삽입 이미지
  보안 구성을 클릭~
사용자 삽입 이미지

  이 예제에서는 모니터링 서버를 두지 않으므로 '아니오' 선택
사용자 삽입 이미지

  여기서부터는 끝점 이름 설정과 미러서버 로그인 정보 설정인데 처음 주 서버와 미러 서버에 Admin 계정을 생성하고 서비스 구동 계정을 변경하였다면 다음 다음만 눌러도 진행이 될 것이다.
사용자 삽입 이미지

   여기서 미러링 시작 안함을 선택한다. 왜냐하면 이대로 하면 FQDN으로 하라고 하면서
   실행이 안된다.
사용자 삽입 이미지
 
  자.. 이제 주 서버와 미러 서버에 IP를 입력한다. 포트는 5022로 그대로 두면 되고~~
사용자 삽입 이미지

자 시작이 제대로 되면 아래와 같이 주 서버가 동기화 되어 있다고 나온다.
물론 미러 서버도 마찬가지일테고...
사용자 삽입 이미지

제대로 동기가 되는지는 주서버에 데이터를 넣고 미러 서버에가서 확인해보면 된다.
단 미러서버는 복구 중이라 바로 열 수 없으므로 스냅샷 DB를 만들어서 확인해야한다.

모니터링 서버가 없기 때문에 자동으로 Failover(장애조치)가 되지 않는다.
수동 장애 조치에 대해서는 이 곳 블로그에 T-SQL로 올려 놓았으니 확인해보면 될듯..

http://suemirr.airpoint.co.kr/entry/데이터베이스-미러링-세션-수동-장애-조치Transact-SQL

http://suemirr.airpoint.co.kr/entry/데이터베이스-미러링-세션에-서비스-강제-수행Transact-SQL

http://suemirr.airpoint.co.kr/entry/데이터베이스-미러링-세션-재개Transact-SQL
=============================================================================
최초 작성일 : 2007. 09. 17
마지막 수정일 : 2007. 09. 17
작성자 : rE

포스트 하나 올리는게 참 힘들다. 다음 포스트는 아마 Merge Replication이 될듯싶다.
미러링과 비슷한 기능인데 미러링은 사실 모니터링 서버를 껴야 진정한 힘을 발휘한다.
필자는 서버 동기를 위해서 테스트를 해본 것일뿐....!!!  미러링에 관련된 자세한 사항을
알고 싶다면..!! 아래 링크 참조하시면 되고... 불펌은 하지 말길 바랍니다.

http://suemirr.airpoint.co.kr/entry/MSSQL-2005-미러링-관련-링크
Posted by 알이씨


데이터베이스 미러링 제거
  1. 파트너에 연결합니다.
  2. 다음 Transact-SQL 문을 실행합니다.
    ALTER DATABASE <database_name> SET PARTNER OFF

    여기서 <database_name>은 세션을 제거하려는 미러된 데이터베이스입니다.


    이 문은 데이터베이스 미러링 세션을 제거하고 데이터베이스에서 미러링을 제거합니다. OFF는 어느 파트너에나 지정할 수 있습니다. 데이터베이스 미러링 제거에 따른 영향에 대한 자세한 내용은 데이터베이스 미러링 제거를 참조하십시오.
  3. 필요한 경우 이전 미러 데이터베이스를 복구할 수 있습니다. 미러 서버로 사용했던 서버 인스턴스에서 다음을 입력합니다.
    RESTORE DATABASE <database_name> WITH RECOVERY;
    중요:
    이 데이터베이스를 복구하면 같은 이름의 두 분기 데이터베이스가 온라인 상태가 됩니다. 따라서 클라이언트가 이 두 데이터베이스 중 하나(일반적으로 가장 최근의 주 데이터베이스)에만 액세스할 수 있는지 확인해야 합니다.
Posted by 알이씨


방법: 데이터베이스 미러링 세션 재개(Transact-SQL)

데이터베이스 소유자는 언제든지 일시 중지된 데이터베이스 미러링 세션을 재개할 수 있습니다.

중요:
강제 서비스에 따라 원래 주 서버가 다시 연결되면 미러링이 일시 중지됩니다. 이 경우 미러링을 재개하면 원래 주 서버의 데이터가 손실될 수 있습니다. 데이터 손실 위험을 관리하는 방법은 강제 서비스(데이터 손실 가능)를 참조하십시오.

    참고:
    데이터베이스 미러링을 재개하면 미러 데이터베이스는 SYNCHRONIZING 상태가 됩니다. 보안 수준이 FULL인 경우 미러 데이터베이스는 주 데이터베이스와 동기화되고 SYNCHRONIZED 상태가 됩니다. 이 시점에서 장애 조치(Failover)가 가능합니다. 미러링 모니터가 있고 ON 상태인 경우 자동 장애 조치가 가능합니다. 미러링 모니터가 없는 경우 수동 장애 조치가 가능합니다.
Posted by 알이씨

티스토리 툴바