您的位置:首页 > 数据库 > Oracle

linux 下 oracle 日常操作合集

2009-08-06 17:11 453 查看
删除用户:

ORA-01940: cannot drop a user that is currently connected

问题提出:

SQL

〉DROP USER USER1 CASCADE

ERROR:ORA-01940: cannot drop a user that is currently connected

由于当前用户正连接到数据库

,所以无法删除

解决办法:

1、查询此用户的会话进程,

SQL〉SELECT SID,SERIAL# FROM V$SESSION WHERE USERNAME='USER1';

SID SERIAL#

---------- ----------

24 25341

86 18117

2、结束此用户的所有会话

SQL>ALTER SYSTEM KILL SESSION '24,25341';

System altered.

SQL>ALTER SYSTEM KILL SESSION '86,18117';

System altered.

3、删除用户

SQL〉DROP USER USER1 CASCADE;

如何查看oracle 表空间得利用率



SELECT UPPER(F.TABLESPACE_NAME) "表空间名",

D.TOT_GROOTTE_MB "表空间大小(M)",

D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",

TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,

2),

'990.99') "使用比",

F.TOTAL_BYTES "空闲空间(M)",

F.MAX_BYTES "最大块(M)"

FROM (SELECT TABLESPACE_NAME,

ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,

ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES

FROM SYS.DBA_FREE_SPACE

GROUP BY TABLESPACE_NAME) F,

(SELECT DD.TABLESPACE_NAME,

ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB

FROM SYS.DBA_DATA_FILES DD

GROUP BY DD.TABLESPACE_NAME) D

WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME

ORDER BY 4 DESC

--order by F.TABLESPACE_NAME



创建表空间:

1 create tablespace tfs datafile '/u01/oradata/cjtfs/tfs.dbf' size 500m

2 autoextend on next 50m maxsize unlimited logging extent management

3 local segment space management auto;

创建临时表空间:

create temporary tablespace temp_tfs tempfile '/u01/oradata/cjtfs/temp_tfs.dbf' size 500m;

//create temporary tablespace tfs_temp tempfile 'D:/app/Administrator/oradata/CJTFS/tfs_temp.dbf' size 512m autoextend on next 256m maxsize unlimited;

创建用户:

create user tfs
identified by changjiutfs default tablespace tfs temporary tablespace temp_tfs;

用户授权:

grant connect
,resource
,dba
to tfs
;



导出表结构

exp name/pwd@dbname
file=d:/xxx.dmp rows=n tables=(xx,xxx,xxxx) fromuser=name1 touser=name2



查看所有用户:

SQL> select username from all_users;

SQL> select username from dba_users;

查看用户默认表空间

select username,defaulte_tablespace from dba_users;

查看某用户拥有的表:

SQL> select table_name from dba_all_tables t where t.owner = 'username';

查看表空间下的表

SQL> select table_name from dba_tables where tablespace_name='TFS';
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: