Oracle服务器由Oracle实例与Oracle数据库组成Oracle实例(instance),通过ORACLE_SID来引导(Oracle标识)单实例情况下:Oracle数据库名与Oracle实例名相同且具
Oracle 服务器由Oracle实例与Oracle数据库组成
Oracle实例(instance),通过ORACLE_SID来引导(Oracle标识)
单实例情况下:Oracle数据库名与Oracle实例名相同且具有唯一性
举例:
三国中,关羽使用青龙偃月刀,吕布使用方天画戟,这就是唯一性身份标识(连游戏里都有攻击力加成甚至其他特殊效果,别不承认,哈哈),那么青龙偃月刀和方天画戟分别是两个独立的库,美国空间,他们的ORACLE_SID就分别是关羽和吕布。
另一种情况下,关羽与吕布的坐骑都是赤兔马(貂蝉不算哈,额,貂蝉,有木有),此时赤兔做为唯一库名,但是同时被关羽和吕布两个SID实例调用,因此赤兔马属于RAC(实时应用集群,具有LB+HA双层功效)
单实例情况下,instance(sid)名与数据库是一致的(查询出的库名与表名默认都是大写形式,这是正常的)
RAC集群的第一个节点
RAC集群的第二个节点(可以明显看到,虽然实例名不同,但是库名是一样的,因此,RAC是一个多实例单库的集群数据库模式)
Oracle数据库结构包括内存结构、进程结构、存储结构
Oracle实例等于SGA + 后台进程
Oracle内存结构
上面的图就说明了Oracle的内存结构,其中最重要的两个区域就是SGA与PGA
系统全局区(SGA):由所有服务器进程和后台进程共享
程序全局区(PGA):专用于每一个服务器进程或后台进程。每一个进程使用一个PGA
SGA 是包含实例的数据和控制信息的内存区。
SGA 包含以下数据结构:
数据库缓冲区高速缓存:缓存从数据库检索的数据块
重做日志缓冲区:高速缓存重做信息(用于实例恢复),直到可以将其写入磁盘中存储的物理重做日志文件
共享池:缓存可在用户间共享的各个结构
大型池:是一个可选区域,可为某些大型进程(如Oracle 备份和恢复操作、I/O 服务器进程)提供大量内存分配
Java 池:用于Java 虚拟机(JVM) 中特定会话的所有Java 代码和数据
Streams 池:由Oracle Streams 使用
通过使用Enterprise Manager 或SQL*Plus 启动实例,可以显示为SGA 分配的内存量。
下面具体说一下SGA里的几个重要的池
共享池(Shared_Pool):Oracle会将用户提交来的SQL语句都缓存在内存中。每次处理新的一条SQL语句时,都会先在内存中查看是否有相同的SQL语句。如果相同则可以减少最重要的解析工作(也就是生成执行计划),从而节省了大量的资源;反之,如果没有找到相同的SQL语句,则必须重新从头到尾进行完整的解析过程。这部分存放SQL语句的内存就叫做共享池(Shared Pool)。当然,Shared Pool里不仅仅是SQL语句,还包括管理Shared Pool的内存结构以及执行计划、控制信息等等内存结构。
数据库缓冲区高速缓存(Buffer_Cache):Buffer Cache所能提供的功能主要包括(一些频繁查询的热表可以考虑放在这个区域,这就像现在最火的固态硬盘一个道理,但是频繁DML操作的表不建议放入此处)
通过缓存数据块,从而减少I/O;
通过构造CR块,从而提供读一致性功能;
通过提供各种Lock、Latch机制,从而提供多个进程并发访问同一个数据块的功能。
重做日志缓冲区(Log_Buffer):Oracle这种数据库最好的一个运作机制在于先写日志后操作,这样能够有效的确定你运行到了哪一步,方便故障排查与恢复。
为了临时存放所产生的日志信息,Oracle在SGA中开辟了一块内存区域。这块区域就叫做日志缓冲区(Log Buffer),当满足一定条件以后,Oracle会使用名为LGWR的后台进程将Log Buffer中的日志信息写入联机日志文件里。
在10g以后的Oracle版本中,有两个参数可以动态的调整SGA的大小,否则就需要自行设置每个池子的大小(当然,Oracle官方有一套科学的算法)
10g数据库有如下两个参数(在初始化参数文件中设置)
SGA_MAX_SIZE(允许的最大的SGA大小)
SGA_TARGET(SGA分配大小)
到了11g以后不仅可以自动配置SGA,也同时可以分配所有内存了,有如下两个参数(在初始化参数文件中设置)
MEMORY_MAX_TARGET(允许的最大的内存大小)
MEMORY_TARGET(内存分配大小)
进程结构
Oracle的进程包括了上图所述几个主要种类的进程,这里主要说一下后台进程
系统监视器(SMON):出现故障后,在启动实例时执行崩溃恢复任务
进程监视器(PMON):用户进程失败时执行进程清理任务
数据库写进程(DBWn):将修改后的块从数据库缓冲区高速缓存写入磁盘中的数据文件
检查点(CKPT):通过更新数据库的所有数据文件和控制文件指出最新的检查点
日志写进程(LGWR):将重做日志条目写入磁盘
归档进程(ARCn):发生日志切换时将重做日志文件复制到归档存储器
上图包括了所有的后台进程(MMON和MMNL是AWR报告的支持进程),其他一些进程不做详细解释
Oracle存储结构
上图是一个Oracle的物理存储结构
构成Oracle 数据库的文件可分为以下几类:
控制文件:包含有关数据库本身的数据(即物理数据库的结构信息)。这些文件对数据库而言至关重要。没有这些文件,就无法打开用于访问数据库数据的数据文件。
数据文件:包含数据库中的用户数据或应用程序数据。
联机重做日志文件:可用来实现数据库实例恢复。如果数据库已崩溃但未丢失任何数据文件,那么使用这些文件中的信息可以通过实例恢复数据库。
要成功运行数据库,以下附加文件非常重要:
参数文件:用于定义启动实例时如何配置实例。
口令文件:允许用户远程连接到数据库并执行管理任务。
备份文件:用于恢复数据库。当因介质故障或用户错误而损坏或删除了原始文件时,通常需要还原备份文件。
归档日志文件:包含实例生成的数据更改(重做)的实时历史记录。
使用这些文件和数据库备份可以恢复丢失的数据文件。也就是说,使用归档日志可以恢复还原的数据文件。

이 기사에서는 MySQL의 "공유 라이브러리를 열 수 없음"오류를 다룹니다. 이 문제는 MySQL이 필요한 공유 라이브러리 (.so/.dll 파일)를 찾을 수 없음에서 비롯됩니다. 솔루션은 시스템 패키지 M을 통한 라이브러리 설치 확인과 관련이 있습니다.

이 기사는 Docker에서 MySQL 메모리 사용을 최적화합니다. 모니터링 기술 (Docker Stats, Performance Schema, 외부 도구) 및 구성 전략에 대해 설명합니다. 여기에는 Docker 메모리 제한, 스와핑 및 CGroups와 함께 포함됩니다

이 기사는 MySQL의 Alter Table 문을 사용하여 열 추가/드롭 테이블/열 변경 및 열 데이터 유형 변경을 포함하여 테이블을 수정하는 것에 대해 설명합니다.

이 기사는 Linux에 MySQL을 직접 설치하는 것과 Phpmyadmin이없는 Podman 컨테이너 사용을 비교합니다. 각 방법에 대한 설치 단계에 대해 자세히 설명하면서 Podman의 격리, 이식성 및 재현성의 장점을 강조하지만 또한

이 기사는 자체 포함 된 서버리스 관계형 데이터베이스 인 SQLITE에 대한 포괄적 인 개요를 제공합니다. SQLITE의 장점 (단순성, 이식성, 사용 용이성) 및 단점 (동시성 제한, 확장 성 문제)에 대해 자세히 설명합니다. 기음

기사는 인증서 생성 및 확인을 포함하여 MySQL에 대한 SSL/TLS 암호화 구성에 대해 설명합니다. 주요 문제는 자체 서명 인증서의 보안 영향을 사용하는 것입니다. [문자 수 : 159]

이 안내서는 Homebrew를 사용하여 MacOS에 여러 MySQL 버전을 설치하고 관리하는 것을 보여줍니다. 홈 브루를 사용하여 설치를 분리하여 갈등을 방지하는 것을 강조합니다. 이 기사에는 설치, 서비스 시작/정지 서비스 및 Best Pra에 대해 자세히 설명합니다

기사는 MySQL Workbench 및 Phpmyadmin과 같은 인기있는 MySQL GUI 도구에 대해 논의하여 초보자 및 고급 사용자를위한 기능과 적합성을 비교합니다. [159 자].


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

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

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

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

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

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)
