数据库小技能:Oracle基础【上篇】

简介: QPS: 请求进入的速度 并发数: 系统中同时存在的请求数 并发数 = QPS * 耗时

引言

oracle默认端口为1521,根据需要修改。

I 预备知识

1.1 客户端配置

 other_db=
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 远程服务器IP或主机名)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = 全局数据库名)
    )
  )

登录

 sqlplus用名名/密码@网络服务名

1.2 连接到Oracle

  1. 专用服务器连接: 专用服务器为连接创建一个新的进程,客户端与这个专用服务器直接通信,并由这个专用服务器接收和执行SQL。

  • 共享服务器: 使用“共享进程”池为大量用户服务,实际上就是一种连接池机制。
客户端不能直接与共享服务器通信,调度器将客户请求放入请求队列,由共享服务器处理后,把响应放入原调度器的响应队列中,最后调度器把响应传回给客户。

1.3 文件系统机制

  • 操作系统(OS)文件系统: 文件存放在文 件系统中,操作系统中可以查看到这些文件。
  • 原始分区(raw partitions,也称裸分区): 不是文件,而是原始磁盘,没有文件系统。
  • 自动存储管理(Atuomatic Storage Management,ASM): Oracle 10g的新特性,ASM是专为数据库设计的文件系统

• 集群文件系统: 专用于RAC(集群)环境,集群中的多个节点共享的cooked文件系统。

II 逻辑存储结构

2.1 Oracle存储层次体系

  1. 数据库由一个或多个表空间组成,数据库默认有SYSTEM、SYSAUX、TEMP三个表空间。
  2. 表空间是一个逻辑存储容器,由一个或多个数据文件组成,表空间包含段。
  3. 段就是占用存储空间的数据库对象,由一个或多个区组成,段在表空间中,但是可以包含这个表空间中多个数据文件中的数据。
  4. 区是文件中一组逻辑连续的块,区段只在一个表空间中,而且总是在该表空间内的一个文件中。
  5. 块是数据库中最小的分配单位,也是数据库使用的最小I/O单位。
  6. 位(Bit):本地管理表空间的空间管理单位,一个位可能等于一个区间,也可能多个位组成一个区间。

2.2 表空间的管理模式

  • 字典管理表空间(Dictionary-Managed Tablespace): 由字典表管理区(extent)的分配,需要串行的查询、更改字典表,来获得空间。
当创建或删除对象时,Oracle的空间分配或回收是通过数据库中的数据字典表来记录和管理的,用于管理的两个数据字典表分别是: UET$(used extents-已使用的空间)和 FET$(free extents-空闲空间)。
  • 本地管理表空间(Locally Managed Tablespace):8i以后出现的一种新的表空间的管理模式,通过本地位图来管理表空间的空间使用。使用每个数据文件中存储的一个位图(Bitmap)来管理区,需要得到一个区,系统只需在位图中将某一位设置为1,释放空间,再设置为0。
Bit-map的基本思想就是用一个bit位来标记某个元素对应的Value,而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。

本地化管理,就是指Oracle不再利用数据字典表来记录Oracle表空间里面的区的使用状况,而是在每个表空间的数据文件的头部加入了一个位图区,在其中记录每个区的使用状况。每当一个区被使用,或者被释放以供重新使用时,Oracle都会更新数据文件头部的这个记录,反映这个变化。

本地化管理的表空间创建语法:

    CREATE TABLESPACE 表空间名字
    DATAFILE '数据文件详细信息'
    [EXTENT MANAGEMENT { LOCAL
    {AUTOALLOCATE | UNIFORM [SIZE INTETER [K|M]]}}] 
EXTENT MANAGEMENT LOCAL 指定这是一个本地化管理的表空间

AUTOALLOCATE,则表明让Oracle来决定区块的使用办法;

UNIFORM,则可以详细指定每个区块的大小,若不加指定,则为每个区使用1M大小。

  • 创建表空间的例子
create tablespace tbs_datdatafile'c:\oradata\tbs_dat.dbf' size 2000M;

本地化管理的优点:支持在一个表空间里边进行更多的并发操作,并减少了对数据字典的依赖。

  1. 避免了字典表空间一直头疼的碎片问题: 表空间里的区的大小可以选择由Oracle系统来决定,或者由数据库管理员指定一个统一的大小。
  2. 避免产生回滚信息: 从由数据字典来管理空闲块改为由数据文件的头部记录来管理空闲块,不再使用系统表空间里的回滚段。
  3. 减少了手工合并自由空间的需要: 区的本地化管理自动跟踪表空间里的空闲块
  4. 提高了空间管理的并发性: 本地化管理的表空间避免了在数据字典相应表里面写入空闲空间、已使用空间的信息。
  5. 本地化管理的表空间避免了递归的空间管理操作。而这种情况在数据字典管理的表空间是经常出现的,当表空间里的区的使用状况发生改变时,数据字典的表的信息发生改变,从而同时也使用了在系统表空间里的回滚段。
  • 扩充表空间大小
  1. 添加数据文件
alter tablespacetbs_datadddatafile 'c:\oradata\tbs_dat2.dbf' size100M;
  1. 改变数据文件大小
alter database datafile 'c:\oradata\tbs_dat.dbf' resize 2500M;
  1. 数据文件自动扩展大小
alter database datafile 'c:\oradata\tbs_dat.dbf' autoextend on next 1m maxsize 20m;
  • 修改表空间名称
alter tablespace tbs_datrename totbs_dat1;
  • 删除表空间
drop tablespacetbs_datincluding contents anddatafiles;
--and datafiles,表示同时也删除物理文件

2.3 段(segment)

段就是占用存储空间的数据库对象,如表、索引、回滚段等。
创建表时,会创建一个表段。
创建分区表时,每个分区会创建一个段。
创建索引时,会创建一个索引段。
依次类推,占用存储空间的每一个对象都会存储在一个段中,此外,还有回滚段(rollback segment)、临时段(temporary segment)、聚族段(cluster segment)、索引段(index segment)等。

create table T(id int primary key, content clob)

这里创建了四个段

  • 1个Table T的段
  • 1个索引段(主键会自动添加唯一索引)
  • 2个clob段(一个clob段是lob索引,一个段是lob数据本身)

2.4 区(extent)

区是文件中一个逻辑上连续分配的空间,即由一些连续分布的块组成,最大可以达到2GB。

2.5 块(block)

块是Oracle中最小的空间分配单位。
数据行、索引条目或临时排序结果就存储在块中,通常Oracle从磁盘读写的就是块。
块常见4种大小:2KB,4KB,8KB,16KB。

有些情况下32KB也可以,受操作系统限制。

III 物理存储结构

3.1 Oracle体系结构

  • 数据库 (Database):物理操作系统文件或磁盘(disk) 的集合
一个数据库可以由一个或多个实例(使用RAC)装载并打开

Oracle RAC是Oracle Real Application Cluster,一般有两台或者两台以上同构计算机及共享存储设备构成,可提供强大的数据库处理能力。

• 实例( instance):一组后台进程/线程和一个共享内存区

实例只能装载并打开一个数据库
  • 系统全局区SGA (System Global Area)是Oracle Instance的 基本组成部分,在实例启动时分配。是一组包含一个Oracle实例的数据和控制信息的共享内存结构。主要是用于存储数据库信息的内存区,该信息为数据库进程所共享。

每个实例都只有一个 SGA 区,当多个用户连接到同一实例时,这些用户进程、服务进程共享 SGA 区。包括 :

  1. 数据高速缓存区
  2. 字典缓存区
  3. 重做日志缓存区
  4. SQL共享池
  • 程序全局区PGA(PROCESS GLOBAL AREA)是一个内存区,包含单个进程的数据和控制信息,所以又称为进程全局区。

3.2 物理存储结构

主要是指在操作系统中,Oracle数据的存储和管理方式,它的组成包括:

  • 数据文件 (data file)
存储表、索引等实际数据的文件.一个表空间,可以有多个数据文件,一个数据文件,只能属于一个表空间
  • 控制文件 (control file)
存储数据库的物理结构等信息的文件。
  • 重做日志文件 (redo file)
记录数据库的修改操作和事务操作的文件
  • 其他文件

see also

  • QPS: 请求进入的速度
  • 并发数: 系统中同时存在的请求数
  • 并发数 = QPS * 耗时

gzh:iOS逆向

目录
相关文章
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
1018 93
|
12月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】使用NetManager创建Oracle数据库的监听器
Oracle NetManager是数据库网络配置工具,用于创建监听器、配置服务命名与网络连接,支持多数据库共享监听,确保客户端与服务器通信顺畅。
552 0
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
764 8
|
SQL Oracle 关系型数据库
比较MySQL和Oracle数据库系统,特别是在进行分页查询的方法上的不同
两者的性能差异将取决于数据量大小、索引优化、查询设计以及具体版本的数据库服务器。考虑硬件资源、数据库设计和具体需求对于实现优化的分页查询至关重要。开发者和数据库管理员需要根据自身使用的具体数据库系统版本和环境,选择最合适的分页机制,并进行必要的性能调优来满足应用需求。
683 11
|
Oracle 关系型数据库 数据库
数据库数据恢复—服务器异常断电导致Oracle数据库报错的数据恢复案例
Oracle数据库故障: 某公司一台服务器上部署Oracle数据库。服务器意外断电导致数据库报错,报错内容为“system01.dbf需要更多的恢复来保持一致性”。该Oracle数据库没有备份,仅有一些断断续续的归档日志。 Oracle数据库恢复流程: 1、检测数据库故障情况; 2、尝试挂起并修复数据库; 3、解析数据库文件; 4、导出并验证恢复的数据库文件。
|
缓存 监控 Oracle
|
存储 Oracle 关系型数据库
服务器数据恢复—光纤存储上oracle数据库数据恢复案例
一台光纤服务器存储上有16块FC硬盘,上层部署了Oracle数据库。服务器存储前面板2个硬盘指示灯显示异常,存储映射到linux操作系统上的卷挂载不上,业务中断。 通过storage manager查看存储状态,发现逻辑卷状态失败。再查看物理磁盘状态,发现其中一块盘报告“警告”,硬盘指示灯显示异常的2块盘报告“失败”。 将当前存储的完整日志状态备份下来,解析备份出来的存储日志并获得了关于逻辑卷结构的部分信息。
|
Oracle 安全 关系型数据库
【Oracle】使用Navicat Premium连接Oracle数据库两种方法
以上就是两种使用Navicat Premium连接Oracle数据库的方法介绍,希望对你有所帮助!
2873 28
|
存储 Oracle 关系型数据库
【赵渝强老师】Oracle RMAN的目录数据库
Oracle RMAN默认将备份元信息存储在控制文件中,但控制文件损坏或丢失会导致恢复失败,且备份增多会使控制文件无限增长。为解决这些问题,Oracle引入了RMAN目录数据库(Catalog Database),专门用于存储RMAN备份的元信息。使用目录数据库可提升备份管理效率,支持多数据库共享、长期备份历史记录存储,并可保存RMAN脚本。本文详细介绍了如何创建目录数据库、注册目标数据库及其操作步骤。
453 0
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle数据库的闪回表
本文介绍了Oracle数据库中的闪回表(Flashback Table)功能,它能够将表的数据快速恢复到特定时间点或系统改变号(SCN),无需备份。文章通过实战示例详细演示了如何使用闪回表恢复数据,包括授权、创建测试表、记录时间与SCN号、删除数据、启用行移动功能、执行闪回操作以及验证恢复结果等步骤。同时,还展示了如何通过触发器禁止插入操作,并在闪回过程中处理触发器的启用问题。文末附有视频讲解,帮助读者更好地理解闪回表的使用方法。
750 10

推荐镜像

更多