标签云
asm恢复 bbed bootstrap$ dul In Memory kcbzib_kcrsds_1 kccpb_sanity_check_2 MySQL恢复 ORA-00312 ORA-00607 ORA-00704 ORA-00742 ORA-01110 ORA-01555 ORA-01578 ORA-01595 ORA-08103 ORA-600 2131 ORA-600 2662 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)
- 操作系统 (103)
- 数据库 (1,769)
- DB2 (22)
- MySQL (77)
- Oracle (1,610)
- Data Guard (52)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (166)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (8)
- Oracle ASM (69)
- Oracle Bug (8)
- Oracle RAC (54)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (29)
- Oracle备份恢复 (592)
- Oracle安装升级 (97)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (86)
- PostgreSQL (30)
- pdu工具 (6)
- PostgreSQL恢复 (9)
- SQL Server (32)
- SQL Server恢复 (13)
- TimesTen (7)
- 达梦数据库 (3)
- 达梦恢复 (1)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (39)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (22)
-
最近发表
- 2025年的Oracle 8.0.5数据库恢复
- ORA-600 kokiasg1故障分析(obj$中核心字典序列全部被恶意删除)
- ORA-00756 ORA-10567故障数据0丢失恢复
- 数据库文件变成32k故障恢复
- tcp连接过多导致监听TNS-12532 TNS-12560 TNS-00502错误
- 文件系统格式化MySQL数据库恢复
- .sstop勒索加密数据库恢复
- 解决一次硬件恢复之后数据文件0kb的故障恢复case
- Error in invoking target ‘libasmclntsh19.ohso libasmperl19.ohso client_sharedlib’问题处理
- ORA-01171: datafile N going offline due to error advancing checkpoint
- linux环境oracle数据库被文件系统勒索加密为.babyk扩展名溯源
- ORA-600 ksvworkmsgalloc: bad reaper
- ORA-600 krccfl_chunk故障处理
- Oracle Recovery Tools恢复案例总结—202505
- ORA-600 kddummy_blkchk 数据库循环重启
- 记录一次asm disk加入到vg通过恢复直接open库的案例
- CHECKDB 发现了 N 个分配错误和 M 个一致性错误
- 达梦数据库dm.ctl文件异常恢复
- Oracle Recovery Tools修复ORA-00742、ORA-600 ktbair2: illegal inheritance故障
- 可能是 tempdb 空间用尽或某个系统表不一致故障处理
分类目录归档:Oracle
使用 dul 挖数据文件初试
最近测试了下dul,整体感觉和odu差不多
1.配置init.dul
[oracle@xifenfei dul]$ more init.dul osd_big_endian_flag=false osd_dba_file_bits=10 osd_c_struct_alignment=32 osd_file_leader_size=1 osd_word_size = 32 dc_columns=2000000 dc_tables=10000 dc_objects=1000000 dc_users=400 dc_segments=100000 Buffer=10485760 control_file = control.txt db_block_size=8192 export_mode=true --false表示是sqlloader,true表示imp compatible=10
2.配置控制文件
[oracle@xifenfei dul]$ more control.txt 0 1 /u01/oracle/oradata/XFF/system01.dbf 1 2 /u01/oracle/oradata/XFF/undotbs01.dbf 2 3 /u01/oracle/oradata/XFF/sysaux01.dbf 4 4 /u01/oracle/oradata/XFF/users01.dbf 6 5 /u01/oracle/oradata/XFF/datfttuser.dbf --sql语句 select ts#,rfile#,name from v$datafile;
3.启动dul
[oracle@xifenfei dul]$ ./dul Data UnLoader: 10.2.0.5.13 - Internal Only - on Sun Jun 10 06:39:47 2012 with 64-bit io functions Copyright (c) 1994 2012 Bernard van Duijnen All rights reserved. Strictly Oracle Internal Use Only Found db_id = 3426707456 Found db_name = XFF
4.加载初始化数据字典
DUL> BOOTSTRAP; Probing file = 1, block = 377 . unloading table BOOTSTRAP$ DUL: Warning: block number is non zero but marked deferred trying to process it anyhow 57 rows unloaded DUL: Warning: Dictionary cache DC_BOOTSTRAP is empty Reading BOOTSTRAP.dat 57 entries loaded Parsing Bootstrap$ contents Generating dict.ddl for version 10 OBJ$: segobjno 18, file 1 block 121 TAB$: segobjno 2, tabno 1, file 1 block 25 COL$: segobjno 2, tabno 5, file 1 block 25 USER$: segobjno 10, tabno 1, file 1 block 89 Running generated file "@dict.ddl" to unload the dictionary tables . unloading table OBJ$ 50930 rows unloaded . unloading table TAB$ 1593 rows unloaded . unloading table COL$ 55163 rows unloaded . unloading table USER$ 61 rows unloaded Reading USER.dat 61 entries loaded Reading OBJ.dat 50930 entries loaded and sorted 50930 entries Reading TAB.dat 1593 entries loaded Reading COL.dat 55163 entries loaded and sorted 55163 entries Reading BOOTSTRAP.dat 57 entries loaded DUL: Warning: Recreating file "dict.ddl" Generating dict.ddl for version 10 OBJ$: segobjno 18, file 1 block 121 TAB$: segobjno 2, tabno 1, file 1 block 25 COL$: segobjno 2, tabno 5, file 1 block 25 USER$: segobjno 10, tabno 1, file 1 block 89 TABPART$: segobjno 266, file 1 block 2121 INDPART$: segobjno 271, file 1 block 2161 TABCOMPART$: segobjno 288, file 1 block 2297 INDCOMPART$: segobjno 293, file 1 block 2345 TABSUBPART$: segobjno 278, file 1 block 2217 INDSUBPART$: segobjno 283, file 1 block 2257 IND$: segobjno 2, tabno 3, file 1 block 25 ICOL$: segobjno 2, tabno 4, file 1 block 25 LOB$: segobjno 2, tabno 6, file 1 block 25 COLTYPE$: segobjno 2, tabno 7, file 1 block 25 TYPE$: segobjno 181, tabno 1, file 1 block 1297 COLLECTION$: segobjno 181, tabno 2, file 1 block 1297 ATTRIBUTE$: segobjno 181, tabno 3, file 1 block 1297 LOBFRAG$: segobjno 299, file 1 block 2393 LOBCOMPPART$: segobjno 302, file 1 block 2425 UNDO$: segobjno 15, file 1 block 105 TS$: segobjno 6, tabno 2, file 1 block 57 PROPS$: segobjno 96, file 1 block 721 Running generated file "@dict.ddl" to unload the dictionary tables . unloading table OBJ$ DUL: Warning: Recreating file "OBJ.ctl" 50930 rows unloaded . unloading table TAB$ DUL: Warning: Recreating file "TAB.ctl" 1593 rows unloaded . unloading table COL$ DUL: Warning: Recreating file "COL.ctl" 55163 rows unloaded . unloading table USER$ DUL: Warning: Recreating file "USER.ctl" 61 rows unloaded . unloading table TABPART$ 90 rows unloaded . unloading table INDPART$ 99 rows unloaded . unloading table TABCOMPART$ 0 rows unloaded . unloading table INDCOMPART$ 0 rows unloaded . unloading table TABSUBPART$ 0 rows unloaded . unloading table INDSUBPART$ 0 rows unloaded . unloading table IND$ 2251 rows unloaded . unloading table ICOL$ 3669 rows unloaded . unloading table LOB$ 537 rows unloaded . unloading table COLTYPE$ 1702 rows unloaded . unloading table TYPE$ 1886 rows unloaded . unloading table COLLECTION$ 552 rows unloaded . unloading table ATTRIBUTE$ 7051 rows unloaded . unloading table LOBFRAG$ 1 row unloaded . unloading table LOBCOMPPART$ 0 rows unloaded . unloading table UNDO$ 21 rows unloaded . unloading table TS$ 7 rows unloaded . unloading table PROPS$ 27 rows unloaded Reading USER.dat 61 entries loaded Reading OBJ.dat 50930 entries loaded and sorted 50930 entries Reading TAB.dat 1593 entries loaded Reading COL.dat 55163 entries loaded and sorted 55163 entries Reading TABPART.dat 90 entries loaded and sorted 90 entries Reading TABCOMPART.dat 0 entries loaded and sorted 0 entries Reading TABSUBPART.dat 0 entries loaded and sorted 0 entries Reading INDPART.dat 99 entries loaded and sorted 99 entries Reading INDCOMPART.dat 0 entries loaded and sorted 0 entries Reading INDSUBPART.dat 0 entries loaded and sorted 0 entries Reading IND.dat 2251 entries loaded Reading LOB.dat 537 entries loaded Reading ICOL.dat 3669 entries loaded Reading COLTYPE.dat 1702 entries loaded Reading TYPE.dat 1886 entries loaded Reading ATTRIBUTE.dat 7051 entries loaded Reading COLLECTION.dat 552 entries loaded Reading BOOTSTRAP.dat 57 entries loaded Reading LOBFRAG.dat 1 entries loaded and sorted 1 entries Reading LOBCOMPPART.dat 0 entries loaded and sorted 0 entries Reading UNDO.dat 21 entries loaded Reading TS.dat 7 entries loaded Reading PROPS.dat 27 entries loaded Database character set is ZHS16GBK Database national character set is AL16UTF16
5.导出某种表
DUL> desc chf.t_xifenfei; Table CHF.T_XIFENFEI obj#= 52189, dataobj#= 52189, ts#= 4, file#= 4, block#=123 tab#= 0, segcols= 2, clucols= 0 Column information: icol# 01 segcol# 01 ID len 22 type 2 NUMBER(0,-127) icol# 02 segcol# 02 NAME len 100 type 1 VARCHAR2 cs 852(ZHS16GBK) DUL> UNLOAD TABLE chf.t_xifenfei; . unloading table T_XIFENFEI 2 rows unloaded
6.验证导出dmp文件
[oracle@xifenfei dul]$ strings CHF_T_XIFENFEI.dmp EXPORT:V07.00.07 UBernard's DUL RTABLES 1024 Direct UnLoader(C) in EXPort mode TABLE "T_XIFENFEI" CREATE TABLE "T_XIFENFEI"("ID" NUMBER,"NAME" VARCHAR2(100)) INSERT INTO "T_XIFENFEI" ("ID", "NAME") VALUES (:1, :2) www.xifenfei.com WWW.XIFENEI.COM EXIT
关于DBMS_SCHEDULER基础
长期以来,一直对DBMS_SCHEDULER包比较模糊,今天抽一点时间,通过一点试验,理清自己的思路,分清楚各个函数大概作用.不至于在以后使用该包的时候一片空白.
1.通过DBMS_SCHEDULER.CREATE_JOB直接创建job
SQL> create table t_xifenfei (x_type varchar2(10),x_date date); 表已创建。 SQL> begin 2 DBMS_SCHEDULER.create_job ( 3 job_name => 'f_create_job', 4 job_type => 'PLSQL_BLOCK', 5 job_action => ' 6 begin 7 insert into t_xifenfei values(''job'',sysdate); 8 commit; 9 end; 10 ', 11 enabled => true, 12 start_date => SYSTIMESTAMP, 13 repeat_interval => 'SYSTIMESTAMP + 1/1440', 14 comments => 'xifenfei_create_job'); 15 END; 16 / SQL> select x_type,to_char(x_date,'yyyy-mm-dd hh24:mi:ss') from t_xifenfei; X_TYPE TO_CHAR(X_DATE,'YYY ---------- ------------------- job 2012-06-19 19:52:11 job 2012-06-19 19:53:11 job 2012-06-19 19:54:11
这里的使用方法和dbms_jobs有几分类此,不过这个提供了加灵活的使用方法,比如可以执行匿名块,执行操作系统命令等
2.CREATE_JOB结合CREATE_PROGRAM
SQL> create or replace procedure p_xifenfei(in_type in varchar2) 2 is 3 begin 4 insert into t_xifenfei values(in_type,sysdate); 5 commit; 6 end; 7 / 过程已创建。 SQL> begin 2 DBMS_SCHEDULER.CREATE_PROGRAM( 3 program_name => 'x_program', 4 program_action => 'p_xifenfei', 5 program_type => 'STORED_PROCEDURE', 6 number_of_arguments => 1, 7 comments => 'xifenfei_PROGRAM', 8 enabled => false); 9 end; 10 / PL/SQL 过程已成功完成。 SQL> begin 2 DBMS_SCHEDULER.define_program_argument( 3 program_name => 'x_program', 4 argument_position => 1, 5 argument_type => 'VARCHAR2', 6 default_value => 'program'); 7 END; 8 / PL/SQL 过程已成功完成。 SQL> exec DBMS_SCHEDULER.enable('x_program'); PL/SQL 过程已成功完成。 SQL> begin 2 DBMS_SCHEDULER.create_job( 3 job_name => 's_xifenfei_job', 4 program_name => 'x_program', 5 comments => 's_xifenfei_job', 6 repeat_interval => 'SYSTIMESTAMP + 1/1440', 7 auto_drop => false, 8 enabled => true); 9 end; 10 / PL/SQL 过程已成功完成。 SQL> select x_type,to_char(x_date,'yyyy-mm-dd hh24:mi:ss') from t_xifenfei; X_TYPE TO_CHAR(X_DATE,'YYY ---------- ------------------- job 2012-06-19 20:27:11 program 2012-06-19 20:27:09 program 2012-06-19 20:28:09 job 2012-06-19 20:28:11
这里可以看出来CREATE_PROGRAM是把CREATE_JOB中的部分参数给独立出来,使得更加灵活的控制,比如这里的使用从参数
3.CREATE_JOB结合CREATE_PROGRAM和CREATE_SCHEDULE
SQL> exec DBMS_SCHEDULER.drop_job('s_xifenfei_job'); PL/SQL 过程已成功完成。 SQL> truncate table t_xifenfei; 表被截断。 SQL> begin 2 DBMS_SCHEDULER.create_schedule( 3 repeat_interval => 'FREQ=MINUTELY;INTERVAL=1', 4 start_date => sysdate, 5 comments => 'xifenfei_sch', 6 schedule_name => 'X_SCH'); 7 end; 8 / PL/SQL 过程已成功完成。 SQL> begin 2 DBMS_SCHEDULER.create_job( 3 job_name => 't_xifenfei_job', 4 program_name => 'x_program', 5 comments => 't_xifenfei_job', 6 schedule_name => 'X_SCH', 7 auto_drop => false, 8 enabled => true); 9 end; 10 / PL/SQL 过程已成功完成。 SQL> select x_type,to_char(x_date,'yyyy-mm-dd hh24:mi:ss') from t_xifenfei; X_TYPE TO_CHAR(X_DATE,'YYY ---------- ------------------- job 2012-06-19 20:39:11 job 2012-06-19 20:37:11 job 2012-06-19 20:38:11 program 2012-06-19 20:39:01 program 2012-06-19 20:40:01
CREATE_SCHEDULE是把执行计划部分从CREATE_JOB独立处理,使得控制力度更大,更加灵活
补充说明:
1.还可以通过创建JOB_CLASS更加灵活的控制资源的使用情况,必须通过修改JOB_CLASS中的resource_consumer_group实现资源控制,service对应到数据库的service可以实现rac中在哪个节点执行等等
2.使用DBMS_SCHEDULER.set_attribute来修改相关属相如:
EXEC DBMS_SCHEDULER.set_attribute('GATHER_STATS_JOB','JOB_CLASS', 'AUTO_TASKS_JOB_CLASS2'); exec dbms_scheduler.set_attribute('WEEKNIGHT_WINDOW','REPEAT_INTERVAL','freq=daily; byday=MON,TUE,WED,THU,FRI;byhour=2;byminute=0;bysecond=0');
发表在 Oracle
评论关闭
ORACLE在线切换undo表空间
切换undo的一些步骤和基本原则
查看原undo相关参数 SHOW PARAMETER UNDO; 创建新undo空间 create undo tablespace undo_x datafile 'E:\ORACLE\ORADATA\XIFENFEI\undo_xifenfei.dbf' size 10M autoextend on next 10M maxsize 30G; 查询历史undo是否还有事务(包含回滚事务) SELECT a.tablespace_name,a.segment_name,b.ktuxesta,b.ktuxecfl, b.ktuxeusn||'.'||b.ktuxeslt||'.'||b.ktuxesqn trans FROM dba_rollback_segs a, x$ktuxe b WHERE a.segment_id = b.ktuxeusn AND a.tablespace_name = UPPER('&tsname') AND b.ktuxesta <> 'INACTIVE'; --因为有undo_retention参数,所以不能简单的通过确定该sql无事务就可以删除原undo 切换undo表空间(无论是否有事务,均可以切换[最好是无事务时切换],但是不能直接删除原undo表空间) alter system set undo_tablespace='undo_x'; alert日志现象,表明原undo还有事务 Sun Jun 17 20:10:45 2012 Successfully onlined Undo Tablespace 7. [36428] **** active transactions found in undo Tablespace 2 - moved to Pending Switch-Out state. [36428] active transactions found/affinity dissolution incompletein undo tablespace 2 during switch-out. ALTER SYSTEM SET undo_tablespace='undo_xifenfei' SCOPE=BOTH; Sun Jun 17 20:11:38 2012 [36312] **** active transactions found in undo Tablespace 2 - moved to Pending Switch-Out state. Sun Jun 17 20:16:15 2012 [36312] **** active transactions found in undo Tablespace 2 - moved to Pending Switch-Out state. --只能表明有事务,就算长时间未出现类似记录,不能证明一定可以删除原undo,因为undo_retention 查询回滚段情况(原undo表空间的回滚段全部offline,可以删除相关表空间) select tablespace_name,segment_name,status from dba_rollback_segs; 离线原undo表空间 alter tablespace undotbs1 offline; 确定原undo回滚段全部offline,直接删除 drop tablespace undotbs1 including contents and datafiles;
切换undo表空间一句话:新建undo几乎是任何时候都可以执行切换undo表空间命令,如果要删除历史undo需要等到该undo空间所有回滚段全部offline.千万别在尚有回滚段处于online状态,强制删除数据文件.
发表在 Oracle
评论关闭