Stretch Database 관리 및 문제 해결Manage and troubleshoot Stretch Database

이 항목은 다음에 적용됩니다. 예SQL Server(2016부터 시작)아니요Azure SQL 데이터베이스아니요Azure SQL 데이터 웨어하우스아니요병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL Server (starting with 2016)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

스트레치 데이터베이스를 관리하고 문제를 해결하려면 이 항목에서 설명하는 도구와 방법을 사용하십시오.To manage and troubleshoot Stretch Database, use the tools and methods described in this topic .

로컬 데이터 관리Manage local data

스트레치 데이터베이스에 활성화된 로컬 데이터베이스 및 테이블에 대한 정보 얻기Get info about local databases and tables enabled for Stretch Database

카탈로그 뷰 sys.databasessys.tables 를 열어 스트레치가 활성화된 SQL Server 데이터베이스 및 테이블에 대한 정보를 참조하세요.Open the catalog views sys.databases and sys.tables to see info about Stretch-enabled SQL Server databases and tables. 자세한 내용은 sys.databases(Transact-SQL)sys.tables(Transact-SQL)를 참조하세요.For more info, see sys.databases (Transact-SQL) and sys.tables (Transact-SQL).

SQL Server에서 스트레치가 활성화된 테이블을 사용하는 공간을 확인하려면 다음 문을 실행합니다.To see how much space a Stretch-enabled table is using in SQL Server, run the following statement.

USE <Stretch-enabled database name>;
GO
EXEC sp_spaceused '<Stretch-enabled table name>', 'true', 'LOCAL_ONLY';
GO

데이터 마이그레이션 관리Manage data migration

테이블에 적용된 필터 함수 확인Check the filter function applied to a table

스트레치 데이터베이스에서 마이그레이션할 행을 선택하는 데 사용하는 함수를 식별하려면 sys.remote_data_archive_tables 카탈로그 뷰를 열고 filter_predicate 열의 값을 확인합니다.Open the catalog view sys.remote_data_archive_tables and check the value of the filter_predicate column to identify the function that Stretch Database is using to select rows to migrate. 값이 null이면 전체 테이블을 마이그레이션할 수 있습니다.If the value is null, the entire table is eligible to be migrated. 자세한 내용은 sys.remote_data_archive_tables(Transact-SQL)필터 함수를 사용하여 마이그레이션할 행 선택을 참조하세요.For more info, see sys.remote_data_archive_tables (Transact-SQL) and Select rows to migrate by using a filter function.

데이터 마이그레이션 상태를 확인합니다.Check the status of data migration

스트레치 데이터베이스 모니터에서 데이터 마이그레이션을 모니터링하려면 SQL Server Management Studio 데이터베이스에 대해 작업 | 스트레치 | 모니터 를 선택합니다.Select Tasks | Stretch | Monitor for a database in SQL Server Management Studio to monitor data migration in Stretch Database Monitor. 자세한 내용은 데이터 마이그레이션 모니터링 및 문제 해결(스트레치 데이터베이스)를 참조하세요.For more info, see Monitor and troubleshoot data migration (Stretch Database).

또는 마이그레이션된 데이터의 배치 및 행 수를 보려면 동적 관리 뷰 sys.dm_db_rda_migration_status 를 엽니다.Or, open the dynamic management view sys.dm_db_rda_migration_status to see how many batches and rows of data have been migrated.

데이터 마이그레이션 문제 해결Troubleshoot data migration

문제 해결 제안 사항에 대해서는 데이터 마이그레이션 모니터링 및 문제 해결(스트레치 데이터베이스)를 참조하세요.For troubleshooting suggestions, see Monitor and troubleshoot data migration (Stretch Database).

원격 데이터 관리Manage remote data

스트레치 데이터베이스에서 사용하는 원격 데이터베이스와 테이블에 대한 정보 얻기Get info about remote databases and tables used by Stretch Database

마이그레이션된 데이터가 저장되는 원격 데이터베이스 및 테이블에 대한 정보를 보려면 카탈로그 뷰 sys.remote_data_archive_databasessys.remote_data_archive_tables 를 엽니다.Open the catalog views sys.remote_data_archive_databases and sys.remote_data_archive_tables to see info about the remote databases and tables in which migrated data is stored. 자세한 내용은 sys.remote_data_archive_databases(Transact-SQL)sys.remote_data_archive_tables(Transact-SQL)를 참조하세요.For more info, see sys.remote_data_archive_databases (Transact-SQL) and sys.remote_data_archive_tables (Transact-SQL).

Azure에서 스트레치가 활성화된 테이블을 사용하는 공간을 확인하려면 다음 문을 실행합니다.To see how much space a Stretch-enabled table is using in Azure, run the following statement.

USE <Stretch-enabled database name>;
GO
EXEC sp_spaceused '<Stretch-enabled table name>', 'true', 'REMOTE_ONLY';
GO

마이그레이션된 데이터 삭제Delete migrated data

Azure에 이미 마이그레이션된 데이터를 삭제하려는 경우 sys.sp_rda_reconcile_batch에 설명된 단계에 따릅니다.If you want to delete data that has already been migrated to Azure, follow the steps described in sys.sp_rda_reconcile_batch.

테이블 스키마 관리Manage table schema

원격 테이블의 스키마를 변경하지 않음Don't change the schema of the remote table

스트레치 데이터베이스에 대해 구성된 SQL Server 테이블과 관련된 원격 Azure 테이블의 스키마를 변경하지 마십시오.Don't change the schema of a remote Azure table that's associated with a SQL Server table configured for Stretch Database. 특히 열의 이름 또는 데이터 유형을 수정하지 마십시오.In particular, don't modify the name or the data type of a column. 스트레치 데이터베이스 기능에서는 SQL Server 테이블의 스키마와 관련하여 원격 테이블의 스키마에 대해 다양한 가정을 합니다.The Stretch Database feature makes various assumptions about the schema of the remote table in relation to the schema of the SQL Server table. 원격 스키마를 변경하는 경우 스트레치 데이터베이스이 변경된 테이블에 대한 작동을 중지합니다.If you change the remote schema, Stretch Database stops working for the changed table.

테이블 열 조정Reconcile table columns

원격 테이블의 열을 실수로 삭제한 경우 sp_rda_reconcile_columns 를 실행하여 원격 테이블이 아닌 스트레치가 활성화된 SQL Server 테이블에 있는 원격 테이블에 열을 추가합니다.If you have accidentally deleted columns from the remote table, run sp_rda_reconcile_columns to add columns to the remote table that exist in the Stretch-enabled SQL Server table but not in the remote table. 자세한 내용은 sys.sp_rda_reconcile_columns를 참조하세요.For more info, see sys.sp_rda_reconcile_columns.

중요

sp_rda_reconcile_columns 가 원격 테이블에서 실수로 삭제한 열을 다시 만드는 경우 이전에 삭제된 열에 있었던 데이터를 복원하지 않습니다.When sp_rda_reconcile_columns recreates columns that you accidentally deleted from the remote table, it does not restore the data that was previously in the deleted columns.

sp_rda_reconcile_columns 는 스트레치가 활성화된 SQL Server 테이블이 아닌 원격 테이블에 있는 원격 테이블의 열을 삭제하지 않습니다.sp_rda_reconcile_columns does not delete columns from the remote table that exist in the remote table but not in the Stretch-enabled SQL Server table. 원격 Azure 테이블의 열이 스트레치가 활성화된 SQL Server 테이블에 더 이상 존재하지 않는 경우 이러한 추가 열이 있어도 스트레치 데이터베이스가 정상적으로 작동합니다.If there are columns in the remote Azure table that no longer exist in the Stretch-enabled SQL Server table, these extra columns do not prevent Stretch Database from operating normally. 필요에 따라 추가 열을 수동으로 제거할 수 있습니다.You can optionally remove the extra columns manually.

성능 및 비용 관리Manage performance and costs

쿼리 성능 문제 해결Troubleshoot query performance

스트레치가 설정된 테이블이 포함된 쿼리의 성능은 테이블에 스트레치가 설정되기 전보다 훨씬 느려집니다.Queries that include Stretch-enabled tables are expected to perform more slowly than they did before the tables were enabled for Stretch. 쿼리 성능이 크게 저하될 경우 다음과 같은 문제가 있는지 검토하십시오.If query performance degrades significantly, review the following possible problems.

  • Azure 서버가 SQL Server와 지리적으로 다른 지역에 있는 경우Is your Azure server in a different geographical region than your SQL Server? Azure 서버를 SQL Server와 지리적으로 같은 지역에 구성하여 네트워크 대기 시간을 줄이십시오.Configure your Azure server to be in the same geographical region as your SQL Server to reduce network latency.

  • 네트워크 상태가 저하되었을 수 있습니다.Your network conditions may have degraded. 네트워크 관리자에게 최근 발생한 문제 또는 중단에 대해 문의하십시오.Contact your network administrator for info about recent issues or outages.

인덱싱과 같이 리소스를 많이 사용하는 작업의 Azure 성능 수준 향상Increase Azure performance level for resource-intensive operations such as indexing

스트레치 데이터베이스에 대해 구성된 대형 테이블에 인덱스를 빌드, 다시 빌드 또는 다시 구성하고 이 시간 동안 Azure에서 마이그레이션된 데이터의 쿼리가 많을 것으로 예상되는 경우, 작업 기간 동안 해당 원격 Azure 데이터베이스의 성능 수준을 높여 보세요.When you build, rebuild, or reorganize an index on a large table that's configured for Stretch Database, and you anticipate heavy querying of the migrated data in Azure during this time, consider increasing the performance level of the corresponding remote Azure database for the duration of the operation. 성능 수준 및 가격에 대한 자세한 내용은 SQL Server 스트레치 데이터베이스 가격을 참조하세요.For more info about performance levels and pricing, see SQL Server Stretch Database Pricing.

Azure의 SQL Server 스트레치 데이터베이스 서비스를 일시 중지할 수 없습니다.You can't pause the SQL Server Stretch Database service on Azure

적절한 성능 및 가격 수준을 선택하고 있는지 확인합니다.Make sure that you select the appropriate performance and pricing level. 리소스를 많이 사용하는 작업에 대해 일시적으로 성능 수준을 높인 경우 작업이 완료되면 이전 수준으로 복원하세요.If you increase the performance level temporarily for a resource-intensive operation, restore it to the previous level after the operation completes. 성능 수준 및 가격에 대한 자세한 내용은 SQL Server 스트레치 데이터베이스 가격을 참조하세요.For more info about performance levels and pricing, see SQL Server Stretch Database Pricing.

쿼리의 범위 변경Change the scope of queries

스트레치 사용 테이블에 대한 쿼리는 기본적으로 로컬 및 원격 데이터를 반환합니다.Queries against Stretch-enabled tables return both local and remote data by default. 모든 사용자의 모든 쿼리에 대한 쿼리의 범위를 변경하거나 관리자의 단일 쿼리에 대해서만 변경할 수 있습니다.You can change the scope of queries for all queries by all users, or only for a single query by an administrator.

모든 사용자의 모든 쿼리에 대한 쿼리 범위 변경Change the scope of queries for all queries by all users

모든 사용자의 모든 쿼리의 범위를 변경하려면 저장 프로시저 sys.sp_rda_set_query_mode를 실행합니다.To change the scope of all queries by all users, run the stored procedure sys.sp_rda_set_query_mode. 로컬 데이터만 쿼리하는 범위를 줄이거나 모든 쿼리를 사용하지 않도록 설정하거나 기본 설정을 복원할 수 있습니다.You can reduce the scope to query local data only, disable all queries, or restore the default setting. 자세한 내용은 sys.sp_rda_set_query_mode를 참조하세요.For more info, see sys.sp_rda_set_query_mode.

관리자의 단일 쿼리에 대한 쿼리 범위 변경Change the scope of queries for a single query by an administrator

db_owner 역할 멤버의 단일 쿼리 범위를 변경하려면 WITH ( REMOTE_DATA_ARCHIVE_OVERRIDE = value ) 쿼리 힌트를 SELECT 문에 추가합니다.To change the scope of a single query by a member of the db_owner role, add the WITH ( REMOTE_DATA_ARCHIVE_OVERRIDE = value ) query hint to the SELECT statement. REMOTE_DATA_ARCHIVE_OVERRIDE 쿼리 힌트는 다음 값을 가질 수 있습니다.The REMOTE_DATA_ARCHIVE_OVERRIDE query hint can have the following values.

  • LOCAL_ONLYLOCAL_ONLY. 로컬 데이터만 쿼리합니다.Query local data only.

  • REMOTE_ONLYREMOTE_ONLY. 원격 데이터만 쿼리합니다.Query remote data only.

  • STAGE_ONLYSTAGE_ONLY. 스트레치 데이터베이스가 마이그레이션에 적합한 행을 준비하고 마이그레이션 후 특정 기간 동안 마이그레이션된 행을 유지하는 테이블의 데이터만 쿼리합니다.Query only the data in the table where Stretch Database stages rows eligible for migration and retains migrated rows for the specified period after migration. 이 쿼리 힌트는 준비 테이블을 쿼리하는 유일한 방법입니다.This query hint is the only way to query the staging table.

예를 들어 다음 쿼리는 로컬 결과만 반환합니다.For example, the following query returns local results only.

USE <Stretch-enabled database name>;
GO
SELECT * FROM <Stretch_enabled table name> WITH (REMOTE_DATA_ARCHIVE_OVERRIDE = LOCAL_ONLY) WHERE ... ;
GO

관리 업데이트 및 삭제 만들기Make administrative updates and deletes

기본적으로 스트레치 사용 테이블에서 마이그레이션에 적합한 행 또는 이미 마이그레이션된 행을 업데이트 또는 삭제할 수 없습니다.By default you can't UPDATE or DELETE rows that are eligible for migration, or rows that have already been migrated, in a Stretch-enabled table. 문제를 해결해야 할 경우 db_owner 역할의 멤버가 WITH ( REMOTE_DATA_ARCHIVE_OVERRIDE = value ) 쿼리 힌트를 문에 추가하여 UPDATE 또는 DELETE 작업을 실행할 수 있습니다.When you have to fix a problem, a member of the db_owner role can run an UPDATE or DELETE operation by adding the WITH ( REMOTE_DATA_ARCHIVE_OVERRIDE = value ) query hint to the statement. REMOTE_DATA_ARCHIVE_OVERRIDE 쿼리 힌트는 다음 값을 가질 수 있습니다.The REMOTE_DATA_ARCHIVE_OVERRIDE query hint can have the following values.

  • LOCAL_ONLYLOCAL_ONLY. 로컬 데이터만 업데이트하거나 삭제합니다.Update or delete local data only.

  • REMOTE_ONLYREMOTE_ONLY. 원격 데이터만 업데이트하거나 삭제합니다.Update or delete remote data only.

  • STAGE_ONLYSTAGE_ONLY. 스트레치 데이터베이스가 마이그레이션에 적합한 행을 준비하고 마이그레이션 후 특정 기간 동안 마이그레이션된 행을 유지하는 테이블의 데이터만 업데이트하거나 삭제합니다.Update or delete only the data in the table where Stretch Database stages rows eligible for migration and retains migrated rows for the specified period after migration.

참고 항목See Also

데이터 마이그레이션 모니터링 및 문제 해결(스트레치 데이터베이스) Monitor and troubleshoot data migration (Stretch Database)
스트레치 사용 데이터베이스 백업(스트레치 데이터베이스)Backup Stretch-enabled databases (Stretch Database)
스트레치 사용 데이터베이스 복원(스트레치 데이터베이스)Restore Stretch-enabled databases (Stretch Database)