# 端口代理

设置代理端口详细操作:

  • 列出所有的端口转发记录 netsh interface portproxy show all

  • 通过代理服务器和代理端口,替代目标服务器和目标端口 netsh interface portproxy add v4tov4 listenaddress="代理服务器" listenport=代理端口 connectaddress="目标服务器" connectport=目标端口

  • 取消代理服务器的代理端口 netsh interface portproxy delete v4tov4 listenaddress="代理服务器" listenport=代理端口


# Oracle查锁表以及解锁

  • 使用如下语句可以查出锁表的具体原因,这个语句将查找到数据库中所有的DML语句产生的锁,还可以发现,任何DML语句其实产生了两个锁,一个是表锁,一个是行锁。

    SELECT S.SID, S.SERIAL#, S.USERNAME,S.SCHEMANAME,S.OSUSER,S.PROCESS,
           S.MACHINE,S.TERMINAL,S.LOGON_TIME,L.TYPE
    FROM V$SESSION S, V$LOCK L
    WHERE S.SID = L.SIDAND S.USERNAME IS NOT NULL
    ORDER BY SID;
    
    1
    2
    3
    4
    5
  • 杀掉进程sid,serial#,这两个内容可以利用"v$locked_obiect"和"v$session"两个数据字典查询得到

    ALTER SYSTEM KILL SESSION'210,11562';
    
    1

引用:https://www.cnblogs.com/chinas/p/8253451.html

# Oracle恢复删除的数据

分为两种方法:scn和时间戳两种方式恢复

  1. 通过scn恢复删除且已经提交的数据

    • 获得当前数据库的scn号
      select current_scn from v$database; (切换到sys用户或system用户查询)
    
      查询到的scn号为:1499223
    
    1
    2
    3
    • 查询当前scn号之前的scn
      select * from 表名 as of scn 1499220; 
    
      (确定删除的数据是否存在,如果存在,则恢复数据;如果不是,则继续缩小scn号)
    
    1
    2
    3
    • 恢复删除且已提交的数据
      flashback table 表名 to scn 1499220;
    
    1
  2. 通过时间恢复删除且已提交的数据

    • 查询当前系统时间
      select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
    
    1
    • 查询删除数据的时间点的数据
      select * from 表名 as of timestamp to_timestamp('2013-05-29 15:29:00','yyyy-mm-dd hh24:mi:ss');
    
    1
    • 恢复删除且已提交的数据
      lashback table 表名 to timestamp to_timestamp('2013-05-29 15:29:00','yyyy-mm-dd hh24:mi:ss');
    
      注意:如果在执行上面的语句,出现错误。可以尝试执行 alter table 表名 enable row movement; //允许更改时间戳
    
    1
    2
    3

引用:https://www.cnblogs.com/kangxuebin/archive/2013/05/29/3106183.html
Last Updated: 11/11/2020, 11:10:23 AM