답변:
분리부터 시작하겠습니다. SQL Server에서 데이터베이스를 분리하면 데이터베이스가 오프라인 상태가되어 분리하려는 SQL Server 인스턴스에서 데이터베이스가 제거됩니다. 데이터베이스 데이터 및 로그 파일은 그대로 유지되며 일관된 상태로 유지되므로 나중에 데이터베이스를 다른 SQL Server 인스턴스에 연결할 수 있습니다. 연결 은 제대로 분리되었거나 SQL Server의 완전히 종료 된 인스턴스에서 복사 된 데이터베이스에서 SQL Server 인스턴스로 데이터와 로그 파일을 연결하고 데이터베이스를 온라인 상태로 만듭니다.
이 작업은 T-SQL 또는 SQL Server Management Studio GUI에서 수행 할 수 있습니다.
GUI에서 분리 할 데이터베이스를 마우스 오른쪽 단추로 클릭하고을 선택 All Tasks
하고 클릭하십시오 Detach
. 거기에서 분리 대화 상자가 나타납니다. 활성 연결과 실행 중 롤백 작업을 강제로 연결 해제하기 위해 연결을 먼저 끊도록 선택할 수 있습니다. 분리하기 전에 통계를 업데이트하도록 선택할 수도 있습니다.
T-SQL에서 :
-- You don't want to be in the database you are trying to detach
USE Master
GO
-- Optional step to drop all active connections and roll back their work
ALTER DATABASE DatabaseName
SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
-- Perform the detach
EXEC sp_detach_db 'DatabaseName'
GO
시스템 저장 프로 시저 sp_detach_db의 경우 선택적으로 전달할 수있는 두 개의 매개 변수가 있습니다.
@skipchecks
-허용 가능한 입력 'True'
또는 인 'False'
경우 'True'
SQL Server가 분리 전에 통계를 업데이트합니다. '이면 그렇지 False'
않습니다. 여기에 아무것도 지정하지 않으면 통계는 SQL Server 2005 이상에서 업데이트됩니다.
@keepfulltextindexfile
-여기의 기본값 'True'
은-true로 설정하면 분리 중에 전체 텍스트 인덱스 메타 데이터가 삭제되지 않습니다.분리와 나는 아래의 강조 위험에 대한 좀 더 세부 사항에 대해 더 많이 보려면 온라인 문서를 위한이 sp_detach_db
시작하기에 좋은 장소입니다.
T-SQL 또는 SQL Server Management Studio GUI에서이 작업을 수행 할 수도 있습니다.
( 참고 : 데이터베이스에서 제대로 분리되지 않은 데이터 및 로그 파일이있는 경우 연결이 작동하지 않을 수 있습니다. 분리가 발생하면 데이터베이스가 오프라인 상태가되고 로그 및 데이터 파일이 일관된 상태가됩니다. 서비스가 완전히 종료되면 발생합니다. )
GUI에서 Databases
인스턴스의 최상위 폴더를 마우스 오른쪽 버튼으로 클릭하고을 선택 Attach
합니다. 다음 대화 상자에서 첨부 할 데이터베이스의 기본 데이터 파일 (.MDF)을 선택하고 다른 파일을 선택하고 해당 위치를 지정했는지 확인한 후 확인을 클릭하여 데이터베이스를 첨부하십시오.
T-SQL에서는 SQL Server 2005 이상에서이를 수행하는 가장 좋은 방법은 CREATE DATABASE
명령을 사용하는 것입니다. 이 방법은 SQL Server 2012 이상에서 지원되는 방법입니다. 사용 방법을 sp_attach_db
보려면 온라인 설명서 [sp_attach_db][3]
또는에서 온라인 문서를 참조하십시오.[sp_attach_single_file_db][4]
사용 가능한 로그 파일과 데이터 파일이 있고 일관성이있는 경우 이것이 T-SQL 방식입니다.
-데이터베이스 작성 및 FOR ATTACH 절을 사용하여 첨부
CREATE DATABASE DatabaseName
ON (FILENAME = 'FilePath\FileName.mdf'), -- Main Data File .mdf
(FILENAME = 'FilePath\LogFileName.ldf'), -- Log file .ldf
(FILENAME = 'FilePath\SecondaryDataFile.ndf) -- Optional - any secondary data files
FOR ATTACH
GO
온라인 서적에서도 데이터베이스 작성 명령문에 대한 자세한 내용을 볼 수 있습니다 .
실제로 동일합니다. SQL Server Management Studio Express를 사용하는 경우 위에서 설명한 GUI의 분리 / 연결 대화 상자를 사용하거나 위에서 설명한 SSMS Express를 통한 T-SQL 단계도 사용할 수 있습니다. Express와는 아무런 차이가 없습니다.
당신이 SSMS 익스프레스가없는 경우 (다운로드 할 수 있습니다 여기 에서 SQL Server 2012 Express 버전입니다).
SQLCMD
세션 중 하나를 입력하고 위에서 설명한 것과 동일한 T-SQL 구문을 사용할 수 있습니다 .
먼저 분리 및 연결에 사용되지 않는 단어는 다음과 같습니다. 백업 및 복구 분리 및 연결은 일상적인 복구 목적으로 데이터베이스를 백업하는 방법이 아닙니다. 이런 방식으로 트랜잭션 로그 백업이 없으므로 데이터베이스 파일이 실수로 삭제 될 수있는 상태가되고이 목적에는 전혀 적합하지 않습니다.
즉, 분리 및 연결은 몇 가지 유스 케이스에 적합합니다 (완전하지는 않지만 추가로 새 답변을 추가하거나 작성하려면 자유롭게 편집하십시오).
다시, 온라인 서적은 여기서 좋은 자료 이지만 데이터베이스 분리 또는 첨부와 관련하여 염두에 두어야 할 몇 가지 특정 고려 사항을 호출합니다.
떼다
첨부 -인터넷에서 스크립트를 실행하거나 공항에서 낯선 사람의 패키지를 수락하지 않아야하는 것처럼 다른 단계에서 얻은 데이터베이스를 확인하는 단계없이 첨부해서는 안됩니다. 이 데이터베이스에는 환경을 손상시킬 수있는 트리거, 저장 프로 시저 등의 내부에 코드가있을 수 있습니다. 프로덕션 시스템이 아닌 안전한 방화벽 환경에서 연결하려는 데이터베이스를 검토해야합니다.
버전 간 데이터베이스 복원 규칙과 다르지 않습니다. 일반적으로 다음 3 가지 버전의 다음 버전으로 복원 할 수 있습니다 (예 : SQL Server 2008-SQL Server 2012). SQL Server 2000-SQL Server 2012는 작동하지 않습니다. 백업 / 복원 또는 분리 / 연결을 통해 전혀 거꾸로 이동할 수 없습니다. 개체를 스크립트로 작성하고 삽입물을 스크립트로 작성하여 수동으로 또는이를 수행하는 도구를 사용해야합니다. 에디션의 경우 일반적으로 SQL Server의 기본 SKU간에 이동할 수 있습니다. 예를 들어 추가 작업없이 데이터베이스를 Standard에서 Enterprise로 이동할 수 있습니다. Enterprise 기능 (Say, 압축 또는 파티셔닝)을 사용하는 경우 이동하기 전에 해당 기능을 비활성화해야합니다. 당신은 당신이 기능의 아이디어를 얻을 수 있습니다