Oracle - 数据库的实例、表空间、用户、表之间关系

数据库:

数据库是数据集合。Oracle是一种数据库管理系统,是一种关系型的数据库管理系统。包含物理数据、数据库管理系统。也即物理数据、内存、操作系统进程的组合体。

数据库实例:

Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区,相当于java一个对象的实例化。

在启动Oracle数据库服务器时,实际上是在服务器的内存中创建一个Oracle实例(即在服务器内存中分配共享内存并创建相关的后台内存),然后由这个Oracle数据库实例来访问和控制磁盘中的数据文件。

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

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

查询当前数据库实例名:

select instance_name from v$instance;

oracle数据库被实例化之后,会有很多的默认的用户sys、system(本地管理员)、scott(普通用户),我们可以通过这些管理员进入oracle数据库操作中。同时我们也是在实例中创建Oracle的用户。

表空间

Oracle数据库是通过表空间来存储物理表的,一个数据库实例可以有N个表空间,一个表空间下可以有N张表。一个表空间只能属于一个数据库。

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

查看我们常规将用户表空间放置的位置

select name from v$datafile;

Temporary tablespace是oracle里临时表空间,临时表空间主要用途是在数据库进行排序运算、管理索引、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理。

当oracle里需要用到sort的时候,PGA中sort_area_size大小不够时,将会把数据放入临时表空间里进行排序,同时如果有异常情况的话,也会被放入临时表空间,正常来说,在完成Select语句、create index等一些使用TEMP表空间的排序操作后,Oracle是会自动释放掉临时段的。

创建表空间语法:

Create TableSpace --表空间名称  
DataFile          --表空间数据文件路径  
Size              --表空间初始大小  
Autoextend on

--例如
CREATE TABLESPACE test 
datafile '/usr/local/oracle/product/11.2.0/userdata/test01.dbf'
size 600M 
autoextend on next 50m 
maxsize unlimited;
 
CREATE TABLESPACE test 
datafile '/usr/local/oracle/product/11.2.0/userdata/test01.dbf'
size 600M 
autoextend off 
maxsize 1000M;  

其中AUTOEXTEND表明是否自动扩展. OFF/ON 表示自动扩展是否被关闭,NEXT 表示数据文件满了以后,扩展的大小。

maxsize表示数据文件的上限大小,形如MAXSIZE { UNLIMITED | integer [ K | M ] },UNLIMITED 表示无限的表空间.integer是数据文件的最大大小。

用户

Oracle数据库建好后,要想在数据库里建表,必须先为数据库建立用户,并为用户指定表空间。

上面我们建好了数据库和表空间,接下来建用户:

创建新用户:

CREATE USER 用户名
IDENTIFIED BY 密码
DEFAULT TABLESPACE 表空间(默认USERS)
TEMPORARY TABLESPACE 临时表空间(默认TEMP)
CREATE USER testuser
IDENTIFIED BY oracle
DEFAULT TABLESPACE test;
给用户赋予权限:

GRANT CONNECT TO utest;
GRANT RESOURCE TO utest;
grant connect,resource,dba to testuser;
其中

CONNECT 角色:拥有Connect权限的用户只可以登录ORACLE(仅具有创建SESSION的权限),不可以创建实体,不可以创建数据库结构。

RESOURCE 角色:是授予开发人员的。拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。同时,当把ORACLE resource角色授予一个user的时候,不但会授予ORACLE resource角色本身的权限,而且还有unlimited tablespace权限,但是,当把resource授予一个role时,就不会授予unlimited tablespace权限。

DBA角色:是授予数据库维护人员的。拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。

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

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值