Oracle 备份还原数据库练习.
第一步:确认数据库运行在归档模式。
检查:
SQL> archive log list;Database log mode No Archive ModeAutomatic archival DisabledArchive destination USE_DB_RECOVERY_FILE_DESTOldest online log sequence 4Current log sequence 5
当前运行在非归档模式.
关闭数据库,运行在mount模式
SQL> shutdown immediate;SQL> startup mount;
启用归档模式
SQL> alter database archivelog;
将配置写入spfile
SQL> alter system set log_archive_start=true scope=spfile;
重启数据库 运行在open模式
SQL> shutdown immediate;SQL> startup;
重新检查:已经运行在归档模式。
SQL> archive log list;Database log mode Archive ModeAutomatic archival EnabledArchive destination USE_DB_RECOVERY_FILE_DESTOldest online log sequence 4Next log sequence to archive 5Current log sequence 5
第二步:备份数据库
运行rman:
[gateman@~]$ rman target /
将下面语句copy入终端运行:写成脚本都得,注意红色path的写权限
run{allocate channel d1 type disk;backup as compressed backupset incremental level = 0format '/home/gateman/Public/db_bak/db_%d_%s_%p_%t_%T' database;sql 'alter system archive log current';release channel d1;}
如果无error的话, 去该path睇下有无备份出来的备份文件。 备份时我部机卡到阿妈都唔认得
[gateman@Public]$ cd db_bak/[gateman@db_bak]$ ls -ltotal 173820-rw-r----- 1 oracle dba 176889856 Jul 22 23:07 db_XE_3_1_789346754_20120722-rw-r----- 1 oracle dba 1097728 Jul 22 23:07 db_XE_4_1_789347261_20120722
第三步:一些检验(非必要)
查看当前的数据文件:
RMAN> report schema; using target database control file instead of recovery catalogReport of database schema for database with db_unique_name XE List of Permanent Datafiles===========================File Size(MB) Tablespace RB segs Datafile Name---- -------- -------------------- ------- ------------------------1 360 SYSTEM *** /u01/app/oracle/oradata/XE/system.dbf2 640 SYSAUX *** /u01/app/oracle/oradata/XE/sysaux.dbf3 25 UNDOTBS1 *** /u01/app/oracle/oradata/XE/undotbs1.dbf4 100 USERS *** /u01/app/oracle/oradata/XE/users.dbf List of Temporary Files=======================File Size(MB) Tablespace Maxsize(MB) Tempfile Name---- -------- -------------------- ----------- --------------------1 20 TEMP 32767 /u01/app/oracle/oradata/XE/temp.dbf
查看归档日志:
RMAN> list copy of archivelog all; List of Archived Log Copies for database with db_unique_name XE===================================================================== Key Thrd Seq S Low Time ------- ---- ------- - ---------1 1 5 A 17-JUL-12 Name: /u01/app/oracle/fast_recovery_area/XE/archivelog/2012_07_22/o1_mf_1_5_80r5tngg_.arc 2 1 6 A 22-JUL-12 Name: /u01/app/oracle/fast_recovery_area/XE/archivelog/2012_07_22/o1_mf_1_6_80r7q4y8_.arc
查看还原预览: 可以见到关键信息
RMAN> restore database preview; Starting restore at 22-JUL-12allocated channel: ORA_DISK_1channel ORA_DISK_1: SID=51 device type=DISK List of Backup Sets=================== BS Key Type LV Size Device Type Elapsed Time Completion Time------- ---- -- ---------- ----------- ------------ ---------------1 Incr 0 168.69M DISK 00:08:23 22-JUL-12 BP Key: 1 Status: AVAILABLE Compressed: YES Tag: TAG20120722T225914 Piece Name: /home/gateman/Public/db_bak/db_XE_3_1_789346754_20120722 List of Datafiles in backup set 1 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 1 0 Incr 422228 22-JUL-12 /u01/app/oracle/oradata/XE/system.dbf 2 0 Incr 422228 22-JUL-12 /u01/app/oracle/oradata/XE/sysaux.dbf 3 0 Incr 422228 22-JUL-12 /u01/app/oracle/oradata/XE/undotbs1.dbf 4 0 Incr 422228 22-JUL-12 /u01/app/oracle/oradata/XE/users.dbfusing channel ORA_DISK_1 List of Archived Log Copies for database with db_unique_name XE===================================================================== Key Thrd Seq S Low Time ------- ---- ------- - ---------1 1 5 A 17-JUL-12 Name: /u01/app/oracle/fast_recovery_area/XE/archivelog/2012_07_22/o1_mf_1_5_80r5tngg_.arc 2 1 6 A 22-JUL-12 Name: /u01/app/oracle/fast_recovery_area/XE/archivelog/2012_07_22/o1_mf_1_6_80r7q4y8_.arc Media recovery start SCN is 422228Recovery must be done beyond SCN 422228 to clear datafile fuzzinessFinished restore at 22-JUL-12
查看控制文件备份, 可以看到存在于刚才备份出来的文件中
RMAN> list backup of controlfile; List of Backup Sets=================== BS Key Type LV Size Device Type Elapsed Time Completion Time------- ---- -- ---------- ----------- ------------ ---------------2 Incr 0 1.03M DISK 00:00:05 22-JUL-12 BP Key: 2 Status: AVAILABLE Compressed: YES Tag: TAG20120722T225914 Piece Name: /home/gateman/Public/db_bak/db_XE_4_1_789347261_20120722 Control File Included: Ckp SCN: 422479 Ckp time: 22-JUL-12 RMAN>
查看spfile备份
RMAN> list backup of spfile; List of Backup Sets=================== BS Key Type LV Size Device Type Elapsed Time Completion Time------- ---- -- ---------- ----------- ------------ ---------------2 Incr 0 1.03M DISK 00:00:05 22-JUL-12 BP Key: 2 Status: AVAILABLE Compressed: YES Tag: TAG20120722T225914 Piece Name: /home/gateman/Public/db_bak/db_XE_4_1_789347261_20120722 SPFILE Included: Modification time: 22-JUL-12 SPFILE db_unique_name: XE
第四步:删除数据库
你们懂的
RMAN> shutdown immediate;RMAN> startup mount;
开启受限模式, 禁止闲杂人等连接。
RMAN> sql 'alter system enable restricted session'; sql statement: alter system enable restricted session
drop 掉数据库.. spfile control file 数据文件都无晒噶啦。
spfile目录:pwd
RMAN> drop database;
退出下先
RMAN> exit
第五步:还原数据库
连接rman
[gateman@~]$ rman target /
nomount模式
RMAN> startup nomount; startup failed: ORA-01078: failure in processing system parametersLRM-00109: could not open parameter file '/u01/app/oracle/product/11.2.0/xe/dbs/initXE.ora' starting Oracle instance without parameter file for retrieval of spfileOracle instance started Total System Global Area 158662656 bytes Fixed Size 2224592 bytesVariable Size 96472624 bytesDatabase Buffers 54525952 bytesRedo Buffers
还原spfile
RMAN> restore spfile from '/home/gateman/Public/db_bak/db_XE_4_1_789347261_20120722'2> ; Starting restore at 23-JUL-12using target database control file instead of recovery catalogallocated channel: ORA_DISK_1channel ORA_DISK_1: SID=135 device type=DISK channel ORA_DISK_1: restoring spfile from AUTOBACKUP /home/gateman/Public/db_bak/db_XE_4_1_789347261_20120722channel ORA_DISK_1: SPFILE restore from AUTOBACKUP completeFinished restore at 23-JUL-12
还原controlfile 控制文件
RMAN> restore controlfile from '/home/gateman/Public/db_bak/db_XE_4_1_789347261_20120722'; Starting restore at 23-JUL-12using channel ORA_DISK_1 channel ORA_DISK_1: restoring control filechannel ORA_DISK_1: restore complete, elapsed time: 00:00:03output file name=/u01/app/oracle/product/11.2.0/xe/dbs/cntrlXE.dbfFinished restore at 23-JUL-12
注意上面呢个 还原出bug了 叼
下面呢个先系正常的 不然改不了mount模式:话controlfile有问题, 所以path唔正常的命令执行多一次, controlfile 的path有记录在spfile中,对比下一唔一致。
RMAN> restore controlfile from '/home/gateman/Public/db_bak/db_XE_4_1_789347261_20120722'; Starting restore at 23-JUL-12using channel ORA_DISK_1 channel ORA_DISK_1: restoring control filechannel ORA_DISK_1: restore complete, elapsed time: 00:00:03output file name=/u01/app/oracle/oradata/XE/control.dbfFinished restore at 23-JUL-12
改成mount 模式
RMAN> alter database mount; database mountedreleased channel: ORA_DISK_1
check下backup文件
RMAN> crosscheck backup; Starting implicit crosscheck backup at 23-JUL-12allocated channel: ORA_DISK_1channel ORA_DISK_1: SID=5 device type=DISKCrosschecked 1 objectsFinished implicit crosscheck backup at 23-JUL-12 Starting implicit crosscheck copy at 23-JUL-12using channel ORA_DISK_1Finished implicit crosscheck copy at 23-JUL-12 searching for all files in the recovery areacataloging files...cataloging done List of Cataloged Files=======================File Name: /u01/app/oracle/fast_recovery_area/XE/archivelog/2012_07_22/o1_mf_1_6_80r7q4y8_.arcFile Name: /u01/app/oracle/fast_recovery_area/XE/archivelog/2012_07_22/o1_mf_1_5_80r5tngg_.arc using channel ORA_DISK_1crosschecked backup piece: found to be 'AVAILABLE'backup piece handle=/home/gateman/Public/db_bak/db_XE_3_1_789346754_20120722 RECID=1 STAMP=789346754Crosschecked 1 objects
再check下预览 因为恢复了controlfile 预览应该会正常。
RMAN> restore database preview;
开始真正还原数据文件
RMAN> restore database; Starting restore at 23-JUL-12using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile backup set restorechannel ORA_DISK_1: specifying datafile(s) to restore from backup setchannel ORA_DISK_1: restoring datafile 00001 to /u01/app/oracle/oradata/XE/system.dbfchannel ORA_DISK_1: restoring datafile 00002 to /u01/app/oracle/oradata/XE/sysaux.dbfchannel ORA_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/XE/undotbs1.dbfchannel ORA_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/XE/users.dbfchannel ORA_DISK_1: reading from backup piece /home/gateman/Public/db_bak/db_XE_3_1_789346754_20120722channel ORA_DISK_1: piece handle=/home/gateman/Public/db_bak/db_XE_3_1_789346754_20120722 tag=TAG20120722T225914channel ORA_DISK_1: restored backup piece 1channel ORA_DISK_1: restore complete, elapsed time: 00:01:45Finished restore at 23-JUL-12
貌似成功了
第六步:检验完整性
有问题
RMAN> alter database open resetlogs; RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03002: failure of alter db command at 07/23/2012 00:57:12ORA-01152: file 1 was not restored from a sufficiently old backup ORA-01110: data file 1: '/u01/app/oracle/oradata/XE/system.dbf'
recover 虽然报错话找不到归档日志, 因为drop database 时被删除了。 但是 执行这个命令后就可以open RMAN> recover database; Starting recover at 23-JUL-12using channel ORA_DISK_1 starting media recovery archived log for thread 1 with sequence 5 is already on disk as file /u01/app/oracle/fast_recovery_area/XE/archivelog/2012_07_22/o1_mf_1_5_80r5tngg_.arcarchived log for thread 1 with sequence 6 is already on disk as file /u01/app/oracle/fast_recovery_area/XE/archivelog/2012_07_22/o1_mf_1_6_80r7q4y8_.arcarchived log file name=/u01/app/oracle/fast_recovery_area/XE/archivelog/2012_07_22/o1_mf_1_5_80r5tngg_.arc thread=1 sequence=5archived log file name=/u01/app/oracle/fast_recovery_area/XE/archivelog/2012_07_22/o1_mf_1_6_80r7q4y8_.arc thread=1 sequence=6unable to find archived logarchived log thread=1 sequence=7RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03002: failure of recover command at 07/23/2012 00:57:50RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 7 and starting SCN of 442570
呢次终于可以open了
RMAN> alter database open resetlogs; database opened
最后, 禁止返受限模式,其他人又可以连接了
RMAN> sql 'alter system disable restricted session'; sql statement: alter system disable restricted session
Oracle 备份还原数据库练习.相关推荐
- oracle导入导出还原,Oracle 备份 还原 数据库 导入导出
导出 EXP USER/PASSWORD@ODBC FILE=C:\***.DMP ROWS=N //不保存数据: 导出 EXP USER/PASSWORD@ODBC FILE=C:\***.DMP ...
- SQL点滴12—SQL Server备份还原数据库中的小把戏
原文:SQL点滴12-SQL Server备份还原数据库中的小把戏 备份数据库时出现一个不太了解的错误 ,错误信息"is formatted to support 1 media fami ...
- Python远程操作Oracle实现一键备份还原数据库演示,利用socket进行imp、exp一键导入导出oracle数据库dmp文件
Python 远程操作 Oracle 进行数据库备份还原 第一章:效果演示 ① 数据库恢复演示 ② 请求模拟 第二章:功能实现 ① 创建启动服务 ② 处理解析请求 ③ 处理命令 ④ 服务端数据库操作 ...
- oracle批处理还原数据库,用批处理写的:数据库备份还原工具(修正加强版)
@echo off&setlocal enabledelayedexpansion color 0a echo.===================================== ec ...
- 国产数据库清单;微盟《生产环境和数据恢复》;TiDB招聘;Oracle备份还原指南、GaussDB性能调优指南……墨天轮数据库周刊-第5期
热门资讯 1.国产数据库清单(2020年第1季度)发布! modb.pro/db/22488 [摘要]本文统计了国产数据库产品清单,共58个产品仅供参考,同时在清单下方简单整理了各产品的基本介绍.应用 ...
- Mysql备份还原数据库之mysqldump实例及参数详细说明
我们在运营项目的过程中肯定会遇到备份数据库,还原数据库的情况,我们一般用一下两种方式来处理: 1.使用into outfile 和 load data infile导入导出备份数据 这种方法的好处是, ...
- Oracle 备份还原
导出整个数据库,在CMD命令窗口执行 EXP 用户名/密码@服务名(数据库) FULL=Y FILE=路径 EXP INTERFACE/INTERFACE@PIVAS_XMDWYY FULL=Y FI ...
- oracle备份还原采集,oracle 备份还原
首先询问对方数据库的表空间名称和大小,然后在你的oracle中建立相应表空间,最后使用命令导入.导出数据. 补充: 1.要新建一个数据库: Oracle数据导入导出imp/exp就相当于oracle数 ...
- T-Sql备份还原数据库
代码如下: -- 备份数据库 BACKUP DATABASE 数据库名称 TO DISK = '物理存储位置' WITH FORMAT,CHECKSUM -- 还原数据库 alter database ...
最新文章
- 面试题-自旋锁,以及jvm对synchronized的优化
- 顺F分享,你是在裸奔吗?
- MATLAB 只是冰山一角!一个海外资深程序员聊被卡脖子……
- 腾讯99公益日︱深圳市慈善会:那些无力的故事,都拥有了力量
- C# 重绘tabControl,添加关闭按钮(续)
- html基础之select ,datalist与details的异同
- linux内存源码分析 - 伙伴系统(释放页框)
- 张磊:极少有人真正理解时间的价值
- 双网卡电脑同时访问内外网设置静态路由表
- win10无法修改mac地址_Oops,手机MAC地址也可以随机了
- 新卡插手机显示无服务器,手机插卡无服务怎么回事
- Python数据分析与挖掘实战学习12
- SVM中对偶、凸优化与KTT条件问题
- elementUI——form表单
- 【Windows Server 2019】DNS服务器的配置与管理——DNS正向解析
- ExtentReports生成自动化测试报告
- 电信管理局:2011推进三网融合走向深入
- Flutter开发(1)—— Dart vs Swift
- XTR111AIDGQR德州TI XTR111是一款精密的电压-电流转换器 封装MSOP10
- 《程序是怎么样跑起来的》学习记录