扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
当Oracle系统hang住 ,无法使用一切方法登录时 (包括 sqlplus -prelim / as sysdba),我们可以使用gdb调试工具来对 Oracle做系统 dump ,通过 系统 dump信息 判断 具体hang的原因 。 若直接 将 进程 kill 掉,则将失去现场 无法帮助今后避免 这样的hang情况。
创新互联公司专注于企业营销型网站、网站重做改版、郓城网站定制设计、自适应品牌网站建设、H5场景定制、商城网站建设、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为郓城等各大城市提供网站开发制作服务。
要使用gdb 外部工具, 就需要知道目前实例中后台进程的进程号。
我们一般通过 以下命令列出 Oracle 进程:ps -ef|grep SID
[oracle@rh2 ~]$ ps -ef|grep oraclewebmoney
oracle 16996 16995 0 21:55 ? 00:00:00 oraclewebmoney (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
然后启动gdb ,指定Oracle软件中二进制文件 oracle的位置和 进程id
[oracle@rh2 udump]$ gdb $ORACLE_HOME/bin/oracle 16996
GNU gdb Red Hat Linux (6.3.0.0-1.159.el4rh)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type “show copying” to see the conditions.
There is absolutely no warranty for GDB. Type “show warranty” for details.
This GDB was configured as “x86_64-redhat-linux-gnu”…
(no debugging symbols found)
Using host libthread_db library “/lib64/tls/libthread_db.so.1″.
Attaching to program: /u01/oracle/product/10.2.0/db_1/bin/oracle, process 14594
可以热备份:\x0d\x0aSQL alter database begin backup\x0d\x0a然后退出SQL,将Oracle软件和数据文件直接拷贝\x0d\x0a等都拷贝完了,再进sqlplus 执行:\x0d\x0aSQLalter database end backup\x0d\x0a然后将begin时刻到end时刻产生的归档也拷贝出来,\x0d\x0a这就完成了全备\x0d\x0a\x0d\x0a如果你要在oracle下备份整个数据库:可以用expdp方便的进行\x0d\x0aexpdp sys/XXX dumpfile=XXXX.dmp directory=XXXX\x0d\x0a其中directory是在oracle下建立的文件夹对象名\x0d\x0a假如你没建立过\x0d\x0a那么首先执行create directory dpdata1 as 'd:\test\dump';\x0d\x0a然后把expdp这样写directory=dpdata1
实际应用:
例:shutdown immdiate关闭数据库,然后在mount状态转储获得控制文件内容:
1、
SQLshutdown immediate;
SQLstarup mount;
SQLalter session set events 'immediate trace name CONTROLF level 12';
2、get trc name:
SELECT a.VALUE
|| b.symbol
|| c.instance_name
|| '_ora_'
|| d.spid
|| '.trc' trace_file
FROM (SELECT VALUE
FROM v$parameter
WHERE NAME = 'user_dump_dest') a,
(SELECT SUBSTR (VALUE, -6, 1) symbol
FROM v$parameter
WHERE NAME = 'user_dump_dest') b,
(SELECT instance_name
FROM v$instance) c,
(SELECT spid
FROM v$session s, v$process p, v$mystat m
WHERE s.paddr = p.addr AND s.SID = m.SID AND m.statistic# = 0) d
/
、导入
imp username/passwd@orcl file=D:\oracle\oradata\bak.dmp full=y ignore=y
2、导出
exp username/passwd@orcl file=D:\oracle\oradata\bak.dmp full=y
3、ip导出方式:
exp username/passwd@ip:1521/orcl file=D:\oracle\oradata\bak.dmpfull=y
注:D:\oracle\oradata\bak.dmp写你的文件存放路径
1、DUMP出控制文件
alter system (session) set events 'immediate trace name controlf level 10'
2、DUMP出日志文件分析
alter system dump logfile logfilename;
3、DUMP出日志文件头分析
alter session set events 'immediate trace name REDOHDR level 10'
4、DUMP出LIBRARY CACHE
转载,仅供参考。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流