데이터베이스를 오프라인으로 만들지 않고 로그 파일 이동


14

데이터베이스를 오프라인으로 만들지 않고 데이터베이스 로그 파일을 새 파티션으로 이동해야합니다.

이 작업을 수행하는 일반적인 방법은 DB를 분리하고 로그 파일을 이동 한 다음 db를 다시 연결하는 것입니다.

그것은이 작업을 수행하는 것이 가능 하지 않고 어떻게 있도록 오프라인 경우 데이터베이스 자체를 복용?


답변:


16

온라인 데이터베이스로는이를 수행 할 방법이 없습니다.

데이터베이스 파일 ( ALTER DATABASE ... MODIFY FILE) 을 이동 하면 다음 메시지가 표시됩니다.

"YourFile"파일이 시스템 카탈로그에서 수정되었습니다. 다음 번에 데이터베이스를 시작할 때 새 경로가 사용됩니다 .


이 작업을 수행하는 일반적인 방법은 DB를 분리하고 로그 파일을 이동 한 다음 db를 다시 연결하는 것입니다.

그것은 내가하는 "정상적인"또는 받아 들여지는 방식이 아닙니다. 데이터베이스 파일을 이동하려면 다음을 수행하십시오.

  1. ALTER DATABASE 명령을 실행하여 파일 위치를 변경하십시오.
  2. 데이터베이스를 오프라인으로 전환
  3. 파일을 1 단계에서 지정한 새 위치로 물리적으로 이동
  4. 데이터베이스를 온라인으로 가져 오기

TechNet : 사용자 데이터베이스 이동 에서이 참조를 참조하십시오.


3

Thomas Stringer의 답변 에서 TechNet 사용자 데이터베이스 이동 에 대한 참조에 따르면 전체 SQL Server 인스턴스를 중지하지 않고 파일을 이동하려면 ( "계획된 재배치 절차"에 따름) 순서는 다음과 같아야합니다.

ALTER DATABASE database_name SET OFFLINE;
... move the file(s) to new location
ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name, FILENAME = 'new_path\os_file_name' );
ALTER DATABASE database_name SET ONLINE;

먼저 오프라인을 참고하십시오. 그런 다음 파일을 이동하고 새 위치에 대해 SQL Server에 알리십시오.

전체 SQL Server 인스턴스를 중단해야하는 경우 ( "예약 된 디스크 유지 관리를위한 재배치"절차 참조) 인스턴스를 다시 시작할 때 파일을 찾는 데 문제가 없도록 먼저 파일 위치를 수정하는 것이 가장 좋습니다. 새로운 위치에서.


1

나는 이것이 오래된 질문이라는 것을 알고 있지만 새 위치에 두 번째 로그 파일 (원본 대신 DB가 사용함)을 추가 한 다음 원본을 축소 / 제거 할 수는 없습니까?

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.