본문 바로가기
서버.보안

MSSQL 이것저것 (feat 디비마이그레이션)

by landzz 2022. 12. 22.

** mssql 에서 디비마이그레이션시 유용한 정보 기록 **

> 백업파일만 받은경우에 복원하는 방법  [백업데이터를 다른DB로복원

 

** 백업파일을 복구하다가 mssql설치된 sdd 의 용량이 부족하여 새로운 드라이브로 데이터경로를 변경할필요가 생김
  아래링크의 방법을 참고..  MSSQL 새로운위치로 DB데이터파일 옮기기

 > 무슨문제인건지 이동할디렉토리 보안탭에서 mssql user 권한부여가 되지않음..

   : [상황] mssql express 사용중이라 MSSQL$SQLEXPRESS 유저를 추가해야되나 해당유저를 찾을수 없음 😱😱😱 

   : [해결한 방법] 

        0.mssql 기본데이터 디렉토리를 변경
          (SSMS -> DB서버속성 -> 데이터베이스설정 -> 데이터베이스 기본위치를 변경후 mssql재시작)
        

    1. sp_detach_db "[디비명]" 를 이용하여 기존데이베이스 해제
    2. 새데이터
베이스 생성 [디비명] : 새로운데이터디렉토리에 디비명.mdf / ldf생성됨
    3. mssql중지
    4. 기존데이터디렉토리에서 > 새디렉토리로 파일이동 (덮어쓰기)
    5. mssql 시작후 들어가보면 데이터경로가 바뀐쪽으로 잘보임...
    !!😲참고할사항 >> 새데이터베이스생성후 기존 보안>로그인사항은 잘체크하거나 변경해줘야 될거같음 본인은 로컬에서 데이터분석용으로만 사용하기위해 쓴 방법이라서 주의가 필요함 [참고 : MSSQL DB 복원과 사용자 설정하기(매핑하기)]

 

 

** 디비의 테이블 및 row, 사용량을 확인할수 있는 쿼리

SELECT /*TOP 300*/
 CONVERT(VARCHAR(30), MIN(o.name)) AS t_name
 , SUM(i.rows) as rows_total
 , REPLACE(CONVERT(VARCHAR,CAST(SUM(i.rows) AS money), 1), '.00','') as row_count
 , count(i.rows) as rcnt
 , LTRIM(STR(SUM(reserved) * 8192.0 / 1000.0 / 1024.0, 15, 0) + ' MB') AS t_size
 , LTRIM(STR(SUM(reserved) * 8192.0 / 1024.0 , 15, 0) + ' KB') AS t_size2
FROM sysindexes i
 INNER JOIN sysobjects o ON o.id = i.id
 WHERE i.indid IN (0, 1, 255)
  AND o.xtype = 'U'
 GROUP BY
  i.id
 ORDER BY
   -- t_name ASC
  SUM(reserved)  DESC

 

'서버.보안' 카테고리의 다른 글

.htaccess 이용 포워딩시키기,기타 update2022-04-27  (0) 2022.04.27
리눅스 쉘스크립트 등등  (0) 2020.06.22
git bare 저장소 생성및 remote push  (0) 2016.03.30
자료찾아보기.  (0) 2016.01.04
리눅스 웹쉘찾기  (0) 2015.08.06

댓글