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

合集下载

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临时表

深入浅出谈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的临时表、分区表、分区索引

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基础必学知识点

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 数据库管理员日常操作手册

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`为备份日期和时间。

Oracle用户和模式,表空间

Oracle用户和模式,表空间

Oracle⽤户和模式,表空间oracle ⽤户与表空间关系oracle⽤户与表空间关系⽤户=商家表=商品表空间=仓库1. 1个商家能有很多商品,1个商品只能属于⼀个商家2. 1个商品可以放到仓库A,也可以放到仓库B,但不能同时放⼊A和B3. 仓库不属于任何商家4. 商家都有⼀个默认的仓库,如果不指定具体仓库,商品则放到默认的仓库中oracle中⽤户的所有数据都是存放在表空间中的,很多个⽤户可以共⽤⼀个表空间,也可以指定⼀个⽤户只⽤某⼀个表空间。

表空间:创建表空间会在物理磁盘上建⽴⼀个数据⽂件,作为数据库对象(⽤户、表、存储过程等等)的物理存储空间;⽤户:创建⽤户必须为其指定表空间,如果没有显性指定默认表空间,则指定为users表空间;创建⽤户后,可以在⽤户上,创建表、存储过程等等其他数据库对象;表:是数据记录的集合;创建过程:表空间--->⽤户--->表;所属关系:表空间包含⽤户包含表;所以在oracle下建⽴建表空间,建⽤户,设置⽤户的默认表空间,在⽤户下建表;--创建数据表空间create tablespace CICIloggingdatafile 'D:\oraclexe\app\oracle\oradata\CICI\CICI.DBF'size 32mautoextend onnext 32m maxsize 2048mextent management local;--创建⽤户并指定表空间CREATE USER cici IDENTIFIED BY ciciPROFILE DEFAULTDEFAULT TABLESPACE CICIACCOUNT UNLOCK;-- 为⽤户赋予权限GRANT connect, resource TO cici;grant create session to cici;查询数据库当前进程的连接数:select count(*) from v process; 查看数据库当前会话的连接数: select count(*) from v session;查看数据库的并发连接数:select count(*) from v session where status='ACTIVE'; 查看当前数据库建⽴的会话情况: selectsid,serial#,username,program,machine,status from v session;查询数据库允许的最⼤连接数:select value from v$parameter where name = 'processes';Oracle⽤户和模式的区别以下来⾃另⼀⽂:A⽤户是表table1的属主,B⽤户要查询table1中的数据1、⽤户A给⽤户B授权查询权限(⽤户B登录数据后可以查询,select * from A.table1,必须显⽰写上属主才能查询)2、⽤户A给table1建同义词,查询table1时,可以直接select * from table1,隐藏掉table1的属主create orreplace synonym lsfapcopr.tsysparameter for lsfapdata.tsysparameter;1、属主(owner)⽤简单的话来说就是数据库的⽤户。

oracle索引创建及使用

oracle索引创建及使用

oracle索引创建及使用摘要:1.Oracle 索引的定义与作用2.Oracle 索引的类型3.Oracle 索引的创建方法4.Oracle 索引的使用方法5.Oracle 索引的维护与优化正文:【Oracle 索引的定义与作用】Oracle 索引是Oracle 数据库中一种重要的对象,它可以提高查询数据的速度,有效地减少查询时间。

索引的作用类似于书籍的目录,可以让我们快速定位到需要的信息。

在数据库中,索引可以让数据库系统快速找到所需的数据,从而提高查询效率。

【Oracle 索引的类型】Oracle 索引分为以下几种类型:1.B-Tree 索引:B-Tree 索引是最常用的索引类型,适用于大多数场景。

它将数据分布在多个节点上,通过平衡树的结构来提高查询效率。

2.Bitmap 索引:Bitmap 索引适用于数据量较小且列值分布较为集中的场景。

它将每个列的值用二进制位表示,从而减少存储空间和提高查询速度。

3.Function-Based 索引:基于函数的索引,可以通过对函数结果进行索引来提高查询效率。

适用于对复杂计算结果的查询加速。

4.Global Temporary Index:全局临时索引,适用于需要在多个表空间之间进行查询的场景。

5.Partition Index:分区索引,适用于将大表按照一定规则划分为多个分区的场景,可以提高查询效率。

【Oracle 索引的创建方法】创建Oracle 索引可以使用CREATE INDEX 语句,基本语法如下:```CREATE INDEX index_nameON table_name (column_name)INDEX_TYPE index_type(column_name, column_name,...)EXTENTS (number_of_extents)LOGGING logging_optionOLOGGING nologging_optionSTORAGE (storage_option);```其中,index_name 为索引名称,table_name 为表名,column_name 为需要创建索引的列名,index_type 为索引类型,number_of_extents 为索引分区数量,logging_option 和nologging_option 分别为是否启用日志记录和是否禁用日志记录,storage_option 为存储选项。

Oracle新建用户、角色,授权,建表空间

Oracle新建用户、角色,授权,建表空间

Oracle新建用户、角色,授权,建表空间oracle数据库的权限系统分为系统权限与对象权限。

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

例如,create table权限允许用户创建表,grant any privilege 权限允许用户授予任何系统权限。

对象权限( database object privilege )可以让用户能够对各个对象进行某些操作。

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

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

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

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

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

一、创建用户oracle内部有两个建好的用户:system和sys。

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

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

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

要改变一个口令,可以使用alter user命令:<span style="white-space: pre;"> alter user user01 identified by usr01;</span><span style="white-space: pre;"><span style="white-space: normal;"> </span> </span>现在user01的口令已由“u01”改为“usr01”。

oracle表空间的概念和作用

oracle表空间的概念和作用

oracle表空间的概念和作用
Oracle表空间是逻辑上的一个概念,用于组织和管理数据库中的表、索引、存储过程、视
图等数据库对象。

作用如下:
1. 数据存储:表空间是物理存储数据库对象的地方,包括表、索引、数据文件等。

通过在不同
的表空间存储不同的数据库对象,可以对数据进行组织和管理。

2. 空间管理:通过表空间可以对数据库中的数据进行逻辑上的划分,方便进行空间管理和监控。

可以通过创建多个表空间在不同的磁盘上存储数据,提高数据库的性能和容量。

3. 管理对象:可以通过分配不同的表空间给不同的数据库用户,实现对数据库对象的权限管理。

不同的用户可以在自己的表空间中创建、修改和删除数据库对象。

4. 数据备份和恢复:使用表空间可以方便地进行数据备份和恢复。

可以根据需要备份或恢复整
个表空间,而不必担心其他表空间中的数据。

5. 性能优化:通过合理划分表空间可以提高数据库的性能。

可以将相互关联的表放在同一个表
空间中,减少物理I/O操作和提高查询性能。

总之,表空间的概念和作用是为了更好地管理和组织数据库中的数据,提高数据库的性能和管
理效率。

甲骨文数据库oracle个人学习资料(pdf 34页)

甲骨文数据库oracle个人学习资料(pdf 34页)

甲骨文数据库oracle个人学习(OCP-042)by bingosummer一、创建oracle数据库1.数据库制定计划1)组成表空间的多个数据文件实际存储在哪些磁盘驱动器上。

2)制定备份策略,通过变更数据库的逻辑存储结构或设计可以提高备份效率。

2.典型的数据库类型:1)数据仓库:长期存放数据2)事务处理数据库:处理数量很多但规模通常较小的事务。

ATM.结账收款系统3)通过数据库3.删除数据库1)数据库必须装载且已关闭2)必须以独占方式而不是以共享模式装载数据库3)数据必须装载为Restricted4)删除语句Drop database,会删除数据文件、重做日志文件、控制文件和初始化参数文件。

对归档日志、数据库副本或备份不起作用。

5)如果数据文件保存在RAW设备中,则不会删除RAW设备专用文件。

二、管理ORACLE实例1.启动和停止dababase control1)emctl start|stop|status dbconsole2)执行程序emctl在$oracle_home/bin 路径下2.从SQL*PLUS 下调用SQL脚本1)sqlplus hr/hr @script.sql2)sql> @script.sql3.初始化参数文件1)服务器参数文件spfile<sid>.ora 路径:$ORACLE_HOME/dbs2)文本初始化文件init<sid>.ora 路径:$ORACLE_HOME/dbs4.关闭数据库1)sql> shutdown abort| immediate | transactional | normal5.启动数据库1)sql> startup force | restrict | mount |open |nomount6.预警日志记录:/u01/app/oracle/admin/orcl/bdump/alert_<sid>.log7.动态性能视图1)建立在根据数据库服务器内的内存结构构建的虚拟表基础上。

Oracle数据库简答题-考试重点

Oracle数据库简答题-考试重点

1.简单描述Oracle数据库体系结构的组成及其关系?答:Oracle数据库体系结构由物理存储结构、逻辑存储结构和实例组成。

其中物理存储结构描述了操作系统层次数据的存储与管理,包括数据文件、日志文件、重做日志文件等组成.逻辑结构描述了数据库内部数据的组织与管理,由表空间、段、区、块组成.实例是数据库运行的软件结构,由内存结构和后台进程组成。

数据库运行过程中,用户的操作在内存区中进行,最终通过后台进行转化为对数据库的操作。

2、说明Oracle数据库物理存储结构的组成?Oracle数据库物理结构包括数据文件、控制文件、重做日志文件、初始化参数文件、归档文件、口令文件等。

在控制文件中记录了当前数据库所有的数据文件的名称与位置、重做日志文件的名称与位置,以及数据文件、重做日志文件的状态等。

3、说明Oracle数据库数据文件的作用?数据文件中保存了数据库中的所有数据,包括数据字典以及用户数据。

4、说明Oracle数据库控制文件的作用?控制文件保存数据库的物理结构信息,包括数据库名称、数据文件的名称与状态、重做日志文件的名称与状态等。

在数据库启动时,数据库实例依赖初始化参数定位控制文件,然后根据控制文件的信息加载数据文件和重做日志文件,最后打开数据文件和重做日志文件.5、说明Oracle数据库重做日志文件的作用?重做日志文件是以重做记录的形式记录、保存用户对数据库所进行的修改操作,包括用户执行DDL、DML语句的操作。

如果用户只对数据库进行查询操作,那么查询信息是不会记录到重做日志文件中的。

6、说明数据库逻辑存储结构的组成和相互关系.Oracle9i数据库的逻辑存储结构分为数据块、区、段和表空间四种。

其中,数据块是数据库中的最小I/O单元,由若干个连续的数据块组成的区是数据库中最小的存储分配单元,由若干个区形成的段是相同类型数据的存储分配区域,由若干个段形成的表空间是最大的逻辑存储单元,所有的表空间构成一个数据库.7、说明数据库表空间的种类,以及不同类型表空间的作用.数据库表空间分为系统表空间和非系统表空间两类,其中非系统表空间包括撤销表空间、临时表空间和用户表空间等。

Oracle 学习笔记

Oracle 学习笔记

Oracle数据库→表空间→用户→表表空间:包含表、视图、索引段:包含数据段、索引段、回退段、临时段数据块:是Oracle中最小的逻辑存储单元创建表空间:create tablespace rootspacedatafile 'rootfile' size 1000mautoextend on创建用户:create user root用户名rootidentified by root 密码rootdefault tablespace rootspace 默认表空间rootspacetemporary tablespace temp 临时表空间tempCREATE USER usernameIDENTIFIED BY password[DEFAULT TABLESPACE tablespace][TEMPORARY TABLESPACE tablespace];授予用户username【用户名】权限:·grant connect to username; CONNECT角色允许用户连接至数据库,并创建数据库对象·grant resource to username; RESOURCE角色允许用户使用数据库中的存储空间·grant create sequence to username; 此系统权限允许用户在当前模式中创建序列,此权限包含在CONNECT角色中·grant select on test to username; 允许用户查询 TEST 表的记录·grant update on test to username; 允许用户更新 TEST 表中的记录·grant all on test to username; 允许用户插入、删除、更新和查询TEST 表中的记录·alter user username identified by newpassword;用于修改用户口令·drop user username cascade; 删除用户撤销用户权限:Revoke connect from username;设置显示行长度:Set linesize 12;伪列rownum:Select rownum,name from table;………………………………>Rownum name1 haha2 xxxx--创建表tb_stucreate table tb_stu(stu_id char(12) primary key,stu_name varchar(50) not null,sex varchar(5),birthday date)--查询表tb_stuselect * from tb_stu;--在表中插入tb_stu记录insert into tb_stu(stu_id,stu_name,sex,birthday) values('123456789012','李四','男',to_date('2009-9-9','yyyy-mm-dd'));--事务提交commit;--事务回滚rollback;--根据stu_name查询所有信息select * from tb_stu where stu_name='田七'--根据stu_id删除一条记录delete from tb_stu where stu_id=123456789015--根据stu_id修改一条记录update tb_stu set sex='女',stu_name='梁朝伟'where stu_id='123456789013';--to_date 修改存入数据库中日期的格式update tb_stu set birthday=to_date('2009-10-5','yyyy-mm-dd') wherestu_id='123456789014'--to_date 查询数据库中日期按指定格式输出select* from tb_stu where birthday between(to_date('2009-10-1','yyyy-mm-dd')) and (to_date('2009-12-1','yyyy-mm-dd'))--虚列 rownum 数据库中实际并不存在对符合条件的查询结果的编号select rownum,stu_id,stu_name,sex,birthday from tb_stu where sex='男';--在查询结果中进行查询select * from (select rownum rn,stu_id,stu_name,sex,birthday from tb_stu where sex='男') where rn<3;--创建表tb_employeecreate table tb_employee(em_id number primary key,em_name varchar(50) not null,sex varchar(2),birthday date,sal number(20,2))--向表tb_employee中插入数据insert into tb_employee values(1,'梁朝伟','男',sysdate,11000000);--按字段升序排列(默认的为升序)select * from tb_employee where sal>200order by sal asc--按字段升序排列select * from tb_employee where sal>200order by sal desc--取别名:将查询的字段按一个特定的字段名输出select em_name,((sal-2000)*0.2) 税收from tb_employee where sal>2000;--联合字段,将查询出的多个字段或者是字符串连接在一起,以一个字段输出,用“||”连接select em_name||'的应该缴税: '||((sal-2000)*0.2) as税收from tb_employee where sal>2000order by税收desc;--将em_name为“梁朝伟”的记录的birthday字段,按指定的日期格式进行修改update tb_employee set birthday=to_date('1969-1-1','yyyy-dd-mm') where em_name='梁朝伟';--查询birthday字段不为当前系统时间并且不为空的值--不等于的三种书写方式(!=,^=,<>)select * from tb_employee whereto_char(birthday,'yyyy')^=to_char(sysdate,'yyyy');-- or 连接的多条件“或”查询select * from tb_employee where birthday is null or em_id=1;--between 3 and 5 查询条件为:大于等于3同时小于等于5select * from tb_employee where em_id not between3and5;--查询条件为:大于其中任意一个(只要大于其中的某一个就为满足条件)select * from tb_employee where em_id > any(1,3,5);--查询条件为:小于其中所有的(只有比括号中所有的数字都小才为满足条件)select * from tb_employee where em_id < all(3,5);--下划线表示任意的以个字符select * from tb_employee where em_name like'周__';-- % 表示任意多个字符select * from tb_employee where birthday like'%';--快速创建和tb_stu相同的表结构的表tb_stu_temp1create table tb_stu_temp1as select * from tb_stu where1=2;--将表tb_stu按条件查询的结果插入表tb_stu_temp1中insert into tb_stu_temp1(select * from tb_stu);--查询所有的表select * from tab ;--根据表名查询表select * from tab where tname='tb_stu';如果2个表达式主键管理的:主表——子表先插入主表的数据,然后子表删除:先删从表数据,然后主表。

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

一、用户的创建和管理创建和删除用户是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。

相关文档
最新文档