本站用于记录日常工作内容,虚拟化云计算,系统运维,数据库DBA,网络与安全。
 
0

Oracle锁表处理

发表者:admin分类:数据库2015-07-14 11:07:41 阅读[2245]
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.
一个用户可以使用一个或多个表空间,一个表空间也可以供多个用户使用。用户和表空间没有隶属关系,表空是一个用来管理数据存储逻辑概念, 表空间只是和数据文件发生关系,数据文件是物理的,一个表空间可以包含多个数据文件,而一个数据文件只能隶属一个表空间。 1:既然一个用户可以指定多个表空间权限,那个这个user1创建了一个table1,这个table1被存放到哪个表空间去了? 2:这个table1是不是只可以存在在一个表空间里?你仔细看看建用户的脚本 create user uname identified by "" default tablespace TS_TAB_001 temporary tablespace TEMP profile DEFAULT quota unlimited on ts_tab_001 quota unlimited on ts_tab_002; -- Grant/Revoke role privileges grant connect to uname; grant resource to uname; 下面一句是指定了默认表空间: default tablespace TS_TAB_001 这两句是赋予用户可以管理这两个表空间: quota unlimited on ts_tab_001 quota unlimited on ts_tab_002 如果我们的建表的语句如下,则表建在了默认表空间中也就是ts_tab_001中 create table TEST ( ID NUMBER not null, NAME V...
本博客 ,新加了 ’数据库DBA ‘ 的分类。之前添加的博客文章与oracle ,mysql ,mssql 等相关数据库的文章标题。都要转到此目录下。查看mysql 数据库,要更新cat_id 数据。解决方法:UPDATE `blog_blog` SET cat_id =14 WHERE `title` LIKE '%mssql%'UPDATE `blog_blog` SET cat_id =14 WHERE `title` LIKE '%mysql%'UPDATE `blog_blog` SET cat_id =14 WHERE `title` LIKE '%oracle%'执行完sql ,到网站查的文章已经归到对应分类目录中。
LINUX下使用脚本直接执行SQLPLUS命令 #!/bin/bashsu - oracle -c "sqlplus -s / as sysdba <<EOFselect * from tab;exitEOF" >> 111.txt  2>&1测试:在oracle用户下sqlplus -s scott/tiger@oracle <<EOFSELECT TABLESPACE_NAME,TABLESPACE_SIZE/1024/1024/1024 as "TABLESPACE_SIZE(G)",ALLOCATED_SPACE/1024/1024/1024  as "ALLOCATED_SPACE (G)",FREE_SPACE/1024/1024/1024 as "FREE_SPACE(G)" from DBA_TEMP_FREE_SPACEexitEOF>>  /home/oracle/TEMP_FREE_SPACE_CHECK.txt
  Linux服务器下Mysql自动备份脚本的使用方法 在Linux系统搭建了mysql服务,用户可以使用如下脚本实现mysql的定期备份。使用方法如下:1. 将以下脚本拷贝到本地,上传到服务器上,名称叫“autoback.sh”。#!/bin/bash#-----------------------------------------------##This is a  free GNU GPL version 3.0 or abover#Copyright (C) 2008 06 05#mysql_backup Dedicated copyright by My#-----------------------------------------------#echo -e [`date +"%Y-%m-%d %H:%M:%S"`] start#system timetime=`date +"%y-%m-%d"`#host IPhost="127.0.0.1"#database backup useruser="root"#database passwordpasswd="yourpasswd"#Create a backup directorymkdir -p /backup/db/"$time"#list database nameall_database=`/usr/bin/mysql -u$user -p$passwd -Bse 'show databases'`#in the table from the database backupfor i in $all_databasedo/usr/bin/mysqldump -u$user -p$passwd $i > /backup/db/"$time"/"$i"_"$time".sqldoneecho -e ...
    总共51页,当前第33页 | 页数:
  1. 23
  2. 24
  3. 25
  4. 26
  5. 27
  6. 28
  7. 29
  8. 30
  9. 31
  10. 32
  11. 33
  12. 34
  13. 35
  14. 36
  15. 37
  16. 38
  17. 39
  18. 40
  19. 41
  20. 42
  21. 43