Oracle数据库实例及其相关概念
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle数据库实例及其相关概念相关的知识,希望对你有一定的参考价值。
参考技术A完整的Oracle数据库通常由两部分组成 Oracle数据库实例和数据库
)数据库是一系列物理文件的集合(数据文件 控制文件 联机日志 参数文件等)
)Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区
在启动Oracle数据库服务器时 实际上是在服务器的内存中创建一个Oracle实例(即在服务器内存中分配共享内存并创建相关的后台内存) 然后由这个Oracle数据库实例来访问和控制磁盘中的数据文件 Oracle有一个很大的内存快 成为全局区(SGA)
一 数据库 表空间 数据文件
数据库
数据库是数据集合 Oracle是一种数据库管理系统 是一种关系型的数据库管理系统
通常情况了我们称的 数据库 并不仅指物理的数据集合 他包含物理数据 数据库管理系统 也即物理数据 内存 操作系统进程的组合体
数据库的数据存储在表中 数据的关系由列来定义 即通常我们讲的字段 每个列都有一个列名 数据以行(我们通常称为记录)的方式存储在表中 表之间可以相互关联 以上就是关系模型数据库的一个最简单的描述
当然 Oracle也是提供对面象对象型的结构数据库的最强大支持 对象既可以与其它对象建立关系 也可以包含其它对象 关于OO型数据库 以后利用专门的篇幅来讨论 一般情况下我们的讨论都基于关系模型
表空间 文件
无论关系结构还是OO结构 Oracle数据库都将其数据存储在文件中 数据库结构提供对数据文件的逻辑映射 允许不同类型的数据分开存储 这些逻辑划分称作表空间
表空间(tablespace)是数据库的逻辑划分 每个数据库至少有一个表空间(称作SYSTEM表空间) 为了便于管理和提高运行效率 可以使用一些附加表空间来划分用户和应用程序 例如 USER表空间供一般用户使用 RBS表空间供回滚段使用 一个表空间只能属于一个数据库
每个表空间由同一磁盘上的一个或多个文件组成 这些文件叫数据文件(datafile) 一个数据文件只能属于一个表空间 在Oracle 以后 数据文件创建可以改变大小 创建新的表空间需要创建新的数据文件 数据文件一旦加入到表空间中 就不能从这个表空间中移走 也不能与其它表空间发生联系
如果数据库存储在多个表空间中 可以将它们各自的数据文件存放在不同磁盘上来对其进行物理分割 在规划和协调数据库I/O请求的方法中 上述的数据分割是一种很重要的方法
Oracle数据库的存储结构分为逻辑存储结构和物理存储结构
)逻辑存储结构 用于描述Oracle内部组织和管理数据的方式
)物理存储结构 用于描述Oracle外部即操作系统中组织和管理数据的方式
二 Oracle数据库实例
为了访问数据库中的数据 Oracle使用一组所有用户共享的后台进程 此外 还有一些存储结构(统称为System Gloabl Area 即SGA) 用来存储最近从数据库查询的数据 数据块缓存区和SQL共享池(Shared SQL Pool)是SGA的最大部分 一般占SGA内存的 %以上 通过减少对数据文件的I/O次数 这些存储区域可以改善数据库的性能
Oracle数据库实例(instance)也称作服务器(server) 是用来访问数据库文件集的存储结构及后台进程的集合 一个数据库可以被多个实例访问(这是Oracle并行服务器选项)
lishixinzhi/Article/program/Oracle/201311/17362
Oracle基本介绍与基本使用
目录
一、基本架构与相关概念
1、整体逻辑架构
(1)、数据文件(dbf)是数据库的物理存储单位,表空间是数据库的逻辑组成部分。表空间可以包含多个数据文件,但数据文件只能属于一个表空间。数据文件一旦加入表空间后就无法改变,也无法删除,只能通过删除其所属表空间进行删除。
(2)、表空间是Oracle对物理数据库上相关文件的逻辑映射,一个数据库在逻辑上分为一到多个表空间。
(3)、用户是在数据库实例下创建的,实例之间相互隔离(不同实例可以创建相同名称的用户)。
(4)、表是由用户维护的,表数据存放在表空间中,表空间会随机把这些数据存放到一个或多个数据文件中。用户之间数据相互隔离(即使一个表空间下,不同用户也可以创建同名表)。
2、数据库与实例
Oracle 数据库服务器由一个数据库和至少一个数据库实例组成。 数据库是一组存储数据的文件,而数据库实例则是管理数据库文件的内存结构。简单的说,Oracle数据库服务器包含两部分:文件(数据库)+ 内存(实例)。
数据库和实例是紧密相连的,所以我们一般说的 Oracle 数据库,通常指的就是实例和数据库。
2.1 数据库(文件)
Oracle 数据库的一个基本任务是存储数据,其包含物理与逻辑存储结构。
2.1.1 物理存储结构
物理存储结构是存储数据的纯文件。当执行一个 CREATE DATABASE 语句来创建一个新的数据库时,将创建下列文件:
数据文件:数据文件包含真实数据,例如销售订单和客户等。逻辑数据库结构(如表和索引)的数据被物理存储在数据文件中。
控制文件:每个 Oracle 数据库都有一个包含元数据的控制文件。元数据用来描述包括数据库名称和数据文件位置的数据库物理结构。
联机重做日志文件:每个 Oracle 数据库都有一个联机重做日志,里面包含两个或多个联机重做日志文件。联机重做日志由重做条目组成,能够记录下所有对数据所做的更改。
除这些文件外,Oracle 数据库还包括如参数文件、网络文件、备份文件以及用于备份和恢复的归档重做日志文件等重要文件。
2.1.2 逻辑存储结构
Oracle 数据库使用逻辑存储结构对磁盘空间使用情况进行精细控制。以下是 Oracle 数据库中的逻辑存储结构:
数据块(Data blocks):Oracle 将数据存储在数据块中。数据块也被称为逻辑块,Oracle 块或页,对应于磁盘上的字节数。
范围(Extents):范围是用于存储特定类型信息的逻辑连续数据块的具体数量。
段(Segments):段是分配用于存储用户对象(例如表或索引)的一组范围。
表空间(Tablespaces):数据库被分成称为表空间的逻辑存储单元。 表空间是段的逻辑容器。 每个表空间至少包含一个数据文件。
下图说明了表空间中的段,范围和数据块:
2.2 实例(内存)
Oracle 实例是客户端应用程序(用户)和数据库之间的接口。Oracle 实例由三个主要部分组成:系统全局区 (SGA),程序全局区 (PGA) 和后台进程。
如下图所示 :
DBWr(DBWR)在后来允许多进程写data file,所以改成DBWn了。
SGA 是实例启动时分配的共享内存结构,关闭时释放。 SGA 是一组包含一个数据库实例的数据和控制信息的共享内存结构。
不同于所有进程都可用的 SGA,PGA 是会话开始时为每个会话分配的私有内存区,当会话结束时释放。
以下是 Oracle 实例的主要后台进程:
PMON 是 Oracle 数据库中最活跃的一个进程,是调节所有其他进程的进程监视器。PMON 能够清理异常连接的数据库连接,并自动向侦听器进程注册数据库实例。
SMON 是执行系统级清理操作的系统监视进程。它有两个主要职责,包括在发生故障的情况下自动恢复实例,例如断电和清理临时文件。
DBWn 是数据库编写器。Oracle 在内存中执行每个操作而不是磁盘。因为在内存中的处理速度比在磁盘上快。DBWn 进程从磁盘读取数据并将其写回到磁盘。 一个 Oracle 实例有许多数据库编写器,如:DBW0,DBW1,DBW2等等。
CKPT 是检查点进程。 在 Oracle 中,磁盘上的数据称为块,内存中的数据称为缓冲区。 当该块写入缓冲区并更改时,缓冲区变脏,需要将其写入磁盘。CKPT 进程使用检查点信息更新控制和数据文件头,并向脏盘写入脏缓冲区的信号。 请注意,Oracle 12c 允许全面和增量检查点。
LGWR 是日志写入过程,是可恢复架构的关键。 在数据库中发生的每一个变化都被写出到一个名为 redo 日志文件中用于恢复目的。 而这些变化是由 LGWR 进程编写和记录的。 LGWR 进程首先将更改写入内存,然后将重做日志写入磁盘,可将其用于恢复。
ARCn 是归档进程,它将重做日志的内容复制到归档重做日志文件。存档程序进程可以有多个进程,如:ARC0,ARC1 和 ARC3,允许存档程序写入多个目标,如 D:驱动器,E:驱动器或其他存储。
MMON 是收集性能指标的可管理性监控流程。
MMAN 是自动管理 Oracle 数据库内存的内存管理器。
LREG 是监听器注册过程,它使用 Oracle Net Listener 在数据库实例和调度程序进程上注册信息。
二、常用语句
控制
登陆 sqlplus:sqlplus /nolog
使用sysdba链接oracle:connect /as sysdba
使用自定义 u1 连接oracle:connect u1 /123456
开启数据库:startup
关闭数据库:shutdown immediate;
查看数据库状态:select * from v$instance;
监听状态($ORACLE_HOME/bin):lsnrctl status
开启监听:lsnrctl start
关闭监听:lsnrctl stop
查询
查询当前数据库 : select name from v$database;
查询当前实例名 : select instance_name from v$instance;
查询表空间:select default_tablespace, d.username from dba_users d;
查看数据库用户:select * from dbs_users;
查询表空间路径:select status,fuzzy,tablespace_name,name from v$datafile_header;
显示当前连接用户:show user;
显示系统下所有用户:select * from all_users;
显示用户空间下所有表格:select table_name from user_tables;
显示用户下表格中的数据:select * from "HFTEST"."stu";
创建
创建表空间:create TableSpace 表空间名称 DataFile 表空间数据文件路径 Size 初始大小 AutoExtend on;
创建用户:create user 用户名 identified by 密码 default tablespace 表空间;
用户授权:Grant connect, backup any table, select any dictionary, dba to 用户;
删除
删除用户:drop user 用户名 cascade;
删除表空间:Drop tablespace 表空间名 including contents and datafiles CASCADE CONSTRAINTS;
删除表:drop table "stu";
三、功能检查与开启
1、数据库状态检查
su - oracle # 进入 oracle 系统账户
sqlplus /nolog # 登录sqlplus
connect /as sysdba # 用sysdba连接Oracle
startup # 启动数据库
select status from v$instance; # 查询数据库状态
2、创建用户
# 创建授权高级权限用户,既可以备份又可以恢复数据库
create user 【USERNAME】 identified by 【PASSWORD】;
grant dba,sysdba to 【USERNAME】;
# 创建低级权限用户,只能备份数据库,恢复数据库需要用具有sysdba权限的用户。
create user 【USERNAME】 identified by 【PASSWORD】;
Grant connect,backup any table,elect any dictionary to 【USERNAME】;
3、检查监听
$ORACLE_HOME/bin目录输入:lsnrctl status.如未出现如下界面则需要开启监听。
su - oracle # 进入 oracle 系统账户
sqlplus /nolog # 登录sqlplus
connect /as sysdba # 用sysdba连接Oracle
select instance_name from v$instance。 # 查看 SID_NAME,设置监听需要一致。
监听配置完成,重新启动监听服务
lsnrctl stop
lsnrctl start
4、检查归档模式
查看是否开启归档模式
su - oracle # 进入 oracle 系统账户
sqlplus /nolog # 登录sqlplus
connect /as sysdba # 用sysdba连接Oracle
archive log list
如果没有开启归档模式,则显示:No Archive Mode
shutdown immediate; # 关闭数据库
startup mount; # 启动数据库实例到mount状态
alter database archivelog; # 启动归档模式
alter database open; # 打开数据库并将其装入
archive log list; # 配置完成之后再次检查归档日志类型
5、检查自动备份状态
关闭自动备份。
首先进入 rman 终端
su - oracle
rman # 进入RMAN
RMAN> connect target / # 连接到实例
MAN> show all # //查看默认设置,看自动备份是否开启
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP OFF; // 关闭自动备份
四、参考
Oracle COMMIT语句(提交事务)_w3cschoolhttps://www.w3cschool.cn/oraclejc/oraclejc-grjn2r0x.htmlOracle Database Online Documentation 11ghttps://docs.oracle.com/cd/E11882_01/index.htm
以上是关于Oracle数据库实例及其相关概念的主要内容,如果未能解决你的问题,请参考以下文章