重复数据删除能够最大程度地减少存储需求、加速备份和恢复、降低网络流量,从而显著改善数据库环境。 但在发布 DB2 v9.7 FixPack 3 之前,如果需要为重复数据删除设备优化 DB2 备份映像,则必须合理地设置多个 BACKUP DATABASE 命令选项。否则,备份目标的重
重复数据删除能够最大程度地减少存储需求、加速备份和恢复、降低网络流量,从而显著改善环境。
但在发布 DB2 v9.7 FixPack 3 之前,如果需要为重复数据删除设备优化 DB2 备份映像,则必须合理地设置多个 BACKUP DATABASE 命令选项。否则,备份目标的重复数据删除设备很可能无法使用您生成的数据流来识别冗余的数据“块”。为了简化将 DB2 数据库备份到重复数据删除设备的过程(同时提高删除备份映像中重复数据的效率),IBM 在 DB2 v9.7 FixPack 3 中为 BACKUP DATABASE 命令引入了 DEDUP_DEVICE 选项,并在 FixPack 4 中改进了该选项的行为。在这篇专栏文章中,我将介绍重复数据删除是什么,以及重复数据删除的常见实现方法。此外,我还会介绍如何执行 DB2 备份操作,包括如何在指定了 BACKUP DATABASE 命令的 DEDUP_DEVICE 选项时执行此操作,以及如何在未指定此选项时执行该操作。最后,我会提供一些建议:如果您使用 DB2 v9.7 FixPack 4 以外的版本,应该如何为重复数据删除设备优化 DB2 备份映像。
重复数据删除是什么?它是如何实现的?
重复数据删除(有时也称为“智能压缩”或者“单实例存储”)是一种特殊的数据压缩形式,旨在消除冗余数据。与其他压缩形式类似,重复数据删除的工作方式是检查数据,识别具有等同字节模式的部分。如果发现此类模式,则会仅将数据的单独一个惟一实例写入存储;将出现的重复实例替换为“数据指针”,引用之前存储的版本。考虑到相同的字节模式可能会出现数十次、数百次乃至数千次,使用重复数据删除设备之后,需要物理存储的数据量可能会大幅减少。
例如,假设一个电子邮件系统包含某个 4 MB 附件的 100 个完全相同的实例。如果在未使用重复数据删除的情况下备份这个电子邮件系统,保存该附件的全部 100 个实例,那么需要 400 MB 的存储空间。然而,如果将相同的电子邮件系统备份到重复数据删除设备,那么实际上仅储存了附件的一个实例,后续出现的每个实例仅引用已保存的副本。这样,备份该系统所需的 400 MB 存储空间就会缩减为 4 MB!
如前所述,大多数重复数据删除设备的工作方式都是对比相对较大的数据“块”,例如整个文件或者文件中较大的部分。设备会为所检查的每个块指派一个标识符,这个标识符通常使用加密散列函数计算得出。很多实现都假设:如果标识符等同,则对应的数据也等同。其他一些实现摒弃了这种假设,而是执行逐个字节的对比,验证标识符相同的数据是否确实相同。无论如何,如果确定某个特定的数据块在删除了重复数据的命名空间内已经存在,就会使用一个指向已存储数据的链接取代该数据块。随后,在访问删除了重复数据的数据时,如果遇到链接,就会将该链接替换为它所指向的数据。当然,整个过程对于最终用户和应用程序都是透明的。
通常情况下,重复数据删除通过两种方法之一执行:“内联”或“后处理”。使用内联重复数据删除时,会在将数据写入磁盘之前执行散列计算和查找。这样,内联重复数据删除能够显著减少所需的原始磁盘容量,因为任何未经过重复数据删除处理的数据均不会写入磁盘。出于这方面的原因,内联重复数据删除往往被视为最有效、最经济的重复数据删除方法。尽管某些内联重复数据删除解决方案供应商已经能实现与后处理重复数据删除水平相当的性能,但由于内联重复数据删除需要耗费时间来执行散列计算和查找,因此会减缓某些操作的速度。
对于后处理重复数据删除,所有数据会在重复数据删除过程开始之前写入磁盘。这种方法的优势在于,无需在存储数据之前等待散列计算和查找完成。缺点在于,必须暂时将重复数据写入存储,因此需要的初始存储量更多一些。这种方法也会延长完成重复数据删除的延迟时间。
传统 DB2 备份操作的工作方式
为了理解 BACKUP DATABASE 命令的 DEDUP_DEVICE 选项如何为重复数据删除设备优化 DB2 备份映像,最好先了解一下发起备份操作时,数据通常会得到怎样的处理。在 DB2 备份操作开始时,会启动一个或多个缓冲区操作器 db2bm 线程。这些线程负责访问数据库中的数据,并将它们以流程方式传送至一个或多个备份缓冲区。另外还会启动一个或多个介质控制器 db2med 线程。这些线程负责将备份缓冲区中的数据写入目标备份设备上的文件。(所用的 db2bm 线程数量由 BACKUP DATABASE 命令的 PARALLELISM 选项控制;所用的 db2med 线程数量由 OPEN n SESSIONS 选项控制。)最终,将指派一个 DB2 代理 db2agent 线程负责指导缓冲区操作器线程与介质控制器线程之间的通信。图 1 展示了这个过程。
图1:DB2 备份流程模型。
通常情况下,会读取缓冲区操作器 db2bm 线程检索到的数据,并跨介质控制器 db2med 线程使用的所有输出流来多路复用这些数据,将数据置入输出流中的方式没有确定的模式。(图 2 展示了这种行为。)因此,在将输出流导向重复数据删除设备时,设备会尝试识别已经备份的数据块,这会造成了某些问题。
图 2:默认数据库备份行为。请注意,表空间的元数据会出现在输出流中,先于该表空间的任何数据,空区段永远不会置入输出流。

저장된 절차는 성능을 향상시키고 복잡한 작업을 단순화하기 위해 MySQL에서 사전 컴파일 된 SQL 문입니다. 1. 성능 향상 : 첫 번째 편집 후 후속 통화를 다시 컴파일 할 필요가 없습니다. 2. 보안 향상 : 권한 제어를 통해 데이터 테이블 액세스를 제한합니다. 3. 복잡한 작업 단순화 : 여러 SQL 문을 결합하여 응용 프로그램 계층 로직을 단순화합니다.

MySQL 쿼리 캐시의 작동 원리는 선택 쿼리 결과를 저장하는 것이며 동일한 쿼리가 다시 실행되면 캐시 된 결과가 직접 반환됩니다. 1) 쿼리 캐시는 데이터베이스 읽기 성능을 향상시키고 해시 값을 통해 캐시 된 결과를 찾습니다. 2) MySQL 구성 파일에서 간단한 구성, query_cache_type 및 query_cache_size를 설정합니다. 3) SQL_NO_CACHE 키워드를 사용하여 특정 쿼리의 캐시를 비활성화하십시오. 4) 고주파 업데이트 환경에서 쿼리 캐시는 성능 병목 현상을 유발할 수 있으며 매개 변수의 모니터링 및 조정을 통해 사용하기 위해 최적화해야합니다.

MySQL이 다양한 프로젝트에서 널리 사용되는 이유에는 다음이 포함됩니다. 1. 고성능 및 확장 성, 여러 스토리지 엔진을 지원합니다. 2. 사용 및 유지 관리, 간단한 구성 및 풍부한 도구; 3. 많은 지역 사회 및 타사 도구 지원을 유치하는 풍부한 생태계; 4. 여러 운영 체제에 적합한 크로스 플랫폼 지원.

MySQL 데이터베이스를 업그레이드하는 단계에는 다음이 포함됩니다. 1. 데이터베이스 백업, 2. 현재 MySQL 서비스 중지, 3. 새 버전의 MySQL 설치, 4. 새 버전의 MySQL 서비스 시작, 5. 데이터베이스 복구. 업그레이드 프로세스 중에 호환성 문제가 필요하며 Perconatoolkit과 같은 고급 도구를 테스트 및 최적화에 사용할 수 있습니다.

MySQL 백업 정책에는 논리 백업, 물리적 백업, 증분 백업, 복제 기반 백업 및 클라우드 백업이 포함됩니다. 1. 논리 백업은 MySQLDump를 사용하여 데이터베이스 구조 및 데이터를 내보내며 소규모 데이터베이스 및 버전 마이그레이션에 적합합니다. 2. 물리적 백업은 데이터 파일을 복사하여 빠르고 포괄적이지만 데이터베이스 일관성이 필요합니다. 3. 증분 백업은 이진 로깅을 사용하여 변경 사항을 기록합니다. 이는 큰 데이터베이스에 적합합니다. 4. 복제 기반 백업은 서버에서 백업하여 생산 시스템에 미치는 영향을 줄입니다. 5. AmazonRDS와 같은 클라우드 백업은 자동화 솔루션을 제공하지만 비용과 제어를 고려해야합니다. 정책을 선택할 때 데이터베이스 크기, 가동 중지 시간 허용 오차, 복구 시간 및 복구 지점 목표를 고려해야합니다.

mysqlclusteringenhancesdatabaserobustness andscalabilitydaturedingdataacrossmultiplenodes.itusesthendbenginefordatareplicationandfaulttolerance, highavailability를 보장합니다

MySQL에서 데이터베이스 스키마 설계 최적화는 다음 단계를 통해 성능을 향상시킬 수 있습니다. 1. 인덱스 최적화 : 공통 쿼리 열에서 인덱스 생성, 쿼리의 오버 헤드 균형 및 업데이트 삽입. 2. 표 구조 최적화 : 정규화 또는 정상화를 통한 데이터 중복성을 줄이고 액세스 효율을 향상시킵니다. 3. 데이터 유형 선택 : 스토리지 공간을 줄이기 위해 Varchar 대신 Int와 같은 적절한 데이터 유형을 사용하십시오. 4. 분할 및 하위 테이블 : 대량 데이터 볼륨의 경우 파티션 및 하위 테이블을 사용하여 데이터를 분산시켜 쿼리 및 유지 보수 효율성을 향상시킵니다.

tooptimizemysqlperformance, followthesesteps : 1) 구현 properIndexingToSpeedUpqueries, 2) useExplaintoAnalyzeanDoptimizeQueryPerformance, 3) AdvertServerConfigUrationSettingstingslikeInnodb_buffer_pool_sizeandmax_connections, 4) uspartOflEtOflEtOflestoI


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.
