본문으로 바로가기
유지 관리 마법사는 SQL server for linux에는 없지만 T-sql을 이용해서 자동 백업 만드는 방법 - 바보처럼코딩하기

유지 관리 마법사는 SQL server for linux에는 없지만 T-sql을 이용해서 자동 백업 만드는 방법

반응형

시작전에 Timezone 설정은 마무리 해주세요.

연결 포스트: Timezone설정

SSMS에서

select getdate();

를 해서 현재 내 시간이 출력이 안되고 UTC가 출력되면, 아래 링크에서 수정하자.

SQL server TimeZone

 

 

레퍼런스 : Can I add Maintenance Plan in SQL Server for Linux?

 

Can I add Maintenance Plan in SQL Server for Linux?

I am using SQL Server 2017 for Linux, and the Maintenance Plans are missing from the Management menu. Does anyone knows if the Maintenance Plans are available for SQL Server for Linux? I can't find

superuser.com

레퍼런스2: https://cloudblogs.microsoft.com/sqlserver/2017/03/17/sql-server-on-linux-running-jobs-with-sql-server-agent/?wt.mc_id=MVP

 

SQL Server on Linux: Running jobs with SQL Server Agent - Microsoft SQL Server Blog

In keeping with our goal to enable SQL Server features across all platforms supported by SQL Server, Microsoft is excited to announce the preview of SQL Server Agent on Linux in SQL Server vNext Community Technology Preview (CTP) 1.4. SQL Server Agent is a

cloudblogs.microsoft.com

 

* 코드들은 SSMS에서 새 쿼리로 창을 열고 코드를 적은 후에 실행(x)로 실행시킨다. 

** syntax error가 나는 부분은 지우고 새로 타이핑을 한다. 붙여넣기 과정에서 나오는 오류다.

Create a DB

CREATE DATABASE SampleDB ;

SmapleDB가 생성됐다.

Create a job

-- Adds a new job executed by the SQLServerAgent service
-- called 'Daily SampleDB Backup'
USE msdb ;
GO
EXEC dbo.sp_add_job
   @job_name = N'Daily SampleDB Backup' ;
GO

 

작업 활동모니터에서 우클릭후 작업 활동보기를 클릭한다.

Add one or more job steps

-- Adds a step (operation) to the job
EXEC sp_add_jobstep
   @job_name = N'Daily SampleDB Backup',
   @step_name = N'Backup database',
   @subsystem = N'TSQL',
   @command = N'BACKUP DATABASE SampleDB TO DISK = \
      N''/var/opt/mssql/data/SampleDB.bak'' WITH NOFORMAT, NOINIT, \
      NAME = ''SampleDB-full'', SKIP, NOREWIND, NOUNLOAD, STATS = 10',
   @retry_attempts = 5,
   @retry_interval = 5 ;
GO

 

Create a job schedule

-- Creates a schedule called 'Daily'
EXEC dbo.sp_add_schedule
   @schedule_name = N'Daily SampleDB',
   @freq_type = 4,
   @freq_interval = 1,
   @active_start_time = 233000 ;
USE msdb ;
GO

 

Attach the schedule 

-- Sets the 'Daily' schedule to the 'Daily SampleDB Backup' Job
EXEC sp_attach_schedule
   @job_name = N'Daily SampleDB Backup',
   @schedule_name = N'Daily SampleDB';
GO

Add the job server

 

EXEC dbo.sp_add_jobserver
   @job_name = N'Daily SampleDB Backup',
   @server_name = N'(LOCAL)';
GO

 

Start job

EXEC dbo.sp_start_job N'Daily SampleDB Backup' ;
GO

 

 

작업활동 확인하기

 

여기까지 실행해 보시면 성공하는지 실패하는지 알수 있습니다.

 

 

 

그리고 백업파일이 잘 저장됐는지 확인해보겠습니다.

테스트용으로 백업파일이 잘 들어있는지 확인만 할거라 아무 DB에 우클릭으로 들어가도 관계없습니다.

그림 경로의 데이터 베이스를 클릭해줍니다. 

 

(여러번 테스트 하는 과정에서 생성 파일 확인을 위해서 저는 아래 경로의 파일명뒤에 넣어뒀습니다. 파일 명이 본인과 다를 겁니다. 미리 알려드립니다.) 

 

데이터베이스 복원창이 뜨면 

'디바이스' > '...' > '추가'를 눌러주면 아래과 같이 백업한 파일을 찾을 수 있습니다.  

이 파일은 위 작업활동 확인하기에서 생성한 파일이고,

아래의 경로로 작업 일정 속성을 수정하면, 원하는 시간에 백업을 자동으로 받을 수 있습니다.

 

같이 볼 포스트: SQL 서버 DB자동백업 - 유지 관리 계획

 

SQL 서버 DB자동백업 - 유지 관리 계획

개발 환경 MS-SQL server 2019 for Developer on Windows PC MS-SQL server 2019 for linux on Docker, Synology 아래 사진은 SSMS에서 두개의 서버를 연결한 모습이다. (두개의 차이점은 유지 관리 계획 이라는..

babocoding.tistory.com

 

 

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유