Oracle数据库冷备份与恢复

接着上篇,由于无法搭建dg,业务方让把现在的主库数据克隆一份到之前准备的从库服务器。由于两个服务器目录结构都是一样的,又有足够停机时间,直接停了主库服务将物理文件传到从服务器对应位置,startup即可,真是比其他恢复方法简单很多。

对应之前有主从关系的DB,若想将其中一台或几台迁移至其他服务器,也可以使用冷备份恢复的方法,恢复之后仅需修改监听配置即可保留原先的主从关系,不需重新配置。另外也顺便搜集了一下各种情况下的冷备份与恢复,以防万一。

一、 冷备份

1. 查询物理文件位置

--参数文件(密码文件一般与参数文件位置相同,也要备份)
show parameter pfile;
--控制文件
select name from v$controlfile;
--数据文件
select name from v$datafile;
--重做日志文件
select member from v$logfile;
--临时文件
select name from v$tempfile;

2. 关闭数据库

shutdown immediate

3. 复制所有文件到目标位置

若用于数据克隆或者迁移,目标服务器目录结构最好与源服务器一模一样,将各个文件复制回对应位置,后面会非常省事。

4. 启动数据库

startup

二、 冷恢复

具体恢复方法视实际场景而定,主要有以下几种:

  • 在原库恢复:

           ① 原库为非归档模式

           ② 原库为归档模式

                       A. 希望恢复到备份时间点

                       B. 希望恢复到最近时间点

                       C. 希望恢复到指定时间点

  • 异机恢复

          ① 目录结构与原服务器完全相同

          ② 目录结构与原服务器不完全相同(越不同越复杂,在原库恢复可能也有这个问题,这里一并讨论了)

下面分别来讨论以上情况:

1. 在原库恢复(非归档模式)

其实这是最简单的恢复方式,但由于没有归档,只能恢复到备份时间点,若备份后有过修改,修改会全部丢失。

shutdown immediate

mv走前面备份过的文件(不要删,万一备份的文件有问题原来的文件又删了就哭了)

将备份文件cp回原先对应位置

startup

正常应该能直接起来,如果起不来,看看alert文件是不是那么衰备份文件有问题了。。。

2. 在原库恢复(归档模式)

A. 希望恢复到备份时间点

这个其实跟上面的恢复步骤是一样的,这里不再多说了。

B. 希望恢复到最近时间点

首先备份之后到崩溃时的归档和redo日志必须还在,否则只能执行不完全恢复。

若只是数据文件丢失或损坏,控制文件还在

shutdown immediate

mv走损坏的数据文件

将备份文件cp回原先对应位置

startup mount

--若控制文件未丢失,直接执行
recover database;

-- 应用完日志后open db
alter database open;

若控制文件全部丢失,或控制文件与数据文件都丢失

shutdown immediate

mv走损坏的控制文件

将备份文件cp回原先对应位置

startup mount

--使用冷备的控制文件恢复时,执行以下命令告诉oracle不要以冷备的控制文件中的scn作为恢复终点
recover database using backup controlfile;
--会提示Specify log: {=suggested | filename | AUTO | CANCEL},一般选AUTO;注意AUTO不会自动应用redo日志,需在归档日志应用完后输入redo日志路径,让其应用
-- 应用完日志后open db
alter database open resetlogs;

C. 希望恢复到最近时间点

与完全恢复类似,只是在recover时指定要恢复到的时间和SCN。例如数据文件丢失或损坏

shutdown immediate

mv走损坏的控制文件

将备份文件cp回原先对应位置

startup mount

recover database until time '2019-11-04 12:33:08';

-- 应用完日志后open db
alter database open resetlogs;

3. 异机恢复

① 目录结构与原服务器完全相同

将各文件拷贝到对应位置,startup起库即可。

② 目录结构与原服务器不完全相同

A. 若控制文件位置不同,修改参数文件中control_file参数后再用新参数文件启动

B. 若数据文件或redo日志位置不同,startup mount,使用alter database rename file '旧文件名' to '新文件名';重命名文件后再open数据库。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hehuyi_In

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值