无工具情况下Oracle应急诊断思路(二)
二、锁表(Lock)导致的系统无响应或慢 在多用户能够后台登录进行维护的系统中,经常会发生某些表被锁定而直接影响业务的情况,在这样的情况下我们可以将v$session结合v$locked_object和v$lock视图,如下为简单的查找语句: select lo.oracle_username, lo.object_id, s.sid, s.serial#, s.seconds_in_wait from v$locked_object lo, v$session s where lo.session_id = s.sid order by seconds_in_wait 也可以通过以上的OBJECTID和USER_OBJE
无工具情况下Oracle应急诊断思路(一)
一、发现哪些session导致瓶颈或等在什么event上 在Oracle10g上,通过v$session视图就能找到瓶颈session,而Oracle9i中,除了v$session 还需要查询v$session_wait视图,具体如下: 在oracle 9iselect event, count(*) sessions from v$session_waitwhere state='WAITING'and Event not like '%SQL*Net%'and USERNAME is not nullgroup by eventorder by 2 desc; select SW.Sid, S.Username, SW.Event, SW.Wait_Time,SW.State, SW.Seconds_In_Wait SEC_IN_WAITfrom V$SESSION S, V$SESSION_WAIT SWwhere S.Username is not nulland SW.Sid =
没有备份的数据文件恢复(五)
环境:某个数据文件因操作系统错误删除原因被删除而且无任何备份,数据库运行在归档模式下,该数据文件创建时间晚于于控制文件创建时间。 [oracle@dbserv ~]$ sqlplus / as sysdba SQL> create tablespace test datafile '/opt/oracle/oradata/test/test01.dbf' size 100M; Tablespace created. SQL> create table ttt tablespace test as select * from dba_users; Table created. SQL> select count(*) from ttt; COUNT(*) ---------- 8 SQL> insert into
某个数据文件损坏完全恢复(三)
三、环境:某个数据文件损坏,有rman备份,具体恢复过程如下: 在这种恢复方式中,数据库处于OPEN状态,适合除了system和undo以外的普通数据文件的恢复。 [oracle@dbserv ~]$ export ORACLE_SID=test [oracle@dbserv ~]$ sqlplus / as sysdba SQL> select count(*) from tt; COUNT(*) ---------- 56 SQL> insert into tt select * from dba_users; 8 rows created. SQL> / 8 rows created. SQL> commit; Commit complete.[
Oracle10g RAC下启用归档模式
环境:两个节点的Oracle10g RAC 环境,数据库创建在独立的磁盘阵列上的裸设备上,数据库在非归档模式中,现在需要改为归档模式,具体步骤如下: 在节点1: -bash-3.2$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.5.0 - Production on Wed Jun 20 21:26:57 2012 Copyright (c) 1982, 2010, Oracle. All Rights Reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production With the Partitioning, Real Application Clusters, OLAP, Data Mining
Oracle基本视图总结
当我们基本熟悉了Oracle体系架构后,可能需要将这些信息从数据库字典中查出来看以便诊断和分析。如下是根据Oracle 的体系架构整理出来基本视图分类列表: 一、数据库和实例信息 select * from gV$INSTANCE select * from V$DATABASE select * from V$version select * from V$option --select s.NAME,s.BYTES/1024/1024 bytesM, s.RESIZEABLE from v$sgainfo s select * from v$sgainfo[@more@]二、物理结构相关的信息 select * from v$parameter p where p.ISDEFAULT='FALSE' select * fro
Oracle10g在Linux4.7_32位上的安装
一、修改操作系统文件 1、配置主机名: [root@x3a-test ~]# hostname x3a-test [root@x3a-test ~]# hostname x3a-test [root@x3a-test ~]# vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=x3a-test 2、修改 /etc/hosts文件 [root@x3a-test cdrom]# vi /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost 192.168.2.6 x3a-test[@more@]3、修改
Oracle控制文件相关的其他(五)
DBID的确定 控制文件的备份恢复中,我们经常需要DBID,如下为常用的查询方法: 方法1、在数据库mount或open状态下: [oracle@dbserv ~]$ sqlplus / as sysdba Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options SQL> select dbid,name from v$database; DBID NAME ---------- --------- 2083742440 TEST[@more@]方法2、在数据库mount或open状态下: [oracle@dbserv ~]$ rman target
控制文件的恢复方法(四)
控制文件的通常恢复方法有: 1、从控制文件自动或二进制备份中恢复 2、从控制文件快照备份中恢复 3、控制文件trace文件备份中恢复 4、Oracle自动生成的控制文件脚本恢复 如下对相关的步骤及语法进行介绍: 4、Oracle自动生成的控制文件脚本恢复 在搭建Oracle Data Guard环境时,primary在SWITCHOVER TO PHYSICAL STANDBY时会自动在udump目录中产生一份trace,其中有重新创建控制文件的脚本。 如果单节点的(不是RAC)的灾备系统则,关闭备库后,按前面介绍的方法恢复即可;[@more@]如果主库为RAC环
控制文件的恢复方法(三)
控制文件的通常恢复方法有: 1、从控制文件自动或二进制备份中恢复 2、从控制文件快照备份中恢复 3、控制文件trace文件备份中恢复 4、Oracle自动生成的控制文件脚本恢复 如下对相关的步骤及语法进行介绍: 3、控制文件trace文件备份中恢复 对数据库进行一些改动并备份控制文件的trace备份: SQL> insert into t select * from dba_users; 8 rows created. SQL> alter database backup controlfile to trace as '/opt/oracle/backups/control.txt'; Database altered. SQL> insert
控制文件的恢复方法(二)
控制文件的通常恢复方法有: 1、从控制文件自动或二进制备份中恢复 2、从控制文件快照备份中恢复 3、控制文件trace文件备份中恢复 4、Oracle自动生成的控制文件脚本恢复 如下对相关的步骤及语法进行介绍: 2、从控制文件快照备份中恢复 对数据库进行一些改动: SQL> insert into t select * from dba_users; 8 rows created. SQL> alter system switch logfile; System altered. SQL> exit[@more@]将控制文件通过OS的mv 或rm命令进行移动或删除; [oracle@dbserv test]$ mv c
控制文件的恢复方法(一)
控制文件的通常恢复方法有: 1、从控制文件自动或二进制备份中恢复 2、从控制文件快照备份中恢复 3、控制文件trace文件备份中恢复 4、Oracle自动生成的控制文件脚本恢复 如下对相关的步骤及语法进行介绍: 1、从控制文件自动备份中恢复 对数据库进行一些改动: SQL> create table t as select * from dba_users; Table created. SQL> alter system switch logfile; System altered. SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance s
参数文件的恢复方法
[oracle@dbserv ~]$ rman target / Recovery Manager: Release 10.2.0.1.0 - Production on Tue Jun 12 01:51:22 2012 Copyright (c) 1982, 2005, Oracle. All rights reserved. connected to target database: TEST (DBID=2083742440) RMAN> restore spfile to '/tmp/spfiletest.ora' from autobackup; Starting restore at 12-JUN-12 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=157 devtype=DISK
Oracle10g在Linux下sqlplus无响应
环境:Linux AS 4.7 32位 + Oracle10g 10.2.0.1.0 今天某个平台上的Oracle数据库的sqlplus无响应,数据库挂起,敲入sqlplus / as sysdba命令后数据库无响应。网上查看资料得知是oracle的bug引起的。 应急处理方法就是服务器的重启,如果要彻底解决,则可以升级数据版本或给数据库打补丁,补丁号为patch 4612267。如下为在打该补丁安装过程; 参考文档: Doc ID: 338461.1 SQL*Plus 10.2.0.1 Hangs, When System Uptime Is Long Period of Time Doc ID: 4612267.8 Bug 4612267 - OCI client spins when machin
RMAN备份失败ORA-15041
今天发现Oracle备份空间使用比例比平时高得多,查看备份日志发现如下: piece handle=+FRADG/test/backupset/data_test_20120609_1303_5 tag=TAG20120609T050443 comment=NONE channel d2: starting piece 6 at 09-JUN-12 RMAN-03009: failure of backup command on d2 channel at 06/09/2012 05:50:22 ORA-19510: failed to set size of 2361610 blocks for file "+FRADG/test/backupset/data_test_20120609_1303_6" (blocksize=8192) ORA-17505: ksfdrsz:1 Failed to resize file to size 2361610
Rman全备份过程的观察
[oracle@testserv~]$ rman target / Recovery Manager: Release 10.2.0.1.0 - Production on Sun Jun 10 16:05:00 2012 Copyright (c) 1982, 2005, Oracle. All rights reserved. connected to target database: TEST (DBID=2083742440) RMAN> run { 2> backup full tag 'testdb' database 3> include current controlfile format '/opt/backup/full/testfull_%d_%T_%s' 4> plus archivelog format '/opt/backup/full/testarch_%d_%T_%s' 5> delete all input; 6> }[@more
Oracle 归档和非归档模式之间的切换
Oracle 数据运行模式有 归档和非归档模式两种,数据库安装后的默认情况及相互切换方法如下: 1、在Linux4.7+Oracle10g环境:当数据库创建时,如果没有选择flash_recovery_area并不启用归档操作,则模式设置如下: SQL> archive log list; Database log mode No Archive Mode Automatic archival Disabled Archive destination /opt/oracle/product/10.2.0/dbs/arch Oldest online log sequence 15 Current log sequence 17 SQL> [@mor
ORA-00600: internal error code, arguments: [kspsetpao1], [462], [415], [*]
C:>sqlplus / as sysdbaSQL*Plus: Release 10.2.0.3.0 - Production on 星期二 5月 22 10:18:15 2012Copyright (c) 1982, 2006, Oracle. All Rights Reserved.已连接到空闲例程。SQL> create spfile from pfile;create spfile from pfile*第 1 行出现错误:ORA-00600: internal error code, arguments: [kspsetpao1], [462], [415], [*],[user_dump_dest], [27], [], [][@more@] SQL> create spfile from pfile;create spfile from pfile*第 1 行出现错误:ORA-00600: internal error code, arguments: [kspsetpao1], [462
RMAN duplicate On Windows7
数据库版本:Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 操作系统:win7 ORACLE_BASE=D:ORACLEORACLE_HOME=D:oracleproduct10.2.0db10g 前提:Oracle 10g软件已经安装完毕,已经具备一个主库;1、设置环境变量C:>set oracle_sid=dupdb2、建立目录mkdir D:oracleadmindupdbadumpmkdir D:oracleadmindupdbcdumpmkdir D:oracleadmindupdbbdumpmkdir D:oracleadmindupdbudump3、在windows 通过oradim创建Oracle实例C:>oradim -new -sid dupdb实例已创建。[@more@] 3、创建密码文件C:>o
windows上的ORA-12560错误
在测试机上安装Oracle,长时间不登陆,后来偶尔登录会发现如下问题情况,这并不是我们忘了密码或系统没有密码文件文件。很有可能我们没有配置环境变量:set ORACLE_SID=<你的SID>C:UsersAdministrator>sqlplus / as sysdbaSQL*Plus: Release 10.2.0.3.0 - Production on 星期一 5月 21 19:21:29 2012Copyright (c) 1982, 2006, Oracle. All Rights Reserved.ERROR:ORA-12560: TNS: 协议适配器错误请输入用户名: system输入口令:ERROR:ORA-12560: TNS: 协议适配器错误[@more@] 请输入用户名: system输入口令:ERROR:ORA-