数据库重演(rac转单机)

数据库重演








一、 测试背景
二、 测试概况
l 时间、地点
l 测试主要目的
l 主要工作内容
三、 测试环境
测试环境
数据库环境
四、 测试步骤及结果
五、总结





测试背景

我公司核心数据库采用的是centos操作系和oracle 11g数据库。备份方式采用了物理备份以及逻辑备份两种方式,将备份放在本地。生产环境为rac,测试环境为单实例文件系统,
需要将生产rac的备份转为测试环境单实例的oracle数据库。
此次测试模拟生产数据库、主机发生灾难后的数据恢复全过程,为灾难恢复提供经验。

测试概况

时间、地点

时间:2016年7月
地点:北京中数智汇有限公司

测试主要目的

验证数据库备份在主机发生灾难后的可恢复性
验证数据库备份的有效性

主要工作内容

  1. 在测试服务器上安装和生产相同版本的oracle软件
  2. 将生产的oracle的物理备份和逻辑备份分别传到测试服务器上
  3. 分别验证rman 物理备份和逻辑备份

 

测试数据

物理备份恢复:
测试数据随机选择生产一个月内的物理备份,本次数据库重演测试选择20151226日的
备份数据进行测试环境的上的演练。
逻辑备份恢复:
测试数据随机选择生产一个月内的逻辑备份,本次数据库重演测试选择20151229日的
备份数据进行测试环境的上的演练。

测试环境

测试环境

机器类型

Os类型

主机名称

Ip地址

备注

Dell

6.6

Node

192.168.11.17

将生产rac备份的恢复成单实例

 



注:物理备份压缩后大概33G左右,逻辑备份10G左右

测试步骤及结果

  • 物理备份恢复

 

  1. 恢复参数文件
  2. 恢复控制文件
  3. 恢复数据文件
  4. 打开数据库
  5. 验证数据

 

  1. 将生产备份上传至测试服务器并且解压备份
  2. 切换实例sid: export ORALCE_SID=DAAS
  3. rman target / startup nomount
  4. 还原参数文件并修改文件

1)根据备份还原参数文件
RMAN> restore spfile to '/backup/tt1.txt' from '/backup/ RmanBackup /full_DAAS_894574806_325_1';
RMAN> shutdown immediate
2)修改参数文件
[oracle@node backup]$strings tt.txt >tt1.txt
[oracle@node backup]$ vi tt1.txt
*.memory_target=20000M
*.audit_file_dest='/u01/app/oracle/admin/DAAS/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='/data/DAAS/control01.ctl','/data/DAAS/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='DAAS'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=DAASXDB)'
*.job_queue_processes=1000
*.open_cursors=350
*.parallel_max_servers=8
*.processes=1500
*.remote_login_passwordfile='exclusive'
*.session_cached_cursors=300
undo_tablespace='UNDOTBS1'
undo_tablespace='UNDOTBS2'
注:需要创建adump目录和控制文件的目录
Startup nomount pfile='tt1.txt'
3)创建spfile文件
Create spifle from pfile='/backup/tt1.txt';
或者 create spfile from memory;
Startup force
注:将数据库启动到nomount 状态;

  1. 还原控制文件

restore controlfile from '/backup/RmanBackup/20151226/ctl_DAAS_899504029_1030_1';
注:将数据库启动到mount状态
将备份集注册到数据库中:
catalog start with '/backup/20160625';

  1. 恢复数据文件

1restore 数据文件
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
allocate channel c5 type disk;
allocate channel c6 type disk;
set newname for datafile '+DG1/daas/system01.dbf' to '/data/DAAS/system01.dbf';
set newname for datafile '+DG1/daas/sysaux01.dbf' to '/data/DAAS/sysaux01.dbf';
set newname for datafile '+DG1/daas/undotbs01.dbf' to '/data/DAAS/undotbs01.dbf';
set newname for datafile '+DG1/daas/users01.dbf' to '/data/DAAS/users01.dbf';
set newname for datafile '+DG1/daas/undotbs02.dbf' to '/data/DAAS/undotbs02.dbf';
set newname for datafile '+DG1/daas/gsinfo_data01.dbf' to '/data/DAAS/gsinfo_data01.dbf';
set newname for datafile '+DG1/daas/apex01.dbf' to '/data/DAAS/apex01.dbf';
set newname for datafile '+DG1/daas/datafile/mgmt_ecm_depot_ts.272.890044487' to '/data/DAAS/mgmt_ecm_depot_ts.272.890044487';
set newname for datafile '+DG1/daas/datafile/mgmt_tablespace.283.890044487' to '/data/DAAS/mgmt_tablespace.283.890044487';
set newname for datafile '+DG1/daas/datafile/mgmt_ad4j_ts.284.890044489' to '/data/DAAS/mgmt_ad4j_ts.284.890044489';
restore database  skip tablespace DATAMART ;
switch datafile all;
}
2recover 数据文件
recover database  skip tablespace DATAMART ;
recover database skip tablespace DATAMART until scn 6711709887;
3)恢复redo文件

alter database rename file '+DG1/daas/redo01a.log' to '/data/DAAS/redo1a.log';
alter database rename file '+DG1/daas/redo01b.log' to '/data/DAAS/redo1b.log';
alter database rename file '+DG1/daas/redo03a.log' to '/data/DAAS/redo3a.log';
alter database rename file '+DG1/daas/redo03b.log' to '/data/DAAS/redo3b.log';
alter database rename file '+DG1/daas/redo02a.log' to '/data/DAAS/redo2a.log';
alter database rename file '+DG1/daas/redo04a.log' to '/data/DAAS/redo4a.log';
alter database rename file '+DG1/daas/redo04b.log' to '/data/DAAS/redo4b.log';
alter database rename file '+DG1/daas/redo02b.log' to '/data/DAAS/redo2b.log';
alter database rename file '+DG1/daas/redo05a.log' to '/data/DAAS/redo5a.log';
alter database rename file '+DG1/daas/redo05b.log' to '/data/DAAS/redo5b.log';
alter database rename file '+DG1/daas/redo06a.log' to '/data/DAAS/redo6a.log';
alter database rename file '+DG1/daas/redo06b.log' to '/data/DAAS/redo6b.log';

  1. 打开数据库

alter database open resetlogs;
如果报错如下:

·          

o     

§   

§   

§   

§   

§   

§   

§   

·          

o    ----------------------------------------- ----------------*
1 500M CLEARING_CURRENT
3 500M CLEARING
5 500M CLEARING
4 500M CLEARING
6 500M CLEARING
2 500M CLEARING_CURRENT
6 rows selected.
SQL> alter database clear logfile group 1;
Database altered.
SQL> alter database clear logfile group 2;
Database altered.
SQL> alter database open resetlogs;

  1. 修改临时表空间数据文件


1)删除老的表空间文件
alter database tempfile '+DG1/daas/temp01.dbf' drop;
2)添加新位置临时表空间文件
alter tablespace temp add tempfile '/data/DAAS/temp01.dbf' size 20G autoextend on maxsize unlimited;

7、验证数据
--源端
Spool /backup/count.sql
select 'select count(*) from '|| table_name||';' from user_tables;
Spool off
select count* from gsinfo.t_order where to_char(submit_time,'yyyy-mm-dd hh24:mi:ss') between '2016-06-25 00:00:00' and '2016-06-25 22:00:00';
COUNT*
----------
743113
--目标端
gsinfo下执行count.sql 进行数据统计
select count* from gsinfo.t_order where to_char(submit_time,'yyyy-mm-dd hh24:mi:ss') between '2016-06-25 00:00:00' and '2016-06-25 22:00:00';
COUNT*
----------
743113

  • 逻辑备份恢复

 

  1. 创建逻辑目录
  2. 创建表空间,并这只默认表空间
  3. 创建用户、并授权
  4. 将备份上传到虚拟目录里
  5. 导入备份
  6. 验证数据


步骤:

  1. 创建逻辑目录


create directory data as '/backup';
grant read,write on directory data to system;

  1. 创建表空间


create bigfile tablespace data datafile '/database/test/data01.dbf' size 30G autoextend on maxsize unlimited extent management local segment space management auto;
alter database default tablespace data;

  1. 创建用户

create user gsinfo identified by oracle;
grant create session to gsinfo;
grant resource to gsinfo;

  1. 将备份上传到虚拟目录里


5、导入备份
impdp \'/ as sysdba\' directory=data dumpfile= gsinfo_20151229.dmp schemas=gsinfo
6、验证数据
--源端
Spool /backup/count.sql
select 'select count(*) from '|| table_name||';' from user_tables;
Spool off
--目标端
gsinfo下执行count.sql 进行数据统计

五、总结


物理备份:
物理备份在测试环境正常恢复,物理备份重演成功。
逻辑备份:
逻辑备份在测试环境正常恢复,逻辑备份重演成功。
建议:最好将生产数据库的备份每个月又一次在测试环境至少重演一次,保证数据库备份的有效性。

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

转载于:http://blog.itpub.net/30345407/viewspace-2130315/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值