本站用于记录日常工作内容,虚拟化云计算,系统运维,数据库DBA,网络与安全。
Oracle数据库无效对象问题处理  维护的数据库存在大量的无效对象,其中大量的无效对象(800多个)所有者为系统用户,虽然对应用暂时没有影响,但为了避免隐患,对无效对象进行了处理。$select object_name,object_type,owner,created,last_ddl_time,timestamp from dba_objects where status='INVALID' order by 1,2; OBJECT_NAME                      OBJECT_TYPE OWNER     /c0c184e9_QsmaSqlValidationTar   JAVA CLASS  SYS       /da5b87e_QsmaSqlTestCallback     JAVA CLASS  SYS       /ec947e38_QsmaSqlParserJJCalls   JAVA CLASS  SYS       _ALL_REPCOLUMN_GROUP             VIEW     &...
Oracle查询表空间使用情况 --查询表空间使用情况  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 1;  --查询表空间的free space  select tablespace_name,  count(*) as extends,  round(sum(bytes) / 1024 / 1024, 2) as MB,  sum(blocks) as blocks  from dba_free_space  gro...
oracle实例内存(SGA和PGA)调整   一、名词解释(1)SGA:System Global Area是Oracle Instance的基本组成部分,在实例启动时分配;系统全局域SGA主要由三部分构成:共享池、数据缓冲区、日志缓冲区。(2)共享池:Shared Pool用于缓存最近被执行的SQL语句和最近被使用的数据定义,主要包括:Library cache(共享SQL区)和Data dictionary cache(数据字典缓冲区)。  共享SQL区是存放用户SQL命令的区域,数据字典缓冲区存放数据库运行的动态信息。(3)缓冲区高速缓存:Database Buffer Cache用于缓存从数据文件中检索出来的数据块,可以大大提高查询和更新数据的性能。(4)大型池:Large Pool是SGA中一个可选的内存区域,它只用于shared server环境。(5)Java池:Java Pool为Java命令的语法分析提供服务。(6)PGA:Process Global Area是为每个连接到Oracle database的用户进程保留的内存。二、分析与调整(1)系统全局域:  SGA与操作系统、内存大小、cpu、同时登录的用户数有关。可占OS系统物理内存的1/3到1/2。a.共享池:查看共享SQL区的使用率: Sql代码  select(sum(pins-reloads))/sum(pins) "Library cache"...
查看Oracle数据库表空间大小(空闲、已使用),是否要增加表空间的数据文件查看Oracle数据库表空间大小(空闲、已使用),是否要增加表空间的数据文件 1、查看表空间已经使用的百分比Sql代码   select a.tablespace_name,a.bytes/1024/1024 "Sum MB",(a.bytes-b.bytes)/1024/1024 "used MB",b.bytes/1024/1024 "free MB",round(((a.bytes-b.bytes)/a.bytes)*100,2) "percent_used" from (select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name) a, (select tablespace_name,sum(bytes) bytes,max(bytes) largest from dba_free_space group by tablespace_name) b where a.tablespace_name=b.tablespace_name order by ((a.bytes-b.bytes)/a.bytes) desc    “Sum MB”表示表空间所有的数据文件总共在操作系统占用磁盘空间的大小 比如:test表空间有2个数据文件,datafile1为300MB,datafile2为400MB,那么test表空间的“Sum MB”就是700MB“userd MB”表示表空间已经使用了多少“free MB”表示表空间剩余多少“percent_...
 
0

Oracle锁表处理

发表者:admin分类:数据库2015-07-14 11:07:41 阅读[1910]
Oracle锁表处理最近系统连续出现好几次锁表,昨晚又发生一次锁表,11点钟跑到客户现场,进过跟踪发现导致这次锁表的机器和上一次是同一台,花了近半小时解锁。之后到科室找到那台机器看看情况,发现那台机器速度超慢,保存一份病历需要几十秒钟,原因应该就在这里了。分析原因:保存病历时发生超时,Nhibernate在发生超时时事务需要进行回滚,但是回滚的时候也发生了异常,没有回滚成功,导致了锁表。处理方法:a、先解决该机器速度慢的问题,配置太差的机器要求医院进行硬件升级;b、验证事务回滚的时候是否有可能发生回滚异常。先贴出现场处理死锁的步骤。另外:有时候通过PL/SQL执行kill session可能仍然无法解锁,此时需要登陆到Oracle服务器将进程kill掉才行。1、生成Kill Session语句select 'alter system kill session ''' || SID ||',' || SERIAL# || ''';' from(select distinct a.sid, a.Serial#, status, machine, LOCKWAIT, logon_time  from v$session a, v$locked_object b where (a.status = 'ACTIVE' or a.status = 'INACTIVE')   and a.sid = b.session_id   and b.ORACLE_USERNAME='XYHISTEST'--加上用户名是避免把其他系统...
 
0
oracle 10g 设置sga和pga大小本文介绍了oracle 10g 安装完成后,设置sga和pga大小的过程。1、登录数据库。sqlplus /nologconn sys/system@orcl as sysdba;2、设置sga和pga的大小。alter system set sga_max_size=2048m scope=spfile;alter system set sga_target=2048m scope=spfile;alter system set pga_aggregate_target=512m scope=spfile;3、关闭数据库、退出。shutdown immediate;exit;4、启动、加载、打开数据库。sqlplus / as sysdbastartup mount;alter database open;5、查看生效的sql语句。show parameter sga_max_size;show parameter sga_target;show parameter pga_aggregate_target;
Raw Devices on Oracle Linux and Red Hat Enterprise LinuxVerify that an appropriate raw devices utility (util-linux) rpm is installed for the update of the operating systems. For example, on Oracle Linux 4 and Red Hat Enterprise Linux 4 (update 5), util-linux-2.12a-16.EL4.23.x86_64 or later rpm should be installed. On Oracle Linux 5 and Red Hat Enterprise Linux 5, util-linux-2.13-0.44.EL5.x86_64 or later rpm should be installed.When you restart an Oracle Linux 4, Oracle Linux 5, Red Hat Enterprise Linux 4, or Red Hat Enterprise Linux 5 system, raw devices revert to their original owners and permissions by default. If you are using raw devices with this operating system for your Oracle files, for example, for ASM storage or Oracle Clusterware files, you need to override this default behavior. To do this, add an entry to the /etc/rc.d/rc.local file for each raw device containing the chmod and chown commands required to reset them to the required values.As an example, here are sample ent...
ORA-32004: 指定了废弃/过时的参数问题:SQL> conn sys/sys as sysdba;已连接。SQL> startupORA-32004: 指定了废弃/过时的参数ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它SQL> shutdown immeidate;SP2-0717: 非法的 SHUTDOWN 选项SQL> shutdown;数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL> startupORA-32004: obsolete and/or deprecated parameter(s) specifiedORACLE 例程已经启动。解决:使用语句:SQL> ALTER SYSTEM RESET log_archive_startSCOPE=SPFILE SID='*';例子:SQL> startupORA-32004: obsolete and/or deprecated parameter(s) specifiedORACLE 例程已经启动。Total System Global Area  293601280 bytesFixedSize                 1290208 bytesVariableSize            260046880 bytesDatabaseBuffers          25165824 bytesRedoBuffers       &...
drop user和drop user cascade的区别  oracle数据库中删除用户有两种命令,一种是 drop user xxx;另外一个种是drop user xxx cascade;2.官方的说明如下:Dropping a Database User: Example If user Sidney's schema contains no objects, then you can drop sidney by issuing the statement:DROP USER sidney; If Sidney's schema contains objects, then you must use the CASCADE clause to drop sidney and the objects:DROP USER sidney CASCADE; 大概就是说drop user xxx必须是这个用户下面没有任何对象;这样才可以使用这个命令,否则就会报错;如果用户下面有对象,就得用drop user xxx cascade来删除这个用户以及这个用户下的所有对象了;3.测试实验;环境:我的DELL笔记本电脑,系统是XP,oracle10g 32位脚本如下:C:\Documents and Settings\Administrator>sqlplus /nologSQL*Plus: Release 10.2.0.1.0 - Production on 星期一 12月 26 22:46:12 2011Copyright (c) 1982, 2005, Oracle.  All rights reserved.SQL> conn / as sysdba;已连接。SQL> show user;USER 为 "SYS"SQL> create user mary identif...
ORA-01940: cannot drop a user that is currently connecte  当我们删除某个用户与用户所有对象时,如果用户正当前有连接数据库,则会报错:SQL> conn /as sysdbaConnected.SQL> drop user fc cascade;drop user fc cascade*ERROR at line 1:ORA-01940: cannot drop a user that is currently connected.   通过v$session视图查出要删除的用户当前session信息,然后kill掉该用户session连接:SQL> select sid,serial# from v$session where username='FC';      SID   SERIAL#---------- ----------      150      9019SQL> alter system kill session '150,9019';System altered.    再执行dropuser操作便可成功:SQL>  drop user fc cascade;User dropped.
    总共51页,当前第32页 | 页数:
  1. 22
  2. 23
  3. 24
  4. 25
  5. 26
  6. 27
  7. 28
  8. 29
  9. 30
  10. 31
  11. 32
  12. 33
  13. 34
  14. 35
  15. 36
  16. 37
  17. 38
  18. 39
  19. 40
  20. 41
  21. 42