Oracle 常用指令碼

2021-09-12 03:22:21 字數 2986 閱讀 7470

查詢當前連線數:

select count(*) from v$session 

select username, machine, program, status, count (machine) as

連線數量

from v$session where username = 'cotsdev'

group by username, machine, program, status

order by machine;

查詢表空間使用情況

select a.tablespace_name,a.bytes/1024/1024 "sum mb",

(a.bytes-b.bytes)/1024/1024 "used mb",b.bytes/1024/1024 "free mb",

round (((a.bytes-b.bytes)/a.bytes)*100,2) "used%" from

(select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name) a,

(select tablespace_name,sum(bytes) bytes,max (bytes) largest from dba_free_space group by tablespace_name)b

where a.tablespace_name=b.tablespace_name

order by ((a.bytes-b.bytes)/a.bytes) desc;

oracle使用者資源配額

第一步: -- 在建立使用者的時候,就指定使用者在特定表空間上的配額

create user user_name_*** identified by pwd_***xx default tablespace users(表空間) temporary tablespace temp(臨時表空間) quota 200g on users;

第二步:/* 檢視使用者表空間的限額  max_bytes欄位就是了 */

select * from user_ts_quotas;

select tablespace_name,username,bytes/1024,max_bytes/1024/1024 from dba_ts_quotas;

select * from dba_ts_quotas;

(其他輔助操作)

--不對使用者做表空間限額控制(全域性性的. 即修改使用者多所有表空間的配額): 

grant unlimited tablespace to ***x;

--針對使用者的某個特定的表空間

alter user *** quota unlimited on ***;

--**使用者對錶空間的配額(全域性): 

revoke unlimited tablespace from ***;

--**特定表空間的配額

alter user ***xx quota 0 on ******;

--oracle怎麼查詢表空間所在的路徑

select 

max(b.file_id) id,

b.tablespace_name 表空間,

b.file_name 物理檔名,

b.bytes / 1024 / 1024 大小m,

(b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 已使用m,

substr((b.bytes - sum(nvl(a.bytes, 0))) / (b.bytes) * 100, 1, 5) 利用率

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.bytes

order by b.tablespace_name;

--查詢表空間

select 

max(b.file_id) id,

b.tablespace_name 表空間,

b.file_name 物理檔名,

b.bytes / 1024 / 1024 大小m,

(b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 已使用m,

substr((b.bytes - sum(nvl(a.bytes, 0))) / (b.bytes) * 100, 1, 5) 利用率

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.bytes

order by b.tablespace_name;

鎖表查詢 kill

select s.sid,

s.serial#,

s.username,

decode(l.type, 'tm', 'table lock', 'tx', 'row lock', null) lock_level,

o.owner,

o.object_name,

o.object_type,

s.terminal,

s.machine,

s.logon_time,

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;

alter system kill session '96,1903';

oracle 常用指令碼

substr 取得字串中指定起始位置和長度的字串 instr 判斷其是否含有指定的字元 replace 替換字元 create table table 1 as select from table 2 where 1 0 建表只複製表結構 表新增預設值 alter table table 1 mod...

ORACLE 常用指令碼

ifelse declare v num number begin v num 100 if v num 100 then elsif v num 50 then else end if end 帶引數儲存過程 create or replace procedure delete subscribe...

ORACLE 常用管理指令碼

1 表空間統計 a 指令碼說明 這是我最常用的乙個指令碼,用它可以顯示出資料庫中所有表空間的狀態,如表空間的大小 已使用空間 使用的百分比 空閒空間數及現在表空間的最大塊是多大。b 指令碼原文 select upper f.tablespace name 表空間名 d.tot grootte mb ...