Oracle数据库由哪几种文件组成?

Oracle数据库由哪几种文件组成?,第1张

Oracle数据库由数据库文件、日志文件、控制文件组成。

Oracle数据库12c 引入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云。此外,一些创新特性可最大限度地提高资源使用率和灵活性,如Oracle Multitenant可快速整合多个数据库,而Automatic Data Optimization和Heat Map能以更高的密度压缩数据和对数据分层。

这些独一无二的技术进步再加上在可用性、安全性和大数据支持方面的主要增强,使得Oracle数据库12c 成为私有云和公有云部署的理想平台。

扩展资料:

Oracle数据库升级注意事项:

1、备份配置参数

数据库升级前的配置参数要备份,如PGA大小。这样数据库升级后还可以升级前的配置,而不至于使用安装升级时的默认配置。

2、检查版本兼容

确认数据库升级后是否对生产环境上的代码有影响,如果发现一处有影响,则要在全部范围内检查类似的情况。

3、客户端同步升级

同时升级开发者本地环境或应用程序的数据库客户端升级到与数据库服务器相同版本。

4、确保程序正常运行

数据库升级后确保升级后的数据库不会对连接该库的应用程序有影响。

Oracle中的数据类型有:字符型、数字型、日期型等。具体介绍如下:\x0d\x0a1、字符型:char(n):用于标识固定长度的字符串。\x0d\x0a当实际数据不足定义长度时,使用空格补全右边不足位。varchar(n):可变字符串类型。\x0d\x0a为SQL标准规定的,数据库必须实现的数据据类型。可以存储空字符串。\x0d\x0a\x0d\x0avarchar2(n):可变字符串类型,是oracle在varchar的基础上自行定义的可变长度字符串\x0d\x0a 类型。当做为列类型使用时,最大长度可被定义为4000当做为变量类型使用时,长度 \x0d\x0a 可被定义为32767。不可以存储空字符串。\x0d\x0a2、数值型:可用于存储整数、浮点数。\x0d\x0anumber(m,n):m表示有效数字的总位数(最大为38位),n表示小 数位数。\x0d\x0a3、日期时间型:\x0d\x0adate:包含Year(年)、Month(月) 、Day(天)、Hour(时)、Minutes(分)、Second(秒)\x0d\x0a说明:(yyyy表示4位年分mm表示月份dd表示天hh表示时mi表示分ss表示秒)\x0d\x0a4、大对象类型:lob:用于存储大对象类型。例如:文本信息长度超过4000、二进制文件等。最大容量为4GB。\x0d\x0alob分类:clob:用于存储大型文本数据。(例如:备注信息)\x0d\x0ablob:用于存储二进制数据。(例如:图片文件)\x0d\x0abfile:作为独立文件存在的二进制数据。\x0d\x0a5、特殊数据:\x0d\x0anull与空字符串:null与空字符串,都要用is null或is not null进行比较。\x0d\x0a 单引号:想将单引号做为字符中使用,请通过单引号进行转义。\x0d\x0a6、注意:oracle中,没有布尔类型,可利用字符串或数值(1/0)表示

Oracle是一种数据库管理系统,是一种关系型的数据库管理系统。通常情况了我们称的“数据库”,包含了物理数据、数据库管理系统、内存、 *** 作系统进程的组合体,就是指这里所说的数据库管理系统。

完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例

① Oracle数据库是一系列物理文件的集合;

组成Oracle数据库的文件可以分成三个类型:数据文件(data file)、重做日志文件(redo log file)和控制文件(control file)。数据文件保存数据,Oracle中可以存在任意数量的数据文件;重做日志文件跟SQL Server的事务日志文件一样用来保存对数据更改的记录,在系统恢复阶段需要用到;控制文件是一些特别的小文件,用来保存一些至关重要的关于数据库的信息,没有这个文件的话,实例就无法打开数据库。

除了数据文件、重做日志文件、控制文件之外,数据库还包含参数文件(parameter file)、密码文件(password file)和可选的归档日志文件(archive log files)。

② Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区。

当Oracle启动时,它和SQL Server一样要先占用一些服务器内存用于执行 *** 作,这个内存区域——SGA(System Global Area)——被分为数个不同的结构,在创建SGA的同时也会启动一系列的后台进程用于和SGA进行交互,在这里这些分配的内存空间和后台进程组合起来就是Oracle实例了。请注意这里并没有提到数据库,实际上Oracle实例在没有数据库或是数据库不能访问时也是跑的很好的,在安装Oracle时,我们可以选择只安装软件,完了之后再安装数据库。

Oracle系统启动时,首先在内存中创建数据库实例,然后由实例找到保存在磁盘中的数据库,最后打开数据库让用户 *** 作。当系统关闭时,实例会从内存中清除掉;整个内存结构和后台进程都会消失,但是数据库依然存在于磁盘上,只是处于关闭的状态。

1、数据库

数据库是数据集合。

在安装Oracle数据库时,会让我们选择安装启动数据库(即默认的全局数据库);

启动数据库:也叫全局数据库,是数据库系统的入口,它会内置一些高级权限的用户如SYS,SYSTEM等。我们用这些高级权限账号登陆就可以在数据库实例中创建表空间,用户,表。

内置一些高级权限的用户有 3 个:sys,system,scott

① sys用户超级管理员(等同sql sa,mysql root),具有oracle的最高权限,具有sysdba角色,具有创建create database的权限,密码默认为manager。

②.system用户是 *** 作管理员,权限仅次于sys,具有sysoper(ate)的角色;system其没有create database的权限,其他的权限与sys相同。

③.scott用户普通用户,默认密码为tiger,该用户默认是锁定,可以用system去解锁

全局数据库名:就是一个数据库的标识,在安装时就要想好,以后一般不修改,修改起来也麻烦,因为数据库一旦安装,数据库名就写进了控制文件,数据库表,很多地方都会用到这个数据库名。

查询当前数据库名:

1 select name from v$database

2、数据库实例

Oracle官方描述:实例是访问Oracle数据库所需的一部分计算机内存和辅助处理后台进程,是由进程和这些进程所使用的内存(SGA)所构成一个集合。

其实就是用来访问和使用数据库的一块进程,它只存在于内存中。

我们访问Oracle数据库就是通过一个实例连接数据库,然后访问数据库文件。如果这个实例关联了数据库文件,就是可以访问的,如果没有,就会得到实例不可用的错误。

Oracle系统启动时,首先在内存中创建数据库实例,然后由实例找到保存在磁盘中的数据库,最后打开数据库让用户 *** 作。当系统关闭时,实例会从内存中清除掉:整个内存结构和后台进程都会消失,但是数据库依然存在于磁盘上,只是处于关闭的状态。之前也说过,Oracle实例可以在不打开数据库的情况下运行

实例名指的是用于响应某个数据库 *** 作的数据库管理系统的名称。她同时也叫SID。实例名是由参数instance_name决定的。

查询当前数据库实例名:

1 select instance_name from v$instance

数据库实例名(instance_name)用于对外部连接。在 *** 作系统中要取得与数据库的联系,必须使用数据库实例名。比如我们作开发,要连接数据库,就得连接数据库实例,通过实例名连接:

jdbc:oracle:thin:@localhost:1521:orcl(orcl就为数据库实例名)

严格的说:一个Oracle服务,只包括一个Oracle实例和一个数据库(不考虑双机并行等这样的情况)。

但是一个实例只能对应一个数据库,一个数据库有可能对应多个实例。除非使用并行 Oracle 服务器选项,否则每个 Oracle 数据库都有一个实例与之相关,一个数据库被唯一的一个实例装载。

数据库与实例之间是1对1/n的关系,在非并行的数据库系统中每个Oracle数据库与一个实例相对应;在并行的数据库系统中,一个数据库会对应多个实例,同一时间用户只与一个实例相联系,当某一个实例出现故障时,其他实例自动服务,保证数据库正常运行。在任何情况下,每个实例都只可以对应一个数据库。

3、表空间

Oracle数据库是通过表空间来存储物理表的,一个数据库实例可以有N个表空间,一个表空间下可以有N张表。有了数据库,就可以创建表空间。

表空间(tablespace)是数据库的逻辑划分,每个数据库至少有一个表空间(称作SYSTEM表空间)。为了便于管理和提高运行效率,可以使用一些附加表空间来划分用户和应用程序。

数据库自带表空间:

① SYSAUX表空间

SYSAUX表空间在Oracle Database 10g中引入,作为SYSTEM表空间的辅助表空间.以前一些使用独立表空间或系统表空间的数据库组件现在在SYSAUX表空间中创建.SYSAUX 表空间存放一些其他的 metadata 组件,如 OEM,Streams 等会默认存放在 SYSAUX 表空间里。通过分离这些组件和功能,SYSTEM表空间的负荷得以减轻.反复创建一些相关对象及组件引起SYSTEM表空间的碎片问题得以避免。

② SYSTEM表空间

SYSTEM表空间是Oracle创建数据库时候自动创建的,每个Oracle数据库都会有SYSTEM表空间,而且SYSTEM表空间总是要保持在联机模式下,因为其包含了数据库运行所要求的基本信息,如:数据字典、联机求助机制、所有回退段、临时段和自举段、所有的用户数据库实体、其它ORACLE软件产品要求的表等等。

③ TEMP表空间

临时表空间用来管理数据库排序 *** 作以及用于存储临时表、中间排序结果等临时对象,当ORACLE里需要用到SORT的时候,并且当PGA中sort_area_size大小不够时,将会把数据放入临时表空间里进行排序。像数据库中一些 *** 作: CREATE INDEX、 ANALYZE、SELECT DISTINCT、ORDER BY、GROUP BY、 UNION ALL、 INTERSECT、MINUS、ORT-MERGE JOINS、HASH JOIN等都可能会用到临时表空间。当 *** 作完成后,系统会自动清理临时表空间中的临时对象,自动释放临时段。这里的释放只是标记为空闲、可以重用,其实实质占用的磁盘空间并没有真正释放。这也是临时表空间有时会不断增大的原因。临时表空间存储大规模排序 *** 作(小规模排序 *** 作会直接在RAM里完成,大规模排序才需要磁盘排序Disk Sort)和散列 *** 作的中间结果.它跟永久表空间不同的地方在于它由临时数据文件(temporary files)组成的,而不是永久数据文件(datafiles)。临时表空间不会存储永久类型的对象,所以它不会也不需要备份。另外,对临时数据文件的 *** 作不产生redo日志,不过会生成undo日志。

④ UNDO表空间

UNDO表空间是Oracle特有的概念。undo表空间中会自动分配undo段,这些undo段用来保存事务中的DML语句的undo信息,也就是来保存数据在被修改之前的值。在rollback,实例恢复(前滚),一致性读CR块的构造时会使用到undo信息。由于undo的引入,从而Oracle的select语句实现一致性读时,不需要任何锁。undo表空间和其它表空间有很多类似的地方:undo数据块也会被读到buffer cache缓存起来,修改时也会产生redo log,数据也会写回到undo表空间的磁盘上。所以崩溃后,undo块的buffer cache也会恢复过来。

⑤ USERS表空间

创建用户必须为其指定表空间,如果没有显性指定默认表空间,则指定为users表空间,此用户所有信息都会放入到users表空间中。

查看已经创建好的表空间:

1 select default_tablespace, temporary_tablespace, username from dba_users

4、用户

Oracle数据库建好后,要想在数据库里建表,必须先为数据库建立用户,并为用户指定表空间。Oracle的表空间、包括各种数据库对象的使用和 *** 作权限都是通过授权的方式在用户之间使用的。

查看数据库用户:

1 select * from dba_users

综上,现有实例和数据库;用户和表空间都存在于实例之后,是授权访问的,但是系统内置高级权限用户和自带表空间在实例创建之初都会被加载。

因此,实例故障时,其他实例接替服务,故障实例的表空间等信息,都可以通过高级权限用户再行赋权给其他实例。

5、数据库对象

有了数据库,表空间和用户,用户在自己的表空间创建表。有了表,就可以进行开发。

数据库的所有对象,包括过程、函数、包和包体、JOB、表、视图、索引、序列、触发器等都由用户开发,存在于表空间下。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9926775.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存