다음을 통해 공유


sp_add_log_shipping_primary_database(Transact-SQL)

적용 대상:SQL Server

백업 작업, 로컬 모니터 레코드 및 원격 모니터 레코드를 포함하여 로그 전달 구성을 위한 주 데이터베이스를 설정합니다.

Transact-SQL 구문 표기 규칙

구문

sp_add_log_shipping_primary_database
    [ @database = ] 'database'
    , [ @backup_directory = ] N'backup_directory'
    , [ @backup_share = ] N'backup_share'
    , [ @backup_job_name = ] 'backup_job_name'
    [ , [ @backup_retention_period = ] backup_retention_period ]
    [ , [ @monitor_server = ] 'monitor_server' ]
    [ , [ @monitor_server_security_mode = ] monitor_server_security_mode ]
    [ , [ @monitor_server_login = ] 'monitor_server_login' ]
    [ , [ @monitor_server_password = ] 'monitor_server_password' ]
    [ , [ @backup_threshold = ] backup_threshold ]
    [ , [ @threshold_alert = ] threshold_alert ]
    [ , [ @threshold_alert_enabled = ] threshold_alert_enabled ]
    [ , [ @history_retention_period = ] history_retention_period ]
    [ , [ @backup_job_id = ] backup_job_id OUTPUT ]
    [ , [ @primary_id = ] primary_id OUTPUT ]
    [ , [ @backup_compression = ] backup_compression_option ]
    [ , [ @primary_connection_options = ] '<key_value_pairs>;[...]' ]
    [ , [ @monitor_connection_options = ] '<key_value_pairs>;[...]' ]
[ ; ]

인수

[ @database = ] 'database'

로그 전달 주 데이터베이스의 이름입니다. @database 기본값이 없는 sysname이며, 사용할 수 없습니다NULL.

[ @backup_directory = ] N'backup_directory'

주 서버의 백업 폴더 경로입니다. @backup_directory 기본값이 없는 nvarchar(500)이며, 이 값이 될 NULL수 없습니다.

[ @backup_share = ] N'backup_share'

주 서버의 백업 디렉터리에 대한 네트워크 경로입니다. @backup_share nvarchar(500)이며, 기본값이 없으므로 사용할 수 없습니다NULL.

[ @backup_job_name = ] 'backup_job_name'

백업 폴더에 백업을 복사하는 주 서버의 SQL Server 에이전트 작업의 이름입니다. @backup_job_name sysname이며 될 수 없습니다NULL.

[ @backup_retention_period = ] backup_retention_period

주 서버의 백업 디렉터리에 로그 백업 파일을 보존하는 데 걸리는 시간(분)입니다. @backup_retention_period 기본값이 없는 int이며 , 사용할 수 없습니다NULL.

[ @monitor_server = ] 'monitor_server'

모니터 서버의 이름입니다. @monitor_server sysname이며, 기본값이 없으므로 사용할 수 없습니다NULL.

[ @monitor_server_security_mode = ] monitor_server_security_mode

모니터 서버에 연결하는 데 사용되는 보안 모드입니다.

  • 1: Windows 인증
  • 0: SQL Server 인증

@monitor_server_security_mode 비트이며, 기본값1은 이고NULL, 될 수 없습니다.

[ @monitor_server_login = ] 'monitor_server_login'

모니터 서버에 액세스하는 데 사용되는 계정의 사용자 이름입니다.

[ @monitor_server_password = ] 'monitor_server_password'

모니터 서버에 액세스하는 데 사용되는 계정의 암호입니다.

[ @backup_threshold = ] backup_threshold

@threshold_alert 오류가 발생하기 전 마지막 백업 이후의 시간(분)입니다. @backup_threshold 기본값인 60분으로 int입니다.

[ @threshold_alert = ] threshold_alert

백업 임계값이 초과될 때 발생하는 경고입니다. @threshold_alert int이며 기본값은 14,420입니다.

[ @threshold_alert_enabled = ] threshold_alert_enabled

@backup_threshold 초과할 때 경고가 발생하는지 여부를 지정합니다. 기본값인 0은 경고가 비활성화되고 발생하지 않음을 의미합니다. @threshold_alert_enabled 비트입니다.

[ @history_retention_period = ] history_retention_period

기록이 유지되는 시간(분)입니다. @history_retention_period 기본값NULL입니다. 값 14420이 지정되지 않은 경우 사용됩니다.

[ @backup_job_id = ] backup_job_id OUTPUT

주 서버의 백업 작업과 연결된 SQL Server 에이전트 작업 ID입니다. @backup_job_id uniqueidentifier 형식의 OUTPUT 매개 변수이며 사용할 수 없습니다NULL.

[ @primary_id = ] primary_id OUTPUT

로그 전달 구성에 대한 주 데이터베이스의 ID입니다. @primary_id uniqueidentifier 형식의 OUTPUT 매개 변수이며 될 수 없습니다NULL.

[ @backup_compression = ] backup_compression_option

로그 전달 구성에서 백업 압축을 사용하는 지 여부를 지정합니다.

  • 0:비활성화. 로그 백업을 압축하지 않습니다.
  • 1:사용. 항상 로그 백업을 압축합니다.
  • 2 (기본값): 백업 압축 기본 서버 구성 옵션을 사용합니다.

[ @primary_connection_options = ] '<key_value_pairs>;[ ...]'

적용 대상: SQL Server 2025(17.x) 미리 보기 이상 버전

기본에 연결할 때 키 값 쌍의 형태로 추가 연결 옵션을 지정합니다. @primary_connection_optionsnvarchar(4000) 이며 기본값 NULL은 .

다음 표에서는 사용 가능한 연결 옵션을 나열합니다.

Key 가치
Encrypt strict, mandatory, optional, truefalse
TrustServerCertificate true, false, yesno
ServerCertificate 서버 인증서에 대한 파일 시스템의 경로입니다. 최대 길이는 260자입니다.
HostNameInCertificate 인증서에 대한 호스트 이름 재정의입니다. 최대 길이는 255자입니다.

[ @monitor_connection_options = ] '<key_value_pairs>;[ ...]'

적용 대상: SQL Server 2025(17.x) 미리 보기 이상 버전

원격 모니터를 사용할 때 연결된 서버 연결에 대한 추가 연결 옵션을 키 값 쌍 형식으로 지정합니다. @monitor_connection_optionsnvarchar(4000) 이며 기본값은 .입니다 NULL.

다음 표에서는 사용 가능한 연결 옵션을 나열합니다.

Key 가치
Encrypt strict, mandatory, optional, truefalse
TrustServerCertificate true, false, yesno
ServerCertificate 서버 인증서에 대한 파일 시스템의 경로입니다. 최대 길이는 260자입니다.
HostNameInCertificate 인증서에 대한 호스트 이름 재정의입니다. 최대 길이는 255자입니다.

반환 코드 값

0(성공) 또는 1(실패).

결과 집합

없음.

설명

sp_add_log_shipping_primary_database 는 주 서버의 master 데이터베이스에서 실행되어야 합니다. 이 저장 프로시저는 다음 함수를 수행합니다.

  1. 기본 ID를 생성하고 제공된 인수를 사용하여 테이블 log_shipping_primary_databases 의 주 데이터베이스에 대한 항목을 추가합니다.

  2. 사용하지 않도록 설정된 주 데이터베이스에 대한 백업 작업을 만듭니다.

  3. 항목의 백업 작업 ID를 log_shipping_primary_databases 백업 작업의 작업 ID로 설정합니다.

  4. 제공된 인수를 사용하여 주 서버의 테이블에 log_shipping_monitor_primary 로컬 모니터 레코드를 추가합니다.

  5. 모니터 서버가 주 서버 sp_add_log_shipping_primary_database 와 다른 경우 제공된 인수를 사용하여 모니터 서버에 모니터 레코드 log_shipping_monitor_primary 를 추가합니다.

사용 권한

sysadmin 고정 서버 역할의 멤버만 이 절차를 실행할 수 있습니다.

예제

다음 예에서는 로그 전달 구성의 주 데이터베이스로 AdventureWorks2022 데이터베이스를 추가합니다.

DECLARE @LS_BackupJobId AS UNIQUEIDENTIFIER;
DECLARE @LS_PrimaryId AS UNIQUEIDENTIFIER;

EXECUTE master.dbo.sp_add_log_shipping_primary_database
    @database = N'AdventureWorks',
    @backup_directory = N'c:\lsbackup',
    @backup_share = N'\\backupshare\lsbackup',
    @backup_job_name = N'LSBackup_AdventureWorks',
    @backup_retention_period = 1440,
    @monitor_server = N'monitor-server',
    @monitor_server_security_mode = 1,
    @backup_threshold = 60,
    @threshold_alert = 0,
    @threshold_alert_enabled = 0,
    @history_retention_period = 1440,
    @backup_job_id = @LS_BackupJobId OUTPUT,
    @primary_id = @LS_PrimaryId OUTPUT,
    @overwrite = 1,
    @backup_compression = 0;
GO

다음은 로그 전달 구성에서 데이터베이스 AdventureWorks2022 를 주 데이터베이스로 추가하고 로그 전달 실행 파일에서 기본 인스턴스에서 원격 모니터 인스턴스 monitor-server로의 주 인스턴스에 대한 연결 모두에 대해 엄격한 암호화 옵션을 사용하도록 로그 전달에 지시하는 예제입니다.

DECLARE @LS_BackupJobId AS UNIQUEIDENTIFIER;
DECLARE @LS_PrimaryId AS UNIQUEIDENTIFIER;

EXECUTE master.dbo.sp_add_log_shipping_primary_database
    @database = N'AdventureWorks',
    @backup_directory = N'c:\lsbackup',
    @backup_share = N'\\backupshare\lsbackup',
    @backup_job_name = N'LSBackup_AdventureWorks',
    @backup_retention_period = 1440,
    @monitor_server = N'monitor-server',
    @monitor_server_security_mode = 1,
    @backup_threshold = 60,
    @threshold_alert = 0,
    @threshold_alert_enabled = 0,
    @history_retention_period = 1440,
    @backup_job_id = @LS_BackupJobId OUTPUT,
    @primary_id = @LS_PrimaryId OUTPUT,
    @overwrite = 1,
    @backup_compression = 0,
    @primary_connection_options = N'Encrypt=Strict;',
    @monitor_connection_options = N'Encrypt=Strict;';
GO