设为首页 收藏本站
查看: 548|回复: 0

[经验分享] Oracle数据库的热备份与完整恢复测试

[复制链接]

尚未签到

发表于 2016-7-22 11:12:25 | 显示全部楼层 |阅读模式
数据库热备份与完整恢复测试:
1.首先,必需保证数据库在归档模式下。

2.热备份数据文件,通过alter tablespace xxx begin backup把表空间设为备份状态,可以手工或在sql下运行host copy把数据文件复制到指定地方,最后把表空间改为正常状态(alter tablepace xxx end backup)。

3.数据库恢复:使用语句rcover datafile,alter database open即可以实现数据库的完整恢复。

 

具体的步骤如下:

SQL> conn / as sysdba

已连接。

//确定数据库在归档模式下。

SQL> select log_mode from v$database;

LOG_MODE

------------

ARCHIVELOG

//查询表空间对应的数据文件,一般表空间名跟对应数据文件名是相同的,可以跳过这一步。

SQL> select v$tablespace.name,v$datafile.name from v$tablespace, v$datafile

2 where v$tablespace.ts#=v$datafile.ts#;

NAME

------------------------------

NAME

--------------------------------------------------------------------------------

SYSTEM

F:\ORACLE\ORADATA\EBOOK\SYSTEM01.DBF

UNDOTBS1

F:\ORACLE\ORADATA\EBOOK\UNDOTBS01.DBF

CWMLITE

F:\ORACLE\ORADATA\EBOOK\CWMLITE01.DBF

DRSYS

F:\ORACLE\ORADATA\EBOOK\DRSYS01.DBF

EXAMPLE

F:\ORACLE\ORADATA\EBOOK\EXAMPLE01.DBF

INDX

F:\ORACLE\ORADATA\EBOOK\INDX01.DBF

ODM

F:\ORACLE\ORADATA\EBOOK\ODM01.DBF

TOOLS

F:\ORACLE\ORADATA\EBOOK\TOOLS01.DBF

USERS

F:\ORACLE\ORADATA\EBOOK\USERS01.DBF

XDB

F:\ORACLE\ORADATA\EBOOK\XDB01.DBF

已选择10行。

//将表空间设为备份状态.

SQL> alter tablespace system begin backup;

表空间已更改。

//将数据文件备份到目录f:\oracle\backuparea下.

SQL> host copy f:\oracle\oradata\ebook\system01.dbf f:\oracle\backuparea\

已复制 1 个文件。

SQL> alter tablespace system end backup;

表空间已更改。

/建表test的目的为测试此恢复是否是完整恢复。

SQL> create table scott.test(t int);

表已创建。

SQL> insert into scott.test values(1);

已创建 1 行。

SQL> insert into scott.test values(2);

已创建 1 行。

SQL> commit;

提交完成。

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

//删除system01.dbf或移动到其他目录造成数据库崩溃。

SQL> startup

ORACLE 例程已经启动。

Total System Global Area 135338868 bytes

Fixed Size 453492 bytes

Variable Size 109051904 bytes

Database Buffers 25165824 bytes

Redo Buffers 667648 bytes

数据库装载完毕。

ORA-01157: 无法标识/锁定数据文件 1 - 请大家参阅 DBWR 跟踪文件

ORA-01110: 数据文件 1: 'F:\ORACLE\ORADATA\EBOOK\SYSTEM01.DBF'

//将备份的数据文件复制回目录f:\oracle\oradata\ebook\下.

SQL> $ copy f:\oracle\backuparea\system01.dbf f:\oracle\oradata\ebook\

已复制 1 个文件。

//恢复数据文件system01.dbf。

SQL> recover datafile 'f:\oracle\oradata\ebook\system01.dbf';

完成介质恢复。

SQL> alter database open;

数据库已更改。

//此说明数据库是完整恢复了。

SQL> select * from scott.test;

T

----------

1

2

总结:

1.热备份必须在数据库归档模式下进行

2.在备份的同时,数据库的用户可以进行操作。因此,数据库对应的物理文件的内容是不断变化的,对这些物理文件内容的更新是保留到有关操作已经写到重做日至文件中

后再进行。(这句引自别人叙述,我对后半句正确与否存在疑问,希望大家讨论)。

3.归档日志必须是备份后的所有日至才可以实现数据库的完全恢复。

4.可以备份除临时文件以外的所有数据文件,如果在恢复过程中,发现损坏的是多个数据文件,即可以采用一个一个数据文件的恢复方法

5。 特别当损坏的不是系统表空间,可以先将损坏的表空间文件脱机,这时可以在恢复损坏文件前打开

数据库,再完成恢复。例如:

SQL> alter tablespace tools begin backup;

表空间已更改。

SQL> $ copy f:\oracle\oradata\ebook\tools01.dbf f:\oracle\backuparea

已复制 1 个文件。

SQL> alter tablespace tools end backup;

表空间已更改。

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

//删除tools01.dbf造成数据库无法正常启动.

SQL> startup

ORACLE 例程已经启动。

Total System Global Area 135338868 bytes

Fixed Size 453492 bytes

Variable Size 109051904 bytes

Database Buffers 25165824 bytes

Redo Buffers 667648 bytes

数据库装载完毕。

ORA-01157: 无法标识/锁定数据文件 8 - 请参阅 DBWR 跟踪文件

ORA-01110: 数据文件 8: 'F:\ORACLE\ORADATA\EBOOK\TOOLS01.DBF'

SQL> alter database datafile 'f:\oracle\oradata\ebook\tools01.dbf' offline;

数据库已更改。

SQL> alter database open;

数据库已更改。

SQL> $ copy f:\oracle\backuparea\tools01.dbf f:\oracle\oradata\ebook\

已复制 1 个文件。

SQL>recover datafile 'f:\oracle\oradata\ebook\tools01.dbf';

介质恢复完成。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-247825-1-1.html 上篇帖子: oracle删除正在连接的用户(oracle 11.2.0.2之前) 下篇帖子: 无法启动oracle控制台的解决方案
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表