[转]Oracle – 数据库的实例、表空间、用户、表之间关系

本文转自:http://www.cnblogs.com/adforce/p/3312252.html

 

总体的Oracle数据库1般由两片段组成:Oracle数据库和数据库实例。 壹)
数据库是一密密麻麻物理文件的会晤(数据文件,控制文件,联机日志,参数文件等);
2)
Oracle数据库实例则是一组Oracle后台进度/线程以及在服务器分配的共享内部存款和储蓄器区。

在开发银行Oracle数据库服务器时,实际上是在服务器的内存中开创1个Oracle实例(即在服务器内部存储器中分配共享内部存款和储蓄器并创造连锁的后台内存),然后由这么些Oracle数据库实例来访问和决定磁盘中的数据文件。Oracle有2个不小的内部存款和储蓄器快,成为全局区(SGA)。

一、数据库、表空间、数据文件

1、数据库

数据库是数码集合。Oracle是1种数据库管理系列,是1种关系型的数据库管理种类。
日常状态了作者们称的“数据库”,并不仅指物理的数额集合,他饱含物理数据、数据库管理连串。也即物理数据、内部存款和储蓄器、操作系统进程的组合体。
大家在安装Oracle数据库时,会让大家选用设置运行数据库(即暗许的大局数据库)如下图:图片 1
全局数据库名:正是1个数据库的标识,在装置时就要想好,今后壹般不修改,修改起来也麻烦,因为数据库1旦设置,数据库名就写进了控制文件,数据库表,很多地点都会用到那个数据库名。
开发银行数据库:也叫全局数据库,是数据库系统的进口,它会停放壹些高等权限的用户如SYS,SYSTEM等。我们用那个高档权限账号登陆就能够在数据库实例中开创表空间,用户,表了。
询问当前数据库名:

select name from v$database;

 

二、数据库实例

用Oracle官方描述:实例是造访Oracle数据库所需的壹有的电脑内部存款和储蓄器和提携处理后台进度,是由进程和这个经过所采用的内部存款和储蓄器(SGA)所结合1个集合。
实质上正是用来做客和动用数据库的1块进程,它只设有于内部存款和储蓄器中。就好像Java中new出来的实例对象一样。
咱俩访问Oracle都以访问二个实例,但以此实例假如波及了数据库文件,正是能够访问的,假若未有,就会拿走实例不可用的荒唐。
实例名指的是用以响应有个别数据库操作的数据库管理种类的名称。她并且也叫SID。实例名是由参数instance_name决定的。
查询当前数据库实例名:

select instance_name from v$instance;

数据库实例名(instance_name)用于对表面连接。在操作系统中要拿走与数据库的关系,必须选用数据库实例名。比如大家作开发,要连接数据库,就得总是数据库实例名:

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

贰个数据库可以有八个实例,在作数据库服务集群的时候能够用到。

3、表空间

Oracle数据库是透过表空间来储存物理表的,二个数据库实例能够有N个表空间,2个表空间下能够有N张表。

有了数据库,就能够创立表空间。

表空间(tablespace)是数据库的逻辑划分,每个数据库至少有3个表空间(称作SYSTEM表空间)。为了便于管理和提升运营作用,能够应用部分附加表空间来划分用户和应用程序。例如:USEKoleos表空间供一般用户采纳,RBS表空间供回滚段使用。2个表空间只好属于二个数据库。

开创表空间语法:

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

如:

create tablespace db_test  
datafile 'D:\oracle\product\10.2.0\userdata\db_test.dbf'  
size 50m  
autoextend on;

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

select default_tablespace, temporary_tablespace, d.username  
from dba_users d

 

4、用户

Oracle数据库建好后,要想在数据Curry建表,必须先为数据库建立用户,并为用户钦赐表空间。

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

创制新用户:

CREATE USER          用户名  
IDENTIFIED BY        密码  
DEFAULT TABLESPACE   表空间(默认USERS)  
TEMPORARY TABLESPACE 临时表空间(默认TEMP) 

如:

CREATE USER utest  
IDENTIFIED BY utestpwd  
DEFAULT TABLESPACE db_test  
TEMPORARY TABLESPACE temp;(这里临时表空间不能使用我们创建的db_test,不知为何?) 

有了用户,要想利用用户账号管理自身的表空间,还得给它分权限:

GRANT CONNECT TO utest;  
GRANT RESOURCE TO utest;  
GRANT dba TO utest;--dba为最高级权限,可以创建数据库,表等。

查阅数据库用户:

select  * from dba_users;

5、表

有了数据库,表空间和用户,就能够用自定义的用户在投机的表空间创建表了。有了表,大家得以付出了。

 

转载:http://yuwenlin.iteye.com/blog/1882988

相关文章