Oracle数据库的实例表空间⽤户表之间关系简单讲解
完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例。
1) 数据库是⼀系列物理⽂件的集合(数据⽂件,控制⽂件,联机⽇志,参数⽂件等);
2) Oracle数据库实例则是⼀组Oracle后台进程/线程以及在服务器分配的共享内存区。
在启动Oracle数据库服务器时,实际上是在服务器的内存中创建⼀个Oracle实例(即在服务器内存中分配共享内存并创建相关的后台内存),然后由这个Oracle数据库实例来访问和控制磁盘中的数据⽂件。Oracle有⼀个很⼤的内存快,成为全局区(SGA)。
⼀、数据库、表空间、数据⽂件
1、数据库
数据库是数据集合。Oracle是⼀种数据库管理系统,是⼀种关系型的数据库管理系统。
通常情况了我们称的“数据库”,并不仅指物理的数据集合,他包含物理数据、数据库管理系统。也即物理数据、内存、操作系统进程的组合体。
我们在安装Oracle数据库时,会让我们选择安装启动数据库(即默认的全局数据库)如下图:
全局数据库名:就是⼀个数据库的标识,在安装时就要想好,以后⼀般不修改,修改起来也⿇烦,因为数据库⼀旦安装,数据库名就写进了控制⽂件,数据库表,很多地⽅都会⽤到这个数据库名。
启动数据库:也叫全局数据库,是数据库系统的⼊⼝,它会内置⼀些⾼级权限的⽤户如SYS,SYSTEM等。我们⽤这些⾼级权限账号登陆就可以在数据库实例中创建表空间,⽤户,表了。
查询当前数据库名:
select name from v$database;
2、数据库实例
⽤Oracle官⽅描述:实例是访问Oracle数据库所需的⼀部分计算机内存和辅助处理后台进程,是由进程和这些进程所使⽤的内存(SGA)所构成⼀个集合。
其实就是⽤来访问和使⽤数据库的⼀块进程,它只存在于内存中。就像Java中new出来的实例对象⼀样。
我们访问Oracle都是访问⼀个实例,但这个实例如果关联了数据库⽂件,就是可以访问的,如果没有,就会得到实例不可⽤的错误。
实例名指的是⽤于响应某个数据库操作的数据库管理系统的名称。她同时也叫SID。实例名是由参数instance_name决定的。
查询当前数据库实例名:
select instance_name from v$instance;
数据库实例名(instance_name)⽤于对外部连接。在操作系统中要取得与数据库的联系,必须使⽤数据库实例名。⽐如我们作开发,要连接数据库,就得连接数据库实例名:
jdbc:oracle:thin:@localhost:1521:orcl(orcl就为数据库实例名)
⼀个数据库可以有多个实例,在作数据库服务集的时候可以⽤到。
3、表空间
Oracle数据库是通过表空间来存储物理表的,⼀个数据库实例可以有N个表空间,⼀个表空间下可以有N张表。
有了数据库,就可以创建表空间。
表空间(tablespace)是数据库的逻辑划分,每个数据库⾄少有⼀个表空间(称作SYSTEM表空间)。为了便于管理和提⾼运⾏效率,可以使⽤⼀些附加表空间来划分⽤户和应⽤程序。例如:USER表空间供⼀般⽤户使⽤,RBS表空间供回滚段使⽤。⼀个表空间只能属于⼀个数据库。
创建表空间语法:
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数据库建好后,要想在数据库⾥建表,必须先为数据库建⽴⽤户,并为⽤户指定表空间。
上⾯我们建好了数据库和表空间,接下来建⽤户:
oracle数据库怎么查询表创建新⽤户:
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、表
有了数据库,表空间和⽤户,就可以⽤⾃定义的⽤户在⾃⼰的表空间创建表了。有了表,我们可以开发了。
到此这篇关于Oracle数据库的实例/表空间/⽤户/表之间关系简单讲解的⽂章就介绍到这了,更多相关Oracle数据库的实例/表空间/⽤户/表之间关系内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。