《Oracle 表空间与用户管理课件》由会员分享,可在线阅读,更多相关《Oracle 表空间与用户管理课件(40页珍藏版)》请在金锄头文库上搜索。
1、回顾,内存结构 物理结构 逻辑结构 数据库的启动顺序 常用的配置文件与配置参数 启动模式,表空间与用户管理,目标,表空间管理 用户管理 用户权限管理,表空间,数据库由若干表空间组成 表空间空间的集合包含: 表段,存放表数据 索引段,存放索引数据 临时段,排序 回滚段,事务读一致性、回滚 查看有哪些表空间 Select * from v$tablespace 查看有哪些数据文件 Select * from v$datafile,表空间和数据文件的作用: 使用户数据和数据字典(系统表数据)数据相分离。减少字典对象和模式对象在同一个数据文件中的竞争 使不同应用程序的数据相分离。使用户对数据文件的管理
2、更清晰,各个程序的表空间的操作互不影响,即使单个表空间处于脱机也不影响其他的表空间正常运行 将回滚段从用户数据中分离出来,防止了单个磁盘的故障造成的数据的不可恢复,表空间管理,表空间管理,表空间的组成: 系统表空间 (System Tablespace) 用户表空间 (Users Tablespace) 临时表空间 (Temp Tablespace) 工具表空间 (Tools Tablespace) 索引表空间 (Index Tablespace) 回滚表空间 (Undo Tablespace) 文本数据表空间 (DRSYS Tablespace) 用户自定义的其他表空间,表空间可以分为两大类
3、: 系统表空间: 在创建数据库时一同创建的,用于存放数据字典对象,并包含了系统回滚段。 可以存储用户数据,但oracle建议一般不用于存放用户数据 非系统表空间: 永久表空间: 用于存储用户永久数据 临时表空间 (temporary tablespace): 用于存储临时数据,如用户数据进行排序时产生的数据;使用临时表空间在很大程度上提高了用户进行大量数据的排序性能 还原表空间(undo tablepspace): 提供对回滚段的自动管理,表空间管理,管理表空间主要包括以下操作: 创建表空间 Create (temporary|undo) tablespace 更改表空间的存储参数 更改表空间
4、的状态 Alter tablespace/manage tablespace 删除表空间 drop tablepace/manage tablespace 查看表空间的信息,表空间管理,对表空间中的区的分配和使用有两种管理方式: 数据字典管理: 使用数据字典来跟踪表空间的使用情况 本地管理(9i后默认的方式,也是推荐的方式): 使用位图跟踪表空间的使用情况,位图存储于头文件中,表空间管理,创建表空间 Extend management字句:区的管理方式 本地管理(local)还是字典管理(dictionary) 如果是local需要指定是自动管理(autoallocate)表空间大小还是一个指
5、定大小(uniform size)的区来管理 Segment space management字句:段空间的管理方式 自动管理(auto)或使用空间列表进行管理(manual) 是否启动重做日志文件纪录表空间的数据更改情况 Logging / nologging datafile字句: 至少指定一个属于该表空间的数据文件,表空间管理,创建表空间 CREATE TABLESPACE APP LOGGING DATAFILE C:ORACLEORADATAEXAMPLEAPP1.DBF SIZE 5M REUSE AUTOEXTEND ON NEXT 512K MAXSIZE 10M EXTENT
6、 MANAGEMENT LOCAL 创建本地管理的临时表空间 CREATE temporary TABLESPACE APPTEMP TEMPFILE C:ORACLEORADATAEXAMPLEAPPTEMP.DBF SIZE 5M EXTENT MANAGEMENT LOCAL Uniform size 1 M 创建本地管理的还原表空间 CREATE undo TABLESPACE “roolback1 DATAFILE C:ORACLEORADATAEXAMPLEroolback1.DBF SIZE 5M,表空间管理,表空间的状态,联机: 用户可以正常访问此表空间的数据 又可以将联机状态
7、的表空间设置为只读或可读写: 脱机: 此状态的表空间或数据暂时不可用,用户不能访问 用于部分的停止数据库、修复数据库文件、改物理文件名、移动物理文件 表空间脱机 ALTER TABLESPACE APP OFFLINE Normal 恢复表空间为联机状态 ALTER TABLESPACE APP ONLINE,更改表空间的状态 SYSTEM表空间和临时表空间不能被脱机 包含活动的回滚段的表空间也不能被脱机 Normal 清除此表空间的所有数据文件在SGA中分配的空间,该方式为默认方式,且再联机的时候不需要执行介质恢复 Temporary 脱机前需要设置检查点,则再联机的时候需要执行介质恢复 I
8、mmediate 脱机前不需要设置检查点,则再联机的时候需要执行介质恢复 如果数据库运行在noarchivelog模式下,则不能立即脱机 For recover 将数据库中进行point-in-time恢复的表空间设置为脱机,表空间管理,表空间脱机 查询数据,设置表空间为只读,只读表空间不能写数据,可删除数据 ALTER TABLESPACE APP READ ONLY 可将只读表空间写到CD中,然后修改表空间数据文件的位置 设置表空间为读/写 ALTER TABLESPACE APP READ WRITE,表空间管理,删除表空间 DROP TABLESPACE “APP” INCLUDING
9、 CONTENTS AND DATAFILES 带INCLUDING CONTENTS可删除表空间的对象,不删文件 带AND DATAFILE删除数据文件 改变表空间数据文件大小 ALTER DATABASE DATAFILE d:oracleoradatastudymyapp01.dbf autoextend on -自动扩张 Resize 50m -改变大小 ALTER TABLESPACE MYAPP ADD DATAFILE d:oracleoradatastudymypp02.dbf size 10m;,改变表空间数据文件 准备好数据文件 表空间离线 修改数据文件,举例 表空间离线
10、Alter tablespace myapp offline 修改数据文件名称,在操作系统下改 修改表空间数据文件 alter tablespace myapp rename datafile d:oracleoradatastudymyapp01.dbf to d:oracleoradatastudymyapp02.dbf,如果要重命名system表空间的数据文件?,OEM创建表空间,脚本创建表空间,CREATE TABLESPACE STORE LOGGING DATAFILE D:ORACLEORADATASTUDYSTORE.ora SIZE 5M EXTENT MANAGEMENT
11、LOCAL,表空间名,启用重做日志记录表空间数据的更改,本地管理表空间使用情况,创建用户,Oracle是一个多用户的数据库系统,每个试图使用Oracle的用户都必须得到一个合法的用户名和口令。 用户也叫方案,是一组逻辑对象的所有者; 创建用户时需要指定: 验证方法:连接数据库的合法密码 默认和临时表空间:当用户创建对象时,如果没有特殊指定另一个表空间,将使用默认表空间。临时表空间用来创建临时段。,语法: Create user 用户名 Identified by 密码 default tablespace 默认表空间名称 quota nk on 表空间名字 password expire Ac
12、count lock | unlock 参数说明: quota nk 限制用户在表空间上的使用限额,单位为KB或MB,如为unlimited说明使用表空间不受限制 password expire 说明用户的密码已经到期失效,登陆的时候要强制用户修改密码 Account指锁定或解除用户帐号,创建用户,举例,创建用户,CREATE USER ST IDENTIFIED BY 123 DEFAULT TABLESPACE STORE ACCOUNT UNLOCK; GRANT CONNECT TO ST; GRANT RESOURCE TO ST;,修改用户的默认表空间 ALTER USER kon
13、g default tablespace=store 修改用户在表空间上的空间使用限额 ALTER USER kong quote 10m ON STORE 修改用户密码 Alter user test identified by test11;,OEM创建用户,启动两个SQL PLUS:A、B表示,Aconn sys/change_on_install as sysdba Acreate user test identified by test123 default tablespace store; Bconn test/test123 -出错,没有create session的权限 Ag
14、rant create session to test; -授权成功 Bconn test/test123-连接成功 Bcreate table ab(a number(5), b varchar2(20); -权限不足 Agrant create table to test; -赋给操作权限 Bcreate table ab(a number(5), b varchar2(20); -没有表空间store的权限 Agrant unlimited tablespace to test; -赋给用户表空间资源的操作权限 Bcreate table ab(a number(5), b varcha
15、r2(20); -创建成功 Bselect * from scott.dept; -表或试图不存在,因为没权限 Bgrant select any table to test; -赋给用户可以查询任何表空间的表的数据 Bselect * from scott.dept; -OK Bcreate user test1 identified by test1 -权限不足 Agrant create user to test with admin option; -给test赋给创建用户的权限,并且test可以将创建用户的权限赋给其他用户 Agrant create session to test
16、with admin option; Bcreate user test1 identified by test1 -创建成功 Bconn test1/test1 -连接失败,没有权限 Bgrant create session to test1 -test用户将create session权限赋给test1 Bconn test1/test1-连接成功,对象权限,数据控制语言为用户提供权限控制命令 用于权限控制的命令有: GRANT 授予权限 REVOKE 撤销已授予的权限,SQL GRANT SELECT, UPDATE ON EMP TO user;,SQL GRANT UPDATE(SAL, HIREDATE) ON EMP TO user;,SQL GRANT SELECT ON EMP TO user WITH GRANT OPTION;,SQL REVOKE SELECT, UPDATE ON EMP FROM user;,查看用户的权限,查看当前用户的角色SQLselect * from