카테고리 없음2018. 2. 18. 10:38

내장, 선탑재, 통신사 어플리케이션 등등. 이들을 무엇이라고 부르든 간에, 안드로이드에서 블로트웨어(Bloatware)는 항상 골칫거리였습니다. 물론 안드로이드가 사용중지 기능을 제공하고, 선탑재 앱의 개수가 제한되면서 상황은 크게 개선되었지만, 그럼에도 삭제가 안 되는 1-2개가 문제입니다.


다행히도 ADB(Android 디버그 브리지)와 적절한 드라이버만 설치돼있으면 이러한 어플리케이션들을 강제로 삭제할 수 있습니다. 본 강좌는 LG 유플러스로 발매된 화웨이 P9(안드로이드 6.0)와 윈도우10을 기준으로 작성되었으며, 타 안드로이드 스마트폰(갤럭시, LG 등)에도 적용이 가능합니다.

준비물 _
1. ADB, Fastboot
2. 제조사별 드라이버
※ 삼성 갤럭시 통합 드라이버
※ LG United Mobile Driver
3. 스마트폰 - PC 연결 케이블
※ 데이터 전송이 되어야 합니다.
※ 되도록 PC 뒤쪽에 연결하세요.

ADB를 설치하는 법은 다양하나, 가장 간편하고 용량이 적은 방법은 아래 프로그램을 사용하시는 겁니다. 링크를 클릭하면 XDA 페이지가 열리는데, 이곳에서 Downloads: Version 1.4.2 아래의 링크 중 하나를 클릭하여 파일을 받으시면 됩니다. ※ 텍스트와 달리 1.4.3 버전이 다운로드 됩니다.

[TOOL] [WINDOWS] ADB, Fastboot and Drivers - 15 seconds ADB Installer v1.4.3

15 seconds ADB Installer v1.4.3 ADB, Fastboot and Drivers What is this? This is All-in-One installer for 3 most needed PC tools for Android. No need to d…
forum.xda-developers.com

파일을 실행하면 (1) ADB와 Fastboot을 설치할지 (2) ADB를 시스템 전반에 설치할지 (3) 기기 드라이버를 설치할지를 순서대로 묻습니다. 각 질문에 Y를 타이핑하고 엔터를 치면 진행이 됩니다. 원하지 않는 옵션이 있다면 N을 타이핑하고 엔터를 치면 됩니다. 전 1, 2, 3 모두 동의(Y)했습니다.


1. ADB 설치 파일을 실행한 뒤 Y, 엔터를 순서대로 누른다.

2. 3단계까지 진행한 모습

3. 기기 드라이버를 설치하기 위한 새로운 창이 뜬다.

3-1. 설치(I) 버튼을 눌러 진행한다.

3-2. 구글 USB 드라이버가 설치되었다.

이후 본인의 스마트폰 제조사에 해당되는 드라이버를 설치해야 합니다. 삼성과 LG는 드라이버만을 설치할 수 있는 파일을 제공하고 있습니다. (준비물 참조) 그렇지 않을 경우 Samsung Switch와 같은 제조사별 스마트폰 관리 프로그램을 설치하면 됩니다. ※ 스마트폰 - PC를 분리하고 설치하세요.


4. 화웨이 스마트폰이므로 HiSuite를 설치한다.

이후 스마트폰의 설정에 들어가 빌드 번호란을 찾습니다. 화웨이는 휴대전화 정보, 갤럭시는 디바이스 정보에 있습니다. 빌드 번호란을 5회 연타하면 개발자 옵션이 시스템 설정에 추가(활성화)되며, 여기서 USB 디버깅을 허용하면 됩니다. 이후 스마트폰을 PC와 연결하고 또 한 차례 허용을 합니다.

  
5. 스마트폰에서 USB 디버깅을 켜고 PC와 연결한다.

※ 이 때 항상 허용을 체크하지 않으면, 명령어를 입력할 때 마다 확인을 눌러야 합니다. 다음으로는 탐색기를 열어 쉬프트를 누른 상태로 우클릭을 합니다. 옵션 중 '여기에 Powershell 창 열기'를 클릭하여 새로운 창이 뜹니다. ※ 최신 윈도우10에서는 이 창에 명령어 복사 붙여넣기가 가능합니다.


6. 탐색기에서 Shift + 우클릭으로 Powershell 창을 연다.

7-1. ADB에 명령어들을 입력한다.

명령어 _
복사 붙여넣기가 되는지 확인해보세요.
다중 앱을 삭제할 때 큰 도움이 됩니다.

1. adb devices
연결된 기기들의 목록을 보여줍니다.
adb 작업이 가능한 상태인지 확인합니다.
2. adb shell pm list packages
기기에 설치되어 있는 앱(패키지) 목록입니다.
3. adb shell pm uninstall -k --user 0
설치되어 있는 앱(패키지)을 제거합니다.

기기가 성공적으로 연결됐다면 3번 명령어 + 패키지명으로 어플리케이션을 제거합니다. 스마트폰에 설치된 패키지 목록은 2번 명령어로 확인이 가능하나 (전체 선택 및 복사 붙여넣기도 가능), 아래와 같이 시스템 설정의 '실행 중인 서비스'나 써드파티 앱을 사용하는게 보다 확실하고 편합니다.

 
설정의 실행 중인 서비스, Solid Explorer의 애플리케이션
 
시스템 설정의 실행 중인 서비스 중 하나를 선택한 화면

통신사 앱스토어인 ONE store을 예시로 들어보면, ADB에서는(2번 명령어를 사용하면) package:com.lguplus.appstore라고 뜨며, 시스템 설정에서는 com.lguplus.appstore라는 프로세스가 실행중이라고 뜹니다. 이것이 패키지명입니다. ※ com.으로 시작하지 않는 패키지명도 많습니다.

LG가 들어 있는 패키지들 _
package:lg.uplusbox
package:com.lguplus.appstore 
package:com.lguplus.pushagent
package:com.lguplus.common
package:com.lguplus.downloader
package:com.lguplus.mobile.cs
package:com.lguplus.tsmproxy
package:com.lguplus.common.lgugpson
package:com.lguplus.common_api_impl
package:com.lguplus.common.gpsonservice

저는 원스토어, 유플러스 박스, 화웨이 HiVoice ‧ Swype 키보드 ‧ 뮤직 플레이어 ‧ 이메일, 구글 플러스 ‧ 지도 등을 삭제했습니다. 패키지 삭제에 성공하면 Success 문구가, 실패하면 Failure 문구와 부연 설명이 뜹니다. 만약 실패했다면 오타가 났는지, 띄어쓰기는 맞는지 등을 확인하시면 됩니다.


7-2. ADB에 명령어들을 입력한다.

유플러스 박스가 사라진 멀티태스킹 창

삭제된 어플리케이션을 복구하고 싶으시다면 (1) 스마트폰을 공장초기화 하시거나 (2) 하단의 글을 참조하시면 됩니다. 만약 시스템에 필수적인 패키지를 삭제하셨다면 부팅이 안 되고, 스마트폰이 벽돌되니 주의하여 사용하시길 바랍니다. 삭제해도 되는 앱 목록을 미리 찾아보는 것도 좋습니다.


Posted by 무소유v

https://www.clien.net/service/board/lecture/11092791


위 글에 indirex 님이 아래 명령어로 system app을 제거하는 방법을 소개해 주셨습니다.

adb shell pm uninstall -k --user 0 패키지명


그런데, 제거한  앱이  복구하기 힘든 경우가 있습니다. (DEX_PREOPT = true인 APK만 존재하는 경우)

그래서 복구 툴 하나를 만들었습니다.


android-tool-master.zip



android-6.x.x(Marshmallow) 용, 아마 7.x.x(Nougat) 에서도 동작하리라 봅니다.

https://github.com/textkiller/android-tool/tree/android-6.x.x/prebuilt


android-8.x.x용 (Oreo)

https://github.com/textkiller/android-tool/tree/master/prebuilt


실행 방법 아래와 같습니다. (adb  설치되어 있어야 함)


adb push atool /data/local/tmp

adb push atool.jar /data/local/tmp

adb shell "chmod 755 /data/local/tmp/atool"

adb shell "/data/local/tmp/atool pm install-existing-package --user 0 패키지명"


* 맥이나 리눅스를 사용하시는 분은 아래 한줄로도 가능합니다.

./atool.sh pm install-existing-package --user 0 패키지명


제가 맥에서만 테스트 했는데 윈도우에서 어떨지 몰라 아래 명령어 하나 더 추가했습니다.

adb shell "chmod 755 /data/local/tmp/atool"



2017/09/03: Nougat에서 문제가 있어서 다시 수정해서 올렸습니다.

android-6.x.x branch는 현재 Nougat, Marshmallow  모두 지원합니다.

아래기기에서 테스트했습니다.

Marshmallow: Nexus 5
Nougat: G5
Oreo: Nexus 5x



출처 : https://www.clien.net/service/board/lecture/11116786

Posted by 무소유v

$ adb push app-debug.apk /data/local/tmp/com.beanandyu.myapplication

com.android.ddmlib.AdbCommandRejectedException: device unauthorized.

This adb server's $ADB_VENDOR_KEYS is not set

Try 'adb kill-server' if that seems wrong.

Otherwise check for a confirmation dialog on your device.

Error while Installing APK



위의 에러는 Android Device에서 USB Debugging을 허용하지 않았을 때에 발생한다. 

해결방법은 
Android device의 usb 연결을 뺏다가 다시 연결하면 pop up menu가 뜨면서 
usb debugging 허용을 물어본다. 

이 때, YES 를 선택하면 된다. 



출처: http://bean-and-yu.tistory.com/145 [실용주의 프로그래머]

Posted by 무소유v

1. 리스

1-1. 정의

어떤 물건을 사용료를 받고 타인에게 빌려주는 일. 즉 임대. 일반적으로 장기간의 임대를 이른다. 자동차 리스가 대표적이다. 특히 비싼 물건을 장기간 사용할때 사용하며 정수기, 치과 장비 등은 알게 모르게 다수가 리스한 물건이다. 리스 회사는 법적으로 캐피탈회사의 일종이다.

1-2. 방식

임대 대상 물건은 중고, 신품을 따지지 않지만, 많은경우 리스회사가 새 물건을 기업 대신 구입한 후 빌려주게 된다.

물품의 소유권은 리스회사에 있지만

기업은 자사에서 구입한 경우와 거의 같은 방법으로 물건을 사용할 수 있기 때문에, 전세계에서 설치 투자의 수단으로 널리 보급 되고 있다.


대한민국에서는 리스가 여신전문금융업법에 의해 관리되고 있다.

1-3. 판례

시설대여(리스)는 시설대여회사가 대여시설 이용자가 선정한 특정물건을 새로이 취득하거나 대여받아 그 물건에 대한 직접적인 유지, 관리책임을 지지 아니하면서 대여시설이용자에게 일정기간 사용케 하고 그 기간에 걸쳐 일정대가를 정기적으로 분할하여 지급받으며 그 기간 종료후의 물건의 처분에 관하여는 당사자간의 약정으로 정하는 계약으로서, 형식에서는 임대차계약과 유사하나 그 실질은 물적금융이고 임대차계약과는 여러가지 다른 특질이 있기 때문에 시설대여(리스)계약은 비전형계약(무명계약)이고 따라서 이에 대하여는 민법의 임대차에 관한 규정이 바로 적용되지는 아니한다 (84다카503)

1-4. 특징

1) 렌터카와 비교해 허, 하, 호 등의 전용 번호판이 붙지 않는 장점이 있다. 

자동차세, 취득세까지 포함해 리스비에 포함시키는 운용리스와 

차량구매 비용에 대한 금융 서비스를 제공하는 금융리스로 나뉘지만 회계상의 처리가 다를뿐 차명으로 구입해 이용권리를 빌려 쓴다는 점에서 큰 차이가 없다.

2) 리스로 구입할 경우에는 리스사 명의로 두고 타는 것이기 때문에 운용 리스의 경우 차량 

구매에 따른 취득세, 등록세, 채권구매 의무가 없고 연간 부과되는 자동차세,(디젤차량의 경우) 환경개선부담금을 경비 처리 할수 있다.


다만 2016년 업무용 승용차 관련 빙용에 관한 세법 개정안이 통과되면서 일부 내용이 변경됨


● 업무용 승용차 경비를 해마다 1000만원 까지만 비과세 비용으로 인정

● 감가상각비는 연간 800만원까지만 경비처리를 가능하도록 함

● 업무용 승용차의 운행기록부를 작성 비치해야 관련 비용을 인정하도록 함




2. 렌터카

2-1. 정의

차량을 일정기간 유상으로 대여하는 사업 및 그 사업을 통해 대여된차량을 뜻하는 단어

2-2. 사업모델

렌터카 사업을 영위하는 기업에서 차량을 구매, 이 차량에 대해 기간별로 적당한 대여료를 지정하여 빌려주며, 법률에 정해져있거나 회사측이 내부적으로 규정한 일정한 기간이 지나면 차량을 매각한다.

미국의 경우 차량을 매각하는 대신 자동차 메이커측에서 대신 구매해주는 경우도 존재함.

2-3. 대여조건

국가를 막론하고 차량의 대여자는 일정 이상의 연령이어야 하며, 면허 보유기간도 주의되는 경우가 많음




3 기타 비교

3-1. 사업자 및 개인일경우    리스, 장기렌트, 신차할부 차이점

 

 리스

장기렌트카

 신차할부

 사업자

월 임대료를 경비 처리할수있으므로  잘 이용만 하시면 절세가능


 개인

 키로수 제한없으며 승용lpg를 이용하여 유류비 절감

영업적으로 많은 키로수 타지않으시고 직장을 통해 4대보험 납부하신다면,


 렌트나 리스 보다는 신차 할부를 하시는것이 유리


3-2.  리스, 장기렌트 차이점

 

 리스

장기렌트카

 신차할부

 초기 비용

보증금 10% 이상무보증 가능
(신용도에 따라 적용) 
 취 / 등록세
차량할부가 10% 이상

총 비용

- 리스비

- 종합보험료(별도납)

- 렌탈비(종합보험료 포함)

 

 비용처리 방법

세금계산서로 비용처리 세금계산서로 비용처리 차량 감가상각
할부이자 비용처리 

 종합보험료 납부

고객이 보험사에 따로 납부

- 리스비만 비용처리 가능

월 렌탈료에 포함
- 렌탈료=(리스요금+보험료)
- 리스비+보험료 비용처리 가능

고객이 보험사에 따로 납부

보험가입자

 고객(할증 있음)렌트회사(할증 없음)  고객(할증 있음)

 정비/유지비
부담

고객부담 렌트회사 고객부담 

 사고처리방법

 보험접수 / 직접정비(대차불가)보험접수 / 회사정비(대차가능)  보험접수 / 직접정비(대차불가) 

 차량 소유권

리스회사 or 고객 

렌트회사 

고객 

 신용등급 하락

 여부

개인시 신용등급 하락

- 고객명의로 금융상품 이용함에따라

   신용등급 하락

신용등급 하락 없음

- 차량 소유권 렌탈회사

개인시 신용등급 하락

- 고객명의로 금융상품 이용함에따라

   신용등급 하락

 LPG차량 사용

 불가

LPG 모델 사용 가능(인수도 가능)

장애인 / 국가유공자만 가능 

 주행거리 제한

연3~5만km선택사항 

없음

 10부제한있음해당없음 있음 

취급차량

전 차종 가능

화물차 / 15인이상 승합차 제외한정 차종 가능 

전차종 가능 

 번호판 형식

 일반 번호판

허, 하, 호

일반 번호판 
 계약 종료시

인수 / 재리스 / 반납

인수 / 재렌트 / 반납 

소유 / 매각



* 참조

리스 정의 : https://ko.wikipedia.org/wiki/%EB%A6%AC%EC%8A%A4

렌터 정의 : https://ko.wikipedia.org/wiki/%EB%A0%8C%ED%84%B0%EC%B9%B4



Posted by 무소유v

Single Core

Samsung Galaxy S20 5G  (2020년)
Qualcomm Snapdragon 865 @ 1.8 GHz    826

Samsung Galaxy S20  (2020년)
Samsung Exynos 990 @ 2.0 GHz    763


Samsung Galaxy S10+  (2019년)
Samsung Exynos 9820 @ 2.0 GHz    725 
 
LG G8 ThinQ  (2019년)
Qualcomm Snapdragon 855 @ 1.8 GHz  707

 

Samsung Galaxy Note 8
Samsung Exynos 8895 Octa @ 1.7 GHz   359

Samsung Galaxy S8+
Samsung Exynos 8895 Octa @ 1.7 GHz   354
 
Samsung Galaxy S8
Samsung Exynos 8895 Octa @ 1.7 GHz   357
 
LG V20
Qualcomm MSM8996 Snapdragon 820 @ 1.6 GHz   277

 

 

Android Benchmarks

http://browser.geekbench.com/android-benchmarks



iPhone, iPad, and iPod Benchmarks


Posted by 무소유v
★UTIL★2018. 2. 9. 14:10

USB Image Tool은 USB 메모리의 전체 내용을 IMG 이미지 파일로 백업 및 복구할 수 있는 프로그램입니다. 부팅이 가능한 USB 메모리 또한 백업 및 복구가 가능하며 USB 하드 디스크도 지원 합니다.​ (단, 몇몇 USB 장치는 호환성에 의해서 인식이 안될 수 있습니다.)

USB Image Tool v1.65 프로그램의 대략적인 사용법에 대해서 알아 보겠습니다.​ (버전 업그레이드에 의해서 설치 및 사용 기능이 다를 수 있습니다.)

→ 프로그램명 : USB Image Tool

→ 개발사 : http://www.alexpage.de

→ 지원 운영체제 : Windows XP 이상

→ 라이센스 : 프리웨어

    ㅁ 1.76버전 다운로드  

usbit_1.76.zip



​- 개발사 사이트에 접속해서 최신버전 파일을 다운로드 받습니다.

 


 
- 다운로드 받은 파일을 압축을 풀어 'USB Image Tool.exe' 실행파일을 실행하면 됩니다.  

USB Image Tool 프로그램을 실행하면 위와같은 화면을 볼 수 있으며 컴퓨터에 연결된 USB 메모리의 장치 및 볼륨정보를 확인할 수 있습니다.
- Restore → 백업한 IMG 이미지 파일을 이용해서 선택한 USB 메모리 장치에 복구할 수 있습니다.
- Reset → ​선택한 USB 메모리의 볼륨(파티션) 정보를 삭제 초기화 합니다. (포맷 후 USB 메모리를 사용하면 됩니다.)
- Rescan → 컴퓨터에 연결된 USB 메모리의 정보를 다시 읽어 들입니다.
- Backup → 선택한 USB 메모리 장치를 IMG 이미지 파일로 백업할 수 있습니다. 
 
- USB 메모리 백업 및 복구 
- 백업할 USB 메모리를 선택한 후 'Backup' 버튼을 클릭합니다. (복구시에는 'Restore' 버튼을 눌러서 백업파일을 선택해 주면 됩니다.)
- 백업할 파일명을 입력해주고 백업 파일이 생성될 경로 및 파일 형식을 지정해 주면 됩니다. 

 

백업 작업이 진행 중인 화면으로 USB 메모리에 저장된 데이터가 많든 적든 관계없이 USB 메모리 전체를 백업하기 때문에 어느정도의 백업 시간이 소요됩니다. (일반 백업 파일의 크기는 USB 메모리의 용량과 같으며 복구시 시간은 백업 시간과 비슷합니다.) 
 

- 백업 파일을 즐겨찾기에 등록해 놓고 손쉽게 복구를 할 수 있습니다.
- USB Image Tool Options 

- Volume, Device Mode  일반적으로 USB 메모리에 데이터 파일들만이 있는 경우에는 첫번째 볼륨(파티션)만을 처리하는 볼륨모드(Volume Mode)를 선택해서 사용하면 되며 부팅이 가능한 USB 메모리이거나 하나 이상의 볼륨(파티션)이 있는 경우에는 장치모드(Device Mode)를 선택해서 사용하면 됩니다.

- ignore size checks for gzip images  4GB 이상의 USB 메모리를 Compressed (gzip) 이미지 파일로 백업할 경우 이 옵션을 체크해 주어야 합니다.
- truncate oversize images in device mode  백업 파일 용량이 복구될 USB 메모리 용량보다 큰 경우, 일반적으로 복구 작업은 불가능합니다. 이 옵션은 다양한 파티션 도구 프로그램를 이용해서 미리 소스 플래시 드라이브의 파티션 크기를 대상 플래시 드라이브 크기에 맞게 조정을 한 다음 소스 플래시 드라이브를 백업, 대상 플래시 드라이브에 복원을 할 수 있습니다. (단, 파티션 크기 조정을 하지 않은 상태에서 이 옵션을 사용하면 부분적인 데이터 손실이 발생합니다.)
- 백업 파일 용량이 복구될 USB 메모리 용량보다 작은 경우, 다양한 파티션 도구 프로그램를 이용해서 파티션 작업 후 수행할 수 있습니다. (4GB 백업 파일을 8GB USB 메모리에 그냥 복구하게 되면 8GB USB 메모리 크기가 4GB 크기로 변경된 것을 볼 수 있는데 다시 원래의 8GB 크기로 변경할려면 기존 볼륨 삭제, 새로 볼륨 생성한 후 포멧을 해주면 됩니다.)
- create MD5 checksums during backup  백업시 MD5 체크섬 파일을 생성합니다.
- show completion message after operation  작업 완료시 완료 메시지 창을 띄워서 보여줍니다.
- show non-removahle devices  컴퓨터에 연결된 USB 하드 디스크를 인식해서 장치를 보여줍니다.
- use user-defined buffer size  사용자가 직접 버퍼 크기를 정의 할 수 있습니다.

- suggest backup image file name  백업시 백업 파일명에 드라이브 번호, 드라이브 이름 등..이 자동으로 입력되게 %n, %x 등의 태그값을 입력란에 입력해 놓을 수 있습니다.
- Save settings to registry, Remove setting from registry  현재 설정된 옵션값을 레지스트리에 정보를 등록해 놓을 수 있으며 또느 저장된 레지스트리 정보를 제거할 수 있습니다.


Posted by 무소유v
DB/MYSQL MariaDB2018. 2. 9. 14:09

**** MYSQLDUMP VARIABLES ***************************************************
Variables (--variable-name=value)
and boolean options {FALSE|TRUE}  Value (after reading options)
--------------------------------- -----------------------------
all                               TRUE
all-databases                     FALSE
add-drop-database                 FALSE
add-drop-table                    TRUE
add-locks                         TRUE
allow-keywords                    FALSE
character-sets-dir                (No default value)
comments                          TRUE
compatible                        (No default value)
compact                           FALSE
complete-insert                   FALSE
compress                          FALSE
create-options                    TRUE
databases                         FALSE
debug-info                        FALSE
default-character-set             utf8
delayed-insert                    FALSE
delete-master-logs                FALSE
disable-keys                      TRUE
extended-insert                   TRUE
fields-terminated-by              (No default value)
fields-enclosed-by                (No default value)
fields-optionally-enclosed-by     (No default value)
fields-escaped-by                 (No default value)
first-slave                       FALSE
flush-logs                        FALSE
flush-privileges                  FALSE
force                             FALSE
hex-blob                          FALSE
host                              (No default value)
insert-ignore                     FALSE
lines-terminated-by               (No default value)
lock-all-tables                   FALSE
lock-tables                       TRUE
log-error                         (No default value)
master-data                       0
max_allowed_packet                25165824
net_buffer_length                 1047551
no-autocommit                     FALSE
no-create-db                      FALSE
no-create-info                    FALSE
no-data                           FALSE
order-by-primary                  FALSE
port                              3306
quick                             TRUE
quote-names                       TRUE
routines                          FALSE
set-charset                       TRUE
shared-memory-base-name           (No default value)
single-transaction                FALSE
socket                            (No default value)
ssl                               FALSE
ssl-ca                            (No default value)
ssl-capath                        (No default value)
ssl-cert                          (No default value)
ssl-cipher                        (No default value)
ssl-key                           (No default value)
ssl-verify-server-cert            FALSE
tab                               (No default value)
triggers                          TRUE
tz-utc                            TRUE
user                              (No default value)
verbose                           FALSE
where                             (No default value)
************************************************************************************

나에겐 자주 있는 경우이지만, 대체적으로 남들은 하지 않는
DB 이전 작업을 해야할 때가 있다. 

그런데 만약 덤프 때 옵션을 어리벙하게 주면,
옮기고자 하는 데이터의 사이즈가 Giga Byte 단위를 넘어설 경우
하루 줄창 걸려도 될똥 말똥이다. 
뒌장 맞을 --;;

그래서 어케 하자고?

뭐, 역시 빠르고 명확하지만, 전혀 비주얼하지 않은 
수작업이 필요하지 않겄어?   /(-0-)/

그럴 때 필요한 것이 바로 mysqldump 다.

mysqldump --help 라고 치면 모든 OPTION들의 설명이 나와있겠지만,
그래도 아래 3가지 옵션은 알아 두는 것이 좋을 것 같다.

일단, 맨 위의 값들은 mysqldump가 사용하는 변수의 목록이다.
즉, 아무런 값도 치지 않고 (아! 물론  데이터 베이스는 선택해야 한다.)
명령어를 입력하면, 위의 값들을 바탕으로 결과가 만들어진다는 것이지.

그렇지만, 역시나 속도가 생명인 IT의 건아들은 
뭔가 오밀조밀하게 만져서 조금더 빠르게 덤프를 뜨고 싶을 것이다.


**** 속도가 관건인 분에게 아래의 OPTION들을 권하오~~

--no-autocommit=1 : 일단 autocommit을 끄고, 
                           1개의 테이블 입력이 완료될 때 까지
                           기다렸다가 commit을 수행 한다. 요거이 좋다!!!
                           대신 뻑나면, 다시 첨부터~~~ 우어!!!

--single-transaction=1 : 작업 후에 변경 된 데이터의 내역을 다시 적용하지 않는다.
                                 즉, 중간에 값이 바뀌질 않는다면 가능하다는 말씀.

--extended-insert=1 : 요거이 관건인데, 쓸데 없이 INSERT 구문이 늘어나는 것을 
                             막아준다. 가령 
                            ->  INSERT INTO `A` VALUES (1,10),(2,20);
                             이러면 될 것을 , 
                            -> INSERT INTO `A` VALUES (1,10); 
                            -> INSERT INTO `A` VALUES (2,20);
                             으로 늘려준다. 이러면 하루 온 종일 도는 거다 --;;


그럼 덤프 방법을 보자.
리눅스건 윈도우 커맨드건 간에 어차피 양식은 같다.
(아래의 대문자는 당신이 넣어야 할 내용들이다.)

@@@@ 덤프 할 때 @@@@
c:\>mysqldump -hHOST_NAME -uMY_ID -pMY_PASSWORD --databases DB_NAME --tables TABLES_OF_DB_NAME --no-autocommit=1 --single-transaction=1 --extended-insert=1 > c:\DUMP_FILE.sql


요러면, 아무것도 모르고 그냥 뽑아내는 방식보다,
(지가 무슨 고급 승용차인줄 아는지 거의가 풀 옵션이다 --;;)
사이즈가 1/4 정도로 확 줄고,
속도는 광속을 뽐내게 된다.

즉, 관건은, 
덤프의 시간이 아니라 RESTORE의 시간인데,
개인적인 체감 속도로 판단하자면, 
진짜 시간이 1/10 정도는 감소하는 것 같다눙... -0-/

@@@@ 복원 할 때 @@@@
c:\>mysql -hHOST_NAME -uMY_ID -pMY_PASSWORD --database DB_NAME < c:\DUMP_FILE.sql
 

뭐 기타 옵션들도 많지만, 
간단한 DB 하나 잡고서 한 가지씩 테스트 해본다면
대충 감은 잡을 수 있을 것이다.
 


출처: http://blackbull.tistory.com/8 [음머어's 까망별]

Posted by 무소유v
DB/MYSQL MariaDB2018. 2. 9. 14:09

▣ mysql 백업 4가지 방법

 

1. Data 디렉토리 백업

- Data 디렉토리를 정기적으로 백업하고 문제 발생했을 때 덮어쓰면 된다.

 

2. mysqldump 를 사용하는 방법

- 백업 시에 데이터베이스에 락을 걸수 없어 변경이 발생하면 다시 백업해야한다.

 

3. mysqlhotcopy 를 사용하는 방법

- mysql 백업 방법 중 속도가 바르며 DB 디렉토리를 다른 위치에 Copy 한다.

- Myl 및 ARCHIVE 테이블만 Hotbackup을 지원 한다. ( innoDB 지원하지 않는다. )

 

4. xtraback 을 사용하는 방법

- mysql 서버 중단하지 않고 InnoDB를 핫백업할 수 있다.

- InnoDB Hot Backup은 핫백업을 지원하나 상용이나 xtraback 은 무료로 사용이 가능.

 

※ Hot Backup : DB 서버가 온라인 상태에서 DB를 백업 하는 것

    Cold Backup : DB 서버를 중단시키고 백업하는 방법  

 

 

■ mysqldump 사용하는 방법

 

전체 데이터베이스 또는 특정 데이터베이스를 백업하거나 특정테이블만 백업 할 수 있다.

 

▷ 전체 데이터베이스 백업

 

- 서버의 전체 데이터베이스를 alldatabase.sql로 백업한다.

 

mysqldump -uroot -p -A > alldatabase.sql

 

▷ 특정 데이터베이스 백업

 

- test 데이터베이스만 백업한다.

 

mysqldump -uroot -p test > testdb.sql

 

▷ 특정 테이블만 백업

 

- test 데이터베이스의 board 테이블만 백업 한다.

 

mysqldump -uroot -p test board > testdbboard.sql

 

 

※ 특정 데이타베이스의 테이블생성(schema) 정보만 백업하는 방법

 

mysqldump -uroot -p --no-data test > testdbschema.sql

 

- mysqldump-? 명령어로 여러 옵션을 확인 할 수 있다.

 


▷ InnoDB에서 트리거 , 프로시져, 함수 포함하여 백업하기


  - 트리거는 default값으로 백업이 실행되나 저장 프로시져는 백업되지 않는다. 


  - 저장 프로시져가 백업되게 하기 위해서는 옵션에  --routines 을 넣어줘야 한다.  


mysqldump -u계정 -p비밀번호 --routines 특정DB명 > 함수프로시져트리거.sql


(예) mysqldump -uroot -ppassword --routines  northwind > northwind.sql

 

 

   ※ 트리거 , 프로시져, 함수 만 백업하기 - 쿼리문만  


 mysqldump -u계정 -p비밀번호 --routines  --no-create-info --no-data --no-create-db --skip-opt 특정DB명 > 함수프로시져트리거.sql 

(예) mysqldump -uroot -ppassword --routines --no-create-info --no-data --no-create-db --skip-opt northwind > northwind_only_sp_trigger_function.sql

이렇게 트리커 프로시져 함수만 백업한 경우는 반드시 Data와 테이블 스키마를 별도로 백업 받아 줘야 합니다


 

■ 일정 시간마다 자동 백업

 

- 데이타베이스 백업은 아무리 강조해도 지나치지 않다. 그러나 잊어버리지 않고 사람이 하기엔 너무 귀찮다. 정기적으로 자동으로 실행되게 하려면 리눅스에서는 Shell 프로그램을 작성하여 cron에 등록시키면 된다.

 

▷ 백업할 디렉토리 만들기

 

sudo mkdir /backup 

 

▷ 백업 디렉토리 권한 주기

 

sudo chmod 755 /backup

 

▷ shell 프로그램 작성

 

sudo vi /usr/local/bin/mysqldump.sh

 

#!/bin/sh

 

# 백업 위치를 /backup 아래로 정한다.

# 백업 시간을 년-월-일 형식으로 지정한다. 
DATE=`date +"%Y%m%d%H%M%S"`

 

# 사용자 계정과 비밀번호

USERNAME="MySQL계정"

PASSWORD="비밀번호"

 

# 백업할 데이타베이스

DATABASE="test"

 

# 백업 작업
mysqldump -u$USERNAME -p$PASSWORD  $DATABASE > /backup/mysql_db_bak_${DATE}.sql 

 

※ USERNAME, PASSWORD, DATABASE 다음(=)은 꼭 붙여쓴다


- 실행권한 부여

 

sudo chmod +x /usr/local/bin/mysqldump.sh

 

▷ cron 만들기 - 일정한 시간에 실행 되게 한다.

 

sudo vi /etc/crontab

 

- 04시 30분에 자동으로 실행하게 설정

 

30 4 * * * root /usr/local/bin/mysqldump.sh

 

▷ 크론 데몬 재실행
 

sudo /etc/init.d/cron restart

 

▷ 시스템 시작 시 스크립트 실행되도록 한다.

 

sudo vi /etc/rc.local


- 아래와 같이 입력하고 저장한다.

 

/usr/local/bin/mysqldump.sh

 



출처: http://bizadmin.tistory.com/entry/MySQL-백업-및-복구하기 [Happy Resource]

Posted by 무소유v
DB/MYSQL MariaDB2018. 2. 9. 14:08

mysql dump 파일 복구하기


 dump로 백업된 파일을 복구하는 방법은


- shell 에서 실행한다. 


mysql -u user -p db_name < 파일명



▶ 복구시 한글이 깨지는 경우 해결 방법 :  --default-character-set 옵션 사용


 - shell 에서 실행한다. 


mysql -u user -p --default-character-set=euckr db_name < 파일명


위와 같이  윈도우에서 shell을 사용해야 하는 이유는 GUI 툴에서 덤프 파일을 불러 올수 없기 때문임.


정확히 얘기하면 GUI 툴인 Toad나 sqllog등에서 덤프 파일 용량이 크기 때문에 읽어 들이지 못한다. 그래서 shell 화면에서 사용되야 한다. 



출처: http://bizadmin.tistory.com/entry/mysql-덤프백업파일-복구-하기?category=754883 [Happy Resource]

Posted by 무소유v
DB/MYSQL MariaDB2018. 2. 9. 14:08
실무에서 자주 사용되는 쉘 스크립트  #3
           (MySQL DB백업 유틸리티)




  지난강좌(#3)는 MySQL을 쉽게 관리 할 수 있는 툴을 만들어 보았다. 
금번 강좌에서는 mysql의 데이터를 백업하는 스크립트를 만들 것이다. 단순하게 mysql을 dump 하기 위해서는 mysqldump 명령어를 사용하면 쉽게 할 수 있다.
하지만, DB 전체를 백업해 두면, 원하는 데이터를 찾기 힘들고 시간이 오래 걸린다. 우리가 원하는 것은 각 DB에 각 table별로 백업 하는 것이다. 

먼저, 어떤일을 할 것인지 생각 해 보자...




1) MySQL의 데이터를 DUMP 하려면?
   mysql을 dump 하기 위해서 mysqldump라는 명령어를 제공한다. 이 명령어는 DB에서 원하는 DB만, table만 백업 할 수 있고, 전체 DB를 백업 할 수 있다.

  (1) 전체 백업
    mysqldump -uroot -p -A > all.sql

  (2) 특정 DB 백업
    mysqldump -uroot -p 특정DB명 특정DB명.sql

  (3) 특정 DB에 특정 테이블 백업
    mysqldump -uroot -p 특정DB명 특정table명 > 특정DB명.특정table.sql

   위와 같은 방법으로 백업을 진행하며 우리가 원하는 결과를 얻어내기 위해서는 "(3)"번의 방법을 여러번 실행 할 수 있는 프로그램이 필요하다.
 



2) DB리스트를 얻어 내려면?
  mysql의 DB리스트를 얻어 내려면, "show databases" 쿼리를 던지면 리스트를 구할 수 있다.
  
  echo "show databases;" | mysql -uroot -p 

 위 명령어로 DB리스트를 얻을 수 있다. 그런데 결과가 이상하다.
처음 라인에 "Database"가 하나 있는 것을 확인 할 수 있다. 필드명 같은데..
제거하는 방법은 .. mysql명령에서 제공한다. '-N'옵션을 적용시키면 없어진다.


  echo "show databases;" | mysql -N -uroot -p 


  위 명령어로 DB리스트를 얻을 수 있으며, 이 리스트를 변수에 담아 보자

  db_list=`echo "show databases;" | mysql -N -uroot -p`

 위 명령을 내리면, db_list에 DB리스트를 넣게 된다. 여기서 "`"이 등장한다. 이는 "''" 안에 있는 명령어를 실행 시키라는 것이다.
변수를 지정하였기 때문에 명령어의 실행 결과는 변수에 들어가게 된다.
 여기서, 위 명령어는 MySQL DB root 비밀번호를 물어 보게 된다.
비밀번호를 묻지 않게 하기위해서 다음과 같이 넣어준다.

  db_list=`echo "show databases;" | mysql -N -uroot -p"DBroot비밀번호"`

 위와같이 하면, 실행시간에 DB의 root 비밀번호를 물어보지 않는다.




3) DB의 TABLE 리스트를 얻어 내려면?
  mysql의 TABLE리스트를 얻어 내려면 "show tables" 쿼리를 던지면 된다. '2)'와 비슷하게 다음과 같이 작성한다.

  table_list=`echo "show tables;" | mysql -N -uroot DB명 -p"DBroot비밀번호"`




4) '2)' 에서 얻어낸 DB리스트를 어떻게 하나 하나 적용 시킬 것인가?
  공백으로 구분된 값을 분리 하여, 하나 하나 변수에 넣을 수 있다.  bash에서는 for in 문법을 적용할 수 있다. 문법은 다음과 같다.

for 변수 in 리스트 ; do
  <명령어들>
done

다음 예제를 보자

for i in 사과 배 감자 ; do
 echo $i
done

위 예제에서  'i'는 반복 변수이다. 일반적인 프로그래밍언어에서 반복문에 사용되는 변수를 i로 많이 지정한다.
'사과 배 감자'는 반복할 항목이다. 위 예제의 결과는 다음과 같다.

사과

감자


그렇다면, '2)'에서 구했던 DB리스트를 하나 하나 출력해 보자.


db_list=`echo "show databases;" | mysql -N -uroot -p"DBroot비밀번호"`
for db in $db_list ; do
 echo $db
done

위와같은 방법으로 DB 리스트를 출력 할 수 있다.




5) 우리의 목적을 달성해 보자..
 위에서 알아본 것들을 응용해서 다음과 같이 우리가 원하는 쉘스크립트를 만들어 보자.


db_root_pw='비밀번호'

db_list=`echo "show databases;" | mysql -N -uroot -p"$db_root_pw"`
 for db in $db_list ;do
  table_list=`echo "show tables" | mysql -N -uroot -p"$db_root_pw" $db`
  for table in $table_list ; do
    mysqldump -uroot -p"$db_root_pw" $db $table > $db.${table}.sql
  done
 done

위 쉘스크립트는 DB리스트를 구하고, 또 그 DB의 테이블 리스트를 구해서 각 테이블별로 mysqldump명령어를 사용해서 백업하는 것이다.
위와같이 for문은 여러번 중첩해서 사용할 수 있다. 


위 명령을 내리면, 
 DB명.TABLE명.sql 으로 모든 테이블을 백업할 수 있다.



출처 : https://www.linux.co.kr/home/lecture/index.php?leccode=11046


Posted by 무소유v