Oracle用户管理、表空间、临时表空间、索引学习

一、用户的创建和管理创建和删除用户是Oracle用户管理中的常见操作,但这其中隐含了Oracle数据库系统的系统权限与对象权限方面的知识。

掌握还Oracle用户的授权操作和原理,可以有效提升我们的工作效率。

Oracle数据库的权限系统分为系统权限与对象权限。

系统权限( Database System Privilege )可以让用户执行特定的命令集。

例如,CREATE TABLE权限允许用户创建表,GRANT ANY PRIVILEGE 权限允许用户授予任何系统权限。

对象权限( Database Object Privilege )可以让用户能够对各个对象进行某些操作。

例如DELETE权限允许用户删除表或视图的行,SELECT权限允许用户通过select从表、视图、序列(sequences)或快照(snapshots)中查询信息。

每个Oracle用户都有一个名字和口令,并拥有一些由其创建的表、视图和其他资源。

Oracle 角色(role)就是一组权限(privilege)(或者是每个用户根据其状态和条件所需的访问类型)。

用户可以给角色授予或赋予指定的权限,然后将角色赋给相应的用户。

一个用户也可以直接给其他用户授权。

1、创建用户Oracle内部有两个建好的用户:SYSTEM和SYS。

用户可直接登录到SYSTEM用户以创建其他用户,因为SYSTEM具有创建别的用户的权限。

在安装Oracle时,用户或系统管理员首先可以为自己建立一个用户。

例如:create user user01 identified by u01;该命令还可以用来设置其他权限,详细情况参见自学资料。

要改变一个口令,可以使用alter user命令:alter user user01 identified by usr01;现在user01的口令已由“u01”改为“usr01”。

2、删除用户删除用户,可以使用drop user命令,如下所示:drop user user01;如果用户拥有对象,则不能直接删除,否则将返回一个错误值。

指定关键字CASCADE,可删除用户所有的对象,然后再删除用户。

下面的例子用来删除用户与其对象:drop user user01 CASCADE;3、三种标准角色Oracle为了兼容以前的版本,提供了三种标准的角色(role):CONNECT、RESOURCE和DBA。

1. CONNECT Role(连接角色)临时用户,特别是那些不需要建表的用户,通常只赋予他们CONNECTrole。

CONNECT是使用Oracle的简单权限,这种权限只有在对其他用户的表有访问权时,包括select、insert、update 和delete等,才会变得有意义。

拥有CONNECT role的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym )、会话(session)和与其他数据库的链(link)。

2. RESOURCE Role(资源角色)更可靠和正式的数据库用户可以授予RESOURCE role。

RESOURCE提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。

3. DBA Role(数据库管理员角色)DBA role拥有所有的系统权限----包括无限制的空间限额和给其他用户授予各种权限的能力。

SYSTEM由DBA用户拥有。

下面介绍一些DBA经常使用的典型权限。

(1)grant(授权)命令下面对刚才创建的用户user01授权,命令如下:grant connect, resource to user01;(2)revoke(撤消)权限已授予的权限可以撤消。

例如撤消(1)中的授权,命令如下:revoke connect, resource from user01;(3)常用的数据对象权限有以下五个:ALL ON 数据对象名,SELECT ON 数据对象名,UPDATE ON 数据对象名,DELETE ON 数据对象名, INSERT ON 数据对象名,ALTER ON 数据对象名GRANT SELECT ON 表名 TO 用户名;GRANT SELECT, INSERT, DELETE ON 表名 TO 用户名1,用户名2;一个具有DBA角色的用户可以撤消任何别的用户甚至别的DBA的CONNECT、RESOURCE 和DBA的其他权限。

当然,这样是很危险的,因此,除非真正需要,DBA权限不应随便授予那些不是很重要的一般用户。

撤消一个用户的所有权限,并不意味着从Oracle中删除了这个用户,也不会破坏用户创建的任何表;只是简单禁止其对这些表的访问。

其他要访问这些表的用户可以象以前那样地访问这些表。

4、创建角色除了前面讲到的三种系统角色----CONNECT、RESOURCE和DBA,用户还可以在Oracle创建自己的role。

用户创建的role可以由表或系统权限或两者的组合构成。

为了创建role,用户必须具有CREATE ROLE系统权限。

下面给出一个create role命令的实例:create role STUDENT;这条命令创建了一个名为STUDENT的role。

一旦创建了一个role,用户就可以给他授权。

给role授权的grant命令的语法与对对用户的语法相同。

在给role授权时,在grant命令的to子句中要使用role的名称,如下所示:grant select on CLASS to STUDENT;现在,拥有STUDENT 角色的所有用户都具有对CLASS 表的select权限。

5、删除角色要删除角色,可以使用drop role命令,如下所示:drop role STUDENT;指定的role连同与之相关的权限将从数据库中全部删除。

二、数据文件和表空间的介绍一个ORACLE数据库是数据的集合,被处理成一个单位。

一个ORACLE数据库有一个物理结构和一个逻辑结构。

物理数据库结构是由构成数据库的操作系统文件所决定。

每一个ORACLE数据库是由三种类型的文件组成:数据文件、日志文件和控制文件。

数据库的文件为数据库信息提供真正的物理存储。

逻辑数据库结构是用户所涉及的数据库结构。

一个ORACLE数据库的逻辑结构由下列因素决定:一个或多个表空间数据库模式对象(即表、视图、索引、聚集、序列、存储过程)逻辑存储结构如表空间(dataspace)、段(segment)和范围将支配一个数据库的物理空间如何使用。

模式对象(schema object)用它们之间的联系组成了一个数据库的关系设计。

1)物理结构(1)数据文件每一个ORACLE数据库有一个或多个物理的数据文件(data file)。

一个数据库的数据文件包含全部数据库数据。

逻辑数据库结构(如表、索引)的数据物理地存储在数据库的数据文件中。

数据文件有下列特征:一个数据文件仅与一个数据库联系。

一旦建立,数据文件不能改变大小一个表空间(数据库存储的逻辑单位)由一个或多个数据文件组成。

数据文件中的数据在需要时可以读取并存储在ORACLE内存储区中。

例如:用户要存取数据库一表的某些数据,如果请求信息不在数据库的内存存储区内,则从相应的数据文件中读取并存储在内存。

当修改和插入新数据时,不必立刻写入数据文件。

为了减少磁盘输出的总数,提高性能,数据存储在内存,然后由ORACLE后台进程DBWR决定如何将其写入到相应的数据文件。

2)逻辑结构数据库逻辑结构包含表空间、段、范围(extent)、数据块和模式对象。

(1)表空间一个数据库划分为一个或多个逻辑单位,该逻辑单位称为表空间(TABLESPACE)。

一个表空间可将相关的逻辑结构组合在一起。

DBA可利用表空间作下列工作:控制数据库数据的磁盘分配。

将确定的空间份额分配给数据库用户。

通过使单个表空间在线或离线,控制数据的可用性。

执行部分数据库后备或恢复操作。

为提高性能,跨越设备分配数据存储。

每个数据库可逻辑划分为一个或多个表空间每一个表空间是由一个或多个数据文件组成,该表空间物理地存储表空间中全部逻辑结构的数据。

DBA可以建立新的表空间,可为表空间增加数据文件或可删除数据文件,设置或更改缺省的段存储位置。

每一个ORACLE数据库包含有一个名为SYSTEM的表空间,在数据库建立是自动建立。

在该表空间中总包含有整个数据库的数据字典表。

最小的数据库可只需要SYSTEM表空间。

该表空间必须总是在线。

表和存储的PL/SQL程序单元(过程、函数、包和触发器)的全部存储数据是存储在SYSTEM表空间中。

如果这些PL/SQL对象是为数据库建的,DBA在SYSTEM表空间中需要规划这些对象所需要的空间。

表空间利用增加数据文件扩大表空间,表空间的大小为组成该表空间的数据文件大小的和。

表空间实质是组织数据文件的一种途径,Oracle就是通过表空间这个数据库对象完成对数据的组织的。

在将数据插入Oracle数据库之前,必须首先建立表空间,然后将数据插入表空间的一个对象中。

解释数据库、表空间、数据文件、表、数据文件的最好办法就是想象一个装满东西的柜子。

数据库其实就是柜子,柜中的抽屉是表空间,抽屉中的文件夹是数据文件,文件夹中的纸是表,写在纸上的信息就是数据。

根据表空间的用途可分为五类:1、目录表空间每个数据库只有一个目录表空间,它是在发出CREATE DATABASE 命令时创建的。

目录表空间被DB2 命名为SYSCATSPACE,它保存了系统目录表。

总是在创建数据库时创建该表空间。

(CAT:目录)-常规表空间常规表空间:保存表数据和索引。

它还可以保存诸如大对象(Large Object,LOB)之类的长数据,除非这些数据显式地存储在长表空间中。

如果某些表空间是数据库管理的空间(Database Managed Space,DMS),则可以将表及其索引分别放到单独的常规表空间中。

我们将在本文后面定义DMS 和系统管理的空间(System Managed Space,SMS)之间的区别。

每个数据库中必须至少有一个常规表空间。

创建数据库时指定该表空间的缺省名为USERSPACE1。

2、长表空间长表空间:用于存储长型或LOB 表列,它们必须驻留在DMS 表空间中。

它们还可以存储结构化类型的列或索引数据。

如果没有定义长表空间,那么将把LOB 存储在常规表空间中。

长表空间是可选的,缺省情况下一个都不创建。

3、系统临时表空间系统临时表空间:用于存储SQL 操作(比如排序、重组表、创建索引和连接表)期间所需的内部临时数据。

每个数据库必须至少有一个系统临时表空间。

随数据库创建的系统临时表空间的缺省名为TEMPSPACE1。

合集下载

Oracle数据库、实例、表空间、用户、数据库对象

Oracle数据库、实例、表空间、用户、数据库对象

Oracle数据库、实例、表空间、⽤户、数据库对象Oracle是⼀种数据库管理系统,是⼀种关系型的数据库管理系统。

通常情况了我们称的“数据库”,包含了物理数据、数据库管理系统、内存、操作系统进程的组合体,就是指这⾥所说的数据库管理系统。

完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例。

① Oracle数据库是⼀系列物理⽂件的集合;组成Oracle数据库的⽂件可以分成三个类型:数据⽂件(data file)、重做⽇志⽂件(redo log file)和控制⽂件(control file)。

数据⽂件保存数据,Oracle中可以存在任意数量的数据⽂件;重做⽇志⽂件跟SQL Server的事务⽇志⽂件⼀样⽤来保存对数据更改的记录,在系统恢复阶段需要⽤到;控制⽂件是⼀些特别的⼩⽂件,⽤来保存⼀些⾄关重要的关于数据库的信息,没有这个⽂件的话,实例就⽆法打开数据库。

除了数据⽂件、重做⽇志⽂件、控制⽂件之外,数据库还包含参数⽂件(parameter file)、密码⽂件(password file)和可选的归档⽇志⽂件(archive log files)。

② Oracle数据库实例则是⼀组Oracle后台进程/线程以及在服务器分配的共享内存区。

当Oracle启动时,它和SQL Server⼀样要先占⽤⼀些服务器内存⽤于执⾏操作,这个内存区域——SGA(System Global Area)——被分为数个不同的结构,在创建SGA的同时也会启动⼀系列的后台进程⽤于和SGA进⾏交互,在这⾥这些分配的内存空间和后台进程组合起来就是Oracle实例了。

请注意这⾥并没有提到数据库,实际上Oracle实例在没有数据库或是数据库不能访问时也是跑的很好的,在安装Oracle时,我们可以选择只安装软件,完了之后再安装数据库。

Oracle系统启动时,⾸先在内存中创建数据库实例,然后由实例找到保存在磁盘中的数据库,最后打开数据库让⽤户操作。

Oracle起步---创建临时表空间表空间创建用户授权

Oracle起步---创建临时表空间表空间创建用户授权

Oracle起步---创建临时表空间表空间创建⽤户授权1. 安装: 百度⼀下你就知道2. sqlplus登录/sqlplus命令登录 在安装Oracle时,你需要记住设置的“全局数据库名”(默认为orcl) 和⼝令,在以两种⽅式登录时: ⽤户名: sys(超级⽤户==sysdba) / system(管理员⽤户和sys想⽐区别在于system不能创建表空间)... ⼝令:注意这⾥不仅仅要输⼊你设置的⼝令,在后⾯还要加上as sysdba 如:orcl as sysdba3. 创建临时表空间/表空间/创建⽤户/授权 代码如下:1:创建临时表空间create temporary tablespace user_temptempfile 'Q:\oracle\product\10.2.0\oradata\Test\xyrj_temp.dbf'size 50mautoextend onnext 50m maxsize 20480mextent management local;2:创建数据表空间create tablespace user_dataloggingdatafile 'Q:\oracle\product\10.2.0\oradata\Test\xyrj_data.dbf'size 50mautoextend onnext 50m maxsize 20480mextent management local;第3步:创建⽤户并指定表空间create user username identified by passworddefault tablespace user_datatemporary tablespace user_temp;第4步:给⽤户授予权限grant connect,resource,dba to username;4. 删除操作中的truncate,delete(不带where⼦句的delete语句),drop异同-------转⾄相同点:truncate和不带where⼦句的delete, 以及drop都会删除表内的数据不同点:1.truncate和 delete只删除数据不删除表的结构(定义)drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index);依赖于该表的存储过程/函数将保留,但是变为invalid状态.2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才⽣效;如果有相应的trigger,执⾏的时候将被触发. truncate,drop是ddl, 操作⽴即⽣效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.3.delete语句不影响表所占⽤的extent, ⾼⽔线(high watermark)保持原位置不动显然drop语句将表所占⽤的空间全部释放 truncate 语句缺省情况下见空间释放到 minextents个 extent,除⾮使⽤reuse storage; truncate会将⾼⽔线复位(回到最开始).4.速度,⼀般来说: drop>; truncate >; delete5.安全性:⼩⼼使⽤drop 和truncate,尤其没有备份的时候.否则哭都来不及使⽤上,想删除部分数据⾏⽤delete,注意带上where⼦句. 回滚段要⾜够⼤. 想删除表,当然⽤drop 想保留表⽽将所有数据删除. 如果和事务⽆关,⽤truncate即可. 如果和事务有关,或者想触发trigger,还是⽤delete. 如果是整理表内部的碎⽚,可以⽤truncate跟上reuse stroage,再重新导⼊/插⼊数据。

oracle数据库管理员手册

oracle数据库管理员手册

Oracle数据库管理员(DBA)手册涵盖了广泛的主题,包括数据库安装、配置、性能调优、备份和恢复、安全性等方面。

以下是一个简要的Oracle数据库管理员手册的大纲,其中包含了一些主要的主题:1. 数据库基础知识和架构:- Oracle数据库的体系结构-数据库实例和数据库-表空间和数据文件2. 数据库安装和配置:- Oracle数据库软件的安装-创建数据库-配置监听器-网络配置3. 数据库对象管理:-表和索引的创建、修改和删除-视图、存储过程和触发器的管理-序列的创建和管理-同义词的使用4. 用户和权限管理:-用户账号的创建和管理-角色和权限管理-访问控制和安全性5. 性能调优:- SQL调优技术-索引优化-表分区和分表-优化查询计划6. 备份和恢复:-数据库备份策略-使用RMAN进行备份和恢复-数据库点恢复和时间点恢复7. 监控和诊断:-使用AWR和ADDM进行性能分析-查询V$视图和动态性能视图-警告和错误日志的管理8. 高可用性和容灾:-数据库复制和数据保护- RAC(Real Application Clusters)配置-数据库故障转移和恢复9. 安全性:-用户身份验证和访问控制-安全审计和监视-数据加密和解密10. 数据库升级和迁移:- Oracle版本升级-数据库迁移和导入/导出11. 常规维护任务:-统计信息收集和重建索引-表空间管理-定期任务和计划任务12. 实用工具:- SQL*Plus和SQLcl- Oracle Enterprise Manager(OEM)-数据库配置助手(DBCA)和其他实用工具13. 文档和资源:- Oracle文档和在线资源-社区和论坛这个大纲只是一个简单的概述,实际的Oracle数据库管理员手册可能更为详细,根据组织的需求和数据库的规模可能会有所不同。

要深入了解每个主题,建议参考Oracle官方文档和相应版本的手册。

Oracle的文档通常提供了详细的指导和最佳实践。

oracle建立表空间的方法

oracle建立表空间的方法

oracle建立表空间的方法Oracle数据库中建立表空间的方法主要有两种:一种是通过SQL命令的方式,另一种是通过Oracle客户端Enterprise Manager Console来创建。

通过SQL命令的方式创建表空间,需要先创建临时表空间和数据表空间,然后创建用户并指定表空间。

具体步骤如下:1. 创建临时表空间。

可以通过以下命令创建:```sqlcreate temporary tablespace user_temptempfile 'D:\oracle\oradata\Oracle9i\user_'size 50m autoextend on next 50mmaxsize 20480mextent management local;```2. 创建数据表空间。

可以通过以下命令创建:```sqlcreate tablespace user_dataloggingdatafile 'D:\oracle\oradata\Oracle9i\user_'size 50m autoextend on next 50mmaxsize 20480mextent management local;```3. 创建用户并指定表空间。

可以通过以下命令创建用户并将表空间指定给该用户:```sqlcreate user username identified by password;grant create session, create tablespace to username;alter user username default tablespace user_data temporary tablespace user_temp;```通过Oracle客户端Enterprise Manager Console来创建表空间,可以通过以下步骤完成:1. 打开Oracle客户端Enterprise Manager Console。

oracle表空间总结(个人笔记总结)

oracle表空间总结(个人笔记总结)

表空间含义:表空间是数据库的逻辑组成部分。

从物理上讲,数据库数据存放在数据文件中;从逻辑上讲,数据库则是存放在表空间中,表空间由一个或多个数据文件组成1,oracle 中逻辑结构包括表空间、段、区和块。

说明一下数据库由表空间构成,而表空间又是由段构成,而段又是由区构成,而区又是由oracle 块构成的这样的一种结构,可以提高数据库的效率。

表空间用于从逻辑上组织数据库的数据。

数据库逻辑上是由一个或是多个表空间组成的2,创建表空间:create tablespace data01 datafile 'd:\test\dada01.dbf' size 20m uniform size 128k;或SQL> create tablespace lqb datefile 'e:\lqb.dbf' size 50M autoextend on next 50M maxsize unlimited extend mangement local;-------------extend mangement local;本地管理表空间。

autoextend on next 50M maxsize unlimited 在50M后最大的扩展时没有限制的3,第3步:创建用户并指定表空间*/ create user USERNAME identified by PASSWORD default tablespace USER_DATE temporary tablespace user_temp;-------------temporary 临时的,暂时的4,如何将表移动到指定表空间alter table TABLE_NAME move tablespace TABLESPACE_NAME;如何将索引移动到指定的表空间alter index INDEX_NAME REBUILD tablespace TABLESPACE_NAME;5,改变表空间的状态a,使表空间脱机alter tablespace 表空间名offline; b,使表空间联机alter tablespace 表空间名online; c,只读表空间alter tablespace 表空间名read only; (修改为可写是alter tablespace 表空间名read write;)6, 知道表空间名,显示该表空间包括的所有表select * from all_tables where tablespace_name='表空间名';7,知道表名,查看该表属于那个表空间select tablespace_name, table_name from user_tables where table_name='emp';8,扩展该表空间,为其增加更多的存储空间。

Oracle11g数据库管理与开发基础教程课后习题及答案

Oracle11g数据库管理与开发基础教程课后习题及答案

Oracle11g数据库管理与开发基础教程课后习题及答案第⼀章选择题1、Oracle数据库服务器包含的两个主要组件是(AB)A、Oracle实例B、oracle数据库C、内存结构D、后台进程2、create database 创建Oracle数据库时创建的⽂件包括(AC)A、数据⽂件B、控制⽂件C、⽇志⽂件D、初始化参数⽂件3、创建Oracle数据库时,createdatabase语句中指出了需要创建的数据⽂件、⽇志⽂件存储路径和名称,但没有指出需要创建的控制⽂件,因此创建数据库之前需要创建(D)个控制⽂件。

A、0B、1C、2D、任意数量4、调⽤shutdown命令关闭Oracle数据库后,以下(D)命令关闭的数据库处于不⼀致状态。

A、shutdown normalB、shutdown transactionalC、shutdown immediateD、shutdown abort5、作为普通⽤户,只有当数据库处于以下(C)状态下才可连接访问。

A、NUMOUNTB、MOUNTC、OPEND、CLOSE填空题1、SGA可分为以下⼏种主要区域:(SGA固定)、(数据库缓冲区缓存)、(重做⽇志缓冲区)、(共享池)等。

2、Oracle实例有多种后台进程,其中每个数据库实例上必须启动的后台进程包括(数据库写⼊进程)、(⽇志写⼊进程)、(检查点进程)、(进程监视进程)、(系统监视进程)等。

3、Oracle数据库的逻辑存储结构是(表空间)、(段)、(区)、(数据块)等。

4、Oracle数据库逻辑上的表空间结构与磁盘上的物理(数据)⽂件相关联。

5、下⾯连接字符串采⽤的是(简易连接)命名⽅式。

CONNECT Scott/tiger@dbs:1525@/doc/727db4ff03768e9951e79b89680203d8ce2f6aac.html编程题1.写出以下操作的SQL*PLUS命令语句:先启动Oracle实例到“已启动实例状态”,再修改Oracle实例到“数据库已装载状态”,最后修改Oracle实例到打开状态。

深入浅出谈Oracle临时表


关于临时表上的DML活动,有以下结论: 活动,有以下结论: 关于临时表上的 活动
• 1、 INSERT 会生成很少甚至不生成undo/redo活动。因此,临 时表对insert/select型的应用很有用。 比如在处理web翻页时, 可以通过临时表来模拟cache返回结果。 • 2、 DELETE 在临时表上生成的redo与正常表上生成的redo同 样多。 • 3 、临时表的UPDATE会生成正常表UPDATE一半的redo。
在一个SESSION中(比如SQLPLUS登陆)插入上面3条记录,然后再以另外一个SESSION(用 SQLPLUS再登陆一次)登陆,当你select * from classes;的时候,classes表是空的,而你再第 一次登陆的SQLPLUS中select的时候可以查询到,这个时候你没有进行commit或者rollback之前 你可以对刚才插入的3条记录进行update、delete等操作,当你进行commit或者rollback的时候, 这个时候由于你的表是事务级的临时表,那么在插入数据的session也看不到数据了,这个时候 数据就已经被截断了。
什么时候使用临时表? 什么时候使用临时表?
• 1)、当某一个SQL语句关联的表在2张及以上,并且和一些小表 关联。可以采用将大表进行分拆并且得到比较小的结果集合存放 在临时表中。 • 2)、程序执行过程中可能需要存放一些临时的数据,这些数据在 整个程序的会话过程中都需要用的等等。
<Insert Picture Here>
事务级SQL操作 操作 事务级
• • • • • • • • • • SQL> insert into classes(Class_id,Class_Name,Class_Memo) values(1,'计算机','9608'); 1 row inserted SQL> insert into classes(Class_id,Class_Name,Class_Memo) values(2,'经济信息','9602'); 1 row inserted SQL> insert into classes(Class_id,Class_Name,Class_Memo) values(3,'经济信息','9603'); 1 row inserted SQL> update classes set class_memo ='' where class_id=3 ; 1 row updated SQL> select * from classes ; CLASS_ID CLASS_NAME CLASS_MEMO -------- ---------- -------------------------------------------------------------------------------1 计算机 9608 2 经济信息 9602 3 经济信息 SQL> delete from classes where class_id=3 ; 1 row deleted SQL> select * from classes ; CLASS_ID CLASS_NAME CLASS_MEMO -------- ---------- -------------------------------------------------------------------------------1 计算机 9608 2 经济信息 9602 SQL> commit; Commit complete SQL> select *from classes ; CLASS_ID CLASS_NAME CLASS_MEMO -------- ---------- -------------------------------------------------------------------------------SQL> 再重复插入一次,然后rollback。 SQL> Rollback ; Rollback complete SQL> select * from classes ; CLASS_ID CLASS_NAME CLASS_MEMO -------- ---------- -------------------------------------------------------------------------------SQL>

Oracle的临时表、分区表、分区索引

Oracle的临时表一、表的种类1:永久表:非私有数据,需要DML锁。

2:临时表:临时表的定义对所有会话都是可见的,处理事务或会话期存在的私有数据,不需要DML锁,对于临时表的DML语句不生成重做日志,临时表占用临时表空间,临时表的数据是自动删除的,在临时表上建的索引也是临时的。

二、临时表的种类1:事物型临时表:在事务期间数据存在,事务结束后数据被自动删除。

2:会话型临时表:在会话期间数据存在,会话结束后数据被自动删除。

三、临时表的限制1:不能分区,不能是索引组织表或簇。

2:不能指定关于临时表的外键约束。

3:不支持并行DML或并行查询。

4:不支持分布式事务处理。

5:不能指定段存储语句、嵌套表存储语句或并行语句四、建立临时表的语法1:建立关系表2:建立对象表3:并行语句Oracle的分区表一、什么是分区表Oracle可以将大表或索引分成若干个更小更方便管理的部分,每一部分称为一个分区,这样的表称为分区表。

SQL语句使用分区表比全表或全表索引能提供更好的访问和处理数据。

下图是按周所建分区表示例。

二、使用分区表的限制1:不能分割是簇一部分的表。

2:不能分割含有LONG或LONG RAW列的表。

3:索引组织表IOT不能进行范围分区。

**采用基于规则的优化器时,有会从分区表中受益!三、分区方法1:范围分区(更适合历史数据库)—Oracle8从惟一可用的分区类型按照列的列表的范围分割表;如果是索引组织表,则列的列表就必须是索引组织表主键的子集。

分区关键列的限制:列列表中的列可以是任何一种内置的数据类型,ROWID、LONG、LOB或者TIMESTAMP WITH TIME ZONE除外。

关键字MAXVALUE比任何值都高(含NULL)。

2:散列分区--Oracle8i可用的分区类型指定这个表是按哈希算法分区的,分区的数目应为2的幂。

1)单独散列分区(individual_hash_partitions)及其限制使用子名按照名字指定单个分区,分区名可以匆略。

Oracle基础必学知识点

Oracle基础必学知识点1. 数据库概念:Oracle是一种关系型数据库管理系统(RDBMS),用于存储和管理大量结构化数据。

它支持SQL语言,可以通过SQL语句进行数据查询、插入、更新和删除操作。

2. 数据库对象:Oracle数据库由多个对象组成,包括表、视图、索引、序列、存储过程等。

这些对象用于存储和处理数据,可以通过SQL语句进行操作。

3. 数据类型:Oracle支持多种数据类型,包括数字、字符、日期、大对象(LOB)等。

不同的数据类型用于存储不同类型的数据,可以根据需求选择合适的数据类型。

4. 表操作:在Oracle中,表用于存储数据。

可以使用CREATE TABLE语句创建表,使用INSERT语句插入数据,使用SELECT语句查询数据,使用UPDATE语句更新数据,使用DELETE语句删除数据。

5. 索引:索引是一种用于提高查询性能的数据结构。

在Oracle中,可以使用CREATE INDEX语句创建索引,通过索引可以快速定位到需要查询的数据,提高查询效率。

6. 数据约束:数据约束是用于保证数据的完整性和有效性的规则。

在Oracle中,可以使用约束来限制数据的取值范围、保证数据的唯一性等。

常见的约束类型包括主键约束、外键约束、唯一约束、非空约束等。

7. 视图:视图是一种虚拟表,它是从一个或多个表中获取数据的查询结果。

在Oracle中,可以使用CREATE VIEW语句创建视图,通过视图可以简化复杂的查询操作,提高数据的安全性。

8. 存储过程:存储过程是一组预先编译的SQL语句,存储在数据库中,并可以通过调用来执行。

在Oracle中,可以使用CREATE PROCEDURE语句创建存储过程,通过存储过程可以实现复杂的数据处理逻辑。

9. 事务控制:事务是一组逻辑操作,要么全部执行成功,要么全部回滚。

在Oracle中,可以使用BEGIN/END语句或者显式的事务语句(如COMMIT和ROLLBACK)来控制事务的提交或回滚。

oracle 数据库管理员日常操作手册

Oracle数据库管理员日常操作手册===================一、用户管理------### 1.1 创建用户1. 打开Oracle数据库管理工具(如SQL*Plus或SQL Developer)。

2. 使用管理员账户(如sys)登录。

3. 执行以下SQL语句创建用户:```sqlCREATE USER username IDENTIFIED BY password;```其中,`username`为用户名,`password`为密码。

4. 可选:为新用户分配表空间。

例如,执行以下语句将用户分配到默认的表空间:```sqlALTER USER username DEFAULT TABLESPACE tablespace_name;```其中,`tablespace_name`为要分配给用户的表空间的名称。

### 1.2 修改用户密码1. 打开Oracle数据库管理工具。

2. 使用管理员账户登录。

3. 执行以下SQL语句修改用户密码:```sqlALTER USER username IDENTIFIED BY new_password;```其中,`username`为要修改密码的用户名,`new_password`为用户的新密码。

### 1.3 删除用户1. 打开Oracle数据库管理工具。

2. 使用管理员账户登录。

3. 执行以下SQL语句删除用户:```sqlDROP USER username;```其中,`username`为要删除的用户名。

二、数据库备份与恢复----------### 2.1 执行完整备份1. 打开Oracle数据库管理工具(如Enterprise Manager)。

2. 选择要进行备份的数据库。

3. 执行备份命令。

通常使用类似以下的命令:```bashRMAN> RUN {2> ALLOCATE CHANNEL c1 DEVICE TYPE DISK;3> BACKUP DATABASE FORMAT '/path/to/backup/location/backup_date' PLUS ARCHIVELOG;4> }```其中,`/path/to/backup/location/`为备份文件的存储路径,`backup_date`为备份日期和时间。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档