ORA-29273: HTTP 请求失败 与 ORA-01652 无法通过128 扩展temp段

ORA-29273: HTTP 请求失败

解决方法,创建ACL

BEGIN
  DBMS_NETWORK_ACL_ADMIN.create_acl (
    acl          => 'open_acl_file.xml', 
    description  => 'Open ACL File',
    principal    => '用ACL的用户',
    is_grant     => TRUE, 
    privilege    => 'connect',
    start_date   => SYSTIMESTAMP,
    end_date     => NULL);
 
  DBMS_NETWORK_ACL_ADMIN.assign_acl (
    acl         => 'open_acl_file.xml',
    host        => '*',     --所有host,权限比较高
    lower_port  => 1,    --端口号从1-9999
    upper_port  => 9999); 
 
  COMMIT;
END;

 如果需要指定网址

host=> ' http://www.baidu.com ',

 ORA-01652 无法通过128 扩展temp段

此错误信息很明显提示,temp表被挤爆无法扩展。

可以设置temp临时表无限扩大,因为临时表只是作为一个临时存放表。会有一个伸缩功能,无限扩展一定可以解决这个问题。但是,不排除出现撑破磁盘,导致数据库宕机的情况。并且数据库中单个数据文件最大只能自增到32G,所以不太推荐。不过适量的扩充可以有效的解决这个问题。

 

另外一个方法就是优化SQL语句了

根据错误信息,可以查找哪段SQL运行的时候出现了错误。 

select temp,
current_users,
total_blocks,
used_blocks,
free_blocks
from v$sort_segment;

查看temp表占用情况。

排查思路提出来,但是没有说明具体如何优化。原因比较简单,每个人遇到的情况可能不一样。需要优化的语句也是不一样的。

提供以下几种优化方法,可以参考借阅:

1.select语句中不适用“*”

2.truncate代替delete

3.减少表的查询次数和在保证完整性的情况下commit

4.用【NOT】EXISTS替换【NOT】IN

5.合理的添加索引和使用优化器

你可能感兴趣的:(DBA_Oracle)