Oracle管理及常用基础脚本Word格式.docx

上传人:b****6 文档编号:17721247 上传时间:2022-12-08 格式:DOCX 页数:57 大小:45.76KB
下载 相关 举报
Oracle管理及常用基础脚本Word格式.docx_第1页
第1页 / 共57页
Oracle管理及常用基础脚本Word格式.docx_第2页
第2页 / 共57页
Oracle管理及常用基础脚本Word格式.docx_第3页
第3页 / 共57页
Oracle管理及常用基础脚本Word格式.docx_第4页
第4页 / 共57页
Oracle管理及常用基础脚本Word格式.docx_第5页
第5页 / 共57页
点击查看更多>>
下载资源
资源描述

Oracle管理及常用基础脚本Word格式.docx

《Oracle管理及常用基础脚本Word格式.docx》由会员分享,可在线阅读,更多相关《Oracle管理及常用基础脚本Word格式.docx(57页珍藏版)》请在冰豆网上搜索。

Oracle管理及常用基础脚本Word格式.docx

selectnamespace,pins,reloads,invalidations

9.回滚段的争用情况

selectname,waits,gets,waits/gets"

Ratio"

fromv$rollstata,v$rollnameb

wherea.usn=b.usn;

10.监控表空间的I/O比例

selectdf.tablespace_namename,df.file_name"

file"

f.phyrdspyr,

f.phyblkrdpbr,f.phywrtspyw,f.phyblkwrtpbw

fromv$filestatf,dba_data_filesdf

wheref.file#=df.file_id

orderbydf.tablespace_name;

11.监控文件系统的I/O比例

selectsubstr(a.file#,1,2)"

#"

substr(a.name,1,30)"

Name"

a.status,a.bytes,b.phyrds,b.phywrts

fromv$datafilea,v$filestatb

wherea.file#=b.file#;

12.在某个用户下找所有的索引

selectuser_indexes.table_name,user_indexes.index_name,uniqueness,column_name

fromuser_ind_columns,user_indexes

whereuser_ind_columns.index_name=user_indexes.index_name

anduser_ind_columns.table_name=user_indexes.table_name

orderbyuser_indexes.table_type,user_indexes.table_name,

user_indexes.index_name,column_position;

13.监控SGA中字典缓冲区的命中率

selectparameter,gets,Getmisses,getmisses/(gets+getmisses)*100"

missratio"

(1-(sum(getmisses)/(sum(gets)+sum(getmisses))))*100"

Hitratio"

fromv$rowcache

wheregets+getmisses<

>

0

groupbyparameter,gets,getmisses;

14.监控SGA中共享缓存区的命中率,应该小于1%

TotalPins"

TotalReloads"

sum(reloads)/sum(pins)*100libcache

 

selectsum(pinhits-reloads)/sum(pins)"

hitradio"

sum(reloads)/sum(pins)"

reloadpercent"

15.显示所有数据库对象的类别和大小

selectcount(name)num_instances,type,sum(source_size)source_size,

sum(parsed_size)parsed_size,sum(code_size)code_size,sum(error_size)error_size,

sum(source_size)+sum(parsed_size)+sum(code_size)+sum(error_size)size_required

fromdba_object_size

groupbytypeorderby2;

16.监控SGA中重做日志缓存区的命中率,应该小于1%

selectname,gets,misses,immediate_gets,immediate_misses,

Decode(gets,0,0,misses/gets*100)ratio1,

Decode(immediate_gets+immediate_misses,0,0,

immediate_misses/(immediate_gets+immediate_misses)*100)ratio2

FROMv$latchWHEREnameIN('

redoallocation'

'

redocopy'

);

17.监控内存和硬盘的排序比率,最好使它小于.10,增加sort_area_size

SELECTname,valueFROMv$sysstatWHEREnameIN('

sorts(memory)'

sorts(disk)'

18.监控字典缓冲区

select(sum(pins-reloads))/sum(pins)"

libcache"

select(sum(gets-getmisses-usage-fixed))/sum(gets)"

rowcache"

fromv$rowcache;

selectsum(pins)"

executions"

cachemisseswhileexecuting"

后者除以前者,此比率小于1%,接近0%为好

selectsum(gets)"

dictionarygets"

sum(getmisses)"

dictionarycachegetmisses"

fromv$rowcache

19.找ORACLE字符集

select*fromsys.props$wherename='

NLS_CHARACTERSET'

20.监控MTS

selectbusy/(busy+idle)"

sharedserversbusy"

fromv$dispatcher;

此值大于0.5时,参数需加大

selectsum(wait)/sum(totalq)"

dispatcherwaits"

fromv$queuewheretype='

dispatcher'

selectcount(*)fromv$dispatcher;

selectservers_highwaterfromv$mts;

servers_highwater接近mts_max_servers时,参数需加大

21.碎片程度

selecttablespace_name,count(tablespace_name)fromdba_free_spacegroupbytablespace_name

havingcount(tablespace_name)>

10;

altertablespacenamecoalesce;

altertablenamedeallocateunused;

createorreplaceviewts_blocks_vas

selecttablespace_name,block_id,bytes,blocks,'

freespace'

segment_namefromdba_free_space

unionall

selecttablespace_name,block_id,bytes,blocks,segment_namefromdba_extents;

select*fromts_blocks_v;

selecttablespace_name,sum(bytes),max(bytes),count(block_id)fromdba_free_space

groupbytablespace_name;

查看碎片程度高的表

SELECTsegment_nametable_name,COUNT(*)extents

FROMdba_segmentsWHEREownerNOTIN('

SYS'

SYSTEM'

)GROUPBYsegment_name

HAVINGCOUNT(*)=(SELECTMAX(COUNT(*))FROMdba_segmentsGROUPBYsegment_name);

22.表、索引的存储情况检查

selectsegment_name,sum(bytes),count(*)ext_quanfromdba_extentswhere

tablespace_name='

&

tablespace_name'

andsegment_type='

TABLE'

groupbytablespace_name,segment_name;

selectsegment_name,count(*)fromdba_extentswheresegment_type='

INDEX'

andowner='

owner'

groupbysegment_name;

23、找使用CPU多的用户session

12是cpuusedbythissession

selecta.sid,spid,status,substr(a.program,1,40)prog,a.terminal,osuser,value/60/100value

fromv$sessiona,v$processb,v$sesstatc

wherec.statistic#=12andc.sid=a.sidanda.paddr=b.addrorderbyvaluedesc;

2空间管理

1.察看数据库的大小,和空间使用情况

SQL>

coltablespaceformata20--在显示中指明列的输出格式

selectb.file_id  --文件ID,

  b.tablespace_name --表空间,

  b.file_name    --物理文件名,

  b.bytes     --总字节数,

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

  sum(nvl(a.bytes,0))       --剩余,

  sum(nvl(a.bytes,0))/(b.bytes)*100 --剩余百分比

  fromdba_free_spacea,dba_data_filesb

  wherea.file_id=b.file_id

  groupbyb.tablespace_name,b.file_name,b.file_id,b.bytes

  orderbyb.tablespace_name

  /

  dba_free_space--表空间剩余空间状况

dba_data_files--数据文件空间占用情况

2.查看现有回滚段及其状态

selectsegment_name,owner,tablespace_name,segment_id,file_id,statusfromdba_rollback_segs;

3.表空间大小

selecttablespace_name,count(*),sum(blocks),sum(bytes)/1024/1024

fromdba_data_files

groupbytablespace_name;

4.表空间使用情况

selectdf.tablespace_name"

表空间名"

totalspace"

总空间M"

freespace"

剩余空间M"

round((1-freespace/totalspace)*100,2)"

使用率%"

from(selecttablespace_name,round(sum(bytes)/1024/1024)totalspace

groupbytablespace_name)df,

(selecttablespace_name,round(sum(bytes)/1024/1024)freespace

fromdba_free_space

groupbytablespace_name)fs

wheredf.tablespace_name=fs.tablespace_name;

5.删除表空间

selectt.name,d.namefromv$tablespacet,v$datafiledwheret.name='

DATA_HOST_A'

andt.ts#=d.ts#;

altertablespaceDATA_HOST_Aoffline;

droptablespaceDATA_HOST_Aincludingcontents;

6.查看数据文件的位置

selecttablespace_name,file_id,bytes/1024/1024,file_namefromdba_data_filesorderbyfile_id;

7.为这个表空间增加一个数据文件

altertablespace表空间名adddatafile'

/u1/oradata/userdata_002.ora'

size50m;

  --Unix

c:

\oradata\userdata_002.ora'

  --WindowsNT

8.重新调整数据文件的大小

alterdatabasedatafile'

/u1/oradata/userdata_001.ora'

resize50M;

 --Unix

9.临时表空间和排序表空间的使用状态

selectsubstr(vses.username,1,12)"

ORA_USER"

substr(osuser,1,12)"

OS_USER"

substR(sql_text,1,50)"

SQL_STMT"

from

V$sqlareavsql,V$sessionvses,V$sort_usagevsort

where

vsort.tablespace='

TEMP'

andvsort.sqladdr=vses.sql_addressandvsql.address=vsort.sqladdr

selecttablespace_name,extent_size,total_extents,used_extents,free_extents,max_used_size

fromv$sort_segment;

10.确定盘区和盘区内容及表或者空间的碎片程度

selectsegment_name,extenfromdba_extents--确定盘区的内容

descdba_segments--确定段的内容

--返回了结果表明碎片的严重

selectsegment_name,tablespace_name,extents,segment_typefromdba_segmentswhereextents>

4

--空间碎片严重程度

selecttablespace_name,count(tablespace_name)fromdba_free_spacegroupbytablespace_name

havingcount(tablespace_name)>

10

3基本知识

1.为一个事务指定一个回滚段

settransactionuserollbacksegmentrollback_segment_name--指定回滚段

2.如何创建和使用光标

--光标的使用

declare@namechar(30)

declare@homebasechar(40)

declare@stylechar(20)

declare@arttist_idint

createartist_cursorcursor

forselect*fromdim_age

openartist_cursor

fetchartist_cursorinto@arttist_id,@homebase,@style

while(@@sqlstatus=0)

begin

print@homebase

print@style

print@arttist_id

end

closeartist_cursor

deallocatecursorartist_cursor

go

3.如何导出和导入数据

--数据导出导入

expdss/dss@oralcequery=\"

whereday_id>

12\"

tables=(customer)file=d:

\sample.dmplog=

rows=n

full=ytables=()owner=--三种导出方式

impuserid/pwd@oracle_sidfromuser=(dss,dwh)touser=(dss,dwh)dwhfile=sample.dmp

--分区表的到导出user1.table_name:

px分区px

expuser_id/pwd@oracle_sidtables=(user1.table_name:

px)file=sample.dmp

4.如何使数据库运行于归档模式

1.打开ini.ora文件

2.修改文件内容

log_archive_start=true

log_archive_dest_1="

location=D:

\Oracle\oradata\ORACLE\archive"

log_archive_format=%%ORACLE_SID%%T%TS%S.ARC

3.进入服务管理器输入

shutdown

startupmount

alterdatabasearchivelog

alterdatabaseopen

此时数据库运行与归档模式下可以查询输入

archiveloglist

5.如何做数据库的热备份和恢复

--要对数据库做热备份需要数据库运行在归档模式下:

--首先使表空间处于备份状态

--拷贝数据文件

--使表空间回复到正常状态

--进入sqlplus输入:

altertablespaceusersbeginbackup;

$copyd:

\oracle_home\usr.orad:

\backup\user.dbf;

altertablespaceusersendbackup;

altersystemcheckpoint;

--恢复数据库需要做如下的步骤:

--将映像备份文件拷贝到各个表空间对应的正确的位置

svrmgrl

connectinternal

startupmount

alterdatabaseopen

recoverdatabase

6.如何查看所有的表和创建结构相同的表

1、查看当前所有对象

select*fromtab;

2、建一个和a表结构一样的空表

createtablebasselect*fromawhere1=2;

createtableb(b1,b2,b3)asselecta1,a2,a3fromawhere1=2;

7.如何查看当前日期

selectto_char(sysdate,'

yyyy-mm-dd,hh24:

mi:

ss'

)fromdual;

8.如何在用户间复制数据

copyfr

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1