적용 대상:SQL Server
주의
이 기능은 이후 버전의 SQL Server에서 제거됩니다. 새 개발 작업에서 이 기능을 사용하지 말고 현재 이 기능을 사용하는 애플리케이션을 수정할 계획입니다. 고가용성을 위해 Always On 가용성 그룹을 대신 사용합니다.
중요
SQL Server의 데이터베이스 미러링은 Microsoft Fabric 데이터베이스 미러링과는 별개의 기술입니다. 데이터를 패브릭에 복제하면 더 나은 분석 성능을 제공하고, 패브릭 내 OneLake를 통해 데이터 자산을 통합할 수 있으며, 데이터에 대해 델타 Parquet 형식으로 열린 액세스를 제공합니다.
Microsoft Fabric에 미러링을 사용하면 SQL Server 2016 이상, Azure SQL Database, Azure SQL Managed Instance, Cosmos DB, Oracle, Snowflake 등의 데이터를 포함하여 기존 데이터 자산을 패브릭의 OneLake에 직접 지속적으로 복제할 수 있습니다.
데이터베이스에 대한 감시자를 설정하려면 데이터베이스 소유자가 데이터베이스 엔진 인스턴스를 감시자 서버 역할에 할당합니다. 미러링 모니터 서버 인스턴스는 주 서버 인스턴스 또는 미러 서버 인스턴스와 동일한 컴퓨터에서 실행할 수 있지만, 이렇게 하면 자동 장애 조치의 안정성이 크게 저하됩니다.
위트니스는 별도의 컴퓨터에 두는 것을 강력히 권장합니다. 지정된 서버는 같은 파트너 또는 다른 파트너에 있는 여러 개의 동시 데이터베이스 미러링 세션에 참여할 수 있습니다. 주어진 서버는 일부 세션에서는 파트너 역할을 하고, 다른 세션에서는 증인 역할을 할 수 있습니다.
미러링 모니터는 자동 장애 조치가 지원되는 고안전 모드 전용입니다. 감시를 설정하기 전에 SAFETY 속성이 현재 FULL로 설정되어 있는지 확인하는 것이 좋습니다.
중요
구성이 성능에 영향을 줄 수 있으므로 사용률이 낮은 시간에 데이터베이스 미러링을 구성하는 것이 좋습니다.
증인 구성
증인 서버 인스턴스에 데이터베이스 미러링용 엔드포인트가 있는지 확인합니다. 지원할 미러링 세션 수에 관계없이 각 서버 인스턴스에 한 개의 데이터베이스 미러링 엔드포인트가 필요하고, 또 하나만 가져야 합니다. 데이터베이스 미러링 세션의 witness로만 이 서버 인스턴스를 사용하려는 경우 엔드포인트에 witness 역할을 할당합니다(ROLE**=**WITNESS). 이 서버 인스턴스를 하나 이상의 다른 데이터베이스 미러링 세션에서 파트너로 사용하려는 경우 엔드포인트의 역할을 ALL로 할당합니다.
SET WITNESS 문을 실행하려면 데이터베이스 미러링 세션이 이미 시작되어 있어야 하며(파트너 간), 감시자 엔드포인트의 STATE가 STARTED로 설정되어 있어야 합니다.
감시자 서버 인스턴스에 데이터베이스 미러링 엔드포인트가 구성되어 있는지, 그리고 해당 인스턴스의 역할과 상태가 무엇인지 확인하려면 해당 인스턴스에서 다음 Transact-SQL 문을 사용하세요.
SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints중요
데이터베이스 미러링 엔드포인트가 존재하고 이미 사용 중인 경우 서버 인스턴스의 모든 세션에 해당 엔드포인트를 사용하는 것이 좋습니다. 사용 중인 엔드포인트를 삭제하면 기존 세션의 연결이 중단됩니다. 세션에 미러링 모니터 서버가 설정된 경우 데이터베이스 미러링 엔드포인트를 삭제할 경우 해당 세션의 주 서버가 쿼럼을 잃을 수 있습니다. 그렇게 되면 데이터베이스는 오프라인 상태가 되며 해당 데이터베이스 사용자들의 연결이 끊어집니다. 자세한 내용은 쿼럼: 감시자가 데이터베이스 가용성에 미치는 영향 (데이터베이스 미러링)을 참조하세요.
감시자에 엔드포인트가 없으면 Windows 인증용 데이터베이스 미러링 엔드포인트 만들기(Transact-SQL)를 참조하세요.
파트너 인스턴스가 여러 도메인 사용자 계정으로 실행되는 경우 각 인스턴스의 master 데이터베이스에서 여러 계정에 대한 로그인을 만듭니다. 자세한 내용은 Windows 인증을 사용하여 데이터베이스 미러링 엔드포인트에 대한 네트워크 액세스 허용(SQL Server)을 참조하세요.
주 서버에 연결한 다음 다음 구문을 실행합니다:
ALTER DATABASE <database_name>SET WITNESS =<server_network_address>
여기서 <database_name>은 미러링할 데이터베이스의 이름(두 파트너에서 이 이름은 동일함)이고 <server_network_address>는 미러링 모니터 서버 인스턴스의 서버 네트워크 주소입니다.
서버 네트워크 주소 구문은 다음과 같습니다.
TCP://<system-address>:<port>
여기서 <system-address>는 대상 컴퓨터 시스템을 명확하게 식별하는 문자열이고, <port>는 파트너 서버 인스턴스의 미러링 엔드포인트에서 사용되는 포트 번호입니다. 자세한 내용은 서버 네트워크 주소 지정(데이터베이스 미러링)을 참조하세요.
예를 들어, 주 서버 인스턴스에서 다음 ALTER DATABASE 문은 감시자를 설정합니다. 데이터베이스 이름은 AdventureWorks이고, 시스템 주소는 증인 시스템의 이름인 DBSERVER3이며, 증인 서버의 데이터베이스 미러링 엔드포인트에서 사용하는 포트는
7022입니다:ALTER DATABASE AdventureWorks SET WITNESS = 'TCP://DBSERVER3:7022'
예시
다음 예에서는 데이터베이스 미러링 감시자를 설정합니다. 감시자 서버 인스턴스에서(WITNESSHOST4의 기본 인스턴스):
포트
7022만 사용하여 WITNESS 역할에 대한 이 서버 인스턴스에 대한 엔드포인트를 만듭니다.CREATE ENDPOINT Endpoint_Mirroring STATE=STARTED AS TCP (LISTENER_PORT=7022) FOR DATABASE_MIRRORING (ROLE=WITNESS) GO계정이 서로 다른 경우 파트너 인스턴스의 도메인 사용자 계정에 대한 로그인을 생성합니다. 예를 들어, witness는
SOMEDOMAIN\witnessuser로 실행되고 있지만 파트너 인스턴스는MYDOMAIN\dbousername로 실행되고 있다고 가정합니다. 다음과 같이 파트너에 대한 로그인을 만듭니다.--Create a login for the partner server instances, --which are both running as MYDOMAIN\dbousername: USE master ; GO CREATE LOGIN [MYDOMAIN\dbousername] FROM WINDOWS ; GO --Grant connect permissions on endpoint to login account --of partners GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [MYDOMAIN\dbousername]; GO각 파트너 서버 인스턴스에서 감시자 서버 인스턴스에 대한 로그인을 생성합니다.
--Create a login for the witness server instance, --which is running as SOMEDOMAIN\witnessuser: USE master ; GO CREATE LOGIN [SOMEDOMAIN\witnessuser] FROM WINDOWS ; GO --Grant connect permissions on endpoint to login account --of partners GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [SOMEDOMAIN\witnessuser]; GO주 서버에서 감시자 서버(
WITNESSHOST4에 있음)를 설정합니다:ALTER DATABASE AdventureWorks SET WITNESS = 'TCP://WITNESSHOST4:7022' GO
참고
서버 네트워크 주소는 포트 번호로 대상 서버 인스턴스를 나타내며, 대상 서버 인스턴스는 인스턴스의 미러링 엔드포인트로 매핑됩니다.
보안 설정, 미러 데이터베이스 준비, 파트너 설정 및 감시자 추가를 보여 주는 전체 예제는 데이터베이스 미러링 설정(SQL Server)을 참조하세요.
참고 항목
ALTER DATABASE (Transact-SQL)
Windows 인증을 사용하여 데이터베이스 미러링 엔드포인트에 대한 네트워크 액세스 허용(SQL Server)
Windows 인증에 대한 데이터베이스 미러링 엔드포인트 만들기(Transact-SQL)
Windows 인증을 사용하여 데이터베이스 미러링 세션 구성(Transact-SQL)
데이터베이스 미러링 세션에서 감시자 제거 (SQL Server)
데이터베이스 미러링 모니터 서버