DIY--各种数据库问题集合--非ora报错类.doc_第1页
DIY--各种数据库问题集合--非ora报错类.doc_第2页
DIY--各种数据库问题集合--非ora报错类.doc_第3页
DIY--各种数据库问题集合--非ora报错类.doc_第4页
DIY--各种数据库问题集合--非ora报错类.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

目录数据库类1轻松掌握如何禁用 Oracle数据库的默认表空间XDB1修改oracle最大连接数的步骤2如何处理Oracle中TEMP表空间满的问题3系统类5rm删除文件后,空间不释放5数据库类轻松掌握如何禁用 Oracle数据库的默认表空间XDB Oracle 9i创建数据库时默认包含了XDB特性。一旦启动了数据库和Listener,Oracle XDB启动http服务。 禁用 oracle 的 XDB服务的方法很简单,去掉相应的数据库的初始化参数即可: 编辑$ORACLE_HOME/dbs/initSID.ora文件,去除如下行: dispatchers=(PROTOCOL=TCP) (SERVICE=XDB) 重启数据库 shutdown immediate;create spfile from pfile;startup; 修改XDB服务端口: XDB的http服务就占用8080端口,刚好和JBoss、Tomcat等默认端口冲突,Oracle XDB的端口设置不在配置文件中,而是在数据库里。如下修改XDB的http和ftp服务端口: 使用sys登录sqlplus,利用dbms_xdb修改端口设置 SQL - Change the HTTP/WEBDAV port from 8080 to 8081SQL call dbms_xdb.cfg_update(updateXML(2 dbms_xdb.cfg_get()3 , /xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()4 , 8081)5 /Call completed. SQL - Change the FTP port from 2100 to 2111SQL call dbms_xdb.cfg_update(updateXML(2 dbms_xdb.cfg_get()3 , /xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp-port/text()4 , 2111)5 /Call completed. SQL COMMIT;Commit complete.SQL EXEC dbms_xdb.cfg_refresh;PL/SQL procedure successfully completed. 另附 Windows 下面,停的方法:首先停掉数据库 还有 监听开始 所有程序 oracle oracleHome92 configuration and Migration Tools DCA 选择 共享 修改修改oracle最大连接数的步骤使用sys,以sysdba权限登录:sqlplus sys/123456 AS SYSDBA(后边用nolog不行)SQL show parameter processes;NAME TYPE VALUE- - -aq_tm_processes integer 1db_writer_processes integer 1job_queue_processes integer 10log_archive_max_processes integer 1processes integer 150SQL alter system set processes=300 scope = spfile;系统已更改。SQL show parameter processes;NAME TYPE VALUE- - -aq_tm_processes integer 1db_writer_processes integer 1job_queue_processes integer 10log_archive_max_processes integer 1processes integer 150SQL create pfile from spfile;文件已创建。重启数据库,OK!如何处理Oracle中TEMP表空间满的问题正常来说,在完成Select语句、create index等一些使用TEMP表空间的排序操作后,Oracle是会自动释放掉临时段a的。但有些有侯我们则会遇到临时段没有被释放,TEMP表空间几乎满的状况,甚至是我们重启了数据库仍没有解决问题。这个问题在论坛中也常被网友问到,下面我总结一下,给出几种处理方法。法一、重启库库重启时,Smon进程会完成临时段释放,TEMP表空间的清理操作,不过很多的时侯我们的库是不允许down的,所以这种方法缺少了一点的应用机会,不过这种方法还是很好用的。法二、Metalink给出的一个方法修改一下TEMP表空间的storage参数,让Smon进程观注一下临时段,从而达到清理和TEMP表空间的目的。SQLalter tablespace temp increase 1; SQLalter tablespace temp increase 0;法三、我常用的一个方法,具体内容如下:1、 使用如下语句a查看一下认谁在用临时段SELECT username, sid, serial#, sql_address, machine, program, tablespace, segtype, contents FROM v$session se, v$sort_usage su WHERE se.saddr=su.session_addr 2、 那些正在使用临时段的进程 SQLAlter system kill session sid,serial#;3、把TEMP表空间回缩一下SQLAlter tablespace TEMP coalesce;法四、使用诊断事件的一种方法,也是被我认为是“杀手锏”的一种方法1、 确定TEMP表空间的ts#SQLselect ts#, name from sys.ts$ ; TS# NAME - 0 SYSYEM 1 RBS 2 USERS 3* TEMP 4 TOOLS 5 INDX 6 DRSYS 2、 执行清理操作SQLalter session set events immediate trace name DROP_SEGMENTS level 4 ; 说明: temp表空间的TS# 为 3*, So TS#+ 1= 4其它:1、 出现如上问题的原因我认为可能是由于大的排序超出了TEMP表空间的空间允许范围引起的。也可能包含着其它的异常的因素。2、 观注TEMP等这些空间的状态是Dba日常职责之一,我们可以通过Toad、Object Browser等这些工具办到,也可以用如下的语句:SELECT UPPER(F.TABLESPACE_NAME) 表空间名, D.TOT_GROOTTE_MB 表空间大小(M), D.TOT_GROOTTE_MB - F.TOTAL_BYTES 已使用空间(M), TO_CHAR(ROUND(D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100, 2), 990.99) 使用比, F.TOTAL_BYTES 空闲空间(M), F.MAX_BYTES 最大块(M) FROM (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES, ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES FROM SYS.DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F, (SELECT DD.TABLESPACE_NAME, ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB FROM SYS.DBA_DATA_FILES DD GROUP BY DD.TABLESPACE_NAME) D WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME ORDER BY 4 DESC怎么查oracle SCN号,以及power用法select to_char( max(ktuxescnw * power(2, 32) + ktuxescnb) scn from sys.x$ktuxe ;另外附 power 函数用法:Power(3,2) 指的是 3 的 2次方s 系统类rm删除文件后,空间不释放网上流行的方法有两种: 第一种:Hp unix rm文件空间不释放问题解决 1 引言很多人会遇到在操作系统上rm掉一个大的文件,以解决文件系统超标的问题,可是有的时侯文件删除掉了,而空间却未释放出来。论坛上也常常见这样贴子,为什么会这样,如何解决呢?本文只局限于Hp unix的操作系统。2 rm掉文件空间不释放原因原因其实很简单,主要是因为被删除的文件在删除的时侯还是进程在操作(打开、访问等)的缘故,rm只完成了在磁盘上文件实体的释放,而类似free list结构中相应的文件系统因进程的操作相应的inode并未释放。3 解决的方法这样的问题解决起来也很简单,找到操作的进程,kill掉就可以了,可是找到操作的进程恰恰是本问题的难点和关键。这样的问题也可以通过重启机器和nmount/mount文件系统这样的方式解决,但这样的方法我是不提倡的,小小的问题就重启机器,小题大做。3.1 hp-unix操作系统需要借助uli这个内部工具,后面会详细说。3.2 linux及solaris可以这样做:a、下载一个lsof软件装上,google上可以搜到b、找到正在用被删文件的进程 lsof | grep deletedc、kill掉相应的进程空间就释放了4 hp unix本问题的解决4.1 问题重现4.1.1 bdf一下/oracle文件系统# bdf /oracleFilesystem kbytes used avail %used Mounted on/dev/vg00/lv_oracle 8192000 5313813 2698313 66% /oracle可见空余2698313kb4.1.2 udump下有一文件占用了60多mb的空间# pwd/oracle/app/oracle/admin/yztest/udump# ls -l yztest_ora_11026.trc-rw-rw-rw- 1 root sys 62217530 Apr 23 10:36 yztest_ora_11026.trc#4.1.3 以more命令查看文件,保持这个操作不动# more yztest_ora_11026.trc4.1.4 另开一个窗口,删除文件,空间未释放# rm yztest_ora_11026.trc# ls -l yztest_ora_11026.trcyztest_ora_11026.trc not found# bdf /oracleFilesystem kbytes used avail %used Mounted on/dev/vg00/lv_oracle 8192000 5313813 2698313 66% /oracle可见/oracle文件系统的可用空间并未发生改变。4.2 问题解决4.2.1 安装uli工具这个工具如果没有,可以向hp supporter要一个。ftp到主机,注意用以二进制上传# ls -ltotal 960-rw-rw-rw- 1 root sys 487379 Apr 23 10:22 uli.bin解压缩,文件是自解压的# sh ./uli.binRunning install script. ./uli.install uli a 2查看一下# ls -ltotal 5520-rwxrwxrwx 2 222 users 1160136 Dec 13 2006 uli-rwxrwxrwx 2 222 users 1160136 Dec 13 2006 uli-a-2-rw-rw-rw- 1 root sys 487379 Apr 23 10:22 uli.bin-rwxrwxrwx 1 222 users 536 Dec 13 2006 uli.install执行uli.install# ./uli.install uli a 2#查看一下uli的各个可用选项# ./uli -h4.2.2 执行uli,杀掉操作进程# ./ulilibp4 (9.219): Opening /stand/vmunix /dev/kmemLoading symbols from /stand/vmunixKernel TEXT pages not requested in crashconfWill use an artificial mapping from a.out TEXT pagesLoading symbols from /stand/dlkm/mod.d/krmNote: Consider P4_ELF_WARNING=2 to get more detailsNote: No debug information for this moduleFound 16 matching unlinked file table entries. PID PPID COMMAND INODE DEVICE SIZE(bytes) 15128 13937 more 20177 /dev/vg00/lv_oracle 62217530 9619 1 GWTDOMAIN 4119 /dev/vg00/lvapp 131072 9618 1 GWADM 4119 /dev/vg00/lvapp 131072 9617 1 GWTDOMAIN 4110 /dev/vg00/lvapp 131072 9616 1 GWADM 4110 /dev/vg00/lvapp 131072 9611 1 GWTDOMAIN 3988 /dev/vg00/lvapp 131072 9610 1 GWADM 3988 /dev/vg00/lvapp 131072 9608 1 GWTDOMAIN 3884 /dev/vg00/lvapp 131072 9607 1 GWADM 3884 /dev/vg00/lvapp 131072 9604 1 GWTDOMAIN 3856 /dev/vg00/lvapp 131072 9603 1 GWADM 3856 /dev/vg00/lvapp 131072 2775 1 swagentd 3936 /dev/vg00/lvol7 141 2209 1 java 28778 /dev/vg00/lvol7 13 2209 1 java 960 /dev/vg00/lvol7 3215 2209 1 java 960 /dev/vg00/lvol7 3215 2209 1 java 10180 /dev/vg00/lvol7 3215可见15128进程执行了more操作,影响了空间的释放杀掉15128# kill 15128 #4.2.3 再查看一下/oracle的空间# bdf /oracleFilesystem kbytes used avail %used Mounted on/dev/vg00/lv_oracle 8192000 5253045 27552

温馨提示

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

评论

0/150

提交评论