oracle死锁解锁和恢复删除的表、视图、存储过程、删除归档文件等

[b]1、oracle死锁解锁[/b]
在oracle中经常出现死锁的情况,导致查询语句一直处于查询状态却没数据出来,视图、存储过程无法正常编译。可执行如下语句查看死锁ID
select
lpad('',decode(l.XIDUSN,0,3,0))||l.ORACLE_USERNAME username,o.owner,o.object_name,o.object_type,s.SID,s.SERIAL#
from
v$locked_object l, dba_objects o,v$session s
where
l.OBJECT_ID = o.object_id and l.SESSION_ID = s.SID;
解锁:
alter system kill session 'sid,serial#';
sid,serial#在查看死锁语句中可找到。

[b]2、恢复删除、或修改后之前的表、视图、存储过程等[/b]
(1)、查找dba_source表
select * from dba_source;
只针对delete、update、create等操作。
(2)、导入归档文件(前提是有归档文件,需要开启归档功能才可进行归档)

A:命令窗口(如果内容过长,将有部分内容看不到)
SQL> exec sys.dbms_logmnr.add_logfile(logfilename=>'文件路径');
SQL> exec sys.dbms_logmnr.start_logmnr(options=>sys.dbms_logmnr.DICT_FROM_ONLINE_CATALOG);
SQL> select * from v$logmnr_contents;

B:SQL窗口
begin
sys.dbms_logmnr.add_logfile(logfilename=>'文件路径');
end;
begin
exec sys.dbms_logmnr.start_logmnr(options=>sys.dbms_logmnr.DICT_FROM_ONLINE_CATALOG);
end;
select * from v$logmnr_contents;

如果开启了归档功能,那么归档的文件存放在flash_recovery_area文件夹,这个文件夹的大小是限定的,不会自动增长,如果容量已满,会出错,提示“日志无法恢复”等信息,这时就要对归档文件夹进行清理或增加容量

[b]3、删除归档文件[/b]
A、设置变量
export NLS_DATE_FORMAT=Mon DD YYYY HH24:MI:SS
export NLS_LANG=american
B、进入命令环境CMD
直接输入
rman target sys/密码@数据库服务名
在rman命令窗口中输入以下命令
①crosscheck archivelog all;
②delete expired archivelog all;
或者删除指定时间之前的文件(7天前)
①delete archivelog all completed before 'sysdate-7';

[b]4、增加归档文件夹的容量[/b]
进入命令环境CMD
set oracle_sid=数据库服务名称
sqlplus /nolog
connect /as sysdba
show parameter db_recovery_file_dest;--查看容量
alert system set db_recovery_file_dest_size=20G--设置容量
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值