oracle 数据库与服务、实例与SID、表空间、用户与表模式
就是一个数据库的标识,在安装时就要想好,以后一般不修改,修改起来也麻烦,因为数据库一旦安装,数据库名就写进了控制文件,数据库表,很多地方都会用到这个数据库名。数据库实例名是用于和操作系统进行联系的标识,就是说数据库和操作系统之间的交互用的是数据库实例名。在一般情况下,数据库名和实例名是一对一的关系,但如果在oracle并行服务器架构(即oracle实时应用集群)中,数据库名和实例名是一对多的关系。
一、数据库与数据库服务:
概念:就是一个数据库的标识,在安装时就要想好,以后一般不修改,修改起来也麻烦,因为数据库一旦安装,数据库名就写进了控制文件,数据库表,很多地方都会用到这个数据库名。是数据库系统的入口,它会内置一些高级权限的用户如SYS,SYSTEM等。我们用这些高级权限账号登陆就可以在数据库实例中创建表空间,用户,表。
查询数据库名:select name from v$database;
数据库服务名=数据库名;
从oracle9i版本开始,引入了一个新的参数,即数据库服务名。参数名是SERVICE_NAME。
如果数据库有域名,则数据库服务名就是全局数据库名;否则,数据库服务名与数据库名相同。
二、数据库实例与sid:
概念:实例是访问Oracle数据库所需的一部分计算机内存和辅助处理后台进程,是由进程和这些进程所使用的内存(SGA)所构成一个集合。我们访问Oracle都是访问一个实例,但这个实例如果关联了数据库文件,就是可以访问的,如果没有,就会得到实例不可用的错误。
实例名指的是用于响应某个数据库操作的数据库管理系统的名称。它同时也叫SID。实例名是由参数instance_name决定的。
数据库实例名(instance_name)用于对外部连接。在操作系统中要取得与数据库的联系,必须使用数据库实例名。比如我们作开发,要连接数据库,就得连接数据库实例名:
jdbc:oracle:thin:@localhost:1521:orcl(orcl就为数据库实例名)
一个数据库可以有多个实例,在数据库服务集群的时候可以用到。
2.1 查询数据库实例:select instance_name from v$instance;
2.2 数据库实例与sid的关系:数据库实例=SID;
2.3 在用navicate连接数据库时,既可以用服务名也可以用SID.
数据库实例名是用于和操作系统进行联系的标识,就是说数据库和操作系统之间的交互用的是数据库实例名。实例名也被写入参数文件中,该参数为instance_name,在winnt平台中,实例名同时也被写入注册表。
数据库名和实例名可以相同也可以不同。
在一般情况下,数据库名和实例名是一对一的关系,但如果在oracle并行服务器架构(即oracle实时应用集群)中,数据库名和实例名是一对多的关系。
2.2 数据库实例名与ORACLE_SID两者都表示oracle实例,但两者是有区别的。instance_name是oracle数据库参数。而ORACLE_SID是操作系统的环境变量。 ORACLD_SID用于与操作系统交互,也就是说,从操作系统的角度访问实例名,必须通过ORACLE_SID。在winnt不台, ORACLE_SID还需存在于注册表中。
三、表空间
概念: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
查询某表的表空间:select * from user_tables where table_name='XX_QP_LIST_LINES';
四、用户名与模式名
概念:Oracle数据库建好后,要想在数据库里建表,必须先为数据库建立用户,并为用户指定表空间。schema为数据库对象的集合。
4.1 查询表模式或用户名:
select owner from all_tables where table_name = 'XX_QP_LIST_LINES';
2.2 表模式与用户名的关系:表模式=用户名,Oracle数据库中不能新创建一个schema,要想创建一个schema,只能通过创建一个用户的方法解决
创建用户时,默认创建与用户名一致的模式名,用于存储表对象。
五、表
有了数据库,表空间和用户,就可以用自定义的用户在自己的表空间创建表了。有了表,我们可以开发了。

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)