oracle数据库操作手册_第1页
oracle数据库操作手册_第2页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作手册名目一.表空间 41。创建表空42。增加表空43。删除表空54.查询表空间状55。查询数据文件路56。移动表空间中数据文件的路57。移动表和索引到其他表空68。查看表空间的使用7二.用户和权限 91.创建用92。修改用户的密93。给用户授94。查询数据库系统上有多少用户,文件名和创建时10三.归档和非归档模式 101。查看数据库的归档模102。修改数据库的归档模10四.日志文件 111.查询日志文件信112。增加日志文件配置信12增加日志成12删除一组日12五.密码文件 131。创建密码文13六.参数文件(SPFILEPFILE) 13查看数据库使用参数文(SPFILE还是PFILE) 13创建SPFILE 133。经过PFILE启动数据13七.STATSPACK 14安装STATSPACK 14数据采143。设置自动快144.设置数据采集的时14八.ORACLE信息查询 15查询ORACLE数据库的名字,创建日15查询ORACLE所在操作系统的主机名,实例名,版15查询ORACLE数据库系统版本详细信15九.控制文件 161.查询控制文162。备份控制文16十.索引 161。创建一般索162。创建位图索163.查询索引所在的表,表空间,索引类164。查询索引所在的17十一。主键 181。定义主182。查询主键索18查询约束信18禁止约19开启主19十二.手工建库脚本 19十三。。PROFILE文件内容 20十四.做定时JOB 211。创建存储经过,为此存储经过作定JOB 212。定时JOB的参数说明 21十五。查询出SQL语句 22经过SID找出HASHVALUE值 22经过HASHVALUE值查询出SQL语句 22依据HASHVALUE值查询出对应的SESSLINSID 224。依据HASHVALUE找出对应的机器名225。经过HASHVALUE查询出该语句的执行规划23查询存储经过23查询对象属于哪个用23查询表的分析时23查询对象(表)的类23十六。查询脚本 241.查询等待事242。查询大表已经索引超过2G的对象 243。查看25十七。根本的SQL语句 251。对表的操252。常用的函26十八.安装手册 27十九。错误总结 271.ORA—00257:归档程序错27二十。故障处理 29日志挖292。行链接行迁30逻辑备份(exp/imp) 35关闭和启动数据库的步36二十一。METALINK操作 371。开二级别SR 373.数据库升级补丁下38二十二。ORACLE下载 40P1。IMP/EXP参数详细说43一.表空间1。创建表空间createcreatetablespacexjzhangdatafile’d:\oracle\product\101.0\oradata\xjzhangdbf’size20mautoextendoffsegmentspacemanagementautoautoextendoff—不自动扩展segmentspacemanagementauto—自动段管理推举1。1创建临时表空间createcreatetemporarytablespacetemp1tempfile’d:\oracle\product\10。1。0\oradata\auc\temp.dbf’size5mautoextendoff用于存放扩展信息1.2UNDO表空间create undo tablespace zzq_undo1 datafile ’Dcreate undo tablespace zzq_undo1 datafile ’D:\ORACLE\PRODUCT\10。1。0\ORADATA\AUC\ZZQ_UNDO2。DBF’size20mautoextendoff增加表空间alteraltertablespaceBCS_LOGadddatafile’/disk_array/oracle/oracle/oradata/auc/BCS_LOG13。dbf’size1024mautoextendoff————路径依据操作系统的不听进行填写3。删除表空间dropdroptablespacezzq 直接删除表空间,而不删除对应的数据文件droptablespacezzqINCLUDINGCONTENTS—--4。查询表空间状态colcoltablespace_namefora15selecttablespace_name,block_size,status,contents,loggingfromdba_tablespaces;查询结果STATUS为ONLINE表示为联机状态正常假若为OFFLINE说明表空间不被使用5。查询数据文件路径selectselectfile_id,file_name,tablespace_name,status,bytesfromdba_data_files6.移动表空间中数据文件的路径1. 1. 首先确定数据文件的状态要为OFFLINEselecttablespace_name,status,contentsfromdba_tablespacesselect file_id,file_name,tablespace_nameselect file_id,file_name,tablespace_namefrom dba_data_files where file_name like ’%ORACLE%'orderbyfile-—-经过该语句查询数据文件的路径2. OFFLINEaltertablespaceUSERSofflineselecttablespace_name,status,contentsfromdba_tablespaces--查看表空间状态确定修改成功3. 移动数据文件tyF。0\oradata\aucdbf4. altertablespaceusersrenamedatafile'd:\oracle\product\10.10\oradata\auc\USERS01DBF'to'd:\oracle\product\10.1.0\oradata\aucdbf\USERS01。DBF'5. 修改表空间的状态为ONLINE状态altertablespaceusersonline第二种方式mount的模式下1. hostcopy d\oracle\product\1010\oradata\auc\system01dbf\oracle\product\10.1。0\oradata\aucsystemd:2.alterdatabaserenamefile'd:\oracle\product\10。1.0\oradata\auc\system01.dbf’to'd:\oracle\product\10.1.0\oradata\aucsystem\system01.dbf’3。alterdatabaseopen4.selectfile_name,tablespace_namefromdba_data_files7。移动表和索引到其他表空间1. 1. 查询该对象存放在哪个表空间select segment_name,tablespace_name,extents,blocks from dba_segments whereowner='ZHANG’owner='ZHANG’2.查询该对象是索引,还是表select object_id,object_name,object_type,status,createdowner='ZHANG’from dba_objectswhere3。查询索引或者表存放在哪个表空间select index_name,table_name,tablespace_name,statusfromdba_indexeswhereowner='ZHANG'4。移动表到另一个表空间altertablezhang。zzq_1movetablespacezhang_zzq查询该表是否移动到该表空间selectsegment_name,tablespace_name,extents,blocksfromdba_segmentswhereowner=’ZHANG'检查表是否有效select object_id,object_name,object_type,status,createdfrom dba_objects whereowner='ZHANG’状态为VALID是有效8. alterindexzhang。zzq_indexrebuildtablespacezhang_zzq9. 查询索引对应的表空间select index_name,table_name,tablespace_name,statusowner='ZHANG’fromdba_indexes where8.查看表空间的使用率有两个脚本都能够使用1.colcolf.tablespace_nameformata15cold.tot_grootte_mbformata10colts—performata8selectupper(f.tablespace_name)"TS—name”,d。tot_grootte_mb"TS-bytes(m)",”TS—used(m)",f。total_bytes”TS-free(m)”,to_char(round((d。tot_grootte_mbf.total_bytes/d。tot_grootte_mb100,2),'990'990。99’”TS—per"from(selecttablespace_name,round(sum(bytes)/(1024*1024),2)total_bytes,round(max(bytes)/(1024*1024),2)max_bytesfromsys。dba_free_spacegroupbytablespace_name)f,(selectdd。tablespace_name,(/(4*,)fromsys。dba_data_filesddgroupbydd。tablespace_name)dwhered。tablespace_name=f。tablespace_nameorderby5desc2.SELECTSELECTD.TABLESPACE_NAME,BLOCKSSUM_BLOCKS,ROUND((1-NVL(FREE_SPACE,0)/SPACE)*100,2)”USED_RATE(%)”,FREE_SPACE”FREE_SPACE(M)”FROM(SELECTTABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2)SPACE,SUM(BLOCKS)BLOCKSFROMDBA_DATA_FILESGROUPBYTABLESPACE_NAME)D,(SELECTTABLESPACE_NAME,(()/(4*,)FROMDBA_FREE_SPACEGROUPBYTABLESPACE_NAME)FWHERED.TABLESPACE_NAME=F.TABLESPACE_NAME(+)UNIONALL——ifhavetempfileSELECTD。TABLESPACE_NAME,SPACE"SUM_SPACE(M)”,BLOCKSSUM_BLOCKS,ROUND(NVL(USED_SPACE,0)/SPACE*100,2)”USED_RATE(%)”,NVL(FREE_SPACE,0)"FREE_SPACE(M)"FROM(SELECTTABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2)SPACE,SUM(BLOCKS)BLOCKSFROMDBA_TEMP_FILESGROUPBYTABLESPACE_NAME)D,(SELECT(SELECTTABLESPACE_NAME,ROUND(SUM(BYTES_USED)/(1024*1024),2)USED_SPACE,ROUND(SUM(BYTES_FREE)/(1024*1024),2)FREE_SPACEFROMV$TEMP_SPACE_HEADERGROUPBYTABLESPACE_NAME)FED。E(ORDERBY5DESC二.用户和权限创建用户createcreateuseryqmidentifiedbyora1234defaulttablespacets_yqmtemporarytablespacets_temp_yqm创建用户yqm密码为ora123 默认的表空间维ts_yqm默认的临时表空间为ts_yqm默认的临时表空间维ts_temp_yqm修改用户的密码alteralteruseryqmidentifiedbyyqm12343。给用户授权grantgrantconnecttoyqm--授予用户connect的权限grantgrantdbatoyqm授予用户DBA的权限revokedbafromyqm--DBA的权限grantselectonscott。emptokxht-—授予用户能查询SCOTT下的EMP表的权限grantselectanytabletosolograntdeleteanytabletosolograntcreateanytabletosolo--授予用户能查询所有表的权限4.查询数据库系统上有多少用户,文件名和创建时间selectselectusername,createdfromdba_users三.归档和非归档模式查看数据库的归档模式在数据库正常启动的模式下在数据库正常启动的模式下Archiveloglist2。修改数据库的归档模式mount的模式下进行修改alterdatabasearchivelog—-将非归档模式修改为归档模式altersystemsetlog_archive_dest_1='location=d:\oracle\log'scope=spfile修改数据库的归档日志路径四.日志文件1。查询日志文件信息SelectSelect*fromv$logfileSQLdescv$logfile;名称是否为空?类型--—-—————-—-———————--———--——-——--———-——-——-—GROUP#STATUSTYPEMEMBERIS_RECOVERY_DEST_FILENUMBERVARCHAR2(7)VARCHAR2(513)VARCHAR2(3)能够查询出日志文件属于哪个组,日志文件的路径1。1fromv$log——查询日志文件的大小1.2日志切换alteraltersystemswitchlogfile-—-手工切换日志1。3重做日志文件详细SQL>SQL>selectgroup#,members,bytes,status,archivedfromv$log;1210485760CURRENTNO2210485760INACTIVEYES3110485760INACTIVEYES4110485760INACTIVEYES查询结果:GROUP#MEMBERS查询结果:GROUP#MEMBERSBYTESSTATUSARC————-———-—-—————--——--——--—-—-—--——--——-—--结果显示,有四组重做日志,1组2组有两个成员,3组4组有一个成员,大小10485760字节。正在使用的是(状态为14C为,没有归档,YES,为归档)CURRENT表示正在被使用alteralterdatabaseaddlogfilegroup4'd:\oracle\product\10。1。0\oradata\auc\redo04'size10m增加日志成员alteralterdatabaseaddlogfilemember'd:\oracle\product\10.1.0\oradata\auc\redo011’togroup1为日志一组增加一个日志成员删除一组日志alteralterdatabasedroplogfilegroup4五.密码文件创建密码文件SQL> host orapwd file=d:\oracle\product\10.1.0\db_1\dbs\initdwSQL> host orapwd file=d:\oracle\product\10.1.0\db_1\dbs\initdw。ora password=oracleentries=5六.参数文件(spfilepfile)1。查看数据库使用参数文件(SPFILEPFILE)ShowShowparameterspfileVALUE有路劲的话说明数据库的参数文件使用的是SPFILESPFILECreateCreatespfilefrompfile='D:\oracle\product\10.1.0\admin\auc\pfile\init。ora.11112008185256’PFILESPFILEPFILE启动数据库startupstartuppfile='D:\oracle\product\10.1.0\admin\auc\pfile\init。ora。11112008185256’;七.statspackSTATSPACK@@?/rdbms/admin/spcreate。sql数据采集采样数据采样数据SQL>execstatspack。snap后隔几分钟后再次采样数据SQLexecstatspack.snap生成报表SQL>@?/rdbms/admin/spreport.sql设置自动快照\oracle\product\10.1\oracle\product\10.1。0\db_1\rdbms\admin\spauto.sql4。设置数据采集的时间修改该脚本中的内容,修改该脚本中的内容,variablejobnonumber;variableinstnonumber;beginselectinstance_numberinto:instnofromv$instance;dbms_job.submit(:jobno , 'statspack。snap;’,,,R,;commit;end;/主要是24 系统默认的是一个小时自动执行一次,假若设置为半个小时执行一次的话,就将24修改为48就能够了--—-—-—-—--然后执行@?/rdbms/admin/spauto八.ORACLE信息查询1ORACLEselectselectname,created,log_mode,open_modefromv$database2.ORACLEselectselecthost_name,instance_name,versionfromv$instance3ORACLEselectselect*fromv$version九.控制文件1。查询控制文件colcolnamefora45select*fromv$controlfile2。备份控制文件alteralterdatabasebackupcontrolfiletotrace备份控制文件为TRCBDUMP中能够找到十.索引1.创建一般索引createcreateindexzhang.zzq_1_indexonzhang。zzq_1(a3)pctfree25storage(initial500k)tablespacezzq_index2。创建位图索引createcreatebitmapindexzhang.zzq_2_indexonzhang。zzq_2(aname)pctfree25storage(initial500k)tablespacezzq_index3.查询索引所在的表,表空间,索引类型SQL>SQL>coltablespace_namefora15SQL〉selectindex_name,index_type,table_name,tablespace_name,uniqueness,statusfromdba_indexeswhereowner=’ZHANG’;INDEX_NAMEINDEX_TYPETABLE_NAMETABLESPACE_NAMETABLESPACE_NAMEUNIQUENESSTATUS——-—————————--———--——--— —-—-————-—-- --————————-——--———-————--————-———-—-—-——-——ZZQ_2_INDEXNONUNIQUEVALIDBITMAPZZQ_2ZZQ_INDEXNONUNIQUEVALIDZHANG_ZZQZZQ_1_INDEXNONUNIQUEVALIDNORMALZZQ_1ZZQ_INDEX查询结果能够看出,索引zzq_2_index是BITMAP索引,位于表zzq_2,位于ZZQ_INDEX表空间索引(NONUNIQUE),VALID表示正常ZZQ_1_INDEXZZQ_1ZZQ_INDEX表空间引(,状态D表示正常是非唯一是非唯一索4。查询索引所在的列SQLSQL〉selectindex_name,table_name,column_name,index_owner,table_ownerfromdba_ind_columnswheretable_owner='ZHANG';INDEX_NAMEINDEX_OWNERTABLE_NAMECOLUMN_NAMETABLE_OWNER-——--——--——-————-——-—-———-—--—-———-——-————--—-—————-—-——————-————-——-——--——-——-————-——ZZQ_2_INDEXZHANGZZQ_2ANAMEZHANGBIN$JzT/4eOlRteD8fJ2TYznbw==$0BIN$uZNQmZH5SSa6pO3YXAGNLA==$0NAME_IDZHANGZHANGZZQ_1_INDEXZHANGZZQ_1A3ZHANG查询结果看出,ZZQ_2_INDEX该索引在表ZZQ_2中,所在的列为ANAME,所在的用户为ZHANG。十一.主键定义主键zzq_3表中A1字段为主键约束主键名称为A3_primary_keySQLaltertablezhang.zzq_3ADDconstraintzzq_3_primary_keyprimarykey(a1)deferrableusingindextablespacezzq_primary_key;ORA—00001:违反唯一约束条件查询主键索引SQLSQL〉colsegment_namefora20SQL〉selectsegment_name,segment_type,tablespace_namefromdba_segmentswheretablespace_name='ZZQ_PRIMARY_KEY'3。查询约束信息SQLSQL〉selectconstraint_nametable_name,constraint_type,status,deferred,validatedfromdba_constraintswhereowner=’ZHANG';CONSTRAINT_NAMETABLE_NAMECONSTRAINT_TYPESTATUSDEFERRED-——-—-———--———--———--——--——-———-———————--—-———--————--——-—VALIDATED———--——ZZQ_3_PRIMARY_KZZQ_3EYPENABLEDIMMEDIATE状态为ENABLED 表示主键有效(主键打开),状态为DISABLED,表示主键关闭4。禁止约束alteraltertablezhang。zzq_3disablenovalidateconstraintzzq_3_primary_key;5.开启主键alteraltertablezhang。zzq_3enablenovalidateconstraintzzq_3_primary_key十二.手工建库脚本CREATECREATEDATABASEwxzbUSERSYSIDENTIFIEDBYoracleUSERSYSTEMIDENTIFIEDBYoracleLOGFILEGROUP1('/dev/rdatavg_1_076')SIZE1022M,GROUP2(’/dev/rdatavg_1_077’)SIZE1022M,GROUP3('/dev/rdatavg_1_078')SIZE1022MMAXLOGFILES10MAXLOGMEMBERS5MAXLOGHISTORY1MAXDATAFILES100MAXINSTANCES1CHARACTERSETZHS16GBKNATIONALCHARACTERSETUTF8DATAFILE’/dev/rdatavg_2_sys’SIZE2046MREUSEEXTENTMANAGEMENTLOCALDEFAULTTEMPORARYTABLESPACEtemp1SIZE2046MREUSEUNDOTABLESPACEUNDOTBS1DATAFILE'/dev/rdatavg_2_udo1'SIZE2046MREUSEAUTOEXTENDoff;十三..profile文件内容_=/usr/bin/env_=/usr/bin/envLANG=en_USLOGIN=oracle/oracle/OPatchNLS_LANG=american_america.zhs16gbkLC FASTMSG=trueLOGNAME=oracleTMP=/oracle/tempMAIL=/usr/spool/mail/oracleORACLE_SID=bossbil1_i1LOCPATH=/usr/lib/nls/locPS1=oracle@wxkhp630:$PWD〉USER=oracleAUTHSTATE=compat。0SHELL=/usr/bin/kshHOME=/oracleTERM=vt100MAILMSG=[YOUHAVENEWMAIL]PWD=/TZ=BEIST—8A z=!LOGNAMENLSPATH=/usr/lib/nls/msg/%L/%N:/usr/lib/nls/msg/%L/%N。catLD_LIBRARY_PATH=/oracle/app/oracle/lib:/usr/lib十四。做定时JOB创建存储经过,为此存储经过作定时JOB11.创建一张表,用户存放定时信息createtabletest_time(testdate)2.制定定时执行的存储经过createorreplaceprocedureinserttestasbegininsertintotest_timevalues(sysdate);end;/3。创建JOB,即创建待执行的定时任务经过variablejob1number;begin:’,’end;4。启动JOB启动并运行定时任务的经过beginb。(;end;/5。查看结果selectto_char(test,’yyyy/mm/ddhh24:mi:ss’)fromtest_timeJOB的参数说明DBMS_JOBDBMS_JOB。SUBMIT(:jobno,//job号'your_procedure;',//要执行的经过trunc(sysdate)+1/24,//下次执行时间);删除job:dbms_job.remove(jobno);修改要执行的操作:job:dbms_job。what(jobno,what);。next_date(job,next_date);修改间隔时间:dbms_erval(job,interval);停止停止job:dbms。broken(job,broken,nextdate);启动b。(;job_queue_processes的值:(0JOB不自动运行)可经过select*fromv$parameter;查看其值;或者直接用showparameterjob_queue_processes;查看如下:NAMETYPEVALUE————--——-———--——--—————-———--——-job_queue_processesinteger10//这个方式用来修改initorcl。ora文件的job_queue_processes参数,然后重新启动数据库2。altersystemsetjob_queue_processes=10//这个方式不用重启数据库就能够生效,系统自动修改init。ora文件以后即可生效。文章来源:十五。查询出SQL语句1SIDHASHVALUE值SELECTSELECTsql_hash_valueFROMv$sessionbWHEREb.SID='1179'2HASHVALUESQL语句fromV$SQLTEXT_WITH_NEWLINESwherehash_value=2743738331orderbypiece3HASHVALUE值查询出对应的SESSLINSIDselectselectsidfromv$open_cursorwherehash_value=’2692718941’4HASHVALUE找出对应的机器名称selectselectUSER#,MACHINE,SQL_HASH_VALUEfromv$sessionwheresid=’1179'5HASHVALUE查询出该语句的执行规划selectselectid,parent_idpid,operation,options,object_name,cost,cardinalityfromv$sql_planwherehash_value='2743738331'6。查询存储经过依据存储经过的名称,查询出存储经过的内容存储经过的名称要大写selectselecttextfromdba_sourcewherename='P_STA_SP_MOT_C001'查询对象属于哪个用户selectselectOWNERfromdba_segmentswhereSEGMENT_NAME=’TI_B_ASYNWORK’查询表的分析时间selectselectblocks,LAST_ANALYZEDfromdba_tableswhereowner='UCR_CRM1'andtable_name='TI_B_ASYNWORK'9。查询对象(表)的类型查询该对象是表还是索引等SELECTSELECTSEGMENT_TYPE,blocksfromdba_segmentswhereowner='UCR_CRM1’andsegment_name='TI_B_ASYNWORK’十六.查询脚本1。查询等待事件selectselectevent,sid,p1,p2,p3fromv$session_waitwhereeventnotlike’SQL%'andeventnotlike’rdbm%’22G的对象着重着重:该语句很耗费CPU,尽力避开高峰时段查询setlinesize300colownerformata15coltablespace_nameformata20colsegment_nameformata30select*from(selectowner,segment_name,partition_name,segment_type,——tablespace_name,round(sum(bytes)/1024/1024/1024,2)as”GB"fromdba_segmentsertn(,groupbyowner,segment_namegroupbyowner,segment_name,partition_name,segment_type--tablespace_nameorderbygbdesc)wheregb>=23.查看锁selectdecodeselectdecode(request,0,’holder:’,'waiter:')holder,sid,id1,id2,lmode,request,type,ctime,blockm$ke)ntem$ke)byid1,request十七.SQL语句对表的操作1。创建一张表1。创建一张表Createtable表(avarchar2(10));2. 插入内容Insertinto表values(‘aa’);3.删除内容Deletefrom表名(能够增加条件以删除选择的内容)4。删除表Droptable表名5。增加一列altertableabcaddcnumber6。删除一列alteraltertableabcdropcolumnc常用的函数1.转换函数1.转换函数to_char将非字符类型转换为字符型selectto_char(sysdate,'yyyy-mm—ddhh24—mi—ss’)to_dateto_number2avgmaxminsumcount3。系统函数user查询当前用户的登陆账号selectuserfromdual;decodetm(x,),)me;eDECODE,ifSEX做计数,假若不是男则不做计数。nvl对查询的字段做一个标示t2)ma2十八。安装手册十九.错误总结1.ORA—00257:归档程序错误问题问题:在导入3G大的数据时,需要着重Oracle10。2。0.1版本的归档日志空间默认为2G,不断归档导致磁盘空间。则导入数据暂停。在进行大量的数据插入或者IMP大量导入的时候,————--——--——-———-—-————-——--—--——————-—————-————--————-——--—————-—--——--————————警告日志出现错误WedMay2017:16:062009Errorsinfiled:\oracle\product\10.1.0\admin\auc\bdump\auc_arc1_372。trc:ORA-19809:超出了恢复文件数的限制:9755648(2147483648限制中)ARC1 : Error 19809 Creating archive log file to ’D : \ORACLE\PRODUCT\10 。1.0\FLASH_RECOVERY_AREA\AUC\ARCHIVELOG\2009_05_20\O1_MF_1_478_U_.ARC'ARC1:Allstandbydestinationsfailed;successfularchivalassumedARC1:Failedtoarchivelog6thread1sequence478(19809)WedMay2017:16:062009Errorsinfiled:\oracle\product\10。1。0\admin\auc\bdump\auc_arc1_372。trc:ORA—16038:6478无法归档ORA—19809:超出了恢复文件数的限制—:联机日志6线程:’’ORA—00312:联机日志6线程1:’D:\ORACLE\PRODUCT\10。1。0\ORADATA\AUC\REDO061'Errorsinfiled:\oracle\product\10。1。0\admin\auc\bdump\auc_mmon_2264。trc::db_recovery_file_dest_size(2147483648字节)100.000字节可用。—--——-————--——-—--——-——--—-—-——-—--————--—-—————-—————-——-——————--—-—-———-—-——-———--———-—原因:alert_log日志原来是归档日志占满了FLASH_RECOVERY_AREA2G解决方式解决方式1:先手工删除D:\oracle\product\102。0\flash_recovery_area里面的日志,然后用户用rman进入把归档日志删除1)命令>rmantarget/2)命令〉crosscheckarchivelogall;3)命令>delete3)命令>deleteexpiredarchivelogall;4)命令〉exit解决方式2:转变了FLASH_RECOVERY_AREA的大小修改命令〉altersystemsetdb_recovery_file_dest_size=8Gscope=both查看命令〉showparameterdb_recovery_file_dest_size二十。故障处理1.日志挖掘archiveloglistutl_file_dir=d:\oracle\product\10。1。0\admin\auc\cdump3检查是否有以下的两个包Descdbms_logmnr_dDescdbms_logmnr(invaliddescrptionobjec)catproc.sqlRDBMS路径下34executedbms_logmnr_d.build('oralinlog.ora','d:\oracle\product\10.1.0\admin\auc\cdump’)5。确定归档的路径和文件执行executedbms_logmnr.add_logfile(logfilename=〉’D:\oracle\product\10。1.0\flash_recovery_area\AUC\ARCHIVELOG\2009_05_20\O1_MF_1_512_517PH7OZ_.ARC’,options=>dbms_logmnr.new)6创建一张临时表存放归档的信息createtabletemp_arch_13tablespaceUSERSasselect*fromv$logmnr_contentswhereSQL_REDOSQL_REDOlike'%droptable%'orSQL_REDOlike’%DROPTABLE%'7。释放内存executedbms_logmnr.end_logmnr。8.查询需要的信息SELECTscn,timestamp,seg_name,table_name,sql_redofromsys.temp_arch_13查询结果SQLSELECTscn,timestamp,seg_owner,seg_name,table_name,sql_redofromsys.temp_arch_13;SCNTIMESTAMPSEG_OWNERSEG_NAMETABLE_NAMESQL_REDO-—-—-——-—--——-—--——————-——-————--—-———-——--——-——-———--———--—-——-—-———-—-—-—-—-—-——-—--—--—--—336864021-5-09AUCRIZHIRIZHIdroptablerizhiAS”BIN$iO3Q/iWXRgiwlLY0L9E6lg==$0”;2.行链接行迁移概念:两则之间的区分:行连接是指一个行存储在多个块中的情况,由于一个该行的长度超过了一个块的可用空间大小。行迁移是指一个数据行不适宜放入当前块而被重新定位到另一个块,但在原始块中保留一个指针,原始块中的指针是必需的,由于索引的rowid项仍然指向原始位置.行连接通常与行的长度和oracle数据库块中的大小有关,而行迁移通常是当一个更新操作的长度增加且又要保持该行在同一块中,而该块又缺少可用空间时产生的问题,oracle在决定行连接之前先试图进行行迁移(以说明该故障的处理)11hangcreatetablehangasselect*fromjfsh_trade_rizhi_informationwhererownum=1(将jfsh_trade_rizhi_information)2hang的列altertablehangaddxinzeng20char(1000) 该列从xinzeng1xinzeng203。对该表分析一下ANALYZETABLEhangLISTCHAINEDROWSHAINED_ROWS表能够经过以下脚本进行创建@$ORACLE_HOME/rdbms/admin/utlchain。sql4SQL>colOWNER_NAMEfora10SQL>colTABLE_NAMEfora10SQL〉colCLUSTER_NAMEfora10SQL〉col PARTITION_NAMEfora15SQL〉colSUBPARTITION_NAMEfora15SQLcolHEAD_ROWIDfora15SQL>colANALYZE_TIMESTfora20SQL>setlines1000pages1000SELECT* OWNER_NAMETABLE_NAMECLUSTER_NAPARTITION_NAMESUBPARTITION_NAHEAD_ROWID ANALYZE_TIMEST———-—-—-—- ——-——————- ————--— -—-———-—-——— —--—-———— --————-———-——--———AUC HANG N/A AAAPDMAAEAAAQ3c22-5月—09AAA1createtablehang_1asselect*fromhang2。分析该表ANALYZETABLEhang_1LISTCHAINEDROWS3.查询SQL〉SELECT* WHERETABLE_NAME='HANG_1';OWNER_NAMETABLE_NAMECLUSTER_NAPARTITION_NAMESUBPARTITION_NAHEAD_ROWID ANALYZE_TIMEST——-——————- —-———-——-- ——--—-- --—-—--—-——— -—-—-——————— -—--—————--—-——-————--—-—-AUC HANG_1 N/A AAAPDNAAEAAAQ3k22—5月-09AAAAUC HANG_1 N/A AAAPDNAAEAAAQ3k22—5月-09AAA假若该数据库中该表不存在与其他的表之间有关联存在主键外键等尝试以下方式进行处理SQL>selectCONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAMEfromUSER_CONSTRAINTSwhereTABLE_NAME=’CUSTOMER’;CONSTRAINT_NAMECTABLE_NAME-—————-—-—-—————--——---PK_CUSTOMER1PCUSTOMERSQL>selectCONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAMEfromUSER_CONSTRAINTSwhereR_CONSTRAINT_NAME=’PK_CUSTOMER1’;norowsselectedSQL〉CREATETABLECUSTOMER_tempASSELECT*FROMCUSTOMERWHERErowidIN(SELECThead_rowidFROMchained_rowsWHEREtable_name=’CUSTOMER');Tablecreated。SQL〉selectcount(*)fromCUSTOMER;COUNT(*)--——-—-338299SQL〉DELETECUSTOMERWHERErowidIN(SELECThead_rowidFROMchained_rowsWHEREtable_name='CUSTOMER');21306rowsdeleted.SQL〉INSERTINTOCUSTOMERSELECT*FROMCUSTOMER_temp;21306rowscreated。SQL>DROPTABLECUSTOMER_temp;Tabledropped。SQL>commit;Commitcomplete.SQL〉selectcount(*)fromCUSTOMER;COUNT(*)—-—--——338299SQL〉truncatetablechained_rows;Tabletruncated。SQL〉ANALYZETABLECUSTOMERLISTCHAINEDROWSINTOchained_rows;Tableanalyzed.SQL>selectcount(*)fromchained_rows;COUNT(*)—--—————--0行链接行迁移实施方案exp/imp优点:安全性高缺点:速度较慢,且可能影响业务MOVE表(altertablemovetablespace表空间名)优点:经过简单,速度快缺点:需要占用相同大小的空间做数据存放,可能影响业务3。使用utlchain.sql优点:安全性高,速度快缺点:经过繁琐,如表中含有外键约束的话不能使用此方案行链接当一条记录太大,一个数据块无法将其存储时,Oracle就会将其存储在相链接的数据块中。假若一条记录中含有数据类型如:LONG、LONGRAW、LOB,行链接则无法避开。行迁移当一个数据块已满,而一条记录在更新后长度增加了,或者表上新增加了字段,这时Oracle就会将整个记录迁移到一个新的数据块,原先的位置存放指向新位置的指针,这就是行迁移。记录的ROWID在行迁移之后保持不变。行链接/行迁移对系统的影响除大数据类型之外,上述情况对数据库的性能是有影响的.系统在访问一条记录时,正常情况只需要访问1个数据块,但是当出现行链接/行迁移后,就需要访问至少2个数据块,增大了至少1倍的系统开销。查询发生行链接、行迁移的表selectowner,table_name,tablespace_namechain_cntfromdba_tableswherechain_cnt〉0;table_name1utlchain。sql该脚本建立一个存放行迁移的表@?/rdbms/admin/utlchain.sql着重:假若该表已经存在,就不需要执行该脚本(CHAINED_ROWS)2ROW_ID产生的行迁移analyzetable用户。表名listchainedrows;3。建立一张表用户存放被迁移的行createtableCH_BB_IVPN_SHOULD_COMPLETE_Tasselect*fromhangwhererowidin(selectHEAD_ROWIDfromCHAINED_ROWS)4.删除表中所有迁移的行4.删除表中所有迁移的行deletehangwhererowidin(selectHEAD_ROWIDfromCHAINED_ROWS);5.将被删除的行再插入回去insertintohangselect*fromCH_BB_IVPN_SHOULD_COMPLETE_T6.提交修改commit总结和建议总结:使用上述方式进行表的行迁移/行链接处理,全部都在联机的状态下完成,根本上不会对业务产生影响,有速度快、效率高的特点。建议:定期的对行迁移/行链接的情况进行处理以保证数据库运行效逻辑备份(exp/imp)1TEST彻底导出,systemmanagerD:daochu.dmp中ExpExpsystem/manager@TESTfile=d:daochu。dmpfull=ysystemsys用户的表导出ExpExpsystem/manager@TESTfile=d:daochu。dmpowner=(system,sys)将数据库中的表inner_notify、notify_staff_relat导出exp aichannel/aichannelexp aichannel/aichannel@TESTDB2 file=d:datanewsmgnt。dmp tables=(inner_notify,notify_staff_relat)expsystem/manager@TESTfile=d:daochu.dmptables=(table1)query="wherefiled1expsystem/manager@TESTfile=d:daochu.dmptables=(table1)query="wherefiled1like'00%’”5.D:daochu.dmp中的数据导入TEST数据库中impimpsystem/manager@TESTfile=d:daochu。dmpimpaichannel/aichannel@HUSTfull=yfile=d:datanewsmgnt。dmpignore=yimpsystem/manager@TESTfile=d:daochu.dmptables=(table1)impsystem/manager@TESTfile=d:daochu.dmptables=(table1)IMP/EXP详细参数在P14。关闭和启动数据库的步骤关闭数据库流程关闭数据库流程首先停掉监听不再产生新的连接lsnrctlstatLISTENER_ANADBlsnrctlstatLISTENER_SIEBDB1lsnrctlstopLISTENER_ANADBlsnrctlstopLISTENER_SIEBDB1lsnrctlstoppsef|grepora_AIX上杀客户端进程的命令ps—ef|grep$ORACLE_SID|grep—vora_|grepLOCAL=NO|awk'{print$2}’|xargskill—9HPps-ef|grepLOCAL=NO|grep$ORACLE_SID|wc-lps—ef|grepLOCAL=NO|grep$ORACLE_SID|cut-c9-15|xargskill—9杀掉进程后确定客户端进程已经都没有ps-ef|grepLOCAL=NO(ps-ef|grepLOCAL=YES(本地连接)确定不能查到任何进程$sqlplus“/assysdba"shutdownimmediate;startup或者startupmountalterdatabaseopen;lsnrctlstartuplsnrctlstartLISTENER_ANADBlsnrctlstartLISTENER_SIEBDB1altersystemsetevents=’immediatetracenameflush_cache';5.逻辑读,物理读1.物理读:当数据块第一次读取,BUFFERCACHE中,而第二次读取和修改数据BUFFERCACHE中。物理读我们也能够理解为当第一次读取数据的BUFFERCACHEBUFFERCACHEBUFFERCACHE返回到用户界面.二十一。METALINK操作SR首先依据提示选择对应的主机信息ORACLE信息和错误信息YES如下图,在这几项依据如图选择的提示就能够了2。OPATCH下载地址http:///download/6880880。htmlMETALINK的用户名和密码点击进入OPATCH下载界面在选择数据库版本和类型

项选择操作系统的类型和版本在Download进行OPATCH的下载3。数据库升级补丁下载1.METALINK的界面后能够看到如图界面2。点击能够看到如下界面

该选项Patches&Updatesut:Flrt皿ersmymttcc,tchred年的srerctsgtert1,.unkR和句平5汀伈沁了寸.* “妇.r t ;啪Recmmend的氏t晊OQra1ee,叮l,印区Rl2ac|己eBu口n兰55Sui:e..1i.叮五1aP己讨9R泊{1Y日,舅Lli.Q!i).oo呡啦扣n匕「e(.如玉)ck5t:LatestPtcht岛MinisndMaencePac9点击

I II

该选项5ORACLEDATABASE选项,就能够看到针对的操作系统和针对的数据库版本的升级补丁。Product

Pl'Dduct「上ase伽伽'0mdeFuIJnMidJ|R.i「R

妇 仁pr-.=FTr :.吹►',I►',竺 丘卢迁尽邓.竺们全竺[i竺'恤1-Pr):;.;;,n'/"JSA'恤01-adeOl:Jb.COREija九unl己frm

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论