友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
oracle从入门到精通(PDF格式)-第11部分
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!
4。手动分配区:
alter table hr。employees allocate extent(size 500k datafile 'filepath');
5。非分区表的重组
alter table owner。table move tablespace space_name;
当表被重组后,它的结构被重组,但内容没有影响;
约束条件不变,但与其对应的索引不存在了,所以重组之后的索引必须重建;
可以被用于移动表到新的表空间或者重组区;
6。删除列:
alter table owner。table_name drop
column col_name cascade constraints checkpoint 1000;
checkpoint 1000 每一千行 执行一次检查点
检查点:完成同步,将写入日志的改变对应的数据写入数据文件中;
从每行中删除掉列占据的长度和数据,释放在数据块中占用的空间。
删除大表中的一列将花费比较长的时间。
7。重命名表中的一列:
alter table owner。table_name
第 68 页,共 106 页
…………………………………………………………Page 69……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
rename column old_name to new_name;
8。标记列不再使用:
alter table owner。table_name
set unused column col_name cascade constraints;
9。删除不使用的列:
alter table owner。table_name
drop unused columns checkpoint 1000;
10。继续列的删除操作:
alter table owner。table_name
drop columns continue checkpoint 1000;
11。得到表的信息:
DBA_TABLES DBA_OBJECTS
22、管理索引(index)
关键字+ROWID,排序!!!
1。索引的分类:
逻辑上:
Single column 单行索引
Concatenated 多行索引
Unique 唯一索引
NonUnique 非唯一索引
Function…based 函数索引
Domain 域索引
物理上:
Partitioned 分区索引
NonPartitioned 非分区索引
B…tree:
Normal 正常型 B 树
Rever Key 反转型 B 树
Bitmap 位图索引
2。索引结构:
B…tree:
适合与大量的增、删、改(OLTP);
第 69 页,共 106 页
…………………………………………………………Page 70……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
不能用包含 OR 操作符的查询;
适合高基数的列(唯一值多)
典型的树状结构;
每个结点都是数据块;
大多都是物理上一层、两层或三层不定,逻辑上三层;
叶子块数据是排序的,从左向右递增;
在分支块和根块中放的是索引的范围;
Bitmap:
适合与决策支持系统;
做 UPDATE 代价非常高;
非常适合 OR操作符的查询;
基数比较少的时候才能建位图索引;
树型结构:
索引头
开始 ROWID,结束 ROWID(先列出索引的最大范围)
BITMAP
每一个 BIT对应着一个 ROWID,它的值是 1 还是0,如果是 1,表示着 BIT对应
的 ROWID 有值;
3。存储参数:
initial 初始化大小
next 下一个区大小
pctincrease 区大小增量
minextents 最小区数(本地管理)
maxextents 最大区数(本地管理)
4。创建B…TREE索引:
CREATE INDEX owner。index_name
ON owner。table_name(col_list)
PCTFREE n
STORAGE(INITAL nK NEXT nK PCTINCREASE n MAXEXTENTS n )
TABLESPACE space_name;
5。索引PCTFREE的变化:
索引不存在 PCTUSED;
PCTFREE 的含义是为新的插入预留的空间,在索引创建时保留;
在索引中是没有 UPDATE的。
6。创建索引的提示:
平衡查询与 DML 操作的需求,不要建太多的索引;
将索引放在单独的表空间;
使用统一的区大小:5 块的整倍数或表空间的 MINIMUMEXTENT的大小;
第 70 页,共 106 页
…………………………………………………………Page 71……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
对于大的索引考虑使用 NOLOGGING(不产生日志文件,插入时速度快,索引不需要产生日志);
索引的 INITRANS 应该比相应表的 INITRANS 设置的高一些;
7。创建位图索引:
参数: create_bitmap_areasize 在创建位图索引之前为其分配区域。
CREATE BITMAP INDEX owner。index_name
ON owner。table_name(col_list)
PCTFREE 30
STORAGE(INITAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50)
TABLESPACE space_name;
8。改变索引参数:
alter index index_name storage(NEXT 400K MAXEXTENTS 50);
高水平线(HWM):曾经被使用过的最后一块的位置,当对存储对象进行 TRUNCATE 时,
高水平线才会回到起点。
对全表扫描的时候,读到高水平线为止;
9。重建索引:
移动索引到另外的表空间;
通过清除删除掉的索引记录提高了空间的利用率,改善 PCTFREE 设置不良带来的问题;
alter index index_name rebuild tablespace space_name;
10。在线重建索引:(建议不使用)
alter index index_name rebuild online;
11。合并索引:
alter index index_name coalesce;
只能把同一个分支下的空间合并。
12。删除索引:
在数据做大量数据装载之前删除索引,之后再重建索引;
删除那些很少使用的索引,在需要的时候再创建(月底报表);
删除并重建失效的索引;
删除不需要的索引(备选);
drop index owner。index_name;
13。确定未使用的索引:
开始监视索引的使用:ALTER INDEX index_name MONITORING USAGE;
第 71 页,共 106 页
…………………………………………………………Page 72……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
停止监视索引的使用:ALTER INDEX index_name NOMONITORING USAGE;
14。查看索引信息:
dba_indexes 提供索引的信息
dba_ind_columns 提供索引列的信息
23、管理口令安全和资源
profiles:是命名的口令管理和资源限制的集合;
不是物理上的文件;
profiles 通过 CREATE USER 或 ALTER USER 命令分配给用户;
可以被启用或禁用;
可以使用 DEFAULT profile;
profiles 提供的口令管理:
口令历史,保证在规定的时间和次数以后重用以有的口令;
允许最多的错误次数;
口令的过期失效;
口令的效验规则;
启动口令管理:
通过使用 profiles 建立口令管理并分配给用户;
通过 CREATE USER 或 ALTER USER 命令可以使用户的状态为 lock、unlock或是 expired;
口令的限制总是强制的;
为了启动口令管理,以 SYS 用户身份执行 utlpwdmg。sql 脚本;
存放脚本路径:oracle/ora92/rdbms/admin
ALTER USER user_name ACCOUNT LOCK; 手动锁定。
ALTER USER user_name ACCOUNT UNLOCK; 手动解锁。
ALTER USER user_name PASSWORD EXPIRED; 设置口令过期。
1。口令帐户锁定:
failed_login_attempts 在试图登陆多少次失败后,帐户被锁定。
password_lock_time 在由登陆失败的帐户被锁定的天数
2。自动锁定,可以手动解锁
3。口令的到期和过期:
password_life_time 口令到期的天数
password_grace_time 在口令到期后,从用户第一次成功登陆开始允许修改口令的天数;
4。口令历史:
password_reuse_time 口令在可以重用前必须经过的天数
password_reuse_max 口令在可以重用前必须被修改过的次数
这两个参数是互相排斥的。
第 72 页,共 106 页
…………………………………………………………Page 73……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
5。口令的校验:
password_verify_function + function_name
在口令修改被确认前通过 PL/SQL 函数执行口令的复杂性校验。
6。用户提供的校验函数:
必须在 SYS用户下创建,必须遵循下面的声明:
function_name
( userid_parameter in varchar2(30)
password_parameter in varchar2(30)
old_password_parameter in varchar2(30)
)
return boolean
7。口令校验函数:
verify_function
8。创建profile口令设置:
create profile profile_name LINIT
failed_login_attempts 3
password_lock_time unlinited ……无限
password_life_time 30
password_grace_time 5
password_reuse_time 30
password_verify_function verify_function;
9。修改 profile :口令设置
alter profile DEFAULT limit
password_life_time 30
password_grace_time 5
password_reuse_time 30;
10。删除 profile: 口令设置
defaule profile 不能被删除;
cascade 从被授予的用户上移走 profile
drop profile profile_name;
drop profile profile_name cascade;
24、资源管理:
资源管理限制可以强制在会话级和调用级或者都可以强制限制;
可以通过 CREATE PROFILE 命令定义在 profiles上;
第 73 页,共 106 页
…………………………………………………………Page 74……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
1。启动资源限制通过:
resource_limit 初始化参数
alter system 命令
alter system resource_limit = true/false;
2。会话级参数:
cpu_per_session 总的 CPU 时间(单位:百分之一秒)
sessions_per_user 每个用户允许的并发会话数
connect_time 每个用户的连续会话时间(单位:分)
idle_time 挂起状态时间(单位:分)
logical_reads_per_session 每个用户能够使用的数据块数
private_sga 在 SGA 的私有空间数(单位:字节,只对共享服务器有效)
3。调用级参数:
cpu_per_call 每次调用的 CPU 时间
ogical_reads_per_call 每次调用读的数据块数(物理读和逻辑读)
4。创建profile:资源配制
create profile profile_name limit
cpu_per_session 10000
sessions_per_user 2
idle_time 60
connect_time 480;
5。查看:
dba_users
dba_profiles
24、管理用户
1。 用户:
操作系统权限
用户口令
用户状态:锁定、未锁定
默认表空间(创建时设置)可选位置,不一定能放东西。
临时表空间
表空间配额(永久类型表空间才有)
如果用户创建对象的时候只是指定了默认表空间而不指定表空间配额的话,对象是不能
被创建的。
2。数据库的方案:
是命名的对象集合;
第 74 页,共 106 页
…………………………………………………………Page 75……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
一个用户被创建,方案也同时被创建;
一个用户只能用于一个方案关联;
用户名经常和方案交替使用;
3。创建用户的步骤:
确定用户用于存放对象的表空间;
确定每个表空间的配额;
指定默认表空间和临时表空间;
创建用户;
为用户分配权限和角色;
4。创建一个新的用户:数据库认证
create user user_name identified by password
DEFAULT tablespace space_name
temporary tablespace temp_table_name
quota nM on data
quota nM on users
quota nM on index
。。。。。
password expire;
5。改变用户的表空间配额:
在下列情况下需要修改:
用户的表异常增长;
应用被增强并需要更多的表和索引;
对象被重组并被放在不同的表空间上;
ALTER USER user_name quota nM on user_name;
ALTER USER user_name quota 0 on user_name;
为 0:
不能再使用空间了;
原有空间可以使用;
6。删除用户:
drop user user_name cascade;
删除方案中包含的所有对象;
正在连接服务器的用户不能删除;
7。查看:
dba_users dba_ts_quotas
25、管理权限
start restrict(启动到限制模式)
unlimited tablespace 无限空间配额
第 75 页,共 106 页
…………………………………………………………Page 76……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
只能直接授予,不能传递授予
1。 两种用户权限:
系统:使用户可以在数据库中执行特定的任务;
对象:使用户可以操作访问特定的对象;
2。系统权限:
在权限中的 ANY 关键字表示用户在所有方案中都有权限
GRANT 将权限授予一个用户或一组用户
REVOKE 将权限从用户身上移走
3。授予系统权限:
grant priv_list to users with admin option;不及联删除
4。授予对象权限:
grant priv_list to users with grant option;及联删除
sysoper
startup
shutdown
alter database open | mount 备份控制文件
alter datadase backup controlfile to recover database 恢复数据库
alter database archivelog
restricted session
sysdba
sysoper privileges with admin option
create datadase
alter tablespace begin/end backup
restricted session
recover database until
O7_dictionary_accessibility 参数:
控制 SYSTEM权限的限制;
如果设置为 TRUE,可以访问 SYS 方案中的对象;
默认问 FALSE:确保能访问其他方案的用户不能访问 SYS 方案中的对象;
5。移除系统权限:
使用 REVOKE 命令从用户上去除系统权限;
具有 ADMIN OPTION 选项的用户可以移除系统权限;
只有用 GRANT 命令授予的权限可以被移除;
revoke create table from emi;
6。对象权限:
VIEW 没有 ALTER 权限;
第 76 页,共 106 页
…………………………………………………………Page 77……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
7。移除对象权限:
移除对象权限的用户必须是要移除对象权限的对象的拥有者;
revoke select on owner。object from user_name;
8。查看:
SESSION_PRIVS 当前会话拥有的通过角色授予的权限信息;
DBA_SYS_PRIVS 关于被授予用户或角色的系统权限信息;
dba_tab_privs
dba_col_privs
26、管理角色
角色的好处:
简化了权限的管理
实现了动态权限管理
可以选择可用的权限
管理过程:
1。创建角色:
CREATE ROLE role_name;
CREATE ROLE role_name IDENTIFIED BY password;
创建的角色不属于任何一个用户;
2。赋予角色权限:
GRANT priv_list TO role_name;
3。将角色赋予用户;
grant role to user with admin option;
grant role_name1 to role_name2; 将角色赋予角色
4。设置用户的默认角色在需要的时候启用或禁用角色;
一个用户可以被分配许多角色
一个用户可以被指定默认角色
可以限制用户的默认角色
ALTER USER user_name DEFAULT ROLE role_name1;role_name2;
ALTER USER user_name DEFAULT ROLE all;
ALTER USER user_name DEFAULT ROLE all except role_name;除了这个角色其他
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!