Oracle日常维护总结

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Oracle日常维护总结检查TNS是否正常c:tnspingora9检查登陆用户是否正常c:sqlplususer/password@SIDSQLconnectsystem/managerassysdbasys/chang_on_install导入数据:impuser/pwdfile=*.dmpcommit=y回滚段满就提交,不无限扩展回滚段。impuser/pwdfile=*.dmpcommit=yfull=yimpuser/pwdfile=*.dmpcommit=ytable=*查询所有用户:selectusernamefromdba_users;===========================================================scounix中旧版oracle开关数据库关数据库文件在/etc/rco.d/k100ra开数据库文件在/etc/rc2.d/sqsora$sqldbalmode=ysqldbaconnectinternal;sqldbashutdownimmediate;sqldbastartup;--------------------------------svrmgrlsvrmgrconnectinternalsvrmgrshutdownimmediatesvrmgrstartuplsnrctllsnrctlstoplsnrctlstart===========================================================表空间变大的问题!UNDOTBS1的表空间增大,现已经达到11G,数据并不大,不知道什么原因造成的!您可以增加回退段storage中的optimal属性,这个属性就是当回退段中没有活动事务时,自动回缩回退段到optimal设定的值,具体语句如下:sqlalterrollbacksegment回退段名字storage(optimal10M);另外您还可以手工回缩回退段,sqlalterrollbacksegment回退段名字shrinkto10M;继续问一下回滚段问题,UNDOTBS设定是2G,最大没限制,现它已增长到了9G,查了一下,数据现占用3G左右,我用命令:sqlalterrollbacksegment回退段名字shrinkto4G;时提示ORA-30019:IllegalrollbackSegmentoperationinAutomaticUndomode,现该怎么缩小它啊?alterrollbacksegment回退段名字shrinkto4G只允许在回退段为手动管理模式下使用,自动管理时不可使用。请查看数据库参数showparameterundo_===========================================================看用户下有多少个procedure,删除命令1、想看用户下有多少个procedure请执行以下sql语句:sqlselect*fromuser_objectswhereobject_type='PROCEDURE';2、删除用sqldropprocedureprocedure_name;===========================================================oracle高版本库向低版本库如何移植?操作成功的方法?oracle高版本的导出(exp)不能向低版本库使用(imp)导入,要移植可以将高版本库中数据输出成文本,再用sqlload装入低版本库。低版本的导入工具不能导入使用高版本导出工具创建的导出文件。为了移动表与数据库对象,需要使用与目标数据库兼容的低版本导入,导出工具。如:希望将对象从8i移到8中,则可使用8i服务器上的Oracle8导入导出工具创建文件,以便在8上可以读取此文件。catexp7.sql即为此用,可选择不同的部分(imp,exp)执行,但有一点要注意,8i中的新对象不能被导出和导入到8中。===========================================================在数据库中,建有100多个库,运行SELECT*FROMCAT;命令后,大部分库名都运行过去了,只看到最下方的几个,如何全部看到所有的数据库进入sqlplus环境,执行setpauseon,在执行select*fromcat;按回车键就可以分屏看了===========================================================表空间使用率一、如何查看tablespace的空间使用情况sqlselecta.file_idfileid,a.file_name文件名,a.tablespace_name表空间名,a.bytestotal_bytes,(a.bytes-sum(nvl(b.bytes,0)))已使用,sum(nvl(b.bytes,0))未使用,sum(nvl(b.bytes,0))/(a.bytes)*100未使用率fromdba_data_filesa,dba_free_spacebwherea.file_id=b.file_idgroupbya.tablespace_name,a.file_id,a.bytes,a.file_nameorderbya.file_id二、如何查看table的空间使用情况1、analyzetabletablename(你想查的表名)computestatistics;2、selecttable_name,blocks,empty_blocksfromdba_tableswheretable_name=‘’;===========================================================用户在进行输入操作时,输入了两条完全一样的记录。当用户想删除这条记录时,系统出错,提示“多条记录被操作”。无法删除记录。请教高手,如何解决问题。1、selectrowid,其他列名fromtablename;(你想进行删除操作的表名)。2、记下你想删除的记录所对应的rowid的值3、deletefromtablenamewhererowid='rowid的值';应该就可以了。where条件加上rownum=1就可以删除第一条记录。注意,rownum只能接“=”或“”,不能接“”。其实使用rownum有很大的局限性,比如,只能删除rownum=1的行。可使用“相关删除”的方法删除重复记录:SQLdeletetnameowhereo.rowid(selectmax(rowid)fromtnameiwherei.colname=o.colname);其中:colname为基表tname的列名,可用多列。===========================================================我用selectb.file_idfile_id,b.tablespace_nametablespace_name,b.bytes/1024bytes,(b.bytes-sum(nvl(a.bytes,0)))*1.0/1024used_spaces,sum(nvl(a.bytes,0))/1024free_spaces,sum(nvl(a.bytes,0))/(b.bytes)*100free_pictfromdba_free_spacea,dba_data_filesbwherea.file_id=b.file_idgroupbyb.tablespace_name,b.file_id,b.bytesorderbyb.file_id查看free_space还有6.26%,大量删除记录后,查看free_space仍为6.26%,不知何故?如何释放表空间?举个例子吧:一个表空间大小为10M,它里边有一张表,这张表当前的大小为2M,则不论这张表里有多少数据,哪怕它是一张空表,它仍然占用了这个表空间2M的空间。至于你说的如何释放表空间,看了你的描述,你是对表空间里的一些表进行了大量的删除操作,对于你这种情况,你可以用以下SQL语句试试:ALTERTABLEtablenameDEALLOCATEUNUSED;(这里的tablename是指你进行过大量删除操作的表)===========================================================如何修改ORACLE的字符代码集,如何用SQL语句可以修改(ZHS16GBK)(ZHS16CGB231280)在sys用户下:updatetableprops$setvaules='ZHS16CGB213280'wherename='nls_lang';updateprops$setvalue$='ZHS16CGB231280'wherename='NLS_CHARACTERSET';updateprops$setvalue$='ZHS16CGB231280'wherename='NLS_NCHAR_CHARACTERSET';commit;===========================================================某存储过程被锁死,用drop命令不能删除,如何停止该存储过程?1selectjob,failuresfromuser_jobs;2execdbms_job.remove(thecontentofjob);3dropprocedure..;===========================================================1.怎么验证监听已经开启?命令:lsnrctlstatus2.tnsnames.ora除了修改HOST的地址外还需要改别的地方吗?host地址,SERVICE_NAME3.数据库怎样open?命令:svrmgrlsvrmgrconnectinternalsvrmgrstartup===========================================================ORACLE表空间恢复方案一)用户表空间错误:在启动数据库时出现ORA-01157,ORA-01110或操作系统级错误例如ORA-07360,在关闭数据库(使用shutdownnormal或shutdownimmediate)时将导致错误ORA-01116,ORA-01110以及操作系统级错误ORA-07368解决:以下有两种解决方案:1.用户的表空间可以被轻易地重建即最近导出的对象是可用的或表空间中的对象可以被轻易地重建等.在这种情况下,最简单的方法是offline并删除该数据文件,删除表空间并重建表空间以及所有的对象.svrmgrlstartupmountsvrmgrlalterdatabasedatafilefilenameofflinedrop;svrmgrlalterdatabaseopen;svrmgrldroptablespacetablespace_nameincludingcontents;重建表空间及所有对象.2.用户的表空间不能够被轻易地重建在大多数情况下,重建表空间是不可能及太辛苦的工作.方法是倒备份及做介质恢复.如果您的系统运行在NOARCHIVELOG模式下,则只有丢失的数据在onlineredolog中方可被恢复。步骤如下:1)Restorethelostdatafilefromabackup2)svrmgrlstartupmount3)svrmgrlselectv1.group#,member,sequence#,first_change#fromv$logv1,v$logfilev2wherev1.group

1 / 72
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功