linux/mssql

Centos 7 MSSQL 복원

샤가샤가 2017. 4. 6. 15:27

기존에 있던 태스용PC가 Windows 으로 구축된 상태에서 , 리눅스 환경에 서비스를 기획하고 있었기에 Centos 를 설치~


Database를 어떤걸 쓸까 고민중에 ~ 다행이도 MS에서 SQL을 리눅스 판으로 배포 


하지만 Tool 은 Console 로만 제공함. 


근데 지금까지 DB 백업파일을 복원하는것이 문제임.


어짜피 개발용PC가 윈도우기도 하고, SSMS 가 설치되어져 있어 GUI환경에서 원격으로 복원 해도 상관없는데


이왕 하는거 console 로 ~


sqlcmd 로 접속 해도 상관 없고 , 혹은 jdbc driver 로 연결하여 한번에 하는 쿼리를 만들어 봄.



0. 우선 console 에서 sqlcmd 로 접속 



 $ sqlcmd -S localhost -U SA -P 'password'

>


이때 localhost = ip주소를 

SA = 사용자 ID

password = 설치때 입력한 password





1.초간단하게 할 경우 (sql cmd 접속후)



> restore database [DB명] from disk = 'c:\원본파일' with recovery, REPLACE, stats=10; 



linux 에서 C:\ 가 나오니 당황 스럽지만.. mssql의 리눅스 배포판의 경우 리눅스 파일시스템의 Root 를 C:\로 인식(windows 처럼) 한다. 


그러니까 .  home/tester/backupdb.trn 의 경우 C:\home\tester/backupdb.trn 으로 표기함.


이때 MDF 파일과 LDF 파일은 mssql 설정에 있는 경로에 저장됨.





2. mdf과 ldf 파일의 경로도 지정하고 싶다면  


일반 터미널 창에서 우선 MDF와 LDF가 저장될 디렉토리의 권한은 mssql 이 가져야 함. 아래와 같이 설정 한다.


 

$ chmod mssql '폴더 경로'

$ chgrp mssql '폴더 경로'



sql cmd 접속후



restore database [DB명] from disk = 'c:\원본파일' 

with with move '[datafile]' to 'c:\[data file을 저장할 전체 경로]

, move '[logfile]' to 'c:\[log file을 저장할 전체 경로]

, recovery, REPLACE, stats=10;

 


datafile 은 일반적으로 MDF 파일을 말하며 , logfile은 ldf 파일을 말함.

마찬가지로 저장경로는 c:\를 넣어 주어야 한다.



'linux > mssql' 카테고리의 다른 글

Centos 7 MSSQL-SERVER-AGENT 설치  (0) 2017.04.12
Centos 7 MSSQL-TOOLS 설치  (0) 2017.04.06
Centos 7 MSSQL SERVER 설정  (0) 2017.04.06
Centos 7 MSSQL SERVER 설치  (0) 2017.04.06