如何实现数据库增量备份

如何实现数据库增量备份,第1张

1)建立增量备份RMAN>BACKUP INCREMENTAL LEVEL 0 FORMAT='/u01/backup/rmanbk/%d_%s.dbf' tablespace usersRMAN>BACKUP INCREMENTAL LEVEL 1 FORMAT='/u01/backup/rmanbk/%d_%s.dbf' tablespace usersRMAN>BACKUP INCREMENTAL LEVEL 2 FORMAT='/u01/backup/rmanbk/%d_%s.dbf' tablespace users(2)建立累积备份RMAN>BACKUP INCREMENTAL LEVEL 0 FORMAT='/u01/backup/rmanbk/%d_%s.dbf' tablespace usersRMAN>BACKUP INCREMENTAL LEVEL 2 FORMAT='/u01/backup/rmanbk/%d_%s.dbf' tablespace usersRMAN>BACKUP INCREMENTAL LEVEL 2 cumulative FORMAT='/u01/backup/rmanbk/%d_%s.dbf' tablespace usersRMAN>BACKUP INCREMENTAL LEVEL 1 FORMAT='/u01/backup/rmanbk/%d_%s.dbf' tablespace users

要求:本地已有生产数据库prod,制定rman备份策略,将数据备份到制定目录/oracle/rman_bk下。现在需要做恢复测试,验证备份出来的数据是有效的。且不影响原有的生产数据库prod。

解决思路:在备份出来的数据中(控制文件),包含了数据库名,数据文件,redo log等文件的存放路径,如果在本地直接做恢复,将和原有的数据库****,因此,需要修改这些信息,将备份出来的数据恢复到另外一个数据库中。具体步骤如下:

1.创建新数据库数据文件及跟踪文件存放目录

-bash-2.05b$mkdir -p /oracle/oradata/test

-bash-2.05b$mkdir -p /oracle/admin/test/bdump

-bash-2.05b$mkdir -p /oracle/admin/test/udump

-bash-2.05b$mkdir -p /oracle/admin/test/cdump

2.登录到生产数据库。查看当前数据文件信息:

-bash-2.05b$ sqlplus '/ as sysdba'

SQL>select file#,name from v$datafile

FILE# NAME

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

1 /oracle/oradata/test/system01.dbf

2 /oracle/oradata/test/undo01.dbf

3 /oracle/oradata/test/users01.dbf

3.利用rman更改数据文件存放路径并restore到新的路径

run {

set newname for datafile 1 to '/oracle/oradata/test/system01.dbf'

set newname for datafile 2 to '/oracle/oradata/test/undo01.dbf'

set newname for datafile 3 to '/oracle/oradata/test/users01.dbf'

restore datafile 1

restore datafile 2

restore datafile 3

}

4。重建控制文件

CREATE CONTROLFILE REUSE set DATABASE "test" RESETLOGS ARCHIVELOG

-- SET STANDBY TO MAXIMIZE PERFORMANCE

MAXLOGFILES 16

MAXLOGMEMBERS 2

MAXDATAFILES 30

MAXINSTANCES 1

MAXLOGHISTORY 453

LOGFILE

GROUP 1 '/oracle/oradata/test/redo01.log' SIZE 10M,

GROUP 2 '/oracle/oradata/test/redo02.log' SIZE 10M,

GROUP 3 '/oracle/oradata/test/redo03.log' SIZE 10M

-- STANDBY LOGFILE

DATAFILE

'/oracle/oradata/test/system01.dbf',

'/oracle/oradata/test/undo01.dbf',

'/oracle/oradata/test/users01.dbf'

CHARACTER SET ZHS16GBK

5.打开数据库

SQL>alter database open resetlogs

backup archivelog all delete input format '/rman/rman_%t_%s_%p.arc'

with a as

(select rownum p from dual connect by level<=21)

select

7 + CEIL(

(7 + CEIL(

(7 + CEIL(p/3))

/3))

/3)

from a

7+CEIL((7+CEIL((7+CEIL(p/3))/3))/3

本答案来自于互联网,仅供参考学习作用

如果您对我的回答有不满意的地方,还请您继续追问;

答题不易,互相理解,互相帮助!

源服务器和目的服务器的 *** 作系统,oracle版本均一致

一:在源服务器上使用rman备份数据库,包括数据文件,归档日志文件和控制文件,参数文件的备份

二:在目的服务器上复制备份数据,并准备好相关的目录

三:在目的服务器上进行恢复,指定DBID,需要和源服务器的DBID一致

启动数据库到nomount状态,这里需要前面创建initorcl.ora文件,否则将报错 恢复参数文件 重启实例到nomout状态 恢复控制文件 还原数据库文件 恢复数据库文件,这里将报错

在sqlplus中对数据库进行until cancel *** 作后以resetlogs方式打开


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10019771.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存