转:http://blog.chinaunix.net/u/4325/showart_185446.html
-------创建表空间
CREATE TABLESPACE MT_MSG_TAB DATAFILE '/data/oracle/product/oradata/orcl/MT_TAB/mt_msg_tab01.dbf' SIZE 2000M
DEFAULT STORAGE ( INITIAL 4M NEXT 4M MINEXTENTS 2 MAXEXTENTS UNLIMITED PCTINCREASE 0);
alter tablespace DCS_INDEX_SPACE add datafile '/data/oracle/product/oradata/orcl/MT_TAB/dcs_index02.dbf' size 2000M;
-------删除表空间
startup mount
alter database datafile filename offline drop;
alter database open;
drop tablespace tablespace_name including contents;
-------查看当前用户缺省表空间
select username,default_tablespace from user_users;
-------查看当前用户的角色
select * from user_role_privs;
-------查看当前用户的系统权限和表级权限
select * from user_sys_privs;
select * from user_tab_privs;
-------查询表空间使用情况(可以查出表空间总量的情况,各项分别是表空间名,总大小,已使用了多少,剩余百分比)
set line 150
column 表空间名 format A25 WORD_WRAPPED
column total_size heading 总大小(MB) format 999,999
column used_size heading 已使用大小(MB) format 999,999
column REMAIN_PERCENTAGE format A10 heading 剩余百分比
SELECT c.tablespace_name 表空间名, ROUND(a.bytes/1048576,2) total_size,
ROUND((a.bytes-b.bytes)/1048576,2) used_size,
ROUND(b.bytes/a.bytes * 100,2)||'%' REMAIN_PERCENTAGE
FROM (SELECT tablespace_name,SUM(a.bytes) bytes
FROM sys.DBA_DATA_FILES a GROUP BY tablespace_name) a,
(SELECT a.tablespace_name,
NVL(SUM(b.bytes),0) bytes
FROM sys.DBA_DATA_FILES a,
sys.DBA_FREE_SPACE b
WHERE a.tablespace_name = b.tablespace_name (+)
AND a.file_id = b.file_id (+)
GROUP BY a.tablespace_name) b,
sys.DBA_TABLESPACES c
WHERE a.tablespace_name = b.tablespace_name(+)
AND a.tablespace_name = c.tablespace_name
ORDER BY 1;
--------查询数据文件使用情况(具体到表空间使用的数据文件的情况,各项分别是表空间名,数据文件名,数据文件大小,使用了多少,剩余比例)
set line 150
select b.tablespace_name||' '||b.file_name||' '|| b.bytes||'
'||(b.bytes-sum(nvl(a.bytes,0)))||'
'||round(sum(nvl(a.bytes,0))/(b.bytes)*100)||'%'
from dba_free_space a,dba_data_files b
where a.file_id=b.file_id
group by b.tablespace_name,b.file_name,b.file_id,b.bytes
order by b.tablespace_name
/
>>>>>>>>>>>>>>>>>>>>表
--------创建表
create table <table_name> (
... ... ...
);
--------删除表
drop table <table_name>;
--------改表名
alter table src_table_name rename to dst_table_name;
--------查看名称包含log字符的表
select object_name,object_id from user_objects
where instr(object_name,'LOG')>0;
--------查看某表的创建时间
select object_name,created from user_objects where object_name=upper(<&table_name>);
--------查看某表的大小
select sum(bytes)/(1024*1024) as "size(M)" from user_segments
where segment_name=upper(<&table_name>);
--------删除表分区
alter table <table_name> drop partion <partition_name>;
--------增加表分区
ALTER TABLE <table_name> ADD PARTITION <partition_name> VALUES LESS THAN
(分区条件) TABLESPACE <tablespace_name>;
--------分区的倒入
oracle$ imp univas/univas2000 FILE MT2002_09_12=.dmp TABLES = (T_ISMG_MT_MSG:MT2002_09_12) IGNORE=y
--------分区的倒出
oracle$ exp unvias/univas2000 TABLES = T_ISMG_MT_MSG:MT2002_09_12 rows=Y file=MT2002_09_12.dmp
--------查看分区信息
SELECT * FROM user_extents WHERE SEGMENT_NAME=T_ISMG_MT_MSG;
>>>>>>>>>>>>>>>>>>>>索引
---------------------------查看索引
SELECT index_name, index_type, table_name FROM
ind(dba_indexes,user_indexes,all_indexes) order by table_name;
---------------------------查看索引被索引的字段
select * from user_ind_columns where index_name=upper(<&index_name>);
---------------------------查看索引的大小
select sum(bytes)/(1024*1024) as "size(M)" from user_segments
where segment_name=upper(<&index_name>);
---------------------------分析索引
ANALYZE INDEX <index_name> VALIDATE STRUCTURE;
col name heading '<Index Name>' format a30
col del_lf_rows heading 'Deleted|Leaf Rows' format 99999999
col lf_rows_used heading 'Used|Leaf Rows' format 99999999
col ratio heading '% Deleted|Leaf Rows' format 999.99999
SELECT name,
del_lf_rows,
lf_rows - del_lf_rows lf_rows_used,
to_char(del_lf_rows / (lf_rows)*100,'999.99999') ratio
FROM index_stats where name = upper('&index_name');
---------------------------查看索引浪费空间数目
SELECT (DEL_LF_ROWS_LEN/LF_ROWS_LEN)*100 "Wasted Space"
FROM index_stats WHERE name = <index_name>;
---------------------------查询层数
SELECT index_name,blevel FROM ind(dba_indexes,user_indexes,all_indexes);
---------------------------如果层数大于四层,需要重新建立索引
ALTER INDEX <index_name> REBUILD;
>>>>>>>>>>>>>>>>>>>>日志
----------------查看redo log的路径和状态
select * from v$logfile
select * from v$log;
定期整理ORACLE网络请求日志
auto_listener.sh
#-------------------------------------------------------------------------------------
rq=` date +"%d" `
cp $ORACLE_HOME/network/log/listener.log $ORACLE_BACKUP/network/log/listener_$rq.log
su - oracle -c "lsnrctl set log_status off"
cp /dev/null $ORACLE_HOME/network/log/listener.log
su - oracle -c "lsnrctl set log_status on"
#-------------------------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>>会话管理
-----------------用系统管理员,查看当前数据库有几个用户连接:
select username,sid,serial# from v$session;
-----------------查看连接序号
select a.username, a.sid, a.serial#,
a.lockwait, a.machine,a.status,
a.last_call_et,a.sql_hash_value,a.program
from v$session a
where nvl(a.username,'NULL')< >'NULL';
-----------------查看该连接的SQL语句
select hash_value , sql_text
from v$sqltext s
where s.hash_value=<sql_hash_value>;
-----------------如果要停某个连接用
alter system kill session 'sid,serial#';
-----------------如果这命令不行,找它UNIX的进程数
select pro.spid from v$session ses,v$process pro where ses.sid=21 and ses.paddr=pro.addr;
说明:21是某个连接的sid数
然后用 kill 命令杀此进程号。
-----------------生成杀死连接的脚本
set head off;
set feedback off;
set newpage none;
spool kill_all_session.sql
select 'alter system kill session '''||sid||','||serial#||''';' from v$session where username is not null;
spool off;
>>>>>>>>>>>>>>>>>>>>>>>>>存储过程
-----------------查看源码
select text from all_source where owner=user and name=upper(<plsql_name>);
---------碎片整理
alter tablespace temp coalesce;
>>>>>>>重建分区索引方法:
Alter index indexname rebuild partition paritionname tablespace tablespacename;
Alter index indexname rebuild subpartition partitioname tablespace tablespacename;
Partition name 可以从user_ind_partitions查找
Tablepace 参数允许alter index操作更改索引的存储空间;
六:其他
1:truncate 分区操作和truncate 普通表的区别
Truncate 分区操作会导致全局索引失效; truncate 普通表对索引没有影响;
Truncate 分区操作不会释放全局索引中的空间,而truncate 普通表会释放
分享到:
相关推荐
"Oracle综合大全"这个压缩包显然包含了丰富的Oracle学习资源,包括Oracle中文指南、Oracle Errors文档、Oracle精华文档以及Oracle技术资料和精华PPT。这些资料将帮助我们深入理解Oracle数据库的各个方面。 首先,...
【Oracle课程综合性实验】是一个以Oracle数据库应用为主题的实践项目,旨在让学生掌握Oracle数据库的管理和应用程序开发技术。实验涉及的主要知识点包括: 1. **Oracle数据库对象的创建与管理**: - 用户创建:...
Oracle综合实验是数据库管理和开发的重要实践,特别是在Java编程环境下,用于构建学生选课系统。这个实验结合了数据库设计、Java编程以及用户界面的可视化技术,实现了功能丰富的学生管理系统。 首先,Oracle是世界...
"Oracle综合技术指南"集合了关于Oracle数据库、Web服务器以及常见问题解答的丰富资源,旨在帮助用户深入理解和解决Oracle相关的问题。 首先,"Oracle错误码大全.chm"提供了详尽的Oracle系统错误代码解释。在使用...
Oracle入门知识综合概述.pptx
Oracle知识大全PPT合集是一份综合性的学习资源,涵盖了Oracle数据库从安装、配置到管理、优化等全方位的知识。这份合集特别适合Oracle初学者以及准备OCP(Oracle Certified Professional)考试的人员进行深入学习。 ...
5. **Oracle资料**:除了上述的指南和手册,`Oracle资料 九阴真经 函数大全 错误码 参考手册 全套.txt`很可能包含了一份综合性的学习资料清单或者总结,指导用户按顺序学习和掌握Oracle知识。 这个压缩包对于初学者...
### ORACLE综合实验手册知识点概览 #### 实验1:ORACLE的启动过程之从shutdown到nomount - **启动过程概述**:本实验详细介绍了Oracle数据库从关闭状态(shutdown)到nomount状态的启动过程。nomount状态指的是实例...
"oracle.10G函数大全.chm"文件是Oracle 10G的所有内置函数的综合指南。从数学、字符串、日期时间到转换函数,这个大全涵盖了各种功能,有助于开发者在编写SQL查询或PL/SQL程序时快速查找和理解所需函数。 "Oracle的...
"Oracle综合资源"这个标题意味着这个压缩包可能包含了学习Oracle数据库从基础到进阶的各种资料,包括但不限于教程、手册、实战案例、脚本示例等。对于初学者来说,这是一个宝贵的起点,可以帮助他们逐步掌握Oracle...
标题“Oracle综合”涵盖的内容广泛,它涉及到Oracle数据库系统的核心概念、功能以及使用技巧。Oracle是一种关系型数据库管理系统,由甲骨文公司开发,广泛应用于企业级数据存储和管理。在这一主题下,我们可以深入...
以下是对Oracle知识的综合整理: 1. SQL语言分类: - 数据定义语言(DDL):包括CREATE、ALTER、DROP等语句,用于创建、修改和删除数据库对象,如表、索引、视图等。 - 数据操纵语言(DML):包括SELECT、INSERT...
Oracle 订货系统综合知识概述 Oracle 订货系统是指基于 Oracle 数据库管理系统的订货管理系统,它可以对订货信息进行管理和统计。该系统的设计和实现需要考虑到实体关系、数据模型、关系表的设计、数据操纵、查询和...
Oracle数据库系统是世界上最广泛使用的数据库...综上所述,Oracle的知识点包括SQL语法、数据类型、伪列、命名规范、表空间创建、用户管理以及权限分配。理解并掌握这些内容对于有效管理和操作Oracle数据库至关重要。