//구글광고

시놀로지(Synology NAS) DS 718+ , 918+ RAM 용량 16GB 확장하기


시놀로지 NAS 구입하실 때 램이 16기가 까지 확장이 가능한지 매우 궁금하실 겁니다.

저도 많이 받았던 질문인데, 오늘 제가 램업글을 해보았습니다.


DS 718+ , DS918+ 모델은 16GB 확장이 가능합니다.

기존슬롯에 있던 4GB 모듈을 빼고 삼성 DDR3L- 노트북용 저전력 메모리 8GB * 2 개를 설치하여 16GB로 업그레이드 하였고
정상동작이 가능합니다.


이렇게 16GB로 나오는 것을 볼 수 있습니다.

이제 더 많은 가상머신을 올릴 수 있게 되었습니다.


기본 4GB 상태에선 리눅스 가상머신 하나돌리기도 힘든 상황이었습니다.

램확장하시고 편하게 사용하시기 바랍니다.


이때 주의하실점은 반드시 

"노트북용 DDR3 PC3L 저전력 8G 12800S" 를 사셔야 합니다."






이렇게 생겼습니다. 





시놀로지 필수 보안설정 이것만은 꼭 하세요(2)


블로그에 글 올린지 얼마 안되었고 조회수도 얼마 되지 않았는데,

벌써 외부에서 공격이 꽤나 들어오고 있었습니다.


시놀로지 보안설정 이전글에선 남한에서만 접속하게 설정을 했는데요 다음 보안설정은 이것입니다.


관리자 아이디를 admin 에서 다른 아이디로 변경할 것.


블로그에 예제가 올라가면서 ezconnect 주소가 공개되어 버리니까 이런 저런 공격시도가 들어옵니다.


저런메일이 옵니다 보통 몇번 시도하다가 자동으로 IP가 차단되어 버리죠




시놀로지 로그센터에서 해당내용을 확인해보면 admin 사용자로 로그인을 시도합니다.
따라서 사용자설정에서 admin 계정을 사용안함으로 변경하고 관리자 아이디를 다른걸로 사용하시기 바랍니다.


[제어판] - [사용자] 에서 admin 말고 생성을 클릭하여 다른 관리자 아이디를 사용하시고, Google OTP 설정도 해두시는게 좋습니다.

그리고 기존에 admin 계정은 [편집] 버튼을 클릭하여 사용안함으로 변경합니다.


이러면 인터넷상의 접속 시도는 대부분 차단할 수 있으니, 꼭 하시기 바랍니다.





무료로 즐기는 파워풀한 백업!!

시놀로지 오라클 Export 백업 설정




본 포스트는 연재 포스트입니다. 


1. 시놀로지 NAS에 오라클 XE를 설치해보자 ( http://kimazfactory.tistory.com/4 )
2. 시놀로지 ORACLE XE 설치 및 설정 2 - 한글과 타임존 설정 ( http://kimazfactory.tistory.com/5 )
3. 시놀로지 docker 오라클 XE 아카이브 모드 변경 ( http://kimazfactory.tistory.com/14 )





시놀로지 NAS 에서 개발 시스템을 구축할때의 가장 큰 장점중 하나는 파워풀한 백업 시스템을 무료로 이용할 수 있다는 것이다.
개발 시스템의 백업은 잘 신경쓰지 않는다. 최초에 개발환경을 구축할 때 모든 시스템은 건강하기 때문에 그냥 쓰지뭐.. 이렇게 생각하다가 
막상 개발이 마무리 되거나 한참 자료가 중요해 질 때쯤 예기치 못한 에러로 인해 백업을 해놓지 않은 것을 후회하게 될 것이다.

시놀로지 NAS 에 내가 관심을 가지고 이렇게 기록을 남겨놓는 이유는 다시 구축할 때 , 혹은 인수인계할 때 도움이 되기도 하지만 이렇게 잘 정리 해놓지 않으면 한 1년 뒤에는 나도 아쉬울 날이 오더라는 것이다.

우선 내가 세팅할 백업 환경은 아래의 그림과 같다.


시놀로지 안에서 Export 를 하루에 한번 수행하고 그 export 백업본을 시놀로지의 백업 솔루션을 이용해서 다중화 한다.

HyperBackup 솔루션수준의 오라클 데이터베이스 백업을 받으려면 그 가격만으로도 NAS보다 비쌀 것이다.


BTRFS를 이용한 멀티 스냅샷 기능또한 마찬가지 개발 환경에서 아무렇게나 굴러다니는 시스템으로 개발 환경을 구축해놓으면 이러한 시너지 효과를 누릴수 없기 때문이다.


심지어 시놀로지는 이러한 백업이 정상적으로 되었는지 에대한 리포팅을 이메일로 해주고,

해당 백업본을 cloud 시스템으로 복제 까지 해준다.

( 이 클라우드 복제  - Dropbox 라던지, 구글 Drive라던지... - 의 기능은 다음에 포스팅을 쓸 예정이지만 엄청 파워풀하다 4테라바이트의 수백만개의 파일을

일반적인 환경으로 복제 버전 관리가 가능할까? 사실 불가능하다. 복제하다가 오류가 발생하기 쉽상이지.. 하지만 시놀로지 클라우드 동기화는 아주 만족스럽게 싱크를 해주고 있다. )


이러한 장점 떄문에 시놀로지 NAS에 SVN 을 설치하고, Tomcat 서버를 운영하고, Oracle DB서버를 운용 해서 테스트 시스템을 구축했다.

강력한 무료 솔루션들 때문에 NAS 가격보다 더 많은 이점을 누리고 있다.


즉, 소규모 개발서버 구축엔 시놀로지 구성을 적극 추천하는바임.

사설은 여기까지 이제 구축해봅시다.


1. 공유폴더 만들기

시놀로지 dsm 으로 접속한다.



1. [ File Station ] 을 클릭한다.

2.[ docker] 폴더를 우클릭한다.

3. [폴더생성] 을 클릭한다.


폴더 이름에 [exp] 라고 입력하고 [확인] 버튼을 클릭한다.


[exp] 폴더가 생긴걸 확인할 수 있다.



2. Docker 볼륨에 공유폴더 연결하기

좌측상단의 네모버튼의 프로그램 메뉴 버튼 클릭한뒤 Docker 를 클릭하여 Docker 를 실행한다.



Docker 에서 좌측의 비디오 형식 클릭 후 우측에 오라클 이미지를 더블클릭한다.


1.가상머신 창에서 [터미널] 을 클릭한다.

2.좌측 상단의 [생성] 버튼을 클릭한다.

3.하단에 [bash] 쉘을 클릭한다.

4.우측에 검정화면에 root ... # 프롬프트가 깜빡거릴것이다.


                             다음의 명령어를 입력하여 오라클 DB를 종료한다.

su - oracle


lsnrctl stop


sqlplus "/as sysdba"


shutdown immediate

 


 

이제 가상머신을 종료한다.


x 버튼을 눌러 현재 가상머신 화면을 종료한다.


전원 버튼을 눌러 현재 가상머신을 끈다.


오라클 가상머신을 한번 클릭으로 선택한 후,

[편집 ] 버튼을 클릭한다.



1. [볼륨] 버튼을 클릭한다.

2. 볼륨 탭에서 [폴더추가] 버튼을 클릭한다.


1. 아까 우리가 생성한 docker 폴더 밑에 exp 폴더를 클릭하고 

2. 우측하단에 선택 버튼을 클릭한다.


1. 마운트 경로에 /exp 를 입력한다. ( 이후 가상머신내에 /exp 마운트 포인트로 잡힌다. )

2. 적용 버튼을 클릭한다.


전원 버튼을 클릭하여 가상머신의 전원을 켜준다.


가상머신을 더블 클릭한다.


가상머신 화면에서 

1. [터미널] 클릭

2. [생성] 클릭

3. [bash] 쉘 클릭

4. 우측에 root 프롬프트가 깜빡입니다. 

이상태에서 다음의 명령어를 입력합니다.


방금 마운트한 exp 경로의 권한 설정



ls -altr /exp


chown -R oracle:dba /exp


ls -altr /exp


 





3. export 스크립트 작성

/exp 폴더 아래에 fullexp.sh 스크립트를 작성한다.
다음의 명령어로 작성한다.


cd /exp


vi fullexp.sh

 



i 키를 누른 다음 아래의 내용을 입력 후 esc키와 :wq 를입력하여 저장한다.


 export LANG=ko.KR_UTF8

export NLS_LANG=KOREAN_KOREA.AL32UTF8

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe

export ORACLE_SID=XE

export PATH=$ORACLE_HOME/bin:$PATH


exp system/oracle file=/exp/fullexp.dmp log=/exp/fullexp.log full=y statistics=none 




다음 명령어로 권한을 부여합니다.


chown oracle:dba ./fullexp.sh


chmod 755 ./fullexp.sh

 




4. 시놀로지 백업 스케쥴 설정

이제 모든 창을 닫고 시놀로지 메인 화면으로 이동한다.

[제어판]을 클릭한다.



[ 제어판] 화면에서 작업 스케쥴러를 클릭한다.

만약 작업 스케쥴러가 보이지 않으면 우측 상단의 고급모드 > 를 클릭한다.


[ 작업 스케쥴러 ] 를 클릭한다.


작업 스케쥴러 창에서 [생성] 버튼 클릭 [예약된 작업] 에서 [사용자 정의 스크립트] 를 선택한다.


작업생성 창의 [일반] 탭에서 작업 이름을 oracle export 로 입력한다.



알림에 메일주소를 입력하면 해당 작업이 실행된 후 결과를 알려준다.


사용자 정의 스크립트 창에 다음을 입력한다.


 docker exec alexeiled-docker-oracle-xe-11g1 su - oracle -c /exp/fullexp.sh



여기서 alexeiled-docker-oracle-xe-11g1 값은 오라클 docker 이미지의 이름이다.

docker 이미지 창에서 확인할 수 있다.


su - oracle -c 는 root 유저로 수행하기 때문에 오라클 유저에서 해당 스크립트를 실행하라는 의미이다.



수행시간을 지정하고 싶으면 스케쥴 탭에서 시간을 지정한다.

기본값은 매일 자정에 수행된다.



[확인] 을 클릭하여 저장한다.


oracle export 작업을 우클릭 하여 실행 버튼을 클릭해서 한번 수행해 본다.


[예] 를 클릭하여 수행해 본다.


[파일스테이션] 에서 exp 경로에 정상적으로 export 파일이 생성되는 것을 볼 수 있다.


설정한 메일 함에도 이렇게 수행된 로그가 메일로 전송된다.




안녕하세요 오늘 포스트는 이전에 시놀로지 NAS 에 docker오라클 XE 설치 세팅에 계속해서

Archive log mode (아카이브 모드로 변경) 설정 방법입니다.



아카이브 로그 모드로 변경하는 이유는 오라클 데이터베이스를 온라인(운영중인)상태에서 백업( Hot backup ) 을 받기 위해서 설정합니다.


바로 다음에 RMAN 으로 온라인 백업 설정 방법도 포스팅할 예정입니다.



  주의사항 : 


 -   Archive log 모드 로 변경하기 위해선 DB를 내렸다가 올려야 합니다.


-   Archive log 파일이 계속 생성됩니다. 지워주지 않아 공간이 가득차게 되면 Archive log full 에 의해 데이터베이스가 멈춥니다.


 -  온라인 백업(online backup, hotbackup)을 하지 않을 것이라면 Archive log 모드로 변경할 필요가 없습니다.




이전에 포스팅한 환경이 궁금하시면 링크를 따라 과거 포스팅을 참조하시기 바랍니다.

과거 포스팅 대로 설정된 환경에서 진행합니다.


1. 시놀로지 NAS에 오라클 XE를 설치해보자 ( http://kimazfactory.tistory.com/4 )


2. 시놀로지 ORACLE XE 설치 및 설정 2 - 한글과 타임존 설정 ( http://kimazfactory.tistory.com/5 )




자 그럼 시작해 봅시다.



1 ) DSM 으로 접속합니다.


2 )  File Station 을 클릭합니다.


3 )  아카이브 로그 저장 경로를 지정해야 합니다. 


   저는 [ docker ] 밑에 [ arch ] 폴더로 지정할 것 입니다.


   [ docker ]  에서 우클릭 하여 [ 폴더 생성 ] 을 클릭합니다.



생성할 폴더명 [ arch ] 를 입력하고 확인을 클릭합니다.



 [ arch ] 폴더가 생성된 것을 확인할 수 있습니다.



4 )  이제 Dock 를 실행해 줍니다


좌측상단에 [ 메뉴 ] 버튼을 클릭해서 [ docker ] 를 실행합니다.




5 ) Docker 에서 촤측의 [ 비디오 형식 ] 탭을 클릭한 후  우측의 오라클 XE 가상머신을 더블클릭 합니다.



6 ) 가상머신 창에서 터미널을 클릭해서 [ 터미널 ] 로 들어갑니다.



[ 생성 ] 버튼을 클릭하면 새로운 [ bash ] 쉘이 생깁니다. [ bash ] 쉘을 클릭하면 root 프롬프트가 깜빡입니다.



7 ) 오라클 유저로 들어가서 DB를 종료합니다.




다음과 같이 명령어를 입력합니다


 i) 오라클 유저로 전환


 su - oracle


 ii) 리스너 서비스 종료


 lsnrctl stop


iii) 오라클 관리자 권한으로 접속


 sqlplus "/as sysdba"


iv ) 오라클 종료 


 shutdown immediate


 



8 )  가상머신을 종료하고 3) 에서 만든 arch 경로를 마운트 시켜줍니다.


 우측상단에 X 버튼을 클릭하여 가상머신 창을 닫아줍니다.



프롬프트가 나오면 [예] 를 클릭합니다.



  비디오형식 탭에서 전원 버튼을 눌러 가상머신을 종료합니다.



클릭하면 이렇게 회색으로 종료가 됩니다.



가상머신을 한번 클릭해주면 하늘색으로 선택이 됩니다.

그 상태에서 상단에 [ 편집 ] 버튼을 클릭해주세요.



편집 창에서 [볼륨] 을 클릭합니다.



볼륨 탭에서 [폴더추가 ] 버튼을 클릭합니다.


폴더추가 창에서 아까생성 했던 [ docker ] 폴더 밑의 [ arch ] 폴더를 선택한 후 [ 선택 ] 버튼을 클릭합니다.



마운트 경로에 커서가 깜빡일 것 입니다.



마운트 경로에 원하는 경로를 입력합니다. 이는 가상머신 os에서 보여지는 마운트 경로입니다.

우리는 [ /arch ] 라고 입력한 후 적용 버튼을 클릭합니다.

이후 본 포스팅에서 실습에서 아카이브 로그 경로는 /arch 가 됩니다.




다시 가상머신 창으로 돌아왔으면 전원 버튼을 눌러 가상머신을 시작합니다.



클릭하면 이렇게 파란색으로 변하면서 전원이 켜집니다.



가상머신을 더블클릭하여 터미널로 들어갑니다.



가상머신 화면에서 [ 터미널 ] 을 클릭합니다.

상단의 [ 생성 ] 을 클릭한 후,

좌측탭의 [ bash ] 쉘을 클릭하면 우측에 root 커서가 깜빡입니다.



9 ) 마운트 포인트 확인 후 oracle 권한 부여


  터미널 창에서 다음의 명령어를 입력합니다.


df -k


그럼 화면에서 /arch 가 마운트 된것을 확인할 수 있습니다.


다음명령어를 입력합니다.


ls -altr /arch  


그럼 현재 디렉토리 권한이 잡혀있지 않는것을 확인할 수 있습니다.





다음의 명령어로 권한을 부여합니다.



 chown oracle:dba /arch

 



 다시 ls -altr /arch 를 입력해보면

현재 /arch 디렉토리 권한이 oracle : dba 로 부여된것을 확인할 수 있습니다.



10 ) 오라클데이터배이스를 archive log 모드로 변경


먼저 오라클 유저로 접속합니다

다음 명령어를 입력합니다.


su - oracle 


다음 명령어를 입력해서 오라클 데이터베이스 관리자 모드로 접속합니다.


sqlplus "/as sysdba" 



현재 아카이브 모드인지 확인합니다

다음의 명령어를 입력하세요


archive log list 



아카이브 모드로 바꾸는 방법은 여러가지가 있으나, 저는 손에 익은 관계로 pfile 을 만들어서 변경하겠습니다.

우선 파라미터 파일을 생성합니다.


다음의 명령어를 입력하여 pfile 을 생성합니다.

create pfile from spfile; 



 다음의 명령어를 입력하여 DB를 종료한뒤, sqlplus 를 빠져나옵니다.


shutdown immediate 


exit



다음의 명령어를 이용해서 파라미터 파일 경로로 이동합니다.

cd $ORACLE_HOME/dbs 


ls 명령어로 파라미터 파일이 있는지 확인합니다.

ls -altr 

spfileXE.ora , initXE.ora 파일이 보입니다.



다음의 명령어로 spfile을 백업해둡니다.

mv spfileXE.ora spfileXE.bak 



vi를 이용하여 파라미터를 편집해줍니다.

다음의 명령어를 입력해주세요.

vi initXE.ora 


vi 화면에서 커서를 위, 아래 화살표를 이용해서 움직여서 *_DB_RECOVERY_FILE_DEST 와 *_DB_RECOVERY_FILE_DEST_SIZE 행 위에서 [d] 키를 두번 눌러 해당 2개 행을 지워줍니다.


지운후 [o] 키를 누르면 새로 들여쓰기가 가능합니다.

 (  만약 중간에 실수를 했다면 [esc] 키를 누르고 :q! 를 입력하면 저장하지 않고 밖으로 나옵니다. 다시 vi initXE.ora 로 진행하시면 됩니다.  )


들여쓰기 상태에서 다음의 파라미터를 입력합니다.

log_archive_dest='/arch'

log_archive_format='arch_%r_%t_%s.arc'

 


입력하였으면 [esc] :wq 를 입력하여 저장합니다.


다음의 명령어를 입력하여 sqlplus 관리자 모드로 접속합니다

sqlplus "/as sysdba" 



다음의 명령어를 입력하여 mount 모드까지 DB를 기동합니다

startup mount 



database mounted. 라는 메세지 까지 떳습니다.

다음의 명령어로 아카이브 모드로 변경합니다.


alter database archivelog; 



database altered. 라는 메세지가 나옵니다.


다음의 명령어로 spfile 을 생성한 후 데이터베이스를 재기동합니다.


create spfile from pfile;


startup force 




이제 명령어로 정상적으로 archive log 모드가 적용되었는지 확인합니다.

다음명령어를 입력하세요


archive log list 



Archive Mode 로 변경된 것을 확인할 수 있습니다.


11 ) 아카이브가 잘 떨어지는지 확인해봅시다.


다음의 명령어로 로그스위치를 일으켜 아카이브가 잘 떨어지는지 확인해 봅시다.


alter system switch logfile; 





실제 /arch 경로에 아카이브 로그가 잘 떨어졌는지 확인해 봅시다.


다음의 명령어로 sqlplus 관리자 모드에서 접속 종료합니다.

exit 


다음의 명령어로 아카이브 로그파일이 잘 떨어졌는지 확인합니다

ls -altr /arch 



oracle : dba 권한으로 arc 파일이 생성되었으면 정상적으로 설정된 것 입니다.


이상으로 아카이브 모드로 변경을 마칩니다.



시놀로지 NAS 선택 어떤 모델을 해야할까?



오늘은 사용용도에 따른 NAS 구입에 대해 알아봅시다.

가장먼저 정해야 할 것은 사용용도 입니다.


1. 가정에서 사진과 동영상 저장 및 스마트 기기에서 시청용도 ( + 트랜스 코딩 : 자기가 현재 보는 디바이스에 맞게 화질을 조정하여 네트워크 사용량을 아끼는 기술 )


ds218, ds218play,ds118

가장 베이직한 모델입니다. 일반적인 가정에 적합합니다.

가격도 저렴한 편입니다.

베이수(들어가는 디스크수)에 따라 선택하시면 되겠습니다.



2. 위의 기능에 더해 간단한 웹서버 운용,랜섬웨어 방지를 하고싶다 (btrfs 사용)


이정도 급부터 사실 추천드립니다. 단순히 NAS를 저장용으로 쓰시는 분들외에 여러가지 가이드를 보고 가지고 놀고 싶고

활용도를 높히고 싶다면 현재 등급 이상은 올라와야 합니다.


대표적으로 인텔 CPU를 사용해야 몇가지 패키지들을 더 설치할 수 있으며

스냅샷 기능을 이용하여 랜섬웨어를 방지할 수 있습니다.


btrfs + 스냅샷 기능으로 1시간에 한번씩 스냅샷을 찍어두면 해당시점의 파일로 돌릴수있어서 랜섬웨어 걸린 파일을

걸리기 이전 시점으로 복구할 수 있습니다.


ds218+ , ds718+

좀더 파워풀한 성능으로 웹서비스 같은것도 운영해보고 싶다 하시는분들은 ds 718+ 까지는 올라와 줘야 합니다.



3. 소규모 기업 , 가정용 파워풀 성능, 디스크 용량이 부족해


디스크 공간이 더 필요하다면 918+ 입니다.


성능은 718+와 동일하지만 캐쉬용 SSD를 장착할 수 있고 베이가 총 4개 입니다.

메모리 업그레이드는 918+ 718+ 동일하게 16기가까진 확인했습니다.



이렇게 기준으로 선택하시면 후회 없으실 겁니다.


그 윗단계의 NAS는 기업용 부분이라 다른 선택지가 많기 때문에 본 포스트에서는 언급하지 않겠습니다.


기능 

 DS218+

DS718+ 

DS918+ 

장착가능디스크 

CPU 코어 

RAM 

2

표로 요약하자면 이렇습니다.


이것저것 장난 좋아하시는 저같은 아재 레벨이라면 디스크 크기에 따라 718+나 918+ 정도로 선택하면 될듯 하네요




앞서 포스팅한 502 bad gateway 링크( http://kimazfactory.tistory.com/8 ) 와 같이 이 현상도 다양한 근원 에러들때문에 일어난다.

본 포스팅도 해당 증상이 나올때 마다 해결책을 계속 업데이트 할 예정이다.



case 1. tomcat 과 nginx 를 이용한 reverse proxy 환경에서 Synology 에 설치한 Tomcat 서비스 요청시 웹페이지에서 504 gate way timeout 증상이 나타나는 경우


cause . Oracle DBCP 의 리소스 leak 에 의한 DBCP 불량

해결책. leak 소스 코드 부분 수정


원인 진단.



ssh를 이용하여 oracle 유저로 접속하여

sqlplus "/as sysdba" 를 입력하여 관리자로 접속한다.


접속한 후 다음의 쿼리로 현재 JDBC Thin Client 의 수를 세어본다.


select program, status, count(*) from v$session

where program like '%JDBC%'

group by program, status;




count(*) 컬럼의 값이 계속 증가하다가 일정 값에서 504 gateway timeout 값이 발생하며

페이지가 응답하지 않는다.


이 외에도 확인하는 방법은 다음과 같다.



select * from v$resource_limit; 


쿼리로 


현재 세션과 프로세스의 수 그리고 DB기동 이후 최대치 (High Water mark ) 그리고 파라미터상의 최대 제한치를

조회 할 수 있다.


파라미터를 수정하여 늘려준다.


하지만 leak 현상에 따라 제한이 걸리면 dbcp(connection pool ) 의 설정에 따라 한도에 도달하지 못하고 hang 걸리는 현상이 발생하기도 한다. 


해당증상을 임의로 재현해보면 다음과 같다.


해당 리소스를 close 하지 않고 다시 사용하면 이클립스 상에서 워닝은 뜨지만 무시하고 실행하면

리소스 leak 이 발생은 하지만 프로그램은 동작한다.




시놀로지 NAS를 처음 구매하시고

DDNS 를 등록하시면 아주 쉽게 DSM으로 접속해서 운영할 수 있습니다.


근데 실제로 운영하시다 보면 외국에서 해킹시도가 정말 많이 들어옵니다.


실제 사용하시는 지역이 한국이시면 남한으로 방화벽설정은 꼭 하시길 권장드립니다.


그리고 관리자 아이디일 경우 2차 보안으로 Google OTP 설정을 해두세요

( 아이폰 , 안드로이드 모두 가능 )




1. 접속가능 국가를 '남한' 으로 설정하기


기본적으로 국내에서 사용하시고 외국 출장시에만 풀어주시는게 좋습니다.

NAS를 오래 운영할수록 외국에서 접속하는 해킹 시도가 빈번하니

국가를 남한으로 꼭 설정해주세요



1) DSM으로 로그인 합니다.



2) [제어판] 클릭 해서 제어판으로 들어갑니다.


3) [네트워크] 항목을 클릭해서 네트워크 설정으로 들어갑니다.


4) 왼편에 [보안] 항목을 클릭 합니다.


5) 우측 탭에 [방화벽] 을 클릭 합니다.


6) 방화벽 활성화, 방화벽 알림 활성화 체크 하여 두개의 옵션을 활성화 해줍니다.


7) 규칙편집을 클릭합니다.


8) 생성을 클릭하여 규칙을 생성합니다.


9) 소스 IP에서 위치를 클릭합니다.



10) 우측에 선택을 클릭합니다.


11) 우측 상단에 검색창에 남한을 입력합니다.


12) 활성화됨에 체크 하고 확인을 눌러 저장합니다.


13) 확인을 눌러 저장 합니다.


14) 남한, 허용이 설정되어 있는것을 확인하고 저장 합니다.


15) 이제 정상적으로 설정이 저장되었습니다.



이렇게 설정을 해주시면 대부분의 공격접속을 차단할 수 있습니다.

꼭 설정해주세요





Synology NAS에서 서비스 운용시 nginx 502 Bad Gateway 에러 발생시 대처 방안



주의 : 본 문제의 원인은 다양하기 때문에 적절한 대처를 해야합니다.

이 포스트 역시 해당 케이스에 따라 계속 원인과 증상 해결방안을 업데이트 하는 식으로 게시할 예정입니다.


CASE 1. 로그인 페이지 (DB 연결을 하지 않는 페이지)는 정상적으로 뜨고 DB연결 페이지에서 해당 오류 발생 케이스


증상 : 홈페이지 서비스 운용시 로그인 페이지는 정상적으로 뜨지만, 아이디 패스워드를 입력한 후, 로그인 버튼을 누르면

 nginx(엔진x) 502 Bad Gateway 오류 발생


원인 : DB Connection Pool 설정의 문제 및 보안 부분 점검


처음 페이지는 정상적으로 작동하나, DB를 처리하는 페이지의 작동불능 상태의 경우, Bad Gateway 자체의 문제의 증상이 

timeout 이상의 시간을 초과 하거나 크기를 넘어설 경우, 응답이 없을 경우 다양한 증상을 보인다.


문제진단 방법


1. Tomcat 의 catalina log 확인

 ( 혹시 Exception 이 발생하지 않는지 )


2.  DBMS의 연결 부분 확인

 ( DBCP 사용할 경우 현재 세션에 커넥션 이 정상적으로 alive 하고 있는지 확인한다 . )


3. Query performance 확인

 (  해당 쿼리 수행시 수행시간이 timeout 이상으로 지연되는지 lock 등의 경합이 발생하고 있지 않은지 확인 )


4. Synology 보안 부분 확인

 방화벽 등의 설정으로 인해 접속이 차단되는 경우


5. 개발환경에서 사용하는 JDK 버전과 DB Connection  Driver 의 버전호환성을 검토해본다.

 


CASE1의 실 해결 사례 


Synology 에서 Tomcat 버전은 7이 최신이고 ( 포스팅 날짜기준 ) 

jdk 는 8 (1.8) 을 사용할 것이다.

oracle XE를 docker 로 서비스중인 환경

그럼 ojdbc 드라이버는 6으로 해줘야 한다.


개발환경에서 5드라이버를 import 한 경우 운영중에 연결이 수립되지 않는 증상이 있었다. 

테스트 환경에서는 정상적으로 동작하나

운영중에 일주일에 한번씩 증상 발생하는 경우 있었음.

ojdbc 드라이버 6로 변경후 해결



아래의 링크에서 버전다운로드 및 버전검토 가능

https://www.oracle.com/technetwork/apps-tech/jdbc-112010-090769.html





 


CASE2. timeout 시간을 늘려주는 방법


실제 connection 이 증가하여 응답의 timeout 시간을 초과해 오류가 발생하는 경우



다음의 파라미터들을 conf 파일에 추가 함으로써 timeout 시간을 늘려주는 방법이 있다.



해결방법 :

1) ssh 로 관리자 권한으로 접속한다.

2) find / -name "nginx.conf" 로 환경설정 파일을 찾는다

3) http { 로 시작하는 지점에 위의 파라미터를 적용한다


 




이 부분은 전체적인 응답속도가 떨어지는 경우에 따라 다양한 문제가 발생함으로

운영중에 발생할 경우에 따라 계속 업데이트 할 예정이다.

시놀로지 ORACLE XE 설치 및 설정 2 - 한글과 타임존 설정



안녕하세요 이번 포스트는 이전 포스트에서 설치한 시놀로지 NAS에 oracle XE를 설치해 보자 이후, 설정편 입니다.


우선 오라클 XE의 한글 설정과 타임존을 변경하는 방법을 알아봅시다.



[메인메뉴] - [Docker ] 를 실행하여 [비디오 형식] 으로 들어갑니다. 그러면 이전에 설치한 oracle xe 의 이미지가 실행중입니다.

붉은 사각형 버튼을 클릭하여 우선 전원을 끕니다.




이미지 이름을 클릭한 후 상단에 [편집] 버튼을 눌러 편집 화면으로 갑니다.


편집 화면에서 [환경] 탭을 누르고 [ + ] 버튼을 눌러 아래의 환경값을 추가 합니다.



변수

값 

 TZ

Asia/Seoul 

 LANG

ko_KR.UTF8 



터미널에서 다음의 작업을 수행합니다.


먼저 전원 버튼을 눌러 가상머신을 기동합니다.


이미지를 더블클릭하여 터미널 화면으로 이동합니다.

붉은색 상자처럼 환경변수가 적용되었는지 확인합니다.


상단의 [터미널] 버튼을 클릭한뒤 [생성 ] 버튼을 클릭합니다.


[생성] 버튼을 누르면 생성되는 bash 를 클릭하면 root 의 터미널 창이 열립니다.


 다음의 명령어를 입력합니다.

dpkg-reconfigure tzdata 


첫번째 화면에 Asia 를 선택합니다. (키보드로 이동하여 엔터 )


두번째 선택 화면에서 Seoul 을 선택 한후 엔터를 입력합니다.



  시간대가 변경된걸 확인할 수 있습니다.


이제 한글 설정입니다.



커맨드 창에 다음의 커맨드를 입력합니다.

apt-get update 



이렇게 저장소가 업데이트 됩니다.


이 상태에서 다음의 커맨드를 입력합니다.

 apt-get install language-pack-ko


     설치할것인지 물어보는 프롬프트에서 y 를 누르고 엔터를 칩니다.


Generation Complete. 라는 프롬프트가 떨어집니다.


다음의 커맨드를 입력합니다.

locale-gen ko_KR.UTF-8 


다음 환경에서 아래의 커맨드를 입력합니다.

locale 


그럼 ko_KR.UTF8로 변경된것을 확인할 수 있습니다.


이제 가상머신을 재기동 하여 확인해봅니다.


            상단의 [개요] 를 클릭한뒤 [다시 시작] 버튼을 눌러 재기동 합니다.


           다시 상단의 [터미널] 을 클릭한뒤 [ 생성] 을 클릭하여 터미널을 생성해 줍니다. 생성된 [bash] 를 눌러 터미널을 엽니다.


                다음의 명령어를 입력하여 locale이 정상적으로 변경되었는지 확인합니다.

locale 


ko_KR.UTF8 이 나오면 정상적으로 변경된 겁니다.


  다음의 명령어를 입력해서 오라클 유저로 접속합니다.

대소문자 및 띄어쓰기에 유의하세요

su - oracle 


다음의 명령어를 입력하여 오라클의 관리자 권한으로 접속합니다.

대/소문자 띄어쓰기 유의하세요 

sqlplus "/as sysdba" 



다음의 sql 구문을 입력하여 오늘 날짜와 현재 시간이 맞는지 확인하세요.

SQL> 프롬프트에서 입력합니다


select to_char(sysdate, 'yyyymmdd hh24:mi:ss') from dual; 


이렇게 입력하여 현재 날짜와 시간과 일치하면 모든 설정이 된 것 입니다.


이로써 한글과 날짜 세팅에 대해 알아보았습니다.

다음 포스트는 백업설정에 관해 작성하겠습니다.

감사합니다.


안녕하세요.


오늘은 시놀로지 NAS에 docker oracle (오라클) XE를 설치해보도록 하겠습니다.


먼저 오라클 XE에 대해 설명을 드리자면

오라클 데이터베이스는 국내에서 점유율 1위를 차지하고 있는 엔터프라이즈 RDBMS입니다.

이중 XE버전은 무료로 자유롭게 쓸수 있는 제품입니다.


단 제한 기능이 있는데요

1. 서버당 1개의 인스턴스만 사용가능

2. 1개의 CPU 자원만 사용 ( 싱글코어에서만 설치 해야 된다는게 아니라 멀티코어에 설치하여도 1개의 CPU만 오라클이 사용한다는 뜻)

3. 오라클 시스템이 사용하는 데이터를 빼고 사용자 데이터는 11GB로 제한(최대 데이터크기가 11GB라는뜻)

4. 메모리의 1GB만 사용함 ( 역시 메모리 용량이 큰 서버에 설치하여도 오라클이 최대 1GB만 사용한다 라는 뜻 )


이러한 제한을 빼고는 교육을 목적으로, 연구, 데이터의 테스트 등에 제한없이 사용가능하고

심지어 개발한 프로그램과 같이 배포하여도 된다는 라이선스 조건이 있습니다.


자세한 내용은 오라클 공식 홈페이지에서 볼수 있습니다 (https://docs.oracle.com/cd/E17781_01/license.112/e18068/toc.htm#BHCDHJCC)



그럼 오라클 데이터베이스 장점에 대해 설명해 볼까요?


1. 현업에서 많이 쓰이기 때문에 테스트 용도로 쓰기 편하다.

2. 백업 과 복구 기능이 매우 좋고 데이터베이스 자체의 안정성이 높아 문제가 잘 생기지 않는다.

3. 서드파티툴 및 문서 지원등이 풍부해서 문제해결이 용이하다

4. 온라인에 수만명의 오라클 지식인들이 있어 도움받을 수 있다.

5. 기본적인 DBMS 성능이 우수하다


이러한 장점이 있습니다.


그럼 시놀로지에 오라클 XE를 쓰는 장점에 대해 알아볼까요?


1. 소규모 개발회사에서 개발프로젝트 진행시 DBMS 서버를 따로 둘 여력이 없을경우 SVN 기능을 포함한 NAS에 DB서버를 올려두면

작업하기가 매우매우 좋다.


2. 시놀로지에 무료로 탑재되어 있는 백업 솔루션과 결합시 매우 안정적이고 편하게 운영할 수 있다.


3. MAC환경을 쓰는 개발자의 경우 이클립스 + 오라클 개발환경을 구축하려면 가상머신을 항상 깔아놓고 써야 하지만

시놀로지 NAS 라면 NAS의 VPN 으로 접속하여 아주 깔끔하고 편하게 개발환경을 구축할 수 있다.


4. Docker 를 이용하여 구축하면 가상머신을 이용하여 구축한것 보다 리소스를 적게 먹고 같은 Dock 환경에서는 편리하게 배포할 수 있기 때문에 아주 편리하다



요약하자면, 소규모 개발 그룹에서 별도의 웹개발서버와 개발 DB서버, SVN 그리고 백업시스템을 구축 하는것 보다 시놀로지 NAS 한대만 있으면 이 모든것을 편안하게 구축할 수 있고 시놀로지에 내장된 백업 패키지의 장점으로 운영까지 편안하게 할 수 있다.


거기다가 맥을 쓰는 환경이나 개발자가 외근을 자주 나가는 환경에서는 VPN 서비스를 이용하여 아주 용이하게 구축할 수 있다.


이러한 장점이 있습니다.


위에서 언급한 장점들을 활용한 포스트는 계속 작성할 예정이구요 오늘은 우선 시놀로지 NAS에 오라클 XE를 설치해봅시다

서두가 너무 길었네요 ( 저도 저러한 장점을 어필해서 기안한 후 회사에서 시놀로지 NAS 를 사서 운영중에 있기도 합니다 . )



설치순서 

1. Docker 패키지 설치

2. Oracle Image 다운로드 및 설치

3. 환경구성


이렇게 입니다.




1. Docker 패키지 설치


우선 오라클 XE를 docker 라는 가상머신 환경위에 구성하려고 합니다.

Docker 는 우리가 흔히 아는 Vmware 류의 가상머신 과는 달리 Linux Container 가상화를 통해 구현됩니다.

복잡한건 따로 찾아보시고 Vmware 보다 나은 점은 Host 운영체제를 공유하기 때문에 기본적인 Vm을 유지하기 위한 워크로드가 거의

들어가지 않습니다. 그리고 이미지로 배포하기 편합니다.


단점은 수정이 좀 어려운 점이 있어요.


NAS 환경이기 때문에 VM환경보다는 성능상 이점이 있는 Docker 로 설치해보도록 하겠습니다.


1) 우선 DSM으로 접속해주세요

2) 패키지 센터에서 Docker를 설치해주세요


[적용] 을 누르면 [다운로드중..] 에서 [설치됨] 으로 상태메시지가 변경됩니다.


3) Docker실행해주세요


좌측상단에 [메인메뉴] 버튼을 누르면 [Docker] 가 보입니다. 클릭해서 실행해 주세요.


이렇게 실행될 것 입니다. [X] 표를 눌러 설명을 닫아주세요.


좌측의 [레지스트리] 탭을 클릭해주세요 그리고 우측 상단의 검색창에 [oracle xe]를 입력하고 검색해 줍니다.

우리는 가장 점수가 높은 [aliexeiled/docker-oracle-xe-11g] 를 설치할 것 입니다.


[aliexeiled/docker-oracle-xe-11g] 를 더블클릭해주세요 그러면 [로드중..] 이라는 화면이 뜹니다. 


좌측의 이미지텝에 숫자 1이 생기면 이미지 탭을 클릭해주세요 그럼 우측에 다운로드 되는 이미지 크기가 표시되면서 다운로드가 

진행됩니다.


다운로드가 완료되면 우측에 붉은 사각형으로 표시된 디스크 아이콘이 꽉 차게 됩니다. 


다운로드가 완료된 이미지를 더블클릭하세요. 그럼 컨테이너 생성 창이 뜹니다.


[다음] 버튼을 클릭해서 진행합니다.


[적용] 버튼을 눌러서 이미지 생성을 완료합니다.


적용중.. 이라는 메세지가 뜨고 잠시뒤 적용이 완료 됩니다.


비디오형식 텝을 눌러서 xe 탭을 더블클릭 합니다.


이렇게 오라클 XE가 기동하는것이 보입니다.


이것으로 설치가 끝났습니다.

다음포스트에서는 시간설정 및 한글설정, 백업 설정 등의 글로 찾아뵙겠습니다.

+ Recent posts