基于用户管理的备份与恢复

基于用户管理的备份是指使用OS命令来备份数据库物理文件(控制文件,数据文件,重做日志文件)。


用户管理的备份
数据库一致性备份既适用archivelog,也适用noarchivelog,数据库非一致性备份只适用于archivelog.
脱机备份会影响业务操作,联机备份不会影响业务操作。


备份数据库

数据库一致性备份:关闭数据库以后备份数据库物理文件,这时数据文件scn值完全一致,所以称之为数据库的一致性备份或冷备份,适用于归档模式与非归档模式。
基于用户管理的冷备份是指:在数据库shutdown状态下使用OS命令直接拷贝数据库物理文件(控制文件,数据文件,重做日志文件)。

数据库非一致性备份:在open状态下备份数据库物理文件,这时数据库内容可能会改变导致数据文件scn不一致,所以称之为数据库的非一致性备份或热备份,只适用于归档模式。

基于用户管理的备份与完全恢复(归档模式下),一例
1.在open状态下备份数据库物理文件(数据库非一致性备份,热备份,不影响业务运行)
2.删除数据文件来模拟文件丢失(只是删除了所有的数据文件;控制文件等其它文件处于正常状态)
3.对数据文件进行恢复
4.应用归档日志
5.查看数据是否完全恢复

SQL> conn evan/evan
Connected.
SQL> insert into t_evan values('oracle');

1 row created.

SQL> insert into t_evan values('java');

1 row created.

SQL> commit;

Commit complete.

SQL> select * from t_evan;

TEXT
--------------------------------------------------------------------------------
oracle
java

--sysdba执行备份
SQL> conn / as sysdba
Connected.
SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/oracle/10g/oracle/product/10.2.0/oradata/oralife/system01.dbf
/oracle/10g/oracle/product/10.2.0/oradata/oralife/undotbs01.dbf
/oracle/10g/oracle/product/10.2.0/oradata/oralife/sysaux01.dbf
/oracle/10g/oracle/product/10.2.0/oradata/oralife/users01.dbf
/oracle/10g/oracle/product/10.2.0/oradata/oralife/example01.dbf

SQL> alter database begin backup;

Database altered.

SQL> host cp /oracle/10g/oracle/product/10.2.0/oradata/oralife/*.dbf /oracle/10g/oracle/bakup/database/   --备份所有数据文件

SQL> alter database backup controlfile to '/oracle/10g/oracle/bakup/database/oralife.ctl';  --备份控制文件

Database altered.

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

忘记了alter database end backup;

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

SQL> alter system archive log current; --归档当前日志组

System altered.

使用rm删除所有数据文件(*.dbf);

SQL> conn evan/evan
Connected.
SQL> select * from t_evan;

TEXT
--------------------------------------------------------------------------------
oracle
java

SQL> insert into t_evan values('spring');

1 row created.

SQL> commit;

Commit complete.

SQL> ALTER SYSTEM CHECKPOINT; --将已修改的数据从高速缓存刷新到磁盘,并更新控制文件和数据文件

System altered.

SQL> ALTER SYSTEM SWITCH LOGFILE;  --日志切换

System altered.

查看alter_oralife.log出现错误信息:某某文件不存在等等等...

进行完全恢复
copy备份的数据文件到指定的目标位置,进行恢复
SQL> recover database --open状态
ORA-00283: recovery session canceled due to errors
ORA-01124: cannot recover data file 1 - file is in use or recovery
ORA-01110: data file 1:
'/oracle/10g/oracle/product/10.2.0/oradata/oralife/system01.dbf'


SQL> shutdown immediate --open状态
ORA-01122: database file 1 failed verification check
ORA-01110: data file 1: '/oracle/10g/oracle/product/10.2.0/oradata/oralife/system01.dbf'
ORA-01208: data file is an old version - not accessing current version
SQL> startup force mount;  --进入mount状态进行恢复
ORACLE instance started.

Total System Global Area  528482304 bytes
Fixed Size                  1220360 bytes
Variable Size             163578104 bytes
Database Buffers          356515840 bytes
Redo Buffers                7168000 bytes
Database mounted.
SQL> recover database
Media recovery complete.
SQL> alter database open;

Database altered.

SQL> conn evan/evan --使用evan登录查看恢复情况
Connected.
SQL> select * from t_evan;

TEXT
--------------------------------------------------------------------------------
oracle
java
spring

没有出现应用归档日志,应用归档日志有几种方式

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

备份表空间
脱机备份(归档模式)(不适用于system表空间与undo表空间,因为不能offline),在表空间处于offline状态下,备份表空间(copy对应的数据文件,影响业务),设置表空间状态为online。
联机备份(归档模式),在表空间处于online状态下,备份表空间(不影响业务):
alter tablespace users begin backup;
cp
alter tablespace users end backup;


所有的恢复应该尽量在open状态下完成。

基于用户管理的对数据文件进行恢复,在mount状态下,或open状态使数据文件处于offline,  然后复制数据文件到指定位置,最后recover database或datafile(将offline的数据文件online)。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值