控制文件和数据文件丢失,有全备份恢复数据库的方法


控制文件和数据文件丢失,有全备份恢复数据库的方法
控制文件丢失,即使有全备份也难恢复数据库,因为备份信息是存在于控制文件的。
刚看论坛精华帖,Feng讲的dbms_backup_restore包还是很有用的,于是实验了一把,把过程贴出来做个备份!
首先执行下面三个文件
@dbmsbkrs.sql
@prvtbkrs.plb
@catproc.sql

先全备份

Microsoft Windows [版本 6.1.7600]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Users\Administrator>sqlplus / as sysdba


SQL*Plus: Release 11.1.0.6.0 - Production on 星期一 3月 12 14:34:12 2012

Copyright (c) 1982, 2007, Oracle.  All rights reserved.


连接到:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>  DECLARE
  2      devtype varchar2(256);
  3      done boolean;
  4      BEGIN
  5      devtype:=dbms_backup_restore.deviceAllocate(type=>'',ident=>'t1');
  6      dbms_backup_restore.restoreSetDatafile;
  7      dbms_backup_restore.restoreControlfileTo(cfname=>'D:\app_bak\Control01.
ctl');
  8      dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'D:\app_bak\O
RCL_03N5MCOV_3_1.DBF', params=>null);
  9      dbms_backup_restore.deviceDeallocate;
 10    END;
 11    /

PL/SQL 过程已成功完成。

SQL> DECLARE
  2      devtype varchar2(256);
  3      done boolean;
  4      BEGIN
  5      devtype:=sys.dbms_backup_restore.deviceAllocate (type=>'',ident=>'t1');

  6      sys.dbms_backup_restore.restoreSetDatafile;
  7      sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>01,toname=>'D:\APP\
ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF');
  8      sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>02,toname=>'D:\APP\
ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF');
  9      sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>03,toname=>'D:\APP\
ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF');
 10    sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>04,toname=>'D:\APP\AD
MINISTRATOR\ORADATA\ORCL\USERS01.DBF');
 11   sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>05,toname=>'D:\APP\ADM
INISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF');
 12    sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'D:\app_bak
\ORCL_02N5MCN3_2_1.DBF', params=>null);
 13    sys.dbms_backup_restore.deviceDeallocate;
 14    END;
 15   /

PL/SQL 过程已成功完成。

SQL> startup force mount;
ORACLE 例程已经启动。

Total System Global Area 1071333376 bytes
Fixed Size                  1334380 bytes
Variable Size             377488276 bytes
Database Buffers          687865856 bytes
Redo Buffers                4644864 bytes
数据库装载完毕。
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 987186 (在 03/12/2012 11:45:44 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_5_7OTWF8G9_.ARC
ORA-00280: 更改 987186 (用于线程 1) 在序列 #5 中


指定日志: {=suggested | filename | AUTO | CANCEL}
D:\app_bak\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_5_7OTWF8G9_.ARC
ORA-00279: 更改 987218 (在 03/12/2012 11:46:48 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_6_7OTWXVFS_.ARC
ORA-00280: 更改 987218 (用于线程 1) 在序列 #6 中
ORA-00278: 此恢复不再需要日志文件
'D:\app_bak\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_5_7OTWF8G9_.ARC'


指定日志: {=suggested | filename | AUTO | CANCEL}
D:\app_bak\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_6_7OTWXVFS_.ARC
ORA-00279: 更改 1014241 (在 03/12/2012 11:55:39 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_7_7OTWZXLR_.ARC
ORA-00280: 更改 1014241 (用于线程 1) 在序列 #7 中
ORA-00278: 此恢复不再需要日志文件
'D:\app_bak\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_6_7OTWXVFS_.ARC'


指定日志: {=suggested | filename | AUTO | CANCEL}
D:\app_bak\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_7_7OTWZXLR_.ARC
ORA-00279: 更改 1045106 (在 03/12/2012 11:56:45 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_8_7OTX14FW_.ARC
ORA-00280: 更改 1045106 (用于线程 1) 在序列 #8 中
ORA-00278: 此恢复不再需要日志文件
'D:\app_bak\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_7_7OTWZXLR_.ARC'


指定日志: {=suggested | filename | AUTO | CANCEL}
D:\app_bak\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_8_7OTX14FW_.ARC
ORA-00279: 更改 1055447 (在 03/12/2012 11:57:24 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_9_7OTX3F26_.ARC
ORA-00280: 更改 1055447 (用于线程 1) 在序列 #9 中
ORA-00278: 此恢复不再需要日志文件
'D:\app_bak\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_8_7OTX14FW_.ARC'


指定日志: {=suggested | filename | AUTO | CANCEL}
cacel
ORA-00308: 无法打开归档日志 'cacel'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。


指定日志: {=suggested | filename | AUTO | CANCEL}
cancel
介质恢复已取消。
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 1055447 (在 03/12/2012 11:57:24 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_9_7OTX3F26_.ARC
ORA-00280: 更改 1055447 (用于线程 1) 在序列 #9 中


指定日志: {=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: 更改 1076323 (在 03/12/2012 11:58:36 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_10_7OTX507R_.ARC
ORA-00280: 更改 1076323 (用于线程 1) 在序列 #10 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_9_7OTX3F26_.ARC'


ORA-00279: 更改 1095900 (在 03/12/2012 11:59:27 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_11_7OTXBHY5_.ARC
ORA-00280: 更改 1095900 (用于线程 1) 在序列 #11 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_10_7OTX507R_.ARC'


ORA-00279: 更改 1102915 (在 03/12/2012 12:02:23 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_12_7OTXDSO7_.ARC
ORA-00280: 更改 1102915 (用于线程 1) 在序列 #12 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_11_7OTXBHY5_.ARC'


ORA-00279: 更改 1110964 (在 03/12/2012 12:03:37 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_13_7OTXGL12_.ARC
ORA-00280: 更改 1110964 (用于线程 1) 在序列 #13 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_12_7OTXDSO7_.ARC'


ORA-00279: 更改 1119751 (在 03/12/2012 12:04:33 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_14_7OTZ8H47_.ARC
ORA-00280: 更改 1119751 (用于线程 1) 在序列 #14 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_13_7OTXGL12_.ARC'


ORA-00279: 更改 1128665 (在 03/12/2012 12:35:26 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_15_7OV32Y0L_.ARC
ORA-00280: 更改 1128665 (用于线程 1) 在序列 #15 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_14_7OTZ8H47_.ARC'


ORA-00279: 更改 1151109 (在 03/12/2012 13:40:45 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_16_7OV355RH_.ARC
ORA-00280: 更改 1151109 (用于线程 1) 在序列 #16 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_15_7OV32Y0L_.ARC'


ORA-00279: 更改 1187928 (在 03/12/2012 13:41:57 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_17_7OV3608G_.ARC
ORA-00280: 更改 1187928 (用于线程 1) 在序列 #17 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_16_7OV355RH_.ARC'


ORA-00279: 更改 1197561 (在 03/12/2012 13:42:24 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_18_7OV384CP_.ARC
ORA-00280: 更改 1197561 (用于线程 1) 在序列 #18 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_17_7OV3608G_.ARC'


ORA-00279: 更改 1217000 (在 03/12/2012 13:43:32 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_19_7OV39GJ7_.ARC
ORA-00280: 更改 1217000 (用于线程 1) 在序列 #19 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_18_7OV384CP_.ARC'


ORA-00279: 更改 1236575 (在 03/12/2012 13:44:14 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_20_7OV3GD2V_.ARC
ORA-00280: 更改 1236575 (用于线程 1) 在序列 #20 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_19_7OV39GJ7_.ARC'


ORA-00279: 更改 1244609 (在 03/12/2012 13:46:51 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_21_7OV3JCB9_.ARC
ORA-00280: 更改 1244609 (用于线程 1) 在序列 #21 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_20_7OV3GD2V_.ARC'


ORA-00279: 更改 1251212 (在 03/12/2012 13:47:55 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_22_7OV3KQZ3_.ARC
ORA-00280: 更改 1251212 (用于线程 1) 在序列 #22 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_21_7OV3JCB9_.ARC'


ORA-00279: 更改 1260894 (在 03/12/2012 13:48:39 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_23_%U_.ARC
ORA-00280: 更改 1260894 (用于线程 1) 在序列 #23 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_22_7OV3KQZ3_.ARC'


ORA-00308: 无法打开归档日志
'D:\APP_BAK\ORCL\ARCHIVELOG\2012_03_12\O1_MF_1_23_%U_.ARC'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。


SQL> alter database open resetlogs;

数据库已更改。

SQL>

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25989950/viewspace-718403/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25989950/viewspace-718403/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
### 回答1: MySQL 数据库备份恢复方法备份方法: 1. 使用 mysqldump 命令备份数据库。可以使用以下命令:mysqldump -u username -p password database_name > backup_file.sql。这将把数据库备份到一个 SQL 文件中。 2. 在 MySQL Workbench 中,可以使用“导出”功能将数据库备份到一个 SQL 文件中。 3. 可以使用 xtrabackup 工具备份整个数据库,包括所有数据和日志文件恢复方法: 1. 将备份文件导入到 MySQL 服务器。可以使用以下命令:mysql -u username -p password database_name < backup_file.sql。 2. 在 MySQL Workbench 中,可以使用“导入”功能将备份文件导入到数据库中。 3. 对于 xtrabackup 备份,需要将备份文件解压并使用 xtrabackup 工具进行恢复。 ### 回答2: MySQL数据库备份恢复数据库管理中非常重要的一部分。下面是备份恢复MySQL数据库的几种常见方法: 1. 使用MySQL的命令行工具备份恢复数据库。可以使用"mysqldump"命令将数据库导出到一个文件中,然后使用"mysql"命令将备份文件中的数据导入到数据库中。这种方法适用于小型数据库备份恢复。 2. 使用MySQL的图形化界面工具备份恢复数据库。MySQL提供了一些图形化界面工具,如MySQL Workbench。这些工具通常提供了更简单、直观的操作界面,可以方便地进行数据库备份恢复。 3. 使用第三方备份工具。有一些第三方工具可以帮助备份恢复MySQL数据库,如Percona XtraBackup和MySQL Enterprise Backup。这些工具通常提供了更高级的备份恢复功能,如增量备份、并行备份等。 4. 配置数据库定期备份。可以通过设置定期备份策略,自动进行数据库备份。可以选择每天、每周或每月备份一次,并将备份文件保存在安全的位置。 5. 考虑备份恢复的可靠性和性能。备份恢复过程可能会影响数据库的性能,因此需要根据数据库的大小和负载情况来选择合适的备份恢复方法。另外,备份文件的存储也需要考虑可靠性,可以将备份文件保存在多个地方以防止数据丢失。 总之,MySQL数据库备份恢复是保障数据库安全和可靠性的重要措施。根据数据库的需求和实际情况选择合适的备份恢复方法,并定期进行备份以确保数据的安全。 ### 回答3: MySQL数据库备份恢复是保证数据库数据安全性和可靠性的重要工作,可以使用以下方法进行备份恢复备份方法: 1. 使用mysqldump命令:在命令行界面执行该命令,可以导出整个数据库或指定的表或多个表的数据和结构。例如,备份整个数据库的命令是:mysqldump -u username -p password --all-databases > backup.sql。 2. 使用MySQL Workbench:通过Workbench工具,可以选择要备份数据库,点击导出功能,保存为备份文件。 3. 使用复制方式:通过设置主从关系,在从服务器上备份主服务器上的数据库。这种方式可以实现实时备份恢复方法: 1. 使用mysql命令:在命令行界面执行该命令,可以将备份文件导入到MySQL数据库中。例如,恢复备份的命令是:mysql -u username -p password dbname < backup.sql。 2. 使用MySQL Workbench:通过Workbench工具,选择要恢复数据库,点击导入功能,选择备份文件并导入到数据库中。 3. 使用复制方式:将备份文件拷贝到从服务器上,并在从服务器上执行复制和同步操作,将数据同步到从服务器中。 需要注意的是,备份过程中要保证数据库正常运行,避免损坏或数据丢失备份文件的存储也需要注意安全性,可以将备份文件保存到其他服务器或外部存储设备,以防止数据丢失。另外,定期进行备份,并测试恢复过程以验证备份文件的完整性和可用性,以确保备份可以成功恢复

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值