标签云
asm 恢复 asm恢复 bbed bootstrap$ dul In Memory kcbzib_kcrsds_1 kccpb_sanity_check_2 kfed MySQL恢复 ORA-00312 ORA-00607 ORA-00704 ORA-01110 ORA-01555 ORA-01578 ORA-08103 ORA-600 2662 ORA-600 2663 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 ORACLE恢复 Oracle 恢复 ORACLE数据库恢复 oracle 比特币 OSD-04016 YOUR FILES ARE ENCRYPTED 勒索恢复 比特币加密文章分类
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (100)
- 数据库 (1,587)
- DB2 (22)
- MySQL (70)
- Oracle (1,457)
- Data Guard (49)
- EXADATA (7)
- GoldenGate (21)
- ORA-xxxxx (158)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (13)
- ORACLE 21C (3)
- Oracle ASM (65)
- Oracle Bug (7)
- Oracle RAC (47)
- Oracle 安全 (6)
- Oracle 开发 (27)
- Oracle 监听 (27)
- Oracle备份恢复 (525)
- Oracle安装升级 (83)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (75)
- PostgreSQL (13)
- PostgreSQL恢复 (3)
- SQL Server (27)
- SQL Server恢复 (8)
- TimesTen (7)
- 达梦数据库 (2)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (36)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (19)
-
最近发表
- ORA-600 2662快速恢复之Patch scn工具
- TNS-12518: TNS:listener could not hand off client connection
- ora.storage无法启动报ORA-12514故障处理
- 断电引起文件scn异常数据库恢复
- ORA-16188: LOG_ARCHIVE_CONFIG settings inconsistent with previously started instance
- .[hudsonL@cock.li].mkp勒索加密数据库完美恢复
- 模拟带库实现rman远程备份
- 又一例:ORA-600 kclchkblk_4和2662故障
- Oracle误删除数据文件恢复
- Oracle 19C 备库DML重定向—DML Redirection
- ORA-01595/ORA-600 4194处理
- 从ORA-00283 ORA-16433报错开始恢复
- 近期又遇到ORA-600 16703和ORA-702故障
- RECOVER_YOUR_DATA勒索恢复
- ORA-01033: ORACLE initialization or shutdown in progress 故障处理
- Oracle 19c/21c最新patch信息-202401
- 存储故障,强制拉库报ORA-600 kcbzib_kcrsds_1处理
- ORA-600 kcrf_resilver_log_1故障处理
- ORA-00600: internal error code, arguments: [4193], [35191], [35263]
- mysql数据库被黑恢复—应用层面delete删除
分类目录归档:Oracle 开发
触发器找出密码错误应用
经常会遇到修改oracle业务用户密码之后,由于部分应用密码没有被正确修改(忘记修改,或者修改错误了),导致数据库被hang或者用户被锁的情况,对于这样的情况,通过一个logon触发器可以快速找到
create or replace trigger logon_denied_to_alert after servererror on database declare message varchar2(120); IP varchar2(15); v_os_user varchar2(80); v_module varchar2(50); v_action varchar2(50); v_pid varchar2(10); v_sid number; v_username varchar2(50); v_suser varchar2(50); begin IF (ora_is_servererror(1017)) THEN if sys_context('userenv', 'network_protocol') = 'tcp' then IP := sys_context('userenv', 'ip_address'); else select distinct sid into v_sid from sys.v_$mystat; SELECT p.SPID into v_pid FROM V$PROCESS p, V$SESSION v WHERE p.ADDR = v.PADDR AND v.sid = v_sid; end if; v_os_user := sys_context('userenv', 'os_user'); v_username := sys_context('userenv', 'CURRENT_USER'); v_suser := SYS_CONTEXT('USERENV','SESSION_USER'); dbms_application_info.READ_MODULE(v_module, v_action); message := to_char(sysdate, 'Dy Mon dd HH24:MI:SS YYYY') || ' logon denied from '||v_username||' '||v_suser||' '|| nvl(IP, v_pid) || ' ' || v_os_user || ' with ' || v_module || ' ' || v_action; sys.dbms_system.ksdwrt(2, message); end if; end; /
测试
SQL> create user test identified by oracle; User created. SQL> grant dba to test; Grant succeeded.
直接本地登录
SQL> conn test/test ERROR: ORA-01017: invalid username/password; logon denied Warning: You are no longer connected to ORACLE. ---alert日志记录 Wed Nov 01 23:15:04 2023 logon denied from SYS 12886 oracle with sqlplus@iZbp1hx0enix3hix1kvyrxZ (TNS V1-V3)
通过tns登录
SQL> conn test/oracl1@172.27.54.81:1522/orcl ERROR: ORA-01017: invalid username/password; logon denied Warning: You are no longer connected to ORACLE. ---alert日志报错 Wed Nov 01 23:31:51 2023 logon denied from SYS 172.27.54.81 oracle with sqlplus@iZbp1hx0enix3hix1kvyrxZ (TNS V1-V3)
plsql 插入blob
plsql 插入blob
SQL> create bigfile tablespace t_xifenfei datafile 'e:/oradata/orcl/t_blob.dbf' size 128M autoextend on; 表空间已创建。 SQL> create table u0425.t_blob(a int, b varchar(10), c blob) tablespace t_xifenfei ; 表已创建。 SQL> create or replace directory expdp_dir as 'e:/'; 目录已创建。 SQL> declare 2 b_file bfile; 3 b_lob blob; 4 begin 5 insert into u0425.t_blob(a,b,c) values(1,'xifenfei', empty_blob()) return c into b_lob; 6 b_file:=bfilename('EXPDP_DIR','0430.DMP'); 7 dbms_lob.open(b_file,dbms_lob.file_readonly); 8 dbms_lob.loadfromfile(b_lob,b_file,dbms_lob.getlength(b_file)); 9 dbms_lob.close(b_file); 10 commit; 11 end; 12 / PL/SQL 过程已成功完成。 SQL> select * from u0425.t_blob where rownum<2; A B ---------- ---------- C -------------------------------------------------------------------------------- 1 xifenfei 0301914E3B98006780BC00019FC70146A1A3633DBC4B089DCF3DFCD951D559000000010000100003 6907E6041E0D3037000000020200000077D10000000000FA1A880022535953222E225359535F4558 SQL> select a,b,dbms_lob.getlength(c) from u0425.t_blob where rownum<2; A B DBMS_LOB.GETLENGTH(C) ---------- ---------- --------------------- 1 xifenfei 142024704
发表在 Oracle 开发
评论关闭
ORACEL坏查询对象批量脚本
查询坏块
SQL> set lines 120 SQL> select * from v$database_block_corruption; FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTIO ---------- ---------- ---------- ------------------ --------- 3 35418 1 0 FRACTURED 3 61344 1 0 FRACTURED 3 31065 1 0 CORRUPT 3 36673 1 0 CORRUPT 3 36721 1 0 CORRUPT 3 42881 1 0 CORRUPT 1 66738 1 0 CORRUPT 3 36329 1 0 CORRUPT 3 36617 1 0 CORRUPT 3 32404 1 0 FRACTURED 3 36281 1 0 FRACTURED FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTIO ---------- ---------- ---------- ------------------ --------- 3 36625 1 0 FRACTURED 1 39041 1 0 CORRUPT 3 36713 1 0 CORRUPT 10 69927 1 0 FRACTURED 26 94244 1 0 CORRUPT 已选择16行。
查询坏块对应对象
SQL> set pagesize 2000 SQL> set linesize 250 SQL> SELECT e.owner, e.segment_type, e.segment_name, e.partition_name, c.file# 2 , greatest(e.block_id, c.block#) corr_start_block# 3 , least(e.block_id+e.blocks-1, c.block#+c.blocks-1) corr_end_block# 4 , least(e.block_id+e.blocks-1, c.block#+c.blocks-1) 5 - greatest(e.block_id, c.block#) + 1 blocks_corrupted 6 , null description 7 FROM dba_extents e, v$database_block_corruption c 8 WHERE e.file_id = c.file# 9 AND e.block_id <= c.block# + c.blocks - 1 10 AND e.block_id + e.blocks - 1 >= c.block# 11 UNION 12 SELECT s.owner, s.segment_type, s.segment_name, s.partition_name, c.file# 13 , header_block corr_start_block# 14 , header_block corr_end_block# 15 , 1 blocks_corrupted 16 , 'Segment Header' description 17 FROM dba_segments s, v$database_block_corruption c 18 WHERE s.header_file = c.file# 19 AND s.header_block between c.block# and c.block# + c.blocks - 1 20 UNION 21 SELECT null owner, null segment_type, null segment_name, null partition_name, c.file# 22 , greatest(f.block_id, c.block#) corr_start_block# 23 , least(f.block_id+f.blocks-1, c.block#+c.blocks-1) corr_end_block# 24 , least(f.block_id+f.blocks-1, c.block#+c.blocks-1) 25 - greatest(f.block_id, c.block#) + 1 blocks_corrupted 26 , 'Free Block' description 27 FROM dba_free_space f, v$database_block_corruption c 28 WHERE f.file_id = c.file# 29 AND f.block_id <= c.block# + c.blocks - 1 30 AND f.block_id + f.blocks - 1 >= c.block# 31 order by file#, corr_start_block#; OWNER SEGMENT_TYPE SEGMENT_NAME PARTITION_NAME FILE# CORR_START_BLOCK# CORR_END_BLOCK# BLOCKS_CORRUPTED DESCRIPTION ---------------- ----------------- ----------------------- ------------------------------- ------ ----------------- --------------- ---------------- -------------- SYS TABLE OBJ$ 1 39041 39041 1 1 66738 66738 1 Free Block SYSMAN INDEX MGMT_METRICS_1HOUR_PK 3 31065 31065 1 SYS TABLE WRH$_SQL_BIND_METADATA 3 32404 32404 1 SYS TABLE WRH$_BG_EVENT_SUMMARY 3 35418 35418 1 SYS INDEX PARTITION WRH$_FILESTATXS_PK WRH$_FILEST_1232289473_41482 3 36281 36281 1 SYS TABLE PARTITION WRH$_SYSTEM_EVENT WRH$_SYSTEM_1232289473_41482 3 36329 36329 1 SYS TABLE PARTITION WRH$_SGASTAT WRH$_SGASTA_1232289473_41482 3 36617 36617 1 SYS INDEX PARTITION WRH$_SGASTAT_U WRH$_SGASTA_1232289473_41482 3 36625 36625 1 SYS INDEX PARTITION WRH$_PARAMETER_PK WRH$_PARAME_1232289473_41482 3 36673 36673 1 SYS TABLE PARTITION WRH$_SERVICE_STAT WRH$_SERVIC_1232289473_41482 3 36713 36713 1 SYS INDEX PARTITION WRH$_SERVICE_STAT_PK WRH$_SERVIC_1232289473_41482 3 36721 36721 1 SYS TABLE PARTITION WRH$_LATCH WRH$_LATCH_1232289473_41482 3 42881 42881 1 SYS TABLE WRI$_ADV_ACTIONS 3 61344 61344 1 EXAM TABLE EXAM_ITEMS_OLD 10 69927 69927 1 CPR TABLE NEED_MONITOR 26 94244 94244 1 已选择16行。 SQL> SQL> spool off