标签云
asm恢复 bbed bootstrap$ dul kcbzib_kcrsds_1 kccpb_sanity_check_2 kcratr_nab_less_than_odr MySQL恢复 obet ORA-00312 ORA-00704 ORA-00742 ORA-01110 ORA-01200 ORA-01555 ORA-01578 ORA-01595 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-600 kcratr_nab_less_than_odr 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 比特币加密文章分类
- MongoDB (1)
- MongoDB恢复 (1)
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (112)
- 数据库 (1,884)
- DB2 (22)
- MySQL (82)
- Oracle (1,709)
- Data Guard (53)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (168)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (8)
- Oracle ASM (73)
- Oracle Bug (8)
- Oracle RAC (56)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (29)
- Oracle备份恢复 (662)
- Oracle安装升级 (108)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (91)
- PostgreSQL (37)
- pdu工具 (7)
- PostgreSQL恢复 (13)
- SQL Server (34)
- SQL Server恢复 (14)
- TimesTen (7)
- 达梦数据库 (5)
- 达梦恢复 (3)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (51)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (34)
- MongoDB (1)
-
最近发表
- 记录19c ASM磁盘掉线触发ORA-59048故障处理
- aix平台Oracle数据库由于断电无法启动故障处理
- 断电引起ORA-600 3005故障处理
- 记录一次云存储资源到期之后引起的数据库恢复
- Firebird 损坏数据库数据抢救工具—firebirdext
- Oracle 19c 202610补丁(RUs+OJVM)-19.33
- 由于con$.con#值达到极限,触发数据库增加约束报ORA-600 12807错误
- MongoDB 离线提取工具—mongoext
- .bres勒索病毒加密数据库dmp文件可恢复
- ORA-600 krsm_mrp_rebuild_lf_list.lno_mismatch
- 记录一次0丢失的ORA-00354: 损坏重做日志块标头故障恢复
- 不当数据库恢复操作导致一个月数据丢失
- obet快速修复oracle 位图损坏块
- 不太常见的10.2.0.1的oracle redo损坏恢复
- obet forcecopy功能抢救硬件故障中的数据文件
- kcratr_nab_less_than_odr和system坏块故障处理
- 通过obet 恢复system坏块,打开数据库
- obet dbv功能完整说明
- 分享一例运行在aix上的sap系统数据库恢复过程
- OBET-Oracle Block Editor Tool使用说明
分类目录归档:数据库
ORACLE 12C RMAN recover table
12c的rman有了很大的增强,其中一个亮点就是可以进行table 级别的恢复,本试验测试了rman基于时间点恢复一个被删除表的操作过程
数据库版本
SQL> select * from v$version; BANNER CON_ID -------------------------------------------------------------------------------- ---------- Oracle Database 12c Enterprise Edition Release 12.1.0.0.2 - 64bit 0 PL/SQL Release 12.1.0.0.2 0 CORE 12.1.0.0.2 0 TNS for Linux: Version 12.1.0.0.2 0 NLSRTL Version 12.1.0.0.2 0
创建表并插入数据
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; TO_CHAR(SYSDATE,'YY ------------------- 2013-01-17 18:37:07 SQL> create table t_xifenfei(id number,insert_time date); Table created. SQL> insert into t_xifenfei values(1,sysdate); 1 row created. SQL> commit; Commit complete. SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 53 Next log sequence to archive 55 Current log sequence 55 SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; TO_CHAR(SYSDATE,'YY ------------------- 2013-01-17 18:37:55
备份数据库
RMAN> backup as compressed backupset database format '/tmp/xifenfei_db_%U'; Starting backup at 17-JAN-13 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=30 device type=DISK channel ORA_DISK_1: starting compressed full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00001 name=/u01/app/oracle/oradata/xifenfei/system01.dbf input datafile file number=00002 name=/u01/app/oracle/oradata/xifenfei/sysaux01.dbf input datafile file number=00003 name=/u01/app/oracle/oradata/xifenfei/undotbs01.dbf input datafile file number=00005 name=/u01/app/oracle/oradata/xifenfei/xifenfei01.dbf input datafile file number=00004 name=/u01/app/oracle/oradata/xifenfei/users01.dbf channel ORA_DISK_1: starting piece 1 at 17-JAN-13 channel ORA_DISK_1: finished piece 1 at 17-JAN-13 piece handle=/tmp/xifenfei_db_07nvln1g_1_1 tag=TAG20130117T183839 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:01:15 channel ORA_DISK_1: starting compressed full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set including current control file in backup set including current SPFILE in backup set channel ORA_DISK_1: starting piece 1 at 17-JAN-13 channel ORA_DISK_1: finished piece 1 at 17-JAN-13 piece handle=/tmp/xifenfei_db_08nvln3r_1_1 tag=TAG20130117T183839 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03 Finished backup at 17-JAN-13
插入数据继续测试
SQL> insert into t_xifenfei values(2,sysdate);
1 row created.
SQL> commit;
Commit complete.
SQL> alter system switch logfile;
System altered.
SQL> alter system switch logfile;
System altered.
SQL> insert into t_xifenfei values(3,sysdate);
1 row created.
SQL> insert into t_xifenfei values(4,sysdate);
1 row created.
SQL> commit;
Commit complete.
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 55
Next log sequence to archive 57
Current log sequence 57
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2013-01-17 18:41:17
SQL> select id,to_char(insert_time,'yyyy-mm-dd hh24:mi:ss') from t_xifenfei;
ID TO_CHAR(INSERT_TIME
---------- -------------------
1 2013-01-17 18:37:22
2 2013-01-17 18:40:37
3 2013-01-17 18:40:58
4 2013-01-17 18:40:59
删除测试表
SQL> drop table t_xifenfei purge; Table dropped. SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; TO_CHAR(SYSDATE,'YY ------------------- 2013-01-17 18:41:36
rman recover table
[oracle@Lunar tmp]$ rman target sys/xifenfei log=/tmp/recover_table.log
RMAN> RECOVER TABLE XFF."T_XIFENFEI"
until time "to_date('2013-01-17 18:41:17','yyyy-mm-dd hh24:mi:ss')"
AUXILIARY DESTINATION '/tmp/recovertable'
REMAP TABLE 'XFF'.'T_XIFENFEI':'T_XIFENFEI_NEW';
--recover table XFF.T_XIFENFEI data impdp into XFF.T_XIFENFEI_NEW
验证数据库
SQL> select id,to_char(insert_time,'yyyy-mm-dd hh24:mi:ss') from t_xifenfei_new;
ID TO_CHAR(INSERT_TIME
---------- -------------------
1 2013-01-17 18:37:22
2 2013-01-17 18:40:37
3 2013-01-17 18:40:58
4 2013-01-17 18:40:59
补充说明
1.rman recover table 必须使用sys用户登录,而不能使用/,因为12c默认有backup用户
2.rman recover table 需要还原system,undo,sysaux表空间,需要还原表所在表空间,和expdp导出文件空间,所以需要额外空间较大
3.整体恢复过程是:还原system,undo,sysaux表空间,然后read only数据库,然后重启数据库还原表所在表空间,然后expdp导出表,根据需要决定是否导入表到数据库
4.完整的rman recover table执行过程脚本recover_table
发表在 Oracle, ORACLE 12C
2 条评论
Swingbench简单使用
Swingbench是一款很不错的oracle压力测试工具,使用比较简单,而且很效果比较明显,可以满足在一些简单的测试案例中的需求,这里大概的写了主要的Swingbench测试过程中的一些注意事项
1.相关网站
Swingbench
2.上传服务器并解压
--整体目录 [oracle@localhost swingbench]$ ll total 484 drwxr-xr-x. 3 oracle dba 4096 Mar 26 15:54 bin drwxr-xr-x. 2 oracle dba 4096 Mar 26 15:48 configs drwxr-xr-x. 2 oracle dba 4096 Jun 11 2010 launcher drwxr-xr-x. 3 oracle dba 4096 Dec 9 2011 lib drwxr-xr-x. 2 oracle dba 4096 Mar 3 2010 log -rwx------. 1 oracle dba 1768 Feb 15 2011 README.txt drwxr-xr-x. 3 oracle dba 4096 Dec 9 2011 source drwxr-xr-x. 2 oracle dba 4096 Mar 26 15:38 sql -rw-r--r--. 1 oracle dba 848 Mar 26 11:02 swingbench.env -rw-r--r--. 1 oracle dba 454110 Feb 15 2011 swingbenchFAQ.pdf drwx------. 3 oracle dba 4096 Dec 8 2011 winbin --动态库 [oracle@localhost lib]$ ll total 14896 -rw-r--r--. 1 oracle dba 999966 Dec 9 2011 ant.jar drwxr-xr-x. 2 oracle dba 4096 Dec 9 2011 launcher -rw-r--r--. 1 oracle dba 2152849 Dec 9 2011 ojdbc6.jar -rw-r--r--. 1 oracle dba 70569 Dec 9 2011 ons.jar -rw-r--r--. 1 oracle dba 20349 Dec 9 2011 simplefan.jar -rw-r--r--. 1 oracle dba 11512178 Dec 9 2011 swingbench.jar -rw-r--r--. 1 oracle dba 479413 Dec 9 2011 ucp.jar --相关执行文件和初始化*.xml文件等 [oracle@localhost bin]$ ll total 192 -rwxr-xr-x. 1 oracle dba 106 Nov 17 2010 bmcompare -rwx------. 1 oracle dba 4456 Apr 19 2010 ccconfig.xml -rwxr-xr-x. 1 oracle dba 120 Nov 17 2010 ccwizard -rwx------. 1 oracle dba 4086 Jul 27 2010 ccwizard.xml -rwxr-xr-x. 1 oracle dba 106 Nov 17 2010 charbench -rwxr-xr-x. 1 oracle dba 118 Nov 17 2010 clusteroverview -rw-r--r--. 1 oracle dba 1740 Jul 27 2010 clusteroverview.xml -rwxr-xr-x. 1 oracle dba 110 Nov 17 2010 coordinator drwxr-xr-x. 2 oracle dba 4096 Dec 8 2011 data -rw-r--r--. 1 oracle dba 113698 Nov 2 2011 debug.log -rwxr-xr-x. 1 oracle dba 106 Nov 17 2010 minibench -rwxr-xr-x. 1 oracle dba 120 Nov 17 2010 oewizard -rwx------. 1 oracle dba 3279 Jul 27 2010 oewizard.xml -rw-r--r--. 1 oracle dba 2790 Feb 15 2011 results.xml -rwxr-xr-x. 1 oracle dba 128 Nov 17 2010 shwizard -rwx------. 1 oracle dba 2499 Aug 28 2010 shwizard.xml -rwxr-xr-x. 1 oracle dba 108 Nov 17 2010 swingbench -rwx------. 1 oracle dba 5766 Mar 26 15:29 swingconfig.xml -rw-r--r--. 1 oracle dba 241 Mar 26 11:56 wizardlog.xml --执行相关*.xml配置文件 [oracle@localhost configs]$ ll total 36 -rwx------. 1 oracle dba 4714 Mar 27 10:02 ccconfig.xml -rwx------. 1 oracle dba 3950 Nov 8 2011 oeconfig.xml -rwx------. 1 oracle dba 3774 Nov 8 2011 shconfig.xml -rwx------. 1 oracle dba 5009 Mar 27 10:15 soeconfig.xml -rwx------. 1 oracle dba 3198 Nov 8 2011 spconfig.xml -rwx------. 1 oracle dba 3074 Mar 23 2010 stresstest.xml
3.编辑环境变量
--自己编辑生成,然后使用.执行
vi swingbench.env
#!/bin/bash
--note:官方要求java 1.6,oracle 11g自带1.5可以执行
export JAVAHOME=/data/oracle/product/11.2.0/dbhome_1/jdk
export SWINGHOME=/swingbench
export ORACLE_HOME=/data/oracle/product/11.2.0/dbhome_1
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib:$SWINGHOME/lib
export CLASSPATH=$JAVAHOME/lib/rt.jar:$JAVAHOME/lib/tools.jar:${SWINGHOME}/lib/swingbench.jar
export CLASSPATH=$CALSSPATH:${SWINGHOME}/lib/ojdbc6.jar:${SWINGHOME}/lib/ant.jar:ucp.jar
export CLASSPATH=$CLASSPATH:$ORACLE_HOME/jdbc/lib/ojdbc14.jar:$ORACLE_HOME/opmn/lib/ons.jar
export CLASSPATH=$CLASSPATH:$ORACLE_HOME/jdbc/lib/ojdbc5.jar
4.初始化数据
--初始化sh数据 [oracle@localhost bin]$ ll sh* -rwxr-xr-x. 1 oracle dba 128 Nov 17 2010 shwizard -rwx------. 1 oracle dba 2499 Aug 28 2010 shwizard.xml --初始化soe数据 [oracle@localhost bin]$ ll oe* -rwxr-xr-x. 1 oracle dba 120 Nov 17 2010 oewizard -rwx------. 1 oracle dba 3279 Jul 27 2010 oewizard.xml --初始化cc数据 [oracle@localhost bin]$ ll ccwizard* -rwxr-xr-x. 1 oracle dba 120 Nov 17 2010 ccwizard -rwx------. 1 oracle dba 4086 Jul 27 2010 ccwizard.xml
5.执行压力测试
--执行sh [oracle@localhost bin]$ ./swingbench -c /swingbench/configs/shconfig.xml --执行soe [oracle@localhost bin]$ ./swingbench -c /swingbench/configs/soeconfig.xml --执行cc [oracle@localhost bin]$ ./swingbench -c /swingbench/configs/ccconfig.xml
6.测试结果
为了能够收集系统的io和cpu,需要登录系统(configuration–>connect pooling–>distributed controls)

非归档异常数据库rman备份
最近在数据库恢复中遇到一个案例:xx单位1.5T oracle 10.2.0.4(redhat 4.5),因为异常关闭操作系统,导致数据库不能启动,需要帮忙恢复。该数据库为非归档模式,使用裸设备,一个裸设备文件大小(35G),数据库文件大小4-30G都有,现在客户要求我们不能对现有环境进行任何操作,需要克隆一份数据库出来,然后在克隆的库上进行数据库恢复操作.数据库环境的克隆最好的方法就是使用rman来完成,但是该数据库为非归档模式,无法直接使用rman进行备份操作.最后采取dd的方式处理(需要注意dd文件大小为block_size*(v$datafile.blocks+1)+v$datafile.offset).因为不能使用rman的一条命令处理,心里一直不舒服,在家里实验,终于还是确定可以通过重建控制文件的方法来欺骗rman是归档模式,来实现rman完成类似工作.
数据库非非归档模式
SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production PL/SQL Release 11.2.0.3.0 - Production CORE 11.2.0.3.0 Production TNS for Linux: Version 11.2.0.3.0 - Production NLSRTL Version 11.2.0.3.0 - Production SQL> archive log list; Database log mode No Archive Mode Automatic archival Disabled Archive destination /u01/oracle/oradata/ora11g/archivelog Oldest online log sequence 7 Current log sequence 9
非归档模式尝试rman 备份
RMAN> backup database format '/u01/oracle/oradata/orall1g_%U'; Starting backup at 22-JAN-13 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=10 device type=DISK channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set RMAN-03009: failure of backup command on ORA_DISK_1 channel at 01/22/2013 16:10:49 ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode continuing other job steps, job failed will not be re-run channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set including current control file in backup set including current SPFILE in backup set channel ORA_DISK_1: starting piece 1 at 22-JAN-13 channel ORA_DISK_1: finished piece 1 at 22-JAN-13 piece handle=/u01/oracle/oradata/orall1g_13o02k8a_1_1 tag=TAG20130122T161048 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: ===========================================================
rman的backup or copy命令不能在非归档模式下执行
尝试修改数据库为归档模式
SQL> alter database archivelog; alter database archivelog * ERROR at line 1: ORA-00265: instance recovery required, cannot set ARCHIVELOG mode
数据库非正常关闭,不能修改归档模式
重建控制文件
SQL> alter database backup controlfile to trace as '/tmp/ctl'; Database altered. SQL> shutdown immediate ORA-01109: database not open Database dismounted. ORACLE instance shut down. --备份当前控制文件(保留控制文件现场) SQL> STARTUP NOMOUNT ORACLE instance started. Total System Global Area 313860096 bytes Fixed Size 1344652 bytes Variable Size 285215604 bytes Database Buffers 20971520 bytes Redo Buffers 6328320 bytes SQL> CREATE CONTROLFILE REUSE DATABASE "ORA11G" NORESETLOGS ARCHIVELOG 2 MAXLOGFILES 16 3 MAXLOGMEMBERS 3 4 MAXDATAFILES 100 5 MAXINSTANCES 8 6 MAXLOGHISTORY 292 7 LOGFILE 8 GROUP 1 '/u01/oracle/oradata/ora11g/redo01.log' SIZE 50M BLOCKSIZE 512, 9 GROUP 2 '/u01/oracle/oradata/ora11g/redo02.log' SIZE 50M BLOCKSIZE 512, 10 GROUP 3 '/u01/oracle/oradata/ora11g/redo03.log' SIZE 50M BLOCKSIZE 512 11 DATAFILE 12 '/u01/oracle/oradata/ora11g/system01.dbf', 13 '/u01/oracle/oradata/ora11g/sysaux01.dbf', 14 '/u01/oracle/oradata/ora11g/users01.dbf', 15 '/u01/oracle/oradata/ora11g/dbfs01.dbf', 16 '/u01/oracle/oradata/ora11g/tts_xifenfei02.dbf', 17 '/u01/oracle/oradata/ora11g/tts_xifenfei01.dbf', 18 '/u01/oracle/oradata/ora11g/system02.dbf', 19 '/u01/oracle/oradata/ora11g/czum01.dbf', 20 '/u01/oracle/oradata/ora11g/undotbs02.dbf' 21 CHARACTER SET ZHS16GBK 22 ; Control file created.
数据库已经变为归档模式
SQL> archive log list; Database log mode Archive Mode Automatic archival Disabled Archive destination /u01/oracle/oradata/ora11g/archivelog Oldest online log sequence 7 Next log sequence to archive 7 Current log sequence 9
归档模式尝试rman备份
RMAN> backup datafile 1 format '/u01/oracle/oradata/system01_%U'; Starting backup at 22-JAN-13 using channel ORA_DISK_1 channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00001 name=/u01/oracle/oradata/ora11g/system01.dbf channel ORA_DISK_1: starting piece 1 at 22-JAN-13 channel ORA_DISK_1: finished piece 1 at 22-JAN-13 piece handle=/u01/oracle/oradata/system01_02o02kl7_1_1 tag=TAG20130122T161742 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:01:15 Finished backup at 22-JAN-13 RMAN-06497: WARNING: control file is not current, control file AUTOBACKUP skipped
因为现在的控制文件是新创建的,不能算是数据库的当前控制文件,所以未被rman自动备份(很好理解,重建控制文件后,我们做恢复都要使用using backup controlfile命令)
总结说明
1.数据库为非归档模式,不能使用rman的backup和copy命令来备份
2.因为数据库为非正常关闭不能直接修改为归档模式
3.通过重建控制文件修改数据库(注意备份)为归档模式实现rman正常备份
4.当rman备份好之后,使用原先控制文件替换现在控制文件

加我微信(17813235971)
加我QQ(107644445)

