안녕하세요. 

중소기업 전산실에 미니입니다.

연휴라 여행 와서 이것저것 생각하다가 한번 적어보고 싶은 글이 있었는데 시간이 나서 한번 끄적여 보려고 노트북을 열었네요!!

 

저도 개발회사 및 여러 전산실을 거치면 오라클부터 MSSQL, MYSQL, ACCESS 등의 다양한 데이터베이스를 관리해 보았습니다.

그러면서 많은 선배들과 후배들과 같이 일을 해 보았습니다.

그러면서 약간 안타까운 부분은 데이터베이스에 대해 깊숙히 공부하지 않고 다루는 분들이 많았다는 게 조금 아쉬운 부분이었습니다.

심지어는 데이터베이스 백업을 매일 받지 않고 관리하는 아주 간이 큰 분들도 많이 보았습니다.

우리는 PC에 자료는 언제든지 날아갈 수 있으며 안전하지 않으니 백업받으라 직원들을 교육시키면서 우리 자신을 귀차니즘에 빠져 회사의 제일 중요한 데이터베이스 백업 및 관리에 소홀한 경우를 많이 보아왔습니다.

그리고 DB서버나 디스크 고장으로 데이터 복구가 불가능하게 되었을 때야 후회하는 모습을 종종 보았습니다.

특히나 최근에는 랜섬웨어가 데이터베이스를 타깃으로 하는 바람에 더욱더 백업에 중요성이 커지고 있죠.

 

다양한 부분을 이글에 담고 싶지만 그래도 제가 가장 오래 가지고 놀은 Microsoft SQL Server에 대해 백업 및 관리 효율화를 어떻게 하고 있고 또 이글 읽으신 분들이 저에 잘못된 부분을 지적해 주시면 저도 개선을 하고 싶네요!!

저 또한 우리 팀원들과 같이 좁은 회사 내에서 내리는 의사결정이고 중소기업이다 보니 자본에 한계가 있어서 비효율 적으로 관리되는 부분 또한 많습니다.

 

* 꼭 해보셨으면 하는 당부 사항

  1) SQL Server 구조와 옵티마이저/인덱스에 대한 공부를 꼭 해보시기 바랍니다. ( 새로운 세상이 열립니다. )

  2) MSSQL 유지 관리 계획에서 할 수 있는 일이 어떤 것인지 꼭 공부하시기 바랍니다.

 

저는 개발업체에 다니면서 데이터베이스 튜닝에 대한 관심이 전혀 없다가 전산실 근무를 하게 되면 데이터베이스 튜닝에 관심을 가지고 되었습니다. 회사에는 10년 이상 데이터가 쌓인 오라클 서버가 있었고 조금씩 느려지는 증상을 보였기에...
누군가는 해결을 해야 되었고 이놈과 싸우다 보니 많은 것을 얻을 수 있었습니다. 저는 인덱스를 꼭 완벽하게 이해하셔서 회사의 데이터베이스를 한 단계 업그레이드해보시기 바랍니다.

 

아무튼 이글에서 다 다루기에는 너무 많은 내용이고 일단 중소기업에서 MSSQL을 어떻게 효율성 있게 관리할 수 있을까입니다.

 

제가 관리하는 회사에는 기간계 시스템의 10년 치 이상의 데이터를 쌓아놓은 SQL 서버가 있고 또 다른 서버는 제품에 일련번호를 쌓아 놓은 어마 무지하게 쌓이는 SQL 서버를 관리하고 있습니다.

물론 아주 중용한 서버이기에 HA설루션을 도입하여 고가용성은 유지하고 있습니다.

하지만 많은 데이터가 쌓이는 걸로 인하여 안정성 확보 및 성능 저하는 최대한 막을 수 있으면서 돈이 안 드는(중소기업 이기에 ㅠ_ㅠ) 방법을 연구를 하였습니다.

그리고 관리자의 일은 최대한 줄여야 하는 걸 전제로 관리방법을 계속 개선하고 있고 아래와 같은 방법으로 하면 좀 더 효율적으로 안전하게 관리할 수 있지 않을까 생각이 들었습니다.

 

1. 유지 관리 계획을 최대한 활용하라. 
   SQL SERVER에 유지 관리 계획 기능이 있지만 의외로 사용을 하고 있지 않더군요.
   저는 SQL SERVER에 있는 기능 중 이 기능을 가장 좋아합니다. 제가 해야 될 일을 자동으로 해주니까요.

   1) LOG BACKUP 구성

       로그 백업은 데이터베이스가 그동안 해 했던 작업에 로그를 SQL SERVER가 쌓아놓게 되는데 이것을 별도에

       디스크로 백업을 하고 LOG 파일을 비우는 작업입니다.

       의외로 이 관리를 안 하여 LOG 파일이 어마 무지하게 커져서 디스크가 FULL 나서 SQL 서버가 가동이 되지 않는

       회사도 보았고 도와주었던 적이 있었습니다.

       저는 3시간 단위로 로그 백업을 받도록 구성해 놓았습니다. ( -_-a 요즘 좀 더 쪼갤까 고민되는 부분이긴 합니다. )

       로그 백업에 가장 큰 장점은 문제가 발생했을 때 어떤 시간대 시점까지의 데이터 상태로 복구할 수 있는 어마

       무지한 기능입니다. 자세한 사항은 로그 백업을 공부해 보세요.

   2) 일일 FULL BACKUP 구성

       저는 밤 12시를 좋아해서 제가 한참 자고 있는 시간에 SQL 서버에게는 백업을 하라고 시켜 놓았습니다.

       대기업처럼 엄청나게 큰 데이터가 아니기에 매일 FULL BACKUP을 하도록 구성해 놓았습니다.

       특히 SQL SERVER에는 백업 압축 설정이란 게 있어서 매우 효율적으로 백업이 가능합니다.

       마음 편하게 일하고 싶다면 이 구성은 꼭 해놓으시기 바랍니다.

   3) 월 단위 관리 기능 자동화 구성

       SQL 서버에서 데이터에 잦은 INSERT, DELETE 작업으로 인하여 인덱스 사이에 공간이 비게 되고 이것이 문제가

       되어 데이터 검색 속도를 느리게 하는 원인이 됩니다.

       특히나 대량의 데이터가 이렇게 반복된다면 굉장히 비효율적인 인덱스로 관리가 되겠죠?

       그래서 주기적인 인덱스 재구성은 필수적인데 SQL 서버 안에 그 많은 인덱스를 리빌딩해주는 작업은 굉장히

       귀찮은 작업이죠.

       하지만 유지 관리 계획에서는 지원을 합니다.

       그래서 월 단위로 저는 아래 3가지 작업을 진행시킵니다.

       ① 인덱스 다시 구성 태스크 ( 지정한 데이터 베이스 안에 인덱스를 리빌딩해줍니다. )

       ② 통계 업데이트 태스크 ( SQL 서버 옵티마이저는 통계 데이터를 통해 효율적인 데이터 검색을 지원합니다.

                                         데이터 통계 업데이트를 월 단위로 하여 검색 속도를 유지합니다. )

       ③ 유지 관리 정리 태스크

           일일 단위로 데이터 풀백업 및 로그 백업이 되니 굉장히 많은 백업 파일이 생성됩니다.

           이것도 시스템이 알아서 기간이 지난 면 정리하여 줍니다.

           저희는 5주 이상 지난 데이터는 의미가 없기에 이 기능을 통하여 자동으로 삭제처리하여 백업 디스크에

           공간을 확보합니다.

 

    이상 MSSQL 유지 관리 계획을 통하여 저희 전산실에서 자동으로 관리하는 부분입니다.

    이것보다 더 좋은 기능들은 책을 보면 엄청나게 많습니다. 하지만 저희 규모에서 관리하는데 이 3가지 만으로도

    많은 관리 시간을 단축할 수 있었습니다.

 

2. 2차 백업의 자동화

   이 부분은 설루션을 사용하는 대기업이나 투자가 잘되는 중견, 중소기업의 경우에는 보실 필요 없습니다.

   ㅠ_ㅠ 가난한 저희 전산실의 경우 사용하는 편법입니다.

   1차 데이터 백업의 경우에는 SAN이나 NAS 장비에 iSCSI 인터페이스를 통하여 보관하여 안정성을 확보하였지만

   최근 몇 년 전부터 발생하는 랜섬웨어 공격으로 인하여 해당 백업만으로는 안정성을 확보하기에 무력화되었습니다.

   그리고 저희는 화재나 다른 재해로 인한 데이터 훼손 방지를 위하여 물리적인 다른 위치에 있는 NAS 장비를

   추가로 설치하고 서버와만 통신할 수 있는 FTP를 열어 놓고 매일 퇴근 전 FTP 프로그램을 이용해 백업을

   진행하였습니다. ( 정말 무식했지요 ㅠ_ㅠ 백업 전까지 퇴근 못했습니다. )

   그러다가 어떤 좋은 방법이 있을까 팀원과 방법을 찾았고 WinSCP 사이트를 알게 되었고 윈도에서도 Linux와

   같은 자동화 구현이 되는 걸 알게 되었습니다.

 

   WINSCP 사이트 : https://winscp.net/ 

 

WinSCP 소개 :: WinSCP

WinSCP 소개 WinSCP는 Windows용 그래픽 유저 인터페이스 SFTP 및 FTP 클라이언트 프로그램이고 오픈소스 프리웨어입니다. 레거시 SCP 프로토콜 역시 지원합니다. 이 프로그램을 사용하여 로컬 컴퓨터와 원격 컴퓨터 간에 안전하게 파일을 복사할 수 있습니다. 이 페이지에는 한국어 사용자를 위한 간략한 소개가 되어 있습니다. WinSCP 문서의 대부분은 영어입니다. 이 페이지에 링크되는 많은 페이지 대부분이 영어입니다. WinSCP 설치 Wi

winscp.net

  저희 팀은 이 툴을 스터디한 후 윈도 서버에 스케쥴러와 연동하여 데이터 베이스의 풀백업, 로그 백업 직후에

  바로 분산된 NAS FTP 2곳에 같은 내용을 복제하도록 하였으며 랜섬웨어가 넘어갈 수 없는 형태이기에

  안전하게 자료를 보관하고 있으며 화재나 재해로 인한 서버 망실 시에도 시스템을 복구할 수 있게 구성할 수

  있었습니다.

  

이렇게 크게 2가지로 MSSQL 관리를 효율화할 수 있는 방법을 설명해 보았습니다.

물론 저희보다 더 효율적으로 관리하는 분들도 많을 것입니다. 하지만 검색해도 좋은 자료가 있지 않아

저부터 이렇게 공유하면 더 좋은 자료들이 나오지 않을까 하여 글을 남겨 봅니다.

 

혹시나 제가 잘못 생각하고 있는 부분이 있으면 언제든지 댓글 부탁드립니다.

 

   

 

 

 

Posted by Midas Min™
,

이전에 출근하다 글을 비공개로 작성해 두었다가 생각을 더 정리해서 수정해서

공개해 봅니다.

 

전산실 생활을 10년 넘게 해오면서 꼭 안 할 수 없는 일 PC 수리네요!!

아침에 출근해서 앉자마자 이런 전화들 많이 받으시죠?

  - 내 컴퓨터 모니터가 안나와요.

  - 내 컴퓨터 전원이 안 켜지네요.

  - 컴퓨터가 부팅되다가 파란 화면이 뜨네요

  - 컴퓨터가 느려요 업무를 못하겠어요.

  - 인터넷이 안되네요.

 

하아~~~!! 이런 한숨부터 나오는 요청들이죠.

근데 중소기업 전산실에 있다 보면 어쩔 수 없이 마주치는 일인 거죠.

팀장이 되어서도 임원들은 팀장들에게 전화를 하죠.

가서 앗 모니터 전원을 꺼놓으셨네요!! 말씀드리며 허탈하게 돌아서는 경우도 아직 있습니다.

일단은 저도 팀장을 맡고 나서 PC관리를 외주로 돌릴까도 생각했지만

지금은 생각을 좀 바뀌어가고 있습니다.

어쨌든 PC를 매개체로 하여 직원들과 소통을 할 수 있는 창고라고 생각을 바꾸게 되었고요.

그리고 예전만큼 PC들도 잘 고장 나지 않고 윈도우10의 안정성이 더 좋아진 부분도 있지요.

그리고 전산 팀원들과 애기한 부분이 입사하는 직원들에 대한 교육을 철저히 하자였습니다.

 

저의 회사 직원들은 전산팀을  PC 고치는 사람으로 보지 않습니다.

저희는 프로그램을 개발하고 업무 프로세스를 개선하는 매니저로 바라보고 있지

아무 때나 PC 안된다고 부르는 기사로 생각하지 않습니다.

이 부분이 교육을 통해 나타나는 부분이기도 하고요.

항상 문제가 되는 불법 소프트웨어 설치, P2P(토렌트) 설치 같은 부분에 대해 강력하게

주지를 주고 추가적인 설치 요청은 전산업무 요청서를 통해서 진행하도록 하였습니다.

그렇게 6년이란 세월이 지나자 한 달에 많이 발생해봐야 1~3회 정도이고 발생하지 않을 때도 매우 많습니다.

 

요즘 입사하는 대부분에 직원들도 인식이 높아져 PC에 대해서도 많이 알고 있고

자신에 PC는 자신이 관리하는 것이지 전산팀이 관리해 주는 게 아니란 걸 점점 알아가고 있는 것 같습니다.

 

처음부터 모든 것을 해주면 편의가 아니라 권리인 줄 아시는 분들이 많이 있습니다.

그런 부분을 적절히 조절하여 본인에게도 의무를 부과하고 특히나 데이터 관리 및 백업에 대한 교육도 철저히 하여

망실된 데이터는 전산팀에서 책임져 주지 않는 부분도 교육을 통해 명확히 해주세요.

그러면 회사도 편안해지고 전산팀 직원들에 PC관리 리스크도 줄어들 것입니다.

물론 제 방법이 꼭 정답은 아니겠지만 저는 이곳에서 그렇게 바꿔나가며 일을 줄여가고 있습니다

 

저와 같이 전산팀을 새로 꾸려 시작하시는 분들은 참고하셨으면 좋겠네요!!

 

 

Posted by Midas Min™
,

저도 10년 넘게 회사를 다녔지만 이걸 가리켜 주는 곳은 없더군요.

그냥 혼자서 준비해야 되는 부분인 것 같아요~~~!!

그래서 궁금한 분들이 있을듯 하여 제가 정리해 봅니다.

 

대기업같이 체계적인 교육 시스템을 가지고 있지 않는 중소기업의 여건 상 팀원에서 팀장으로 발전해 가면서 전문적인 관리자 교육을 받기가 굉장히 어렵습니다. 머 거의 불가능이라고 봐야죠.

저 또한 회사 자체적으로 하는 교육은 받아보지를 못했고 우연히 국내 데이터베이스 진흥원에서 진행하는 SQL SERVER 튜닝 과정 교육을 받으러 갔다 정원혁 대표님을 만나면서 생각을 좀 달리하게 되었죠.

SQL 서버를 처음 배울 때 책에서만 만나던 분을 만나 뵈니 정말 신기하기도 하고 정말 멋지게 살고 계시더군요.

그중에서도 항상 공부하는 모습이 정말 크게 다가왔습니다.

 

보통은 전산팀에 다니다 보면 SQL 서버, 윈도 서버, 개발 툴(자바, C#, 파이선, 델파이,... ) 위주로 자기 개발을 하시죠.

하지만 저는 팀장 생활 몇 년을 하면서 느낀 것은 인문학 관련 서적을 주기적으로 읽어야 된다는 것입니다.

당연히 전산팀을 이끌어 가기 위해서는 기술적인 부분은 당연히 밑바탕이 되어야지요.

하지만 최근 전산과 연계되는 업무가 많아지면서 회사 대부분 업무에 전산지원이 꼭 들어가게 됩니다.

그리고 해당 프로젝트 관련 미팅을 하게 되면 전산실에서 바라 보는 시각과 준비사항, 그리고 문제가 발생할 수 있는 RISK  부분에 대해서 전달하고 협상을 진행해야 됩니다.

이게 전산 프로세스랑은 틀려서 사람과 사람의 협의로 진행되게 되는데 이때 순서도와 같이 움직이는 걸 좋아하는 전산인을 타 부서 관리자들은 결코 좋아하지 않습니다.

우리는 기계가 아니기 때문이겠죠. 당연히 우리가 다루는 서버들처럼 우리말을 고분고분 듣지를 않거든요.

 

그래서 기회가 되신다면 인문학이나 리더십 관련 책을 지속적으로 보시길 권해 드립니다.

이게 5~10권 읽은 때는 티가 나지 않지만 50~100권이 되고 2~300권이 되면 세상을 바라보는 눈이 틀려집니다.

저같이 보잘것없는 사람이 인터넷에 글을 한번 써보겠다고 도전하게 바뀔 정도면 말 다했죠.

 

그리고 팀장이 되면 팀원들을 이끌고 가야 됩니다.

이게 자기가 팀원일 때랑은 차원이 다른 문제입니다.

쉽게 말하면 샌드위치가 되죠. 위에 임원과 아래 직원들 사이에 샌드위치라고 해야 될까요? ㅎㅎ

어떻게 운영하는가에 따라서 천국이 될 수도 있고 지옥이 될 수도 있죠.

그래서 이왕이면 그 자리 가기 전에 준비를 철저히 하시기 바랍니다.

 

그래서 정리해본 다면 팀장 되기 준비에 저는 아래와 같이 준비했으면 좋겠습니다.

 

1. 기술적인 고도화 ( 자기 기술에는 자신이 있어야겠죠. )

2. 가능한 외부 교육을 자주 가라 ( 남들이 어떻게 하는지 알아야 발전하죠, 내일 배움 카드 잘 이용하세요 )

3. 인문학, 리더십 관련 서적을 꾸준히 읽어라 ( 남들과 협상하는 법, 팀원 이끌기 위해 필요 )

 

이렇게 3가지를 말하고 싶네요.

저 또한 이렇게 하기 위해 노력하고 있습니다.

 

전 자리가 사람을 만든다는 애기도 맞지만 그건 준비한 사람에게 해당되는 말인 것 같습니다.

여러분도 전산팀장이나 그 위에 CIO를 생각하고 있다면 꾸준한 노력을 해봐야 되지 않을까요?

저 또한 원하는 목표를 위해 한 걸음씩 준비하고 있습니다.

 

그럼 즐거운 하루 되시기 바랍니다~~!!

 

Posted by Midas Min™
,