기존에 있던 8테라를 920으로 옮기고 6테라2개로 교체 하기 위한 백업 방법 기획

 

1단계: 만약을 위한 시스템 설정 백업 (10초 소요)

혹시 모를 상황에 대비해 현재 NAS 설정을 PC에 저장하기

  1. NAS 관리 페이지(DSM) 접속 ➡️ [제어판] ➡️ [업데이트 및 복원] ➡️ [구성 백업] 탭으로 이동.
  2. [구성 백업] 버튼을 눌러 컴퓨터에 .dss 파일로 저장.

2단계: 8TB 하드 하나 빼기 (이중화 해제)

  1. NAS 전원을 끈다. (핫스왑을 지원하더라도 안전을 위해 전원을 끄는 것을 권장.)
  2. 2개의 8TB 하드 중 아무거나 1개(예: 2번 슬롯)를 서랍 빼듯 뽑아내기.
  3. 뽑아낸 8TB 하드는 안전한 곳에 보관. (이 하드가 완벽한 원본 데이터 백업본.)

3단계: 새 6TB 하드 장착 및 경고음 끄기

  1. 방금 빼낸 빈 슬롯(2번 슬롯)에 새 6TB 하드 1개를 장착.
  2. NAS 전원을 켜기.
  3. 부팅이 완료되면 하드가 빠졌다는 의미로 NAS에서 삑- 삑- 경고음이 울린다.
  4. DSM에 접속한 뒤, 오른쪽 위 알림창이나 [저장소 관리자] 메뉴에서 [경고음 음소거]를 눌러 소리를 끄기.
    (상태가 '경고/성능 저하'로 뜨는 것은 정상.)

4단계: 새 6TB 하드로 '새 볼륨' 만들기

★ 중요: 기존 볼륨을 '복구'하는 것이 아니라 완전히 새로운 저장 공간을 만들어야 함.

  1. [저장소 관리자] ➡️ [저장소] 메뉴로 이동.
  2. [생성] ➡️ [저장소 풀 및 볼륨 생성]을 선택.
  3. RAID 유형은 SHR 또는 단일 볼륨(Basic)을 선택하고, 방금 넣은 6TB 하드를 지정하여 새로 만듬.
  4. 완료되면 NAS 안에 기존 8TB 볼륨(볼륨 1)새 6TB 볼륨(볼륨 2)이 동시에 존재.

5단계: 데이터 내부 이사 (가장 오래 걸림)

공유 폴더의 방을 8TB에서 6TB로 옮겨주는 과정. 시놀로지가 알아서 데이터를 이동시킨다..

  1. [제어판] ➡️ [공유 폴더]로 이동.
  2. 이동할 폴더를 선택하고 [편집]을 클릭.
  3. '일반' 탭에 있는 [위치]를 기존 볼륨 1에서 새로 만든 6TB(볼륨 2)로 변경하고 저장.
  4. 이 작업을 모든 공유 폴더마다 반복. 데이터 양(4~5TB)이 많으므로 완료까지 수 시간이 걸림.
    중간에 NAS 전원을 끄지 말것.

6단계: 마지막 8TB 제거 및 두 번째 6TB 장착

  1. 데이터 이동이 100% 완료된 것을 확인.
  2. [저장소 관리자]에서 데이터가 텅 빈 기존 8TB 볼륨(볼륨 1)을 선택하고 [제거] 또는 [삭제].
  3. NAS 전원을 끄고, 남아있던 마지막 8TB 하드(1번 슬롯)를 빼기.
  4. 그 빈 자리에 두 번째 새 6TB 하드를 장착하고 전원을 켜기.

7단계: RAID 1(SHR)로 묶어 이중화 완성

이제 두 개의 6TB 하드를 하나로 묶어 다시 안전한 상태로 만드는 마지막 단계.

  1. DSM 접속 후 [저장소 관리자] ➡️ [저장소]로 이동.
  2. 현재 데이터가 들어있는 6TB 볼륨(볼륨 2)을 선택.
  3. [...] 버튼(더 보기)을 누르고 [드라이브 추가]를 선택.
  4. 방금 새로 넣은 두 번째 6TB 하드를 선택하여 추가.
  5. 시스템이 두 하드를 동기화하기 시작하며, 이 작업이 끝나면 다시 안전한 이중화 상태(RAID 1 또는 SHR)가 완료.

  • 참고사항:
    6단계에서 기존 볼륨을 지우면 기존에 설치했던 앱(패키지)들이 삭제될 수 있다.
    7단계 완료 후 패키지 센터에서 필요한 앱(예: Synology Photos 등)만 다시 설치해 주면 공유 폴더 안에 이사 가 있는 데이터들과 자동으로 다시 연결이 될 것이다.

'장비' 카테고리의 다른 글

RS485 테스트를 위한 RS485to이더넷  (0) 2023.11.01
RS485 테스트를 위한 USB to RS485 컨버터  (0) 2023.11.01
Posted by 샌츠
,
Error querying database. Cause: java.lang.NumberFormatException: For input string: “A”
 Cause: java.lang.NumberFormatException: For input string: “A”

 

JAVA - mybatis 개발환경에서 쿼리 관련된 오류가 발생하였다.

오류가 발생한 코드는 <when test="searchType == 'A'"> 이였다.

searchType이 A가 맞을 경우에 쿼리문을 추가하기 위한 것이였는데;.

NumberFormatException이 발생하였다.

 

원인 : MyBatis가 내부적으로 사용하는 OGNL(Object Graph Navigation Language)의 특성

OGNL이란?

OGNL은 Java 객체의 속성에 접근하고 메서드를 호출할 수 있는 표현 언어.
MyBatis는 동적 SQL의 test 속성에서 OGNL을 사용해 조건을 평가한다.

문제 발생 원리

1. OGNL의 자동 형변환

<when test="searchType == 'Q'">

OGNL은 이 표현식을 평가할 때:

  • searchType이 숫자 타입(예: Integer 1)이면
  • 'Q' 문자를 숫자로 변환하려고 시도
  • 'Q'는 숫자로 변환할 수 없으므로 NumberFormatException 발생

 


해결방법 :

<when test='searchType == "Q"'>

 

"Q" 큰따옴표와 작은따옴표를 바꾸어 Q를 문자로 비교할 수 있도록 수정한다.

다른방법으로는 아래와 같은 방법들이 있다.
equals() 메서드 사용
toString()으로 명시적 변환

'JAVA' 카테고리의 다른 글

[오라클] SQL 쿼리 where ROWNUM <= 5 오류 발생  (1) 2025.07.11
[오라클] ORA-01861 에러 분석  (1) 2025.07.11
Posted by 샌츠
,

JavaScript에서 객체를 문자열로 변환할 때 나타나는 현상.

console.log('결과:', result);

위와 같이 그냥 result를 하였다면, 아래와 같이 수정할 것.

JSON.stringify(result, null, 2)

 

JSON.stringify()의 매개변수

 

  • 첫 번째 매개변수 (result): 변환할 객체
  • 두 번째 매개변수 (null): replacer 함수 (없으면 null)
  • 세 번째 매개변수 (2): 들여쓰기 공백 수 (가독성을 위해)

 

'홈페이지' 카테고리의 다른 글

[스크랩] HTML5 Audio Element, 한 판 붙자!  (0) 2017.02.16
[스크랩]1. PHP 게시판 만들기  (0) 2017.01.11
Posted by 샌츠
,