oracle常用語句及操作總結

查看歸檔日誌是否打開
archive log  list;


查看默認表空間
select default_tablespace from user_users;


修改默認永久表空間
alter database default tablespace tablespaceName


修改零時默認表空間
alter database default temporary tablespace tablespaceName


查看所有表空間名稱
select tablespace_name  from user_tablespaces;


查看數據庫實例名
select  instance_name  from  v$instance;


查看數據庫服務名
select  name from  v$database;


查詢正在執行的oracle語句
select a.username, a.sid,b.SQL_TEXT, b.SQL_FULLTEXT from v$session a, v$sqlarea b where a.sql_address = b.address;


增加用戶表空間文件
alter   tablespace  users  add  datafile  '/home/u01/app/oracle/oradata/orcl/users04.dbf'  size  10240m   autoextend  on  next  500m   maxsize     unlimited; unlimited最大支持32G


查詢表空間數據文件使用情況  https://blog.csdn.net/michaelzhou224/article/details/20688365
select
b.file_id,
b.tablespace_name,
b.bytes/1024/1024||'M',
(b.bytes-sum(nvl(a.bytes,0)))/1024/1024||'M',
sum(nvl(a.bytes,0))/1024/1024||'M',
100 - 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_id,b.bytes
order by b.file_id;

 
列出使用頻率最高的5個查詢:
select sql_text,executions
from (select sql_text,executions,
   rank() over
    (order by executions desc) exec_rank
   from v$sql)
where exec_rank <=5;


 消耗磁盤讀取最多的sql top5:
select disk_reads,sql_text
from (select sql_text,disk_reads,
   dense_rank() over
     (order by disk_reads desc) disk_reads_rank
   from v$sql)
where disk_reads_rank <=5;


 找出需要大量緩衝讀取(邏輯讀)操作的查詢:
select buffer_gets,sql_text
from (select sql_text,buffer_gets,
   dense_rank() over
     (order by buffer_gets desc) buffer_gets_rank
   from v$sql)
where buffer_gets_rank<=5;


查詢cpu使用率最高的10條語句

select * from (select sql_text,sql_id,cpu_time from v$sql order by cpu_time desc) where rownum<=10 order by       rownum asc ;

select * from (select sql_text,sql_id,cpu_time from v$sqlarea order by cpu_time desc) where rownum<=10 order by rownum asc ;


佔用cpu及時間最長的語句

SELECT

A.USERNAME, A.COMMAND, A.STATUS,

A.PROGRAM, A.MACHINE, A.CLIENT_IDENTIFIER,

B.SQL_TEXT,

B.CPU_TIME,

B.SHARABLE_MEM,

ROUND((B.DISK_READS + B.BUFFER_GETS)/B.EXECUTIONS)

AS RESOURCE_COST

FROM

V$SESSION A,

V$SQLSTATS B

WHERE

A.SQL_ID = B.SQL_ID

AND B.EXECUTIONS >0

AND A.WAIT_CLASS <> 'Idle'

ORDER BY

RESOURCE_COST DESC;

 

歸檔日誌的清理

su - oracle
 

rman target /

crosscheck archivelog all;


delete expired archivelog all;


DELETE FORCE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';(指定刪除7天前的歸檔日誌)


備份數據庫
 rman target/
backup databaseplus archivelog delete input format '/DBBackup/Phycal/full_%U.bak';

 

還原小貸數據庫:
tar -xjvf creditfull_20171214.tar.bz2 -C ./     ----解壓文件
impdp credit/123456 directory=dpump_dir dumpfile=creditfull_20171026.dmp schemas=credit table_exists_action=replace


還原數據庫
impdp test/test directory=dmp dumpfile=creditfull_20180810.dmp logfile=export_201808102201.log schemas=credit transform=segment_attributes:n table_exists_action=replace SKIP_UNUSABLE_INDEXES=Y

 

查看oracle邏輯目錄
select  * from  dba_directories;

創建邏輯目錄
create  directory  dmp  as  '/oracle/dmp'

 

數據泵備份腳本
#!/bin/bash
source /home/oracle/.bash_profile
time=`date "+%Y%m%d"`
expdp test/test schemas=test dumpfile=creditfull_$time.dmp directory=dmp
echo $time
#mv /oralog/dmp/creditfull.dmp /oralog/dmp/creditfull_$time.dmp
mv /oralog/dmp/export.log /oralog/dmp/export_$time.log
tar cjvf /oralog/dmp/creditfull_$time.tar.bz2 /oralog/dmp/creditfull_$time.dmp
rm  /oralog/dmp/creditfull_$time.dmp -rf
find /oralog/dmp/ -mtime +5 -exec rm -f {} \;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章