---恢复内容开始--- 数据库的恢复模式是数据库遭到破坏时还原数据库中数据的数据存储方式,它与可用性、性能、磁盘空间等因素相关。每一种恢复模式都按照不同的方式维护数据库的数据和日志。系统提供了3种数据库的恢复模式: 1、完整恢复模式 2、大容量日志
---恢复内容开始---
数据库的恢复模式是数据库遭到破坏时还原数据库中数据的数据存储方式,它与可用性、性能、磁盘空间等因素相关。每一种恢复模式都按照不同的方式维护数据库的数据和日志。系统提供了3种数据库的恢复模式:
1、完整恢复模式
2、大容量日志记录的恢复模式
3、简单恢复模式
完整恢复模式是最高等级的数据库恢复模式。在完整恢复模式中,对数据库的所有操作都记录在数据库的事务日志中。即使那些大容量数据库操作和创建索引的操作,也就记录在数据库的事务日志中。当数据库遭到破坏之后,可以使用该数据库的事务日志迅速还原数据库。
在完整恢复模式中,由于事务日志记录了数据库的所有变化,所以可以使用事务日志将数据库还原到任意的时刻点。但是,这种恢复模式耗费大量的磁盘空间。除非是那种事务日志非常重要的数据库备份策略,否则一般不建议使用这种恢复模式。
就想完整恢复模式一样,大容量日志记录的恢复模式也使用数据库备份和日志备份还原数据库。但是,在使用了大容量日志记录的恢复模式的数据库中,其事务日志耗费了的磁盘空间远远小于使用完整恢复模式的数据库的事务日志。在大容量日志记录的恢复模式中,Check Index、bulk insert、BCP、Select Into等操作不记录在事务日志中。
对于那些规模比较小的数据库或数据不经常改变的数据库来说,可以使用简单恢复模式。当使用简单恢复模式时,可以通过执行完全数据库备份和增量数据库备份来还原数据库,数据库只能还原到执行备份操作的时刻点。执行备份操作之后的所有的数据修改都丢失并且需要重建。这种模式的特点是数据库没有事务日志。这种模型的好处是耗费比较少的磁盘空间,恢复模式最简单。
举个例子:
假设出问题的数据库为A, 新恢复后的数据库为B
1.前提:A数据库的恢复模式必须为:完整。
2.备份A数据库的日志,假设文件名为log.bak
3.使用A数据库的最近的完整备份,使用 WITH NORECOVERY 的方式,恢复为B数据库
4.使用恢复日志的方式,指定还原的时间点(T),将Log.bak文件还原到B数据库,完成后,B数据库的内容即是T时间之前的完整数据。
以下为测试语句建A数据库
--<span>创建A数据库 CREATE DATABASE A GO </span>--<span>对A数据库进行备份 BACKUP DATABASE A TO DISK</span>= <span>'</span><span>c:\A.bak </span><span>'</span><span> WITH FORMAT GO </span>--<span>创建测试表 CREATE TABLE A.dbo.TB_test(ID </span><span>int</span><span>) GO </span>--<span>插入数据 Insert Into A.dbo.TB_test(ID) </span><span>select</span> <span>1</span><span> GO </span>--<span>延时1秒钟,再进行后面的操作 </span>--<span>(这是由于SQL Server的时间精度最大为百分之三秒,不延时的话,可能会导致还原到时间点的操作失败) WAITFOR DELAY </span><span>'</span><span>00:00:01 </span><span>'</span><span> GO </span>--<span>假设我们现在误操作删除了 A.dbo.TB_test 这个表 DROP TABLE A.dbo.TB_test </span>--<span>为了测试还原时间点,先记录操作的时间点 SELECT dt</span>=<span>GETDATE() INTO #T GO </span>--<span>在删除操作后,发现不应该删除表 TB_test </span>--<span>下面演示了如何恢复这个误删除的表 TB_test,以及数据行 </span>--<span>为了避免覆盖A数据库,恢复时,生成到B数据库 GO </span>--<span>首先,备份A数据库的事务日志(使用事务日志才能还原到指定的时间点) BACKUP LOG A TO DISK</span>= <span>'</span><span>c:\A_log.bak </span><span>'</span><span> WITH FORMAT GO </span>--<span>接下来,我们要先还原完全备份(还原日志必须在还原完全备份的基础上进行),生成数据库B RESTORE DATABASE B FROM DISK</span>= <span>'</span><span>c:\A.bak </span><span>'</span><span> WITH FILE </span>= <span>1</span>, MOVE N<span>'</span><span>A</span><span>'</span> TO N<span>'</span><span>C:\B.mdf</span><span>'</span><span>, MOVE N</span><span>'</span><span>A_log</span><span>'</span> TO N<span>'</span><span>C:\B.ldf</span><span>'</span><span>, NORECOVERY, REPLACE GO </span>--<span>将事务日志还原到删除操作前(这里的时间对应上面的删除时间,并比删除时间略早 DECLARE @dt datetime SELECT @dt</span>=DATEADD(ms,-<span>20</span>,dt) FROM #T --<span>获取比表被删除的时间略早的时间 RESTORE LOG B FROM DISK</span>= <span>'</span><span>c:\A_log.bak </span><span>'</span> WITH RECOVERY,STOPAT=<span>@dt GO </span>--<span>查询一下,看表是否恢复 SELECT </span>*<span> FROM B.dbo.TB_test </span>--<span>最后删除我们做的测试环境 DROP DATABASE A DROP DATABASE B DROP TABLE #T</span>
---恢复内容结束---

mysqloffersvariousStorageEngines, 각각의 everitedforentUsecases : 1) innodbisidealforapplicationsneedingAcidCoInceandHighConcurrency, 지원 트랜잭션 및 foreignKeys.2) myIsAmisbestforread-heverworkloads, memoryengineis

MySQL의 일반적인 보안 취약점에는 SQL 주입, 약한 암호, 부적절한 권한 구성 및 업데이트되지 않은 소프트웨어가 포함됩니다. 1. 전처리 명령문을 사용하여 SQL 주입을 방지 할 수 있습니다. 2. 강력한 비밀번호 전략을 사용하여 약한 암호는 피할 수 있습니다. 3. 정기적 인 검토 및 사용자 권한 조정을 통해 부적절한 권한 구성을 해결할 수 있습니다. 4. Unupdated 소프트웨어는 MySQL 버전을 정기적으로 확인하고 업데이트하여 패치 할 수 있습니다.

느린 쿼리 로그를 활성화하고 임계 값을 설정하여 MySQL에서 느린 쿼리를 식별 할 수 있습니다. 1. 느린 쿼리 로그를 활성화하고 임계 값을 설정하십시오. 2. 느린 쿼리 로그 파일을보고 분석하고 심층 분석을 위해 MySQLDumpSlow 또는 PT-Query 소수성과 같은 도구를 사용하십시오. 3. 인덱스 최적화, 쿼리 재 작성 및 select*의 사용을 피함으로써 느린 쿼리 최적화를 달성 할 수 있습니다.

MySQL 서버의 건강 및 성능을 모니터링하려면 시스템 건강, 성능 지표 및 쿼리 실행에주의를 기울여야합니다. 1) 시스템 건강 모니터링 : CPU, 메모리, 디스크 I/O 및 네트워크 활동을 볼 수 있도록 상단, HTOP 또는 ShowGlobalStatus 명령을 사용하십시오. 2) 성능 표시기 추적 : 초당 쿼리 번호, 평균 쿼리 시간 및 캐시 적중률과 같은 주요 표시기를 모니터링합니다. 3) 쿼리 실행 최적화 확인 : 실행 시간이 설정 임계 값을 초과하는 쿼리를 느린 쿼리 로그를 활성화하고 기록 및 최적화하십시오.

MySQL과 Mariadb의 주요 차이점은 성능, 기능 및 라이센스입니다. 1. MySQL은 Oracle에 의해 개발되었으며 Mariadb는 포크입니다. 2. MariaDB는 높은 하중 환경에서 더 나은 성능을 발휘할 수 있습니다. 3. Mariadb는 더 많은 스토리지 엔진과 기능을 제공합니다. 4.MySQL은 듀얼 라이센스를 채택하고 MariaDB는 완전히 오픈 소스입니다. 선택할 때 기존 인프라, 성능 요구 사항, 기능 요구 사항 및 라이센스 비용을 고려해야합니다.

MySQL은 GPL 라이센스를 사용합니다. 1) GPL 라이센스는 MySQL의 무료 사용, 수정 및 분포를 허용하지만 수정 된 분포는 GPL을 준수해야합니다. 2) 상업용 라이센스는 공개 수정을 피할 수 있으며 기밀이 필요한 상업용 응용 프로그램에 적합합니다.

MyISAM 대신 InnoDB를 선택할 때의 상황에는 다음이 포함됩니다. 1) 거래 지원, 2) 높은 동시성 환경, 3) 높은 데이터 일관성; 반대로, MyISAM을 선택할 때의 상황에는 다음이 포함됩니다. 1) 주로 읽기 작업, 2) 거래 지원이 필요하지 않습니다. InnoDB는 전자 상거래 플랫폼과 같은 높은 데이터 일관성 및 트랜잭션 처리가 필요한 응용 프로그램에 적합하지만 MyISAM은 블로그 시스템과 같은 읽기 집약적 및 트랜잭션이없는 애플리케이션에 적합합니다.

MySQL에서 외국 키의 기능은 테이블 간의 관계를 설정하고 데이터의 일관성과 무결성을 보장하는 것입니다. 외국 키는 참조 무결성 검사 및 계단식 작업을 통해 데이터의 효과를 유지합니다. 성능 최적화에주의를 기울이고 사용할 때 일반적인 오류를 피하십시오.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

WebStorm Mac 버전
유용한 JavaScript 개발 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.
