다음을 통해 공유


전체 텍스트 검색 업그레이드

적용 대상: SQL Server Azure SQL 데이터베이스

SQL Server는 설치 중에 또는 이전 버전의 SQL Server에서 데이터베이스 파일 및 전체 텍스트 카탈로그를 연결, 복원 또는 복사할 때 전체 텍스트 검색을 업그레이드합니다.

서버 인스턴스 업그레이드

현재 위치 업그레이드의 경우 SQL Server 인스턴스가 이전 버전의 SQL Server와 나란히 설정되고 데이터가 마이그레이션됩니다. 이전 버전의 SQL Server에 전체 텍스트 검색이 설치된 경우 새 버전의 전체 텍스트 검색이 자동으로 설치됩니다. 병렬 설치는 다음 각 구성 요소가 SQL Server의 인스턴스 수준에 있음을 의미합니다.

단어 분리기, 형태소 분석기 및 필터
이제 각 인스턴스는 이러한 구성 요소의 운영 체제 버전에 의존하지 않고 고유한 단어 분리기, 형태소 분석기 및 필터 집합을 사용합니다. 또한 이러한 구성 요소를 인스턴스 단위 수준에서 보다 쉽게 등록하고 구성할 수 있습니다. 자세한 내용은 검색을 위한 단어 분리기 및 형태소 분석기 설정 및 관리, 그리고 검색을 위한 필터 설정 및 관리를 참조하세요.

디먼 호스트 필터링
전체 텍스트 필터 디먼 호스트는 전체 텍스트 엔진의 무결성을 손상시키지 않으면서 단어 분리기, 형태소 분석기 및 필터와 같은 인덱스 및 쿼리에 사용되는 확장 가능한 외부 구성 요소를 안전하게 로드하고 구동하는 프로세스입니다. 서버 인스턴스는 모든 다중 스레드 필터에 대해 다중 스레드 프로세스를 사용하고 모든 단일 스레드 필터에 대해 단일 스레드 프로세스를 사용합니다.

참고 항목

SQL Server 2008 (10.0.x) 에는 FDHOST Launcher 서비스(MSSQLFDLauncher)를 위한 서비스 계정이 도입되었습니다. 이 서비스는 서비스 계정 정보를 특정 SQL Server 인스턴스의 필터 디먼 호스트 프로세스로 전파합니다. 서비스 계정 설정에 대한 자세한 내용은 전체 텍스트 필터 디먼 시작 관리자에 대한 서비스 계정 설정을 참조하세요.

SQL Server 2005(9.x)에서 각 전체 텍스트 인덱스는 파일 그룹에 속하고 실제 경로를 가지며 데이터베이스 파일로 처리되는 전체 텍스트 카탈로그에 상주합니다. SQL Server 2008 (10.0.x)이상 버전에서 전체 텍스트 카탈로그는 전체 텍스트 인덱스의 그룹을 포함하는 논리적 개체 또는 가상 개체입니다. 따라서 새 전체 텍스트 카탈로그는 실제 경로가 있는 데이터베이스 파일로 처리되지 않습니다. 그러나 데이터 파일이 포함된 전체 텍스트 카탈로그를 업그레이드하는 동안 동일한 디스크에 새 파일 그룹이 만들어집니다. 이렇게 하면 업그레이드 후 이전의 디스크 I/O 동작이 유지됩니다. 루트 경로가 있으면 해당 카탈로그의 전체 텍스트 인덱스가 새 파일 그룹에 배치됩니다. 이전 전체 텍스트 카탈로그 경로가 유효하지 않으면 업그레이드 과정에서 전체 텍스트 인덱스가 기본 테이블과 같은 파일 그룹에 유지되며, 테이블이 분할된 경우에는 주 파일 그룹에 유지됩니다.

전체 텍스트 업그레이드 옵션

SQL Server 인스턴스를 업그레이드할 때 사용자 인터페이스를 사용하면 다음 전체 텍스트 업그레이드 옵션 중 하나를 선택할 수 있습니다.

가져오기
전체 텍스트 카탈로그를 가져옵니다. 일반적으로 가져오기는 다시 빌드하는 것 보다 훨씬 빠릅니다. 예를 들어 CPU를 하나만 사용하는 경우 가져오기는 다시 빌드하는 것 보다 약 10배 빠르게 실행됩니다. 그러나 가져온 전체 텍스트 카탈로그는 최신 버전의 SQL Server와 함께 설치된 새 단어 분리기를 사용하지 않습니다. 쿼리 결과가 일관성이 유지되도록 하려면 전체 텍스트 카탈로그를 다시 작성해야 합니다.

참고 항목

다시 작성은 다중 스레드 모드로 실행할 수 있으므로 CPU를 10개 이상 사용할 수 있는 경우 다시 작성에서 모든 CPU를 사용할 수 있게 설정하면 다시 작성이 가져오기보다 빠르게 실행될 수 있습니다.

전체 텍스트 카탈로그를 사용할 수 없는 경우 연결된 전체 텍스트 인덱스가 다시 작성됩니다. 이 옵션은 SQL Server 2005(9.x) 데이터베이스에 대해서만 사용할 수 있습니다.

전체 텍스트 인덱스 가져오기의 영향에 대한 자세한 내용은 이 항목의 뒷부분에 있는 "전체 텍스트 업그레이드 옵션 선택에 대한 고려 사항"을 참조하세요.

다시 빌드
향상된 새로운 단어 분리기를 사용하여 전체 텍스트 카탈로그를 다시 작성합니다. 인덱스를 다시 작성하면 시간이 오래 걸릴 수 있으며 업그레이드 후 CPU 및 메모리가 많이 필요할 수 있습니다.

재설정
전체 텍스트 카탈로그를 다시 설정합니다. SQL Server 2005(9.x)에서 업그레이드할 때 전체 텍스트 카탈로그 파일이 제거되지만 전체 텍스트 카탈로그 및 전체 텍스트 인덱스의 메타데이터는 유지됩니다. 업그레이드가 끝나면 모든 전체 텍스트 인덱스의 변경 내용 추적이 해제되고 탐색이 자동으로 시작되지 않습니다. 업그레이드가 완료된 후 전체 채우기를 수동으로 실행할 때까지 카탈로그가 비어 있습니다.

전체 텍스트 업그레이드 옵션 선택에 대한 고려 사항

업그레이드 옵션을 선택할 때는 다음 사항을 고려해야 합니다.

  • 쿼리 결과의 일관성을 보장하는 것은 중요한 일입니다.

    SQL Server는 전체 텍스트 및 의미 체계 검색에서 사용할 새 단어 분리기를 설치합니다. 단어 분리기는 인덱싱 시간과 쿼리 시간에 모두 사용됩니다. 전체 텍스트 카탈로그를 다시 작성하지 않으면 검색 결과가 일관적이지 않을 수 있습니다. 이전 버전의 SQL Server의 단어 분리기와 현재 단어 분리기에서 다르게 분리되는 구를 찾는 전체 텍스트 쿼리를 실행하면 해당 구가 포함된 문서 또는 행이 검색되지 않을 수 있습니다. 쿼리가 사용하는 것과 다른 논리를 사용하여 인덱싱된 구가 끊어졌기 때문입니다. 이 솔루션은 인덱스 시간과 쿼리 시간 동작이 동일하도록 새 단어 분리기를 사용하여 전체 텍스트 카탈로그를 다시 채우기(다시 빌드)하는 것입니다. 다시 빌드 옵션을 선택하여 이 작업을 수행하거나 가져오기 옵션을 선택한 후 수동으로 다시 빌드할 수 있습니다.

  • 정수 전체 텍스트 키 열을 기반으로 하는 전체 텍스트 인덱스가 있나요?

    다시 빌드는 경우에 따라 업그레이드된 전체 텍스트 인덱스의 쿼리 성능을 향상시키는 내부 최적화를 수행합니다. 특히 전체 텍스트 카탈로그에 기본 테이블의 전체 텍스트 키 열이 정수 데이터 형식인 전체 텍스트 인덱스가 있는 경우 다시 작성을 통해 업그레이드 후 전체 텍스트 쿼리의 성능을 극대화할 수 있습니다. 이 경우 다시 빌드 옵션을 사용하는 것이 좋습니다.

    참고 항목

    전체 텍스트 인덱스의 경우 전체 텍스트 키 역할을 하는 열은 정수 데이터 유형으로 사용하는 것이 좋습니다. 자세한 내용은 전체 텍스트 인덱스 성능 향상을 참조하세요.

  • 서버 인스턴스를 온라인 상태로 만들기 위한 우선 순위는 무엇인가요?

    업그레이드 중 가져오기 또는 다시 빌드 시에는 많은 CPU 리소스가 필요하므로 나머지 서버 인스턴스의 업그레이드 및 온라인 상태가 지연됩니다. 가능한 한 빨리 서버 인스턴스를 온라인 상태로 설정하는 것이 중요하고 업그레이드 후 수동 채우기를 실행하려는 경우 다시 설정이 적합합니다.

전체 텍스트 인덱스를 가져온 후 일관된 쿼리 결과 보장

SQL Server 2005 (9.x) 데이터베이스를 업그레이드할 때 전체 텍스트 카탈로그를 가져온 경우 이전 단어 분리기와 새 단어 분리기의 동작이 약간 다르므로 쿼리와 전체 텍스트 인덱스 내용이 일치하지 않을 수 있습니다. 이 경우 쿼리와 전체 텍스트 인덱스 콘텐츠 간의 총 일치를 보장하려면 다음 옵션 중 하나를 선택합니다.

  • 전체 텍스트 인덱스가 포함된 전체 텍스트 카탈로그 다시 작성(ALTER FULLTEXT CATALOGcatalog_name REBUILD)

  • 전체 텍스트 인덱스에 대해 전체 인덱스 빌드를 수행 (ALTER FULLTEXT INDEX ON table_name START FULL POPULATION).

단어 분리기에 대한 자세한 내용은 검색을 위해 단어 분리기와 형태소 분석기 구성 및 관리를 참조하세요.

중지 목록으로 노이즈 단어 파일 업그레이드

데이터베이스가 SQL Server 2005(9.x)에서 업그레이드되면 노이즈 단어 파일이 더 이상 사용되지 않습니다. 그러나 이전에 사용된 의미 없는 단어 파일이 FTDATA\ FTNoiseThesaurusBak 폴더에 저장되므로 나중에 해당 SQL Server 중지 목록을 업데이트하거나 새로 작성할 때 사용할 수 있습니다.

SQL Server 2005(9.x)에서 업그레이드한 후.

  • SQL Server 2005(9.x) 설치 시 노이즈 단어 파일을 추가, 수정 또는 삭제하지 않은 경우 시스템 중지 목록이 요구 사항을 충족해야 합니다.

  • SQL Server 2005(9.x)에서 노이즈 단어 파일이 수정된 경우 업그레이드 중에 해당 수정 사항이 손실됩니다. 이러한 업데이트를 다시 만들려면 해당 중지 목록에서 이러한 수정 사항을 수동으로 다시 만들어야 합니다. 자세한 내용은 ALTER FULLTEXT STOPLIST(Transact-SQL)를 참조하세요.

  • 전체 텍스트 인덱스에 아무 중지 단어도 적용하지 않으려면(예를 들어 SQL Server 2005 (9.x) 설치에서 의미 없는 단어 파일을 삭제하거나 지운 경우) 업그레이드된 각 전체 텍스트 인덱스에 대해 중지 목록 설정을 해제해야 합니다. 다음 Transact-SQL 문을 실행합니다(데이터베이스를 업그레이드된 데이터베이스의 이름으로, 테이블테이블 이름으로 바꿉니다.)

    Use database;   
    ALTER FULLTEXT INDEX ON table  
       SET STOPLIST OFF;  
    GO  
    

    STOPLIST OFF 절은 중지 단어 필터링을 제거하고 노이즈로 간주되는 단어를 필터링하지 않고 테이블의 채우기를 트리거합니다.

전체 텍스트 카탈로그를 백업 및 가져오기

업그레이드 중에 다시 작성되거나 다시 설정되는 전체 텍스트 카탈로그(및 새 전체 텍스트 카탈로그)의 경우 전체 텍스트 카탈로그는 논리적 개념이며 파일 그룹에 상주하지 않습니다. 따라서 전체 텍스트 카탈로그를 백업하려면 카탈로그의 전체 텍스트 인덱스가 들어 있는 파일 그룹을 모두 확인하여 하나씩 백업해야 합니다. 자세한 내용은 전체 텍스트 카탈로그와 인덱스 백업 및 복원을 참조하세요.

SQL Server 2005(9.x) 에서 가져온 전체 텍스트 카탈로그는 여전히 자체 파일 그룹의 데이터베이스 파일입니다. MSFTESQL 서비스가 SQL Server에 없다는 점을 제외하고 전체 텍스트 카탈로그에 대한 SQL Server 2005(9.x) 백업 프로세스는 여전히 적용됩니다. SQL Server 2005(9.x) 프로세스에 대한 자세한 내용은 SQL Server 2005 온라인 설명서에서 전체 텍스트 카탈로그 백업 및 복원을 참조하세요.

데이터베이스를 다음으로 업그레이드할 때 전체 텍스트 인덱스 마이그레이션.

이전 버전의 SQL Server의 데이터베이스 파일 및 전체 텍스트 카탈로그는 연결, 복원 또는 데이터베이스 복사 마법사를 사용하여 기존 인스턴스로 업그레이드할 수 있습니다. SQL Server 2005(9.x) 전체 텍스트 인덱스가 있는 경우 가져오거나 다시 설정하거나 다시 작성합니다. upgrade_option 서버 속성은 이러한 데이터베이스 업그레이드 중에 서버 인스턴스가 사용하는 전체 텍스트 업그레이드 옵션을 제어합니다.

SQL Server 2005(9.x) 데이터베이스를 최신 인스턴스에 연결, 복원 또는 복사하면 데이터베이스를 즉시 사용할 수 있게 되고 자동으로 업그레이드됩니다. 인덱싱되는 데이터 양에 따라 가져오기 작업은 몇 시간씩 걸릴 수 있으며 다시 작성 작업은 10배 정도 더 걸릴 수 있습니다. 업그레이드 옵션이 가져오기로 설정되어 있으면 전체 텍스트 카탈로그를 사용할 수 없는 경우 관련된 전체 텍스트 인덱스가 다시 작성됩니다.

서버 인스턴스에서 전체 텍스트 업그레이드 동작을 변경하려면

SQL Server 2005(9.x) 전체 텍스트 카탈로그 복원 시 고려 사항

SQL Server 2005 (9x) 데이터베이스의 전체 텍스트 데이터를 업그레이드하는 방법 중 하나는 전체 데이터베이스 백업을 더 최신 SQL Server 인스턴스로 복원하는 것입니다.

SQL Server 2005(9.x) 전체 텍스트 카탈로그를 가져오는 동안 데이터베이스와 카탈로그 파일을 백업하고 복원할 수 있습니다. 동작은 SQL Server 2005(9.x)에서와 동일합니다.

  • 전체 데이터베이스 백업에는 전체 텍스트 카탈로그가 포함됩니다. 전체 텍스트 카탈로그를 참조하려면 SQL Server 2005(9.x) 파일 이름인 sysft_+catalog-name을 사용합니다.

  • 전체 텍스트 카탈로그가 오프라인 상태이면 백업이 실패합니다.

SQL Server 2005(9.x) 전체 텍스트 카탈로그 백업 및 복원에 대한 자세한 내용은 전체 텍스트 카탈로그 백업 및 복원 및 SQL Server 2005(9.x) Books Online의 파일 백업 및 복원의 전체 텍스트 카탈로그를 참조하십시오.

SQL Server의 최신 인스턴스에서 데이터베이스가 복원되면 전체 텍스트 카탈로그에 대한 새 데이터베이스 파일이 만들어집니다. 이 파일의 기본 이름은 ftrow_catalog-name.ndf입니다. 예를 들어 catalog-namecat1이면면, SQL Server 데이터베이스 파일의 기본 이름은 ftrow_cat1.ndf과 같습니다. 그러나 기본 이름이 대상 디렉터리에서 이미 사용 중인 경우 새 데이터베이스 파일의 이름 ftrow_카탈로그 이름{GUID }.ndf로 지정됩니다. 여기서 GUID는 새 파일의 전역 고유 식별자입니다.

카탈로그를 가져온 후 카탈로그 항목을 제거하도록 sys.database_filessys.master_files로 업데이트되고 sys.fulltext_catalogs 경로 열이 NULL로 설정됩니다.

데이터베이스를 백업하려면

데이터베이스 백업을 복원하려면

예시

다음 예제에서는 RESTORE 문의 MOVE 절을 사용하여 ftdb1로 명명된 SQL Server 2005(9.x) 데이터베이스를 복원합니다. SQL Server 2005(9.x) 데이터베이스, 로그 및 카탈로그 파일은 다음과 같이 SQL Server 서버 인스턴스의 새 위치로 이동됩니다.

  • 데이터베이스 파일, ftdb1.mdfC:\Program Files\Microsoft SQL Server\MSSQL.1MSSQL13.MSSQLSERVER\MSSQL\DATA\ftdb1.mdf로 이동됩니다.

  • 로그 파일 ftdb1_log.ldflog_drive:\log_directory\ftdb1_log.ldf, 로그 디스크 드라이브의 로그 디렉터리로 이동됩니다.

  • sysft_cat90 카탈로그에 해당하는 카탈로그 파일이 C:\temp로 이동됩니다. 가져온 전체 텍스트 인덱스는 데이터베이스 파일인 C:\ftrow_sysft_cat90.ndf에 자동으로 배치되고 C:\temp는 삭제됩니다.

RESTORE DATABASE [ftdb1] FROM  DISK = N'C:\temp\ftdb1.bak' WITH  FILE = 1,  
   MOVE N'ftdb1' TO N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\ftdb1.mdf',  
    MOVE N'ftdb1_log' TO N'log_drive:\log_directory\ftdb1_log.ldf',  
    MOVE N'sysft_cat90' TO N'C:\temp';  

SQL Server 2005 데이터베이스 연결

SQL Server 2008 (10.0.x) 이상 버전에서 전체 텍스트 카탈로그는 전체 텍스트 인덱스의 그룹을 나타내는 논리적 개념입니다. 전체 텍스트 카탈로그는 파일 그룹에 속하지 않는 가상 개체입니다. 그러나 전체 텍스트 카탈로그 파일이 포함된 SQL Server 2005(9.x) 데이터베이스를 최신 SQL Server 서버 인스턴스에 첨부하는 경우, 카탈로그 파일은 다른 데이터베이스 파일과 함께 이전 위치에서 첨부되며, 이는 SQL Server 2005(9.x)에서와 동일합니다.

SQL Server에서 연결된 각 전체 텍스트 카탈로그의 상태는 데이터베이스가 SQL Server 2005(9.x)에서 분리된 경우와 동일합니다. 분리 작업으로 인해 전체 텍스트 인덱스 채우기가 일시 중단된 경우 SQL Server에서 채우기가 다시 시작되고 전체 텍스트 검색에 전체 텍스트 인덱스를 사용할 수 있게 됩니다.

SQL Server에서 전체 텍스트 카탈로그 파일을 찾을 수 없거나 새 위치를 지정하지 않고 첨부 작업 중에 전체 텍스트 파일이 이동된 경우 동작은 선택한 전체 텍스트 업그레이드 옵션에 따라 달라집니다. 전체 텍스트 업그레이드 옵션이 가져오기 또는 다시 빌드인 경우 첨부된 전체 텍스트 카탈로그가 다시 빌드됩니다. 전체 텍스트 업그레이드 옵션이 다시 설정이면 연결된 전체 텍스트 카탈로그가 다시 설정됩니다.

데이터베이스 분리 및 연결에 대한 자세한 내용은 데이터베이스 분리 및 연결(SQL Server), CREATE DATABASE(SQL Server Transact-SQL), sp_attach_dbsp_detach_db (Transact-SQL)를 참조하세요.

참고 항목

전체 텍스트 검색 시작
검색을 위해 단어 분리기와 형태소 분석기 구성 및 관리
검색 필터 구성 및 관리