Topic: Oracle常用的操作语句总结

ERP俱乐部

第 1 页 总共 1 页 [共有 1 条记录]


Posted by weilm on 2012-06-04 03:09 下午
1、查询表空间信息
select * from dba_tablespaces;


2、删除表空间文件
alter database datafile 'XXX' offline drop;


3、删除表空间、表空间内的内容以及关联的所有datafile文件
drop tablespace XXX including contents and datafiles;


3、删除用户
drop user XXX cascade;


4、启动数据库
startup


5、关闭数据库
shutdown immediate


6、缓冲等待统计
select * from V$WAITSTAT


7、数据库配置参数查询语句
SELECT NAME,VALUE FROM v$parameter ORDER BY NAME;


8、修改数据文件大小
alter database datafile '/opt/oracle/cjp/cjp.dbf' resize 500M;


9、设定数据文件自动扩展
ALTER DATABASE DATAFILE '/opt/oracle/cjp/cjp.dbf' AUTOEXTEND ON NEXT 100M MAXSIZE 10000M;


10、查看表空间信息
SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,
(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"
FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C
WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;


11、查看表空间及所属文件
select tablespace_name, file_id, file_name, round(bytes/(1024*1024),0) total_space
from dba_data_files order by tablespace_name;


12、修改UNDO表空间大小
create undo tablespace undotbs2 datafile '/opt/oracle/oradata/ora103/undotbs02.dbf' size 500m;
alter system set undo_tablespace=undotbs2;
drop tablespace undotbs1 including contents and datafiles;


create undo tablespace undotbs1 datafile '/opt/oracle/oradata/ora103/undotbs01.dbf' size 2000m;
alter system set undo_tablespace=undotbs1;
drop tablespace undotbs2 including contents and datafiles;
alter database datafile '/opt/oracle/oradata/ora103/undotbs01.dbf' autoextend off;


13、查看锁表信息
SELECT /*+ rule */ s.username,decode(l.type,'TM','TABLE LOCK','TX','ROW LOCK',NULL) LOCK_LEVEL,
o.owner,o.object_name,o.object_type,s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser
FROM v$session s,v$lock l,dba_objects o
WHERE l.sid = s.sid AND l.id1 = o.object_id(+) AND s.username is NOT Null;


14、杀锁
alter system kill session 'sid,serial#';


15、查看系统参数
show parameter db_recovery_file_dest_size


16、查看用户和默认表空间的关系。
select username,default_tablespace from dba_users;


17、删除用户
drop user xxx cascade;


18、创建用户(创建user1,密码为password,使用的表空间为users)
create user user1 identified by password default tablespace users temporary temp;


19、赋权限
grant dba to user1;


20、启动监听
lsnrctl start


21、查看数据库表空间
select * from V$tablespace;


22、查询分区信息
select table_name,partition_name from user_tab_partitions;


23、如何定位重要(消耗资源多)的SQL
select sql_text from v$sql where disk_reads > 1000 or (executions > 0 and buffer_gets/executions > 30000);


24、修改用户密码
alter user 用户名 identified by 新密码;


25、创建表空间
CREATE TABLESPACE pisaen DATAFILE '/opt/oracle/pisaen/pisaen.dbf' SIZE 200M reuse autoextend on maxsize 500M;


26、删除表数据
Truncate TABLE XXX;




27、创建用户
CREATE USER username IDENTIFIED BY password
(OR IDENTIFIED EXETERNALLY)
(OR IDENTIFIED GLOBALLY AS 'CN=user')
[DEFAULT TABLESPACE tablespace]
[TEMPORARY TABLESPACE temptablespace]
[QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace
[,QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace
[PROFILES profile_name]
[PASSWORD EXPIRE]
[ACCOUNT LOCK or ACCOUNT UNLOCK]


其中,
·CREATE USER username:用户名,一般为字母数字型和“#”及“_”符号。
·IDENTIFIED BY password:用户口令,一般为字母数字型和“#”及“_”符号。
·IDENTIFIED EXETERNALLY:表示用户名在操作系统下验证,该用户名必须与操作系统中所定义的用户名相同。
·IDENTIFIED GLOBALLY AS ‘CN=user’:用户名由Oracle安全域中心服务器验证,CN名字表示用户的外部名。
·[DEFAULT TABLESPACE tablespace]:默认的表空间。
·[TEMPORARY TABLESPACE tablespace]:默认的临时表空间。
·[QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace:用户可以使用的表空间的字节数。
·[PROFILES profile_name]:资源文件的名称。
·[PASSWORD EXPIRE]:立即将口令设成过期状态,用户再登录前必须修改口令。
·[ACCOUNT LOCK or ACCOUNT UNLOCK]:用户是否被加锁,默认情况下是不加锁的。




28、数据文件在没有被offline的情况下实物理删除了,导致oracle的数据不一致,因此启动失败.解决方法:
lsnrctl stop
sqlplus internal
SQL> shutdown abort
SQL> startup mount
SQL> alter database datafile '/webdata/dbdata/ry/csh20051001.dat' offline drop;
SQL> alter database open;
SQL> drop tablespace r_csh_20051001;
lsnrctl start




小结racle数据文件(datafile)被误删除后没有恢复的办法,只能把该数据文件offline后drop掉


29、在Oracle中查看所有表
select table_name from user_tables; //当前用户的表
select table_name from all_tables; //所有用户的表
select table_name from dba_tables; //包括系统表
select table_name from dba_tables where owner='用户名'


30、oracle查看所有函数或存储过程的代码
select * From user_source;