news 2026/6/10 14:03:04

Oracle 19c入门学习教程,从入门到精通,Oracle体系结构 —— 知识点详解(2)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Oracle 19c入门学习教程,从入门到精通,Oracle体系结构 —— 知识点详解(2)

Oracle体系结构

一、需求理解

基于Oracle 19c第2章“Oracle体系结构”的核心内容(涵盖逻辑/物理存储结构、服务器结构、数据字典等),整理一份包含Oracle安装过程、体系结构相关核心语法知识点及使用方法的教程,每个知识点配套带详细注释的案例代码,并补充综合性实操案例,确保内容具体、全面且可落地。

二、核心知识点及实操指南

前置:Oracle 19c 安装(Linux静默安装,快速落地)
1.1 安装前置配置(Root用户)
# 1. 安装依赖包yuminstall-y binutils gcc gcc-c++ libaio-devel sysstat ksh compat-libcap1 libnsl.x86_64# 2. 创建用户和组groupaddoinstallgroupadddbauseradd-g oinstall -G dba oraclepasswdoracle# 设置密码(如oracle123)# 3. 创建安装目录并授权mkdir-p /u01/app/oracle/product/19c/dbhome_1chown-R oracle:oinstall /u01chmod-R775/u01# 4. 配置内核参数(修改/etc/sysctl.conf)cat>>/etc/sysctl.conf<<EOF fs.file-max = 6815744 kernel.sem = 250 32000 100 128 kernel.shmmni = 4096 kernel.shmall = 1073741824 kernel.shmmax = 4398046511104 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 net.ipv4.ip_local_port_range = 9000 65500 EOFsysctl -p# 生效内核参数# 5. 配置资源限制(修改/etc/security/limits.conf)cat>>/etc/security/limits.conf<<EOF oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 EOF
1.2 静默安装(Oracle用户)
su- oracle# 1. 解压安装包(假设安装包在/home/oracle目录)unzipLINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19c/dbhome_1/# 2. 编写响应文件cat>/u01/app/oracle/product/19c/dbhome_1/response/db_install.rsp<<EOF oracle.install.option=INSTALL_DB_SWONLY ORACLE_BASE=/u01/app/oracle ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1 UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oraInventory SELECTED_LANGUAGES=en,zh_CN ORACLE_HOSTNAME=localhost oracle.install.db.InstallEdition=EE oracle.install.db.OSDBA_GROUP=dba oracle.install.db.OSOPER_GROUP=oinstall DECLINE_SECURITY_UPDATES=true EOF# 3. 执行安装cd/u01/app/oracle/product/19c/dbhome_1/ ./runInstaller -silent -responseFile /u01/app/oracle/product/19c/dbhome_1/response/db_install.rsp -ignorePrereq# 4. 执行Root脚本(安装完成后提示)# 切换到Root用户执行:# /u01/app/oraInventory/orainstRoot.sh# /u01/app/oracle/product/19c/dbhome_1/root.sh# 5. 配置环境变量cat>>~/.bash_profile<<EOF export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=\$ORACLE_BASE/product/19c/dbhome_1 export ORACLE_SID=orcl export PATH=\$ORACLE_HOME/bin:\$PATHexport LD_LIBRARY_PATH=\$ORACLE_HOME/lib:\$LD_LIBRARY_PATHEOFsource~/.bash_profile
知识点1:逻辑存储结构(表空间/段/区/数据块)
1.1 核心概念
  • 数据块(Block):Oracle最小I/O单位(默认8KB),是数据存储的最小单元;
  • 数据区(Extent):连续的数据块集合,是分配给段的最小存储单位;
  • 段(Segment):表、索引、回滚等对象占用的存储空间(由多个区组成);
  • 表空间(Tablespace):逻辑存储容器,对应物理数据文件,一个表空间可包含多个段。
1.2 核心语法及案例(表空间管理)
-- 登录SQL*Plus(SYSDBA权限)CONNECT/ASSYSDBA;-- ==================== 1. 创建表空间(关联物理数据文件) ====================-- 创建永久表空间(用于存储业务数据),指定数据块大小、区管理方式CREATETABLESPACETS_BUSINESS DATAFILE'/u01/app/oracle/oradata/orcl/ts_business01.dbf'-- 物理数据文件路径SIZE100M-- 初始大小100MBAUTOEXTENDONNEXT50M MAXSIZE UNLIMITED-- 自动扩展,每次50MB,无上限BLOCKSIZE8K-- 数据块大小(默认8K,需与数据库块一致)EXTENT MANAGEMENTLOCALAUTOALLOCATE;-- 本地区管理(推荐),自动分配区-- 注释:-- EXTENT MANAGEMENT LOCAL:本地区管理(替代字典管理,性能更高)-- AUTOALLOCATE:Oracle自动分配区大小(适合大多数场景)-- 若为固定区大小,可替换为:UNIFORM SIZE 1M-- ==================== 2. 创建表并指定表空间(段落地) ====================CREATETABLEEMPLOYEE(EMP_ID NUMBER(6)PRIMARYKEY,EMP_NAME VARCHAR2(50)NOTNULL,SALARY NUMBER(8,2))TABLESPACETS_BUSINESS;-- 指定表存储在TS_BUSINESS表空间(段属于该表空间)-- ==================== 3. 表空间扩容 ====================-- 方式1:新增数据文件ALTERTABLESPACETS_BUSINESSADDDATAFILE'/u01/app/oracle/oradata/orcl/ts_business02.dbf'SIZE50M AUTOEXTENDONNEXT20M MAXSIZE200M;-- 方式2:扩展现有数据文件ALTERDATABASEDATAFILE'/u01/app/oracle/oradata/orcl/ts_business01.dbf'RESIZE200M;-- ==================== 4. 查询表空间信息(数据字典) ====================-- 查询所有表空间及状态SELECTTABLESPACE_NAME,STATUS,CONTENTSFROMDBA_TABLESPACESWHERETABLESPACE_NAME='TS_BUSINESS';-- 查询表空间对应的数据文件SELECTFILE_NAME,BYTES/1024/1024ASSIZE_MB,AUTOEXTENSIBLEFROMDBA_DATA_FILESWHERETABLESPACE_NAME='TS_BUSINESS';-- ==================== 5. 删除表空间(含数据文件) ====================DROPTABLESPACETS_BUSINESS INCLUDING CONTENTSANDDATAFILES;-- 同时删除内容和物理数据文件
知识点2:物理存储结构(数据文件/控制文件/日志文件)
2.1 核心概念
  • 数据文件:存储表、索引等实际数据(对应表空间);
  • 控制文件:存储数据库元数据(表空间、数据文件、日志文件位置等),至关重要;
  • 日志文件(重做日志):记录数据库修改操作,用于恢复,分联机重做日志、归档日志;
  • 参数文件(SPFILE):存储数据库参数(如内存大小、实例名),二进制格式,动态生效。
2.2 核心语法及案例
CONNECT/ASSYSDBA;-- ==================== 1. 管理数据文件 ====================-- 查看所有数据文件SELECTFILE_NAME,TABLESPACE_NAME,STATUSFROMDBA_DATA_FILES;-- 离线/在线数据文件(维护用)ALTERDATABASEDATAFILE'/u01/app/oracle/oradata/orcl/ts_business01.dbf'OFFLINE;ALTERDATABASEDATAFILE'/u01/app/oracle/oradata/orcl/ts_business01.dbf'ONLINE;-- ==================== 2. 管理控制文件 ====================-- 查看控制文件位置SHOWPARAMETER CONTROL_FILES;-- 新增控制文件(需先关闭数据库,复制物理文件,再修改参数)-- 1. 关闭数据库SHUTDOWNIMMEDIATE;-- 2. 复制控制文件到新路径(操作系统层面,oracle用户)-- cp /u01/app/oracle/oradata/orcl/control01.ctl /u01/app/oracle/oradata/orcl/control02.ctl-- 3. 修改参数文件ALTERSYSTEMSETCONTROL_FILES='/u01/app/oracle/oradata/orcl/control01.ctl','/u01/app/oracle/oradata/orcl/control02.ctl'SCOPE=SPFILE;-- 4. 启动数据库STARTUP;-- ==================== 3. 管理重做日志文件 ====================-- 查看重做日志组及成员SELECTGROUP#, MEMBER, STATUSFROMV$LOGFILE;-- 查看重做日志状态SELECTGROUP#, STATUS, ARCHIVEDFROMV$LOG;-- 创建重做日志组ALTERDATABASEADDLOGFILEGROUP4('/u01/app/oracle/oradata/orcl/redo04.log')SIZE50M;-- 切换重做日志(手动触发日志切换)ALTERSYSTEM SWITCH LOGFILE;-- 删除重做日志组(需确保组未被使用)ALTERDATABASEDROPLOGFILEGROUP4;-- 删除物理文件(操作系统层面)-- rm /u01/app/oracle/oradata/orcl/redo04.log-- ==================== 4. 管理服务器参数文件(SPFILE) ====================-- 查看SPFILE位置SHOWPARAMETER SPFILE;-- 动态修改参数(立即生效,重启后保留)ALTERSYSTEMSETSGA_MAX_SIZE=2G SCOPE=BOTH;-- SCOPE=BOTH:内存+SPFILEALTERSYSTEMSETPGA_AGGREGATE_TARGET=512M SCOPE=SPFILE;-- 仅修改SPFILE,重启生效-- 从SPFILE创建文本参数文件(PFILE)CREATEPFILEFROMSPFILE;-- 从PFILE创建SPFILECREATESPFILEFROMPFILE='/u01/app/oracle/product/19c/dbhome_1/dbs/initorcl.ora';
知识点3:Oracle服务器结构(SGA/PGA/进程/数据字典)
3.1 核心概念
  • SGA(系统全局区):共享内存区域,包含数据库缓冲区、共享池、重做日志缓冲区等;
  • PGA(程序全局区):私有内存区域,每个会话/进程独占,用于排序、哈希连接等;
  • 后台进程:DBWn(写数据文件)、LGWR(写重做日志)、CKPT(检查点)、SMON(系统监控)、PMON(进程监控)等;
  • 数据字典:Oracle内置表/视图,存储数据库元数据(如DBA_TABLES、V$INSTANCE)。
3.2 核心语法及案例
CONNECT/ASSYSDBA;-- ==================== 1. 查看SGA/PGA配置 ====================-- 查看SGA各组件大小SELECTCOMPONENT,CURRENT_SIZE/1024/1024ASSIZE_MBFROMV$SGA_DYNAMIC_COMPONENTS;-- 查看PGA使用情况SELECTROUND(PGA_USED_MEM/1024/1024,2)ASUSED_MB,ROUND(PGA_ALLOCATED_MEM/1024/1024,2)ASALLOCATED_MBFROMV$PGASTATWHERECATEGORY='total';-- 修改SGA大小(需重启生效)ALTERSYSTEMSETSGA_TARGET=1G SCOPE=SPFILE;-- ==================== 2. 查看后台进程 ====================-- 查看所有后台进程SELECTNAME,DESCRIPTIONFROMV$BGPROCESSWHEREPADDR!='00';-- 查看进程状态(操作系统层面,oracle用户)-- ps -ef | grep ora_ | grep -v grep-- ==================== 3. 数据字典查询(核心) ====================-- 1. 查看用户表信息SELECTTABLE_NAME,TABLESPACE_NAME,NUM_ROWSFROMDBA_TABLESWHEREOWNER='SYS'ANDTABLE_NAME='EMPLOYEE';-- 2. 查看用户权限SELECTGRANTEE,PRIVILEGE,ADMIN_OPTIONFROMDBA_SYS_PRIVSWHEREGRANTEE='SYSTEM';-- 3. 查看实例状态SELECTINSTANCE_NAME,STATUS,VERSIONFROMV$INSTANCE;-- 4. 查看数据库版本SELECT*FROMV$VERSION;-- 5. 查看警告日志位置(跟踪文件/警告文件)SELECTVALUEFROMV$DIAG_INFOWHERENAME='Diag Trace';-- 跟踪文件目录SELECTVALUEFROMV$DIAG_INFOWHERENAME='Alert Log';-- 警告日志路径

三、综合性案例:Oracle体系结构全流程实操

案例目标

整合“表空间管理+物理文件配置+内存调整+数据字典查询”,搭建一个规范的业务表存储环境,并监控服务器结构状态。

完整实操代码
-- ==================== 阶段1:创建表空间(逻辑+物理存储) ====================CONNECT/ASSYSDBA;-- 1. 创建业务表空间(指定数据文件、自动扩展)CREATETABLESPACETS_SALES DATAFILE'/u01/app/oracle/oradata/orcl/ts_sales01.dbf'SIZE200M AUTOEXTENDONNEXT50M MAXSIZE500M EXTENT MANAGEMENTLOCALUNIFORM SIZE2M;-- 固定区大小2MB-- 2. 创建索引表空间(单独存储索引,提升性能)CREATETABLESPACETS_SALES_IDX DATAFILE'/u01/app/oracle/oradata/orcl/ts_sales_idx01.dbf'SIZE100M AUTOEXTENDONNEXT20M MAXSIZE300M;-- ==================== 阶段2:创建业务表和索引(段落地) ====================-- 1. 创建销售表,指定表空间CREATETABLESALES(SALE_ID NUMBER(10)PRIMARYKEY,PROD_NAME VARCHAR2(100)NOTNULL,SALE_DATEDATEDEFAULTSYSDATE,AMOUNT NUMBER(10,2))TABLESPACETS_SALES;-- 2. 创建索引,指定索引表空间CREATEINDEXIDX_SALES_DATEONSALES(SALE_DATE)TABLESPACETS_SALES_IDX;-- ==================== 阶段3:调整内存参数(SGA/PGA) ====================-- 1. 查看当前内存配置SHOWPARAMETER SGA_TARGET;SHOWPARAMETER PGA_AGGREGATE_TARGET;-- 2. 动态调整SGA和PGA(生产环境需根据服务器配置调整)ALTERSYSTEMSETSGA_TARGET=1536M SCOPE=BOTH;-- 1.5GALTERSYSTEMSETPGA_AGGREGATE_TARGET=768M SCOPE=BOTH;-- 768M-- ==================== 阶段4:监控存储和进程状态(数据字典) ====================-- 1. 查看表空间使用情况SELECTt.TABLESPACE_NAME,ROUND(d.TOTAL_SIZE/1024/1024,2)ASTOTAL_MB,ROUND((d.TOTAL_SIZE-f.FREE_SIZE)/1024/1024,2)ASUSED_MB,ROUND(f.FREE_SIZE/1024/1024,2)ASFREE_MB,ROUND((d.TOTAL_SIZE-f.FREE_SIZE)/d.TOTAL_SIZE*100,2)ASUSED_RATEFROM(SELECTTABLESPACE_NAME,SUM(BYTES)ASTOTAL_SIZEFROMDBA_DATA_FILESGROUPBYTABLESPACE_NAME)dJOIN(SELECTTABLESPACE_NAME,SUM(BYTES)ASFREE_SIZEFROMDBA_FREE_SPACEGROUPBYTABLESPACE_NAME)fONd.TABLESPACE_NAME=f.TABLESPACE_NAMEWHEREd.TABLESPACE_NAMEIN('TS_SALES','TS_SALES_IDX');-- 2. 查看后台进程状态SELECTNAME,PID,STATUSFROMV$PROCESS pJOINV$BGPROCESS bONp.ADDR=b.PADDRWHEREb.NAMEISNOTNULL;-- 3. 查看重做日志状态SELECTGROUP#, STATUS, BYTES/1024/1024 AS SIZE_MBFROMV$LOG;-- ==================== 阶段5:维护操作(表空间扩容+日志切换) ====================-- 1. 给销售表空间新增数据文件ALTERTABLESPACETS_SALESADDDATAFILE'/u01/app/oracle/oradata/orcl/ts_sales02.dbf'SIZE100M AUTOEXTENDONNEXT30M MAXSIZE UNLIMITED;-- 2. 手动切换重做日志ALTERSYSTEM SWITCH LOGFILE;-- 3. 查看警告日志(确认无异常)SELECTMESSAGE_TEXTFROMV$DIAG_ALERT_EXTWHEREORIGINATING_TIMESTAMP>SYSDATE-1/24-- 近1小时ANDSEVERITY>='WARNING';

四、总结

  1. 存储结构核心:逻辑存储(表空间→段→区→数据块)是Oracle数据组织的核心,表空间需关联物理数据文件,推荐使用本地区管理;
  2. 物理文件管理:控制文件需多副本备份,重做日志建议分组且大小适中,参数文件(SPFILE)支持动态修改参数;
  3. 服务器结构监控:通过数据字典(VS G A D Y N A M I C C O M P O N E N T S 、 V SGA_DYNAMIC_COMPONENTS、VSGADYNAMICCOMPONENTSVBGPROCESS等)可监控SGA/PGA、进程状态,是运维的核心手段;
  4. 安装关键:Linux下Oracle 19c静默安装需先配置依赖、内核参数和用户,响应文件需指定ORACLE_BASE/ORACLE_HOME等核心路径。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/29 7:50:32

C++类型判断

一、编译期类型判断&#xff08;静态类型检查&#xff09;这类判断在编译阶段完成&#xff0c;零运行时开销&#xff0c;主要用于模板编程、类型萃取等场景。1. typeid 运算符&#xff08;基础&#xff09;typeid 可以获取类型信息&#xff0c;返回 std::type_info 对象&#x…

作者头像 李华
网站建设 2026/6/10 13:28:48

手把手教程:用通义千问2.5-7B和vLLM实现代码补全功能

手把手教程&#xff1a;用通义千问2.5-7B和vLLM实现代码补全功能 1. 学习目标与前置知识 本文将带领读者从零开始&#xff0c;使用 通义千问2.5-7B-Instruct 模型结合 vLLM 推理框架&#xff0c;搭建一个高效的本地化代码补全系统。通过本教程&#xff0c;您将掌握&#xff1…

作者头像 李华
网站建设 2026/5/30 6:59:56

提示工程架构师经验:如何用Prompt解决客服复杂问题?

提示工程架构师经验&#xff1a;如何用Prompt解决客服复杂问题&#xff1f; 一、引言&#xff1a;客服AI的「尴尬时刻」&#xff0c;你遇到过吗&#xff1f; 上周晚饭后&#xff0c;我帮妈妈处理网购纠纷——她买的养生壶收到时底座裂了&#xff0c;联系客服AI得到回复&#xf…

作者头像 李华
网站建设 2026/6/10 1:59:52

AnimeGANv2实战:动漫风格社交媒体广告

AnimeGANv2实战&#xff1a;动漫风格社交媒体广告 1. 引言 随着人工智能技术在图像生成领域的不断突破&#xff0c;将现实世界的照片转化为具有艺术风格的数字作品已成为可能。其中&#xff0c;AnimeGANv2 作为专为“照片转二次元动漫”设计的轻量级生成对抗网络&#xff08;…

作者头像 李华
网站建设 2026/6/7 6:20:17

AnimeGANv2如何实现美颜效果?人脸优化算法深度解析

AnimeGANv2如何实现美颜效果&#xff1f;人脸优化算法深度解析 1. 技术背景与问题提出 近年来&#xff0c;AI驱动的图像风格迁移技术在艺术化图像生成领域取得了显著进展。其中&#xff0c;将真实人物照片转换为二次元动漫风格的应用场景尤为受欢迎&#xff0c;广泛应用于社交…

作者头像 李华