数据库的实例、表空间、⽤户、表之间关系
完整的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
oracle数据库表结构怎么看from dba_users d
4、⽤户
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、表
有了数据库,表空间和⽤户,就可以⽤⾃定义的⽤户在⾃⼰的表空间创建表了。有了表,我们可以开发了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论