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、表、视图、索引、序列、触发器等都由用户开发,存在于表空间下。

转载于:https://www.cnblogs.com/wangrui1587165/p/9306380.html

Oracle 数据库、实例、表空间、用户、数据库对象相关推荐

  1. Oracle(一)创建表空间 用户以及用户授权

    Oracle(一)创建表空间 用户以及用户授权 一.表空间 1.创建表空间 --创建表空间 create tablespace myoracle datafile 'd:\myoracle.dbf'- ...

  2. 达梦数据库学习记录-包含安装、创建、体系结构、表空间用户模式对象管理备份与还原等

    达梦数据库DCA学习记录 目录 达梦数据库以及认证体系简单介绍 安装DM8数据库及常见问题解决办法 创建数据库.数据库实例及相关知识点介绍 数据库连接 数据库启动与关闭 DM8线程 DM8逻辑存储结构 ...

  3. mysql导入创建表空间_oracle创建表空间 用户 数据库导入和导出(转)

    已经安装orcale 9i 和pl/sql(6.0) OracleJobSchedulerORCL.OracleOraDb10g_home1iSQL*Plus OracleOraDb10g_home1 ...

  4. oracle初始化化表空间用户权限

    oracle单实例安装完毕,需要初始化表空间.用户.等信息.不积跬步,何以至千里! 用sys账户登录oracle数据库,以此来完成所有操作! 01.创建临时表空间 create temporary t ...

  5. db2数据库与表空间备份

    db2数据库与表空间备份 数据库与表空间的备份语法概述 备份语法 ​ database-alias:指定要备份的数据库的别名 ​ username/using password:指定备份数据库所使用的 ...

  6. linux数据库创建表空间语句,如何用LINUX用命令创建ORACLE数据库表空间和用户

    如何用LINUX用命令创建ORACLE数据库表空间和用户 文本模式下如何建 更新时间:2019-06-21 19:36 最满意答案 先su 到 oracle用户,SYS用户以DBA身份登陆 //创建临 ...

  7. Oracle 数据库创建表空间、创建用户指定表空间

    Oracle 数据库创建表空间.创建用户指定表空间 //创建临时表空间 create temporary tablespace user_temp tempfile 'D:\oracle\oradat ...

  8. oracle创建数据库、表空间、用户并授权

    oracle创建数据库.表空间.用户并授权 在安装完Oracle数据库软件之后可以使用默认的数据库orcl,也可以根据需要创建自定义的数据库.表空间用于对数据库中的资源进行分类,每个用户都有默认的表空 ...

  9. oracle怎么分配表空间,oracle数据库分配表空间、创造用户、分配用户权限操作

    oracle数据库分配表空间.创建用户.分配用户权限操作 1.创建临时表空间 /* create temporary tablespace*/ create temporary tablespace ...

  10. 为oracle数据库新增表空间及用户

    什么是表空间? 表空间是数据库的逻辑划分,一个表空间只能属于一个数据库.所有的数据库对象都存放在指定的表空间中.但主要存放的是表, 所以称作表空间. 创建用户的时候需要指定默认表空间和temp表空间, ...

最新文章

  1. LeetCode简单题之单值二叉树
  2. SpringBoot + Redis 分布式锁:模拟抢单
  3. linux系统查看CPU使用含义、IO、内存、硬盘使用、负载
  4. c语言如何判断数据是否符合正态分布_如何判断机器学习数据集是否是线性的?...
  5. C语言实现镜子mirror算法(附完整源码)
  6. [vue] 在.vue文件中style是必须的吗?那script是必须的吗?为什么?
  7. mysql cluster linux_【完美】Mysql-cluster数据库集群搭建(linux)
  8. 4. OD-去除烦人的nag窗口(去除提醒用户购买正版的警告窗口)
  9. C语言编程蛟龙转身,[蓝桥杯][2014年第五届真题]排列序数-题解(C语言代码)
  10. iphone双卡_满屏的iPhone12评测来了,看哪个不重要,买哪个才重要|iphone|国行|iphone12...
  11. 【NLP】毕设学习笔记(八)“前馈 + 反馈” = 循环神经网络RNN
  12. 管理系统页面脚手架(一)
  13. Determining if ip address is already in use for device eth0
  14. Caused by: java.lang.ClassNotFoundException: backtype.storm.topology.IRichSpout
  15. 推荐15款免费的网页抓取软件
  16. Graphpad prism 更改图表形状和尺寸教程
  17. 在mac上开启httpServer服务
  18. OpenGL ES EGL eglMakeCurrent
  19. 索尼6400夜景测试 镜头索尼18-55
  20. 推荐系统遇上深度学习(八十七)-[阿里]基于搜索的用户终身行为序列建模

热门文章

  1. tp3 跨域_vue 跨域访问tp3接口,tp3 I()方法无法获取前端请求数据
  2. android picasso 三级缓存,Android中图片的三级缓存浅析
  3. vue-router 跳转原理
  4. 使用pdo,使用pdo无法插入数据怎么办
  5. 解决JAVA_HOME nor the JRE_HOME environment variable is defined
  6. 数据库之MySQL ERROR 1698 (28000) 错误:Access denied for user 'root'@'localhost' error【摘抄】...
  7. 多线程条件通行工具——Semaphore
  8. Android 中的BroadCastReceiver【转】
  9. 诗与远方:无题(七)
  10. Uncaught SyntaxError: missing ) after argument list 错误解决