개요데이터베이터 시스템은 다양한 이유로 비정상 종료될 수 있으며, 이로 인해 데이터 손실이나 손상이 발생할 수 있습니다. 본 글에서는 MySQL의 비정상 종료 원인과 데이터 복구 방법을 중점적으로 간략하게 다뤄보도록 하겠습니다. 명령어 예시MySQL 비정상 종료의 원인디스크 손상이나 메모리 오류MySQL 소프트웨어 버그메모리, CPU, 디스크 자원 부족운영체제 문제 (커널 패닉)잘못된 명령어 입력이나 설정 변경 MySQL 데이터 복구 방법1. 백업 복구가장 일반적인 데이터 복구 방법입니다.정기적으로 DB의 백업을 수행해두면, 데이터 손실 시 쉽게 복구할 수 있습니다.MySQL에서 지원하는 백업 도구가 존재하고, 그외의 백업 방법도 있습니다. 1) mysqldumpMySQL 커뮤니티 에디션에서 제공하는 기..
I/O System and Disk Management★ OverviewI/O MechanismsHow to send data between processor and I/O deviceI/O Services of OSOS Supports for better I/O performanceDisk SchedulingImprove throughput of a diskRAID ArchitectureImprove the performance and reliablity of disk system★ I/O System (HW) ★ I/O MechanismsProcessor controlled memory accessPooling (Programmed IO)Interrupt★ Pooling (Programmed I/O)..
Disk System★ Disk SystemDisk pack데이터 영구 저장 장치 (비휘발성)구성sector데이터 저장/판독의 물리적 단위TrackPlatter 한 면에서 중심으로 같은 거리에 있는 sector들의 집합Cylinder같은 반지름을 갖는 track의 집합Platter양면에 자성 물질을 입힌 원형 금속판데이터의 기록/판독이 가능한 기록매체SurfacePlatter의 윗면과 아랫면 Disk driveDisk pack에 데이터를 기록하거나 판독할 수 있도록 구성된 장치구성Head디스크 표면에 데이터를 기록/판독ArmHead를 고정/지탱Positioner (boom)Arm을 지탱Head를 원하는 track으로 이동SpindleDisk pack을 고정 (회전축)분당 회전 수 (RPM, Revolut..
Virtual Memory Management (1/6) - Cost model, HW components★ Virtual Memory Management가상 메모리 (기억장치)Non-continuous allocation사용자 프로그램을 block으로 분할하여 적재/실행Paging/Segmentation system가상메모리 관리의 목적가상 메모리 시스템 성능 최적화Cost model다양한 최적화 기법★ Cost model for Virtual Mem. Sys.Page fault frequency (발생 빈도)Page fault rate (발생률) Page fault rate를 최소화할 수 있도록 전략들을 설계해야 함Context switch 및 kernel 개입을 최소화시스템 성능 향상Page ref..
Virtual Memory (1/5) - Non-continuous allocation★ Virtual Storage (Memory)Non-continuous allocation사용자 프로그램을 여러 개의 block으로 분할실행 시, 필요한 block들만 메모리에 적재나머지 block들은 swap device(disk)에 존재기법들Paging systemSegmentation systemHybrid paging/segmentation system★ Address MappingContinuous allocationRelative address (상대 주소)프로그램의 시작 주소를 0으로 가정한 주소Relocation (재배치)메모리 할당 후, 할당된 주소(allocation address)에 따라 상대 주소..
메모리 (주기억장치) 관리 (1/3) - Backgrounds★ 메모리(기억장치)의 종류 ★ 메모리(기억장치) 계층구조 Block보조기억장치와 주기억장치 사이의 데이터 전송 단위Size : 1 ~ 4KBWord주기억장치와 레지스터 사이의 데이터 전송 단위Size : 16 ~ 64 bits★ Address Binding프로그램의 논리 주소를 실제 메모리의 물리주소로 매핑(mapping)하는 작업Binding 시점에 따른 구분Compile time bindingLoad time bindingRun time binding User Program Processing StepsComplie time binding프로세스가 메모리에 적재될 위치를 컴파일러가 알 수 있는 경우위치가 변하지 않음프로그램 전체가 메모리에..
교착 상태 (Deadlcok Resolution)★ Deadlock의 개념Blocked/Asleeped state프로세스가 특정 이벤트를 기다리는 상태프로세스가 필요한 자원을 기다리는 상태Deadlock state프로세스가 발생 가능성이 없는 이벤트를 기다리는 경우프로세스가 deadlock 상태에 있음시스템 내에 deadlock에 빠진 프로세스가 있는 경우시스템이 deadlock 상태에 있음Deadlock vs Starvation★ 자원의 분류일반적 분류Hardware resources vs Software resources다른 분류 법선점 가능 여부에 따른 분류할당 단위에 따른 분류동시 사용 가능 여부에 따른 분류재사용 가능 여부에 따른 분류★ 선점 가능 여부에 따른 분류Preemptible resou..
벌써 개강한지 3주정도가 지났다. 중간점검을 해보자면, 프론트엔드 찍먹을 해봤지만, 나에겐 백엔드가 더 잘 맞는 것 같다는 생각이 들었다. 결정적인 부분이 전공내용에 대한 지식을 확실하게 녹여낼 수 있는 것은, 백엔드라는 생각이 들었기 때문이다. 그래서 계획을 수정했다. 프론트엔드 부분에서 HTML CSS JS는 어떤 느낌인지 해봤던 것으로 만족하고, 백엔드분야를 다시 확실하게 공부하고자 한다. 어떻게 크게 보면, 컴공이 챙겨야 할 부분은 CS(학점) : PS(코테) : 개발 이렇게 3분야인 것 같다. 학점은 지금까지 챙겨두었으니, 이 이점을 활용하여 다른 곳에 시간투자를 조금 더 할 수 있을 것 같다. 보통 학기중에는 학점공부에 전념했으나 3-1부터의 전략은 아래와 같이 하고자 한다. CS(학점) : ..
