beauty_beast

          上善若水 厚德載物

          oracle常用腳本

          Posted on 2006-02-05 12:15 柳隨風(fēng) 閱讀(1233) 評(píng)論(0)  編輯  收藏 所屬分類: oracle日常管理

          前一段時(shí)間做數(shù)據(jù)庫(kù)日常管理、分析,一些腳本沒有時(shí)間整理,現(xiàn)列出來(lái),有空再整:
          --oracle 常用sql
          --查詢數(shù)據(jù)庫(kù)信息
          select * from v$database;

          --查詢當(dāng)前實(shí)例信息
          select * from v$instance;

          --查詢數(shù)據(jù)庫(kù)版本信息
          select * from v$version;

          --查詢所有用戶(dba權(quán)限)
          select * from dba_users;

          --查詢共享內(nèi)存中的sql信息,執(zhí)行較慢
          select hash_value from v$sqltext where sql_text like '%查詢sql%';
          select sql_text from v$sqltext where hash_value =查找的hash_value order by hash_value,piece;

          --查詢當(dāng)前系統(tǒng)表空間存儲(chǔ)信息
          select a.file_id,a.file_name, a.TABLESPACE_NAME,a.bytes/1024/1024||'M' as totalspace,
          nvl(b.freespace,0)||'M' as freespace,a.autoextensible from dba_data_files a,
          (select sum(bytes)/1024/1024 as freespace,file_id,tablespace_name from dba_free_space
          group by tablespace_name,file_id ) b
          where a.file_id=b.file_id(+)
          order? by a.tablespace_name,file_name;


          --統(tǒng)計(jì)已占用的表空間
          select sum(a.bytes/1024/1024-nvl(b.freespace,0))||'M' from dba_data_files a,
          (select sum(bytes)/1024/1024 as freespace,file_id,tablespace_name from dba_free_space
          group by tablespace_name,file_id ) b
          where a.file_id=b.file_id(+) and a.tablespace_name='tablespace名稱'

          ?

          --查詢當(dāng)前活動(dòng)session最近一次執(zhí)行的sql
          select sql_text from v$sqltext where hash_value=(
          select?? PREV_HASH_VALUE from v$session where status='ACTIVE' and username is not null ) order by piece

          ?

          --查詢相關(guān)用戶的索引情況
          select a.*,b.column_name,b.column_length from
          (select owner,index_name,table_name,index_type,tablespace_name
          from dba_indexes where owner ='用戶名' and index_name not in
          (select constraint_name from dba_constraints where owner='用戶名' and constraint_type in ('P','R'))
          )a,
          (select * from dba_ind_columns b where index_owner='用戶名') b
          where a.index_name=b.index_name
          order by a.owner,a.table_name,a.index_name

          --重建索引
          alter index 索引名稱 rebuild nologging;



          --查看事務(wù)回滾率
          select name,value from v$sysstat where name in('user commits','transaction rollbacks');

          ?

          ?

          --sql分析優(yōu)化

          --腳本位置${oracle_home}/rdbms/admin/utlxplan.sql 創(chuàng)建執(zhí)行計(jì)劃表
          --授權(quán)訪問
          create public synonym plan_table for plan_table;
          grant select,update,insert,delete on plan_table to public;
          --腳本位置${oracle_home}/sqlplus/admin/plustrce.sql 執(zhí)行授權(quán)角色

          ?

          --spfile
          --數(shù)據(jù)庫(kù)建庫(kù)完成后,第一次手工啟動(dòng)手工創(chuàng)建spfile文件,命令格式為
          create spfile[='filename'] from pfile[='filename'];
          --判斷是采用spfile還是pfile啟動(dòng)數(shù)據(jù)庫(kù)的,可以下面sql根據(jù)是那種方式
          select decode(count(*),0,'pfile',1,'spfile') from V$spparameter where isspecified='TRUE' and rownum=1;

          --spfile,pfile創(chuàng)建默認(rèn)位置為$ORACLE_HOME/dbs/,$ORACLE_HOME/database/(windows)
          --啟動(dòng)時(shí)公司搜索默認(rèn)位置下spfile.ora,spfile$ORACLE_SID.ora,init$ORACLE_SID.ora
          --采用指定的方式啟動(dòng)
          startup pfile='filename';
          --創(chuàng)建spfile,pfile可以在數(shù)據(jù)庫(kù)關(guān)閉后仍然可以創(chuàng)建
          --如果pfile內(nèi)有spfile文件參數(shù)的設(shè)定,采用pfile方式啟動(dòng)后還可以修改初始參數(shù)到spfile中
          --oracle9.2.0.1版本后創(chuàng)建數(shù)據(jù)庫(kù)時(shí)系統(tǒng)會(huì)自動(dòng)創(chuàng)建spfile,默認(rèn)的啟動(dòng)方式就是采用spfile
          --運(yùn)行時(shí)間spfile文件沒有鎖定
          --修改密碼

          alter user username identified by newpassword;
          --oracle9i 驗(yàn)證方式有兩種,可以在sqlnet.ora中配置
          SQLNET.AUTHENTICATION_SERVICES=(NTS)?? --操作系統(tǒng)驗(yàn)證,無(wú)須用戶輸入密碼
          SQLNET.AUTHENTICATION_SERVICES=(none) --用正確的用戶和密碼驗(yàn)證
          --設(shè)置密碼級(jí)別 remote_login_passwordfile
          --設(shè)置為exclusive,表示口令文件由一個(gè)數(shù)據(jù)庫(kù)使用 ,遠(yuǎn)程客戶端可以用sys登陸(如果密碼文件刪除后,遠(yuǎn)程無(wú)法登陸)
          --設(shè)置為shared,表示 多個(gè)數(shù)據(jù)庫(kù)可以共享一個(gè)口令文件,但是只可以識(shí)別一個(gè)用戶SYS,不能將sysdba權(quán)限授權(quán)給其他用戶
          --設(shè)置為none,表示沒有口令文件?? 遠(yuǎn)程無(wú)法用sys登陸,只能通過(guò)操作系統(tǒng)驗(yàn)證方式
          --密碼文件如果丟失或損壞,系統(tǒng)無(wú)法啟動(dòng)
          --可以手工創(chuàng)建oracle系統(tǒng)密碼
          orapwd file=<fname> password=<password> entries=<users>
          entries? --sysdba鏈接最大數(shù)
          --密碼文件沒有鎖定,只是啟動(dòng)時(shí)的引導(dǎo)作用


          V$SYSTEM_EVENT? 數(shù)據(jù)庫(kù)實(shí)例整個(gè)運(yùn)行期間所有進(jìn)程事件的等待時(shí)間、次數(shù)視圖,作為系統(tǒng)優(yōu)化的依據(jù)
          等待事件分為三種類型 空閑等待、例行等待、資源等待
          注意很多時(shí)候進(jìn)程是空閑等待處理的,所以在該視圖主要查看資源等待時(shí)間,
          如果是進(jìn)程在例行操作中等待,可以查看該事件的平均等待時(shí)間

          ?

          --v$session_wait
          --常見的空閑等待事件:client message、null event、pipe get、pmon/smon timer、rdbms rpc message及sql*net等;
          --常見的非等閑事件:
          buffer busy waits、
          db file scattered read、
          db file sequential read、
          enqueue、
          free buffer waits、
          latch free、
          log file sync、
          log file paralle write

          ?

          導(dǎo)入導(dǎo)出建議一定要同版本的導(dǎo)入導(dǎo)出工具
          常見錯(cuò)誤 exp-00003


          估算導(dǎo)出dmp文件大小
          select sum(bytes) from user_segments where segment_type='TABLE';

          這個(gè)計(jì)算結(jié)果不包含LOB, 和VARRAY, 亦不含分區(qū)表數(shù)據(jù)


          --設(shè)置歸檔模式
          startup mount;
          alter database archivelog;
          alter database open;
          alter system set ?log_archive_start=true scope=spfile;
          shutdown immediate
          startup;

          ?

          ?

          數(shù)據(jù)庫(kù)已經(jīng)誤刪除數(shù)據(jù)文件,如何啟動(dòng)

          startup mount
          alter database datafile 'filepos'? offline drop;(noarchivelog)
          alter database datafile 'filepos'? offline;(archivelog)
          alter database open;
          drop tablespace 'spacename'?? including contents;

          ?

          log_miner的使用

          ?

          ?

          ?


          --查看聯(lián)機(jī)日志信息
          select a.group#,b.member, sequence#,first_change# from v$log a ,v$logfile b
          where a.group#=b.group#;

          ?

          v$rollstat三個(gè)字段說(shuō)明
          rssize 回滾段大小
          optsize? optimal大小
          hwmsize?? 你的回滾段曾經(jīng)最高大小

          --統(tǒng)計(jì)當(dāng)前回滾段大小、最高峰大小
          select sum(rssize)/1024/1024||'M',sum(hwmsize/1024/1024)||'M'
          from v$rollstat;

          ?

          --查看事務(wù)占用的回滾段大小(事務(wù)尚未提交)

          select b.used_ublk,b.xidusn,a.sid from v$session a,v$transaction b
          where a.taddr=b.addr;

          ?

          --查看操作系統(tǒng)硬件信息
          prtdiag -v


          --臨時(shí)表空間為空
          錯(cuò)誤號(hào)ORA-25153:
          alter tablespace 表空間名? add tempfile '文件名' size 文件大小;
          創(chuàng)建臨時(shí)表空間
          create temporary tablespace 新表空間名 tempfile '文件名' size 文件大小;
          alter? database default temporary tablespace 新表空間名;
          drop tablespace 舊空間名 including contents;




          rman數(shù)據(jù)文件損壞恢復(fù)腳本
          --數(shù)據(jù)文件損壞
          run{
          allocate channel c1 type disk;
          restore datafile 數(shù)據(jù)文件號(hào);
          recover datafile 數(shù)據(jù)文件號(hào);
          release channel c1;
          }


          一次控制文件損壞,恢復(fù)過(guò)程
          故意修改控制文件,出現(xiàn)ora-00205錯(cuò)誤
          在rman下恢復(fù)控制文件
          restore controlfile from file='最近的一次控制文件備份'
          在alter database open resetlogs 出現(xiàn)
          ORA 1152 file <name> was not restored from a sufficiently old backup? 錯(cuò)誤
          不行
          然后在rman下從自動(dòng)文件恢復(fù)
          restore controlfile from autobackup;
          啟動(dòng)仍然出現(xiàn)該錯(cuò)誤,
          通過(guò)rman恢復(fù)database也不行,
          最后沒辦法,采用
          ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
          然后根據(jù)trc文件中的指導(dǎo)
          采用第二種方式也不行,只能采用第一種建立
          在數(shù)據(jù)庫(kù)nomount狀態(tài)下
          執(zhí)行trc相關(guān)?腳本
          alter database open;
          數(shù)據(jù)庫(kù)啟動(dòng)正常

          主站蜘蛛池模板: 神农架林区| 旬阳县| 仪征市| 治县。| 平和县| 漾濞| 合川市| 巴彦淖尔市| 富平县| 当涂县| 泉州市| 湟源县| 临泽县| 莎车县| 水城县| 天峨县| 什邡市| 黄梅县| 烟台市| 天等县| 新兴县| 舒兰市| 股票| 靖边县| 常熟市| 娱乐| 沂南县| 平定县| 紫金县| 唐海县| 中方县| 彩票| 祁门县| 察雅县| 互助| 泉州市| 灌阳县| 镇巴县| 旬阳县| 定西市| 肥乡县|