分享

数据迁移_把RAC环境备份的数据,恢复到另一台单机Oracle本地文件系统下

 印度阿三17 2019-04-10

数据迁移_把RAC环境备份的数据,恢复到另一台单机Oracle本地文件系统下

作者:Eric
微信:loveoracle11g


1、创建pfile文件
# su - ora11g
# cd $ORACLE_HOME/dbs
# vim initedms.ora

--------------------------------粘贴复制--------------------------------
db_name='edms'
memory_target=1G
processes=150
audit_file_dest='/ora11g/app/oracle/admin/edms/adump'
audit_trail='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='/ora11g/app/oracle/flash_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='/ora11g/app/oracle'
dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
open_cursors=300 
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
control_files=('/ora11g/app/oracle/oradata/edms/ora_control1.ctl','/ora11g/app/oracle/oradata/edms/ora_control2.ctl')
compatible='11.2.0.4'
log_archive_dest_1='location=/ora11g/app/oracle/oradata/arch'


创建参数文件中用到的目录
mkdir -p /ora11g/app/oracle/admin/edms/adump
mkdir -p /ora11g/app/oracle/oradata/edms
mkdir -p /ora11g/app/oracle/flash_recovery_area


登录sqlplus以修改后的pfile启动数据库到nomount
# export ORACLE_SID=edms
# sqlplus / as sysdba


SQL> startup nomount force ;


SQL> create spfile from pfile ;
SQL> show parameter spfile ;
SQL> exit ;


2、恢复控制文件controlfile
登录rman执行恢复最新的控制文件
# ls -ltr /backup/rman/edms/ctl*
-rw-r-----. 1 ora11g oinstall 18939904 Nov 22 16:56 /backup/rman/edms/ctl_file_0qtijmsh_1_1_20181119.bak

确定最新的控制文件备份
# export ORACLE_SID=edms
# rman target /

RMAN> restore controlfile from '/backup/rman/edms/ctl_file_0qtijmsh_1_1_20181119.bak' ;
RMAN> alter database mount ;


3、恢复数据文件
在rman里面敲
RMAN> catalog start with '/backup/rman/edms/' ;

输入:yes

run {
allocate channel c1 device type DISK;
allocate channel c2 device type DISK;
allocate channel c3 device type DISK;
allocate channel c4 device type DISK;
SET NEWNAME FOR DATABASE TO '/ora11g/app/oracle/oradata/edms/%U';
restore database;
switch datafile all;
switch tempfile all;
set until time "TO_DATE('11/19/2018 10:00:00', 'MM/DD/YYYY HH24:MI:SS')";
recover database delete archivelog;
release channel c1;
release channel c2;
release channel c3;
release channel c4;
}

月/日/年 时:分:秒


4、重命名Redo log文件
SQL> set linesize 200
SQL> select  'alter database rename file '''||MEMBER||''' to '''||'/ora11g/app/oracle/oradata/edms/'||regexp_substr(MEMBER,'[^\/] ',1,4)||''';' from v$logfile;

'ALTERDATABASERENAMEFILE'''||MEMBER||'''TO'''||'/ORA11G/APP/ORACLE/ORADATA/EDMS/'||REGEXP_SUBSTR(MEMBER,'[^\/] ',1,4)||''';'
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
alter database rename file ' DATADG/edms/onlinelog/group_5.358.989230181' to '/ora11g/app/oracle/oradata/edms/group_5.358.989230181';
alter database rename file ' FRADG/edms/onlinelog/group_5.1297.989230181' to '/ora11g/app/oracle/oradata/edms/group_5.1297.989230181';
alter database rename file ' DATADG/edms/onlinelog/group_2.357.989230179' to '/ora11g/app/oracle/oradata/edms/group_2.357.989230179';
alter database rename file ' FRADG/edms/onlinelog/group_2.510.989230179' to '/ora11g/app/oracle/oradata/edms/group_2.510.989230179';
alter database rename file ' DATADG/edms/onlinelog/group_1.356.989230179' to '/ora11g/app/oracle/oradata/edms/group_1.356.989230179';
alter database rename file ' FRADG/edms/onlinelog/group_1.1352.989230179' to '/ora11g/app/oracle/oradata/edms/group_1.1352.989230179';
alter database rename file ' DATADG/edms/onlinelog/group_3.361.989230385' to '/ora11g/app/oracle/oradata/edms/group_3.361.989230385';
alter database rename file ' FRADG/edms/onlinelog/group_3.1474.989230387' to '/ora11g/app/oracle/oradata/edms/group_3.1474.989230387';
alter database rename file ' DATADG/edms/onlinelog/group_4.362.989230387' to '/ora11g/app/oracle/oradata/edms/group_4.362.989230387';
alter database rename file ' FRADG/edms/onlinelog/group_4.1371.989230387' to '/ora11g/app/oracle/oradata/edms/group_4.1371.989230387';
alter database rename file ' DATADG/edms/onlinelog/group_6.363.989230387' to '/ora11g/app/oracle/oradata/edms/group_6.363.989230387';
alter database rename file ' FRADG/edms/onlinelog/group_6.832.989230387' to '/ora11g/app/oracle/oradata/edms/group_6.832.989230387';

12 rows selected.
执行上面生成的sql


上面有几个,就创建几个日志组,上面有6个。
SQL> alter database clear logfile group 1;
SQL> alter database clear logfile group 2;
SQL> alter database clear logfile group 3;
SQL> alter database clear logfile group 4;
SQL> alter database clear logfile group 5;
SQL> alter database clear logfile group 6;
SQL> alter database clear logfile group 7;
SQL> alter database clear logfile group 8;
SQL> alter database clear logfile group 9;
SQL> alter database clear logfile group 10;


SQL> ALTER DATABASE DISABLE BLOCK CHANGE TRACKING; # 报错不管它


5、打开数据库
SQL> alter database open resetlogs ;


重启数据库
SQL> startup force ;


6、检查
看参数文件
SQL> show parameter spfile ;

看控制文件
SQL> select NAME from v$controlfile ;

看数据文件
SQL> select NAME from v$datafile ;

看日志文件
SQL> select MEMBER from v$logfile ;

 

来源:http://www./content-2-160451.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多