精品汇编资料Oracle_运维手册目录1.前言:有一定Linux/Unix操作系统、Oracle数据库基础的工程人员和维护人员,证券公司信息技术人员等。本手册可作为工具,Oralce运维提供帮助。2.简单命令使用2.1进入SQL*Plus$sqlplus用户名/密码2.2退出SQL*PlusSQLexit2.3在sqlplus下得到帮助信息列出全部SQL命令和SQL*Plus命令SQLhelp列出某个特定的命令的信息SQLhelp命令名2.4显示表结构命令DESCRIBESQLDESC表名2.5SQL*Plus中的编辑命令➢显示SQL缓冲区命令SQLL➢修改SQL命令首先要将待改正行变为当前行SQLn➢用CHANGE命令修改内容SQLc/旧/新➢重新确认是否已正确SQLL➢使用INPUT命令可以在SQL缓冲区中增加一行或多行SQLiSQL输入内容2.6调用外部系统编辑器SQLedit文件名可以使用DEFINE命令设置系统变量EDITOR来改变文本编辑器的类型,在文件中定义如下一行DEFINE_EDITOR=vi2.7运行命令文件SQLSTARTtestSQL@test2.8关于侦听1、新建/修改/删除侦听以oracle用户登录,运行netca,会跳出图形配置界面。2、打开侦听lsnrctlstart3、查看侦听Lsnrctlstatus4、关闭侦听lsnrctlstop3.ORACLE的启动和关闭3.1在单机环境下要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下su-oracle启动oracle数据库命令:$sqlplus/nologCopyright(c)1982,2005,Oracle.Allrightsreserved.SQLconn/assysdba已连接到空闲例程。SQLstartupORACLE例程已经启动。FixedSize1249080bytesRedoBuffers7139328bytes数据库装载完毕。数据库已经打开。关闭oracle数据库命令:$sqlplus/nologCopyright(c)1982,2005,Oracle.Allrightsreserved.SQLconn/assysdba已连接。SQLshutdownimmediate数据库已经关闭。已经卸载数据库。ORACLE例程已经关闭。SQL3.2在双机环境下要想启动或关闭crs服务必须首先切换到root用户,如下su-root启动crs服务:启动CRS#$CRS_HOME/crs/bin/crsctlstartcrs➢查看CRS状态#$CRS_HOME/crs/bin/crsctlcheckcrs➢关闭CRS#$CRS_HOME/crs/bin/crsctlstopcrs➢查看CRS内部各资源状态#$CRS_HOME/crs/bin/crs_stat–t启动数据库服务#srvctlstartdatabase-dtdb#tdb为数据库名4.数据库管理员日常工作4.1检查这个日志文件位于参数BACKGROUND_DUMP_DEST指定的目录,可能通过以下命令来查看。SQLSHOWPARAMETERbackground_dump_dest在出现大故障前,数据库有可能会报一些警告或错误信息,应该充分重视这些信息,未雨绸缪,避免更大错误的发生。检查的什么内容。➢检查数据库是否出现过宕机(可能在晚间重启而维护人员不知道)➢Oracle出错信息,通过$grepORA-查找➢产品有关的问题:ORA-00600/ORA-07445等错误➢相应的TRACE文件4.2环境确认数据库实例是否正常工作SQLselectstatusfromv$instance;数据库监听器是否正常工作-$lsnrctlstatus是否存在故障表空间-SQLselecttablespace_name,statusfromdba_tablespace;控制文件、日志文件是否正常SQLselect*fromv$controlfile;SQLselect*fromv$log;SQLselect*fromv$logfile;性能监测➢每天按业务峰值情况,对数据库性能数据进行定时采集➢每天检查数据库的主要性能指标➢每天检查最消耗资源的SQL语句变化情况。➢每天检查是否有足够的资源➢检查所有表空间的剩余情况➢识别出一些异常的增长➢检查CPU、内存、网络等是否异常5.数据库日常操作SQL5.1查看表空间物理文件的名称及大小selecttablespace_name,file_id,file_name,round(bytes/(1024*1024),0)filesizefromdba_data_filesorderbytablespace_name;5.2查询表空间使用情况select表空间名称,100-round((nvl,0)/*100,2)占用率(%),round/1024/1024,2)容量(M),round(nvl,0)/1024/1024,2)空闲(M),round(-nvl,0))/1024/1024,2)使用(M),to_char(sysdate,'yyyy-mm-ddhh24:mi:ss')采样时间from(select,sumbytes_alloc,sum(decode,'YES',,'NO',)maxbytesfromdba_data_filesfgroupbytablespace_name)a,(select,sumbytes_freefromdba_free_spacefgroupbytablespace_name)bwhere=orderby2desc;5.3查询表空间的碎片程度selecttablespace_name,count(tablespace_name)fromdba_free_spacegroupbytablespace_namehavingcount(tablespace_name)10;altertablespaceHS_USER_DATAcoalesce;altertablenamedeallocateunused;5.4碎片程度selecttablespace_name,count(tablespace_name)fromdba_free_spacegroupbytablespace_namehavingcount(tablespace_name)10;altertablespacenamecoalesce;altertablenamedeallocateunused;createorreplaceviewts_blocks_vasselecttablespace_name,block_id,bytes,blocks,segment_namefromdba_free_spaceunionallselecttablespace_name,block_id,bytes,blocks,segment_namefromdba_extents;select*fromts_blocks_v;selecttablespace_name,sum(bytes),max(bytes),count(block_id)fromdba_free_spacegroupbytablespace_name;查看碎片程度高的表SELECTsegment_nametable_name,COUNT(*)extentsFROMdba_segmentsWHEREownerNOTIN('SYS','SYSTEM')GROUPBYsegment_nameHAVINGCOUNT(*)=(SELECTMAX(COUNT(*))FROMdba_segmentsGROUPBYsegment_name);5.5查看回滚段名称及大小selectsegment_name,tablespace_name,,(initial_extent/1024)InitialExtent,(next_extent/1024)NextExtent,max_extents,CurExtentFromdba_rollback_segsr,v$rollstatvWhere=(+)orderbysegment_name;5.6查看控制文件selectnamefromv$controlfile;5.7查看日志文件selectmemberfromv$logfile;5.8查看表空间的使用情况selectsum(bytes)/(1024*1024)asfree_space,tablespace_namefromdba_free_spacegroupbytablespace_name;SELECT,TOTAL,USED,FREE,*100)/%USED,*100)/%FREEFROM$TS_AVAILA,$TS_USEDB,$TS_FREECWHERE=AND=;5.9查看数据库对象selectowner,object_type,status,count(*)count#fromall_objectsgroupbyowner,object_type,status;5.10查看数据库的版本SelectversionFROMProduct_component_versionWhereSUBSTR(PRODUCT,1,6)='Oracle';5.11查看Oracle字符集select*from$wherename='NLS_CHARACTERSET';5.12在某个用户下找所有的索引select,,uniqueness,column_namefromuser_ind_columns,user_indexeswhere=and=orderby,,,column_position;5.13表、索引的存储情况检查selectsegment_name,sum(bytes),count(*)ext_quanfromdba_extentswheretablespace_name='&tablespace_name'andsegment_type='TABLE'groupbytablespace_name,segment_name;selectsegment_name,count(*)fromdba_extentswheresegment_type='INDEX'andowner='&owner'groupbysegment_name;5.14查看数据库的创建日期和归档方式SelectCreated,Log_Mode,Log_ModeFromV$Database;5.15显示所有数据库对象的类别和大小selecttype,count(name)num_instances,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_requiredfromdba_object_sizegroupbytypeorderby1;5.16设置RAC为归档模式步骤:1.以SYSDBA身份登陆2个节点,执行altersystemsetcluster_database=falsescope=spfilesid=’*’;设置归档路径altersystemsetlog_archive_start=truescope=spfile;2.2个节点shutdownimmediate3.在一个节点上执行startupmountalterdatabasearchivelog;shutdownimmediate;alterdatabaseopen;altersystemsetcluster_database=truesco