1、Oracle用户类型区别
1.1 sys和system用户的区别
【system】用户只能用normal身份登陆em。
【sys】用户具有“SYSDBA”或者“SYSOPER”权限,登陆em也只能用这两个身份,不能用normal。
“SYSOPER”权限,即数据库操作员权限,权限包括:
打开数据库服务器 关闭数据库服务器
备份数据库 恢复数据库
日志归档 会话限制
“SYSDBA”权限,即数据库管理员权限,权限包括:
打开数据库服务器 关闭数据库服务器
备份数据库 恢复数据库
日志归档 会话限制
管理功能 创建数据库
1.2 normal、sysdba、 sysoper有什么区别
normal 是普通用户 只有登陆的权限
sysdba拥有最高的系统权限
sysoper主要用来启动、关闭数据库,sysoper 登陆后用户是 public
1.3 dba和sysdba的区别
dba、sysdba这两个系统角色有什么区别呢
在说明这一点之前我需要说一下oracle服务的创建过程
·创建实例
·启动实例
·创建数据库(system表空间是必须的)
启动过程
·实例启动
·装载数据库
·打开数据库
sysdba,是管理oracle实例的,它的存在不依赖于整个数据库完全启动,
只要实例启动了,他就已经存在,以sysdba身份登陆,装载数据库、打开数据库
只有数据库打开了,或者说整个数据库完全启动后,dba角色才有了存在的基础!
2、Oracle表空间
表空间实际上对应物理磁盘的一个或多个数据文件,后缀为dbf。
【以下转】
TableSpace是Oracle空间管理上的逻辑单位,实体上存放数据的是Tablespace里面的档案(Data File);而我们所熟悉的Table就放在这一个一个的档案里面。所以TableSpace可以看成是Data File的群组。Tablespace可进一步分为segments(段)、extents(区)和blocks(块)。一个datafile只属于一个的一个tablespace。
关于TableSpace的分类有两种,一种分为SYSTEM tablespace和Non-SYSTEM tablespace。
SYSTEM tablespace是随数据库的创建而创建的,当数据库刚建立起来,系统会建立一个叫做SYSTEM的系统TableSpace,存放SYS、SYSTEM等User重要的系统数据(ex:数据字典与预储程序,SYSTEM undo segment等);Non-SYSTEM tablespace包括了分配给用户的空间便于数据库的空间管理。 如果我们建立Oracle User时,不指定预设的TableSpace,则此User则会以SYSTEM TableSpace作为预设的TableSpace。这将造成管理上的混乱与严重的效能问题,这是必须特别注意的。
另一种分为permanent、undo、temporary三种tablespace。
A.Permanent Tablespace
保存永久性对象。一般我们创建给APP使用的都是Permanent Tablespace。里面对象的生命周期不会随着交易或者用户的session结束而消失。
B.Undo Tablespace
Undo Tablespace是系统用的特殊的Tablespace,用来取代过去的rollback segement的机制,主要的功用是提供用户修改数据未commit之前的read consistency的功能以及rollback交易的功能。也因为undo tablespace主要是取代过去的rollback segement的机制,所以不能存放其他种类的segement。undo tablespace只能是local managed。
C.Temporary Tablespace
Temporary Tablespace也是系统用的特殊的Tablespace。当使用者需要做排序时,有时就会使用Temporary Tablespace,因此里面的Segement的生命周期都很短,可能交易结束或者User的Session结束就会消失。每个系统都必须要有一个预设的Temporary Tablespace(Default Temporary Tablespace),The DEFAULT TEMPORARY TABLESPACE clause of the CREATE DATABASE statement creates a default temporary tablespace for the database. 如果没有Default Temporary Tablespace,Create User的时候又忘了指定使用哪个Temporary Tablespace,会以SYSTEM tablespace来当作Temporary Tablespace,这样就很糟糕。以下列出几个Temporary Tablespace的特性。
1. Temporary Tablespace是NOLOGGING模式,因此若数据库损毁,做Recovery不需要恢复Temporary Tablespace。
2. Temporary最好是使用Local managed Tablespace。
3. 若使用local managed模式,UNIFORM. SIZE参数最好是Sort_Area_Size的参数,这样效能比较好。
4. Uniform. size预设1024K,而Sort_area_size预设是512K
5. Temporary Tablespace不能使用local managed的AUTOALLOCATE参数。
【以上转】
3、Oracle序列
3.1 概念
在Oracle数据库中,什么是序列呢?它的用途是什么?序列(SEQUENCE)其实是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。其主要的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。
3.2 用法
create sequence SEQ_SYS_PRJ
minvalue 1
maxvalue 9999999999
start with 1001
increment by 1
nocycle;
查找当前序列号: select SEQ_SYS_PRJ.currval from dual;
查找下一个序列号:select SEQ_SYS_PRJ.nextval from dual;
3.3 在数据从其他局点导入的时候,我们会遇到需要调整序列号的情况,即ID分段
(1)alter sequence SEQ_SYS_PRJ increment by xxx //这里的xxx是我们希望下一次Sequence增加的值,可以为负数
(2)select SEQ_SYS_PRJ.currval from dual; //通过这样,Sequence就跳到我们希望的地方了,但是,这样下一个sequence还是在原来基础上+xxx,所以需要修改回去
(3)alter sequence SEQ_SYS_PRJ increment by 1 //这样,Sequence就跳转到我们希望开始的地方,并且按照想要的递增值递增了
本文深入探讨了Oracle用户类型的区别,包括system、sys、normal、sysdba、sysoper之间的区别,以及dba和sysdba的区别。同时详细介绍了Oracle表空间的概念、分类和使用方法,包括SYSTEM、Non-SYSTEM、PERMANENT、UNDO、TEMPORARY表空间的特点和作用。此外,还解释了Oracle序列的用途、用法以及序列号调整的方法。
1781

被折叠的 条评论
为什么被折叠?



