oracle11g 从云上迁移落到本地
2016-04-06 22:15
281 查看
1,在azure上开始备份
以前因为测试环境服务器不够,所以在云上临时分配了几台oracle服务器,现在从idc退回了几台性能好的db服务器,所以要将云上临时分片的oracle迁移到退回的这几台服务器上。先在云上进行rman全备份:
[root@yueworldoracle ~]# bash -x /oracle/backup/scripts/rman_full_backup.sh ++ date +%F + export DATE=2016-04-05 + DATE=2016-04-05 + export BACK_DIR=/data/backup/data + BACK_DIR=/data/backup/data + su - oracle -c ' mkdir -p /data/backup/data/2016-04-05 rman log=/data/backup/data/2016-04-05/rman_backup.log target / <<EOF run{ backup as compressed backupset database format '\''/data/backup/data/2016-04-05/full_%d_%T_%s.bak'\'' plus archivelog format '\''/data/backup/data/2016-04-05/arch_%d_%T_%s.bak'\'' delete input; sql '\''alter system archive log current'\''; } crosscheck backup; crosscheck archivelog all; delete noprompt expired backup; delete noprompt expired archivelog all; delete noprompt obsolete; exit EOF ' RMAN> 2> 3> 4> 5> 6> 7> RMAN> RMAN> RMAN> RMAN> RMAN> RMAN> + su - oracle -c ' chmod 775 /data/backup/data/2016-04-05/* ' + echo 'begin to copy the backup to pd servers.' + echo 'end to copy the backup to pd server.' [root@yueworldoracle ~]# |
2,重新备份控制文件
查看备份控制文件,发现在backup集合中没有找到:RMAN> list backup of spfile; using target database control file instead of recovery catalog specification does not match any backup in the repository RMAN> |
所以自己手动备份一个:
RMAN> backup current controlfile; Starting backup at 05-APR-16 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=45 device type=DISK channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set including current control file in backup set channel ORA_DISK_1: starting piece 1 at 05-APR-16 channel ORA_DISK_1: finished piece 1 at 05-APR-16 piece handle=/oracle/app/oracle/flash_recovery_area/PDUNQ/backupset/2016_04_05/o1_mf_ncnnf_TAG20160405T225847_cj7noc77_.bkp tag=TAG20160405T225847 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:04 Finished backup at 05-APR-16 Starting Control File and SPFILE Autobackup at 05-APR-16 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03009: failure of Control File and SPFILE Autobackup command on ORA_DISK_1 channel at 04/05/2016 22:58:57 ORA-19504: failed to create file "/pddata2/oracle/backup/data/ctl_auto/c-3391761643-20160405-01" ORA-27041: unable to open file Linux-x86_64 Error: 2: No such file or directory Additional information: 9 RMAN> |
RMAN> list backup of controlfile; List of Backup Sets =================== BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 5243 Full 18.33M DISK 00:00:06 05-APR-16 BP Key: 5247 Status: AVAILABLE Compressed: NO Tag: TAG20160405T225847 Piece Name: /oracle/app/oracle/flash_recovery_area/PDUNQ/backupset/2016_04_05/o1_mf_ncnnf_TAG20160405T225847_cj7noc77_.bkp Control File Included: Ckp SCN: 11981165464 Ckp time: 05-APR-16 RMAN> |
3,备份参数文件
SQL> create pfile='/oracle/pfile_20160405.ora' from spfile; File created. SQL> |
4,进行备份文件传输
因为是azure云环境传输到自己机房,所以未来防止网络传输过程中小文件被丢失的情况,先把所有的备份文件都统一copy到2016-04-05文件夹里面去,然后进行压缩:tar -zcvf 2016-04-05.tar.gz 2016-04-05,然后进行传输一个大大的压缩包即可,这样能保证传输过程的安全和稳定,如下所示:[root@yueworldoracle data]# tar -zcvf 2016-04-05.tar.gz 2016-04-05 2016-04-05/ 2016-04-05/arch_POWERDES_20160405_5593.bak 2016-04-05/full_POWERDES_20160405_5595.bak 2016-04-05/arch_POWERDES_20160405_5594.bak 2016-04-05/rman_backup.log 2016-04-05/arch_POWERDES_20160405_5591.bak 2016-04-05/arch_POWERDES_20160405_5596.bak 2016-04-05/arch_POWERDES_20160405_5592.bak 2016-04-05/arch_POWERDES_20160405_5590.bak [root@yueworldoracle data]# [root@yueworldoracle data]# time scp /data/backup/data/2016-04-05.tar.gz oracle@192.168.121.61:/oracle/ oracle@192.168.121.61's password: 2016-04-05.tar.gz 100% 10GB 6.1MB/s 28:55 real 28m57.412s user 1m1.240s sys 0m27.539s You have new mail in /var/spool/mail/root [root@yueworldoracle data]# |
5,在恢复的oracle服务器上以nomount方式启动数据库
先进行解压缩:[root@chhj_test_121_61 oradata]# tar -xvf 2016-04-05.tar.gz 2016-04-05/ 2016-04-05/arch_POWERDES_20160405_5593.bak 2016-04-05/full_POWERDES_20160405_5595.bak 2016-04-05/arch_POWERDES_20160405_5594.bak 2016-04-05/rman_backup.log 2016-04-05/arch_POWERDES_20160405_5591.bak 2016-04-05/arch_POWERDES_20160405_5596.bak 2016-04-05/arch_POWERDES_20160405_5592.bak 2016-04-05/arch_POWERDES_20160405_5590.bak [root@chhj_test_121_61 oradata]# |
SQL> startup nomount pfile='/oracle/pfile_20160405.ora'; ORACLE instance started. Total System Global Area 1.1358E+10 bytes Fixed Size 2216744 bytes Variable Size 7650413784 bytes Database Buffers 3690987520 bytes Redo Buffers 13946880 bytes SQL> |
6,恢复控制文件
RMAN> restore controlfile to '/home/oradata/powerdes/control01.ctl' from '/oracle/o1_mf_ncnnf_TAG20160405T225847_cj7noc77_.bkp' ; Starting restore at 06-APR-16 using channel ORA_DISK_1 channel ORA_DISK_1: restoring control file channel ORA_DISK_1: restore complete, elapsed time: 00:00:01 Finished restore at 06-APR-16 RMAN> |
7,将数据库改成mount
RMAN> alter database mount; database mounted released channel: ORA_DISK_1 RMAN> |
8,注册备份文件集
RMAN> catalog start with '/home/oradata/2016-04-05'; Starting implicit crosscheck backup at 06-APR-16 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=1153 device type=DISK Crosschecked 7 objects Finished implicit crosscheck backup at 06-APR-16 Starting implicit crosscheck copy at 06-APR-16 using channel ORA_DISK_1 Crosschecked 2 objects Finished implicit crosscheck copy at 06-APR-16 searching for all files in the recovery area cataloging files... no files cataloged searching for all files that match the pattern /home/oradata/2016-04-05 List of Files Unknown to the Database ===================================== File Name: /home/oradata/2016-04-05.tar.gz File Name: /home/oradata/2016-04-05/arch_POWERDES_20160405_5592.bak File Name: /home/oradata/2016-04-05/arch_POWERDES_20160405_5596.bak File Name: /home/oradata/2016-04-05/rman_backup.log File Name: /home/oradata/2016-04-05/full_POWERDES_20160405_5595.bak File Name: /home/oradata/2016-04-05/arch_POWERDES_20160405_5590.bak File Name: /home/oradata/2016-04-05/arch_POWERDES_20160405_5594.bak File Name: /home/oradata/2016-04-05/arch_POWERDES_20160405_5593.bak File Name: /home/oradata/2016-04-05/arch_POWERDES_20160405_5591.bak Do you really want to catalog the above files (enter YES or NO)? YES cataloging files... cataloging done List of Cataloged Files ======================= File Name: /home/oradata/2016-04-05/arch_POWERDES_20160405_5592.bak File Name: /home/oradata/2016-04-05/arch_POWERDES_20160405_5596.bak File Name: /home/oradata/2016-04-05/full_POWERDES_20160405_5595.bak File Name: /home/oradata/2016-04-05/arch_POWERDES_20160405_5590.bak File Name: /home/oradata/2016-04-05/arch_POWERDES_20160405_5594.bak File Name: /home/oradata/2016-04-05/arch_POWERDES_20160405_5593.bak File Name: /home/oradata/2016-04-05/arch_POWERDES_20160405_5591.bak List of Files Which Where Not Cataloged ======================================= File Name: /home/oradata/2016-04-05.tar.gz RMAN-07517: Reason: The file header is corrupted File Name: /home/oradata/2016-04-05/rman_backup.log RMAN-07517: Reason: The file header is corrupted RMAN> |
9,开始执行restore恢复操作,将数据从备份集写入到磁盘上的数据文件里面,还原已经备份的数据文件
RMAN> restore database; Starting restore at 06-APR-16 using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile backup set restore channel ORA_DISK_1: specifying datafile(s) to restore from backup set channel ORA_DISK_1: restoring datafile 00001 to /home/oradata/powerdes/system01.dbf channel ORA_DISK_1: restoring datafile 00002 to /home/oradata/powerdes/sysaux01.dbf channel ORA_DISK_1: restoring datafile 00003 to /home/oradata/powerdes/undotbs01.dbf channel ORA_DISK_1: restoring datafile 00004 to /home/oradata/powerdes/users01.dbf channel ORA_DISK_1: restoring datafile 00005 to /home/oradata/powerdes/powerdesk01.dbf channel ORA_DISK_1: restoring datafile 00006 to /home/oradata/powerdes/plas01.dbf channel ORA_DISK_1: restoring datafile 00007 to /home/oradata/powerdes/pl01.dbf channel ORA_DISK_1: restoring datafile 00008 to /home/oradata/powerdes/help01.dbf channel ORA_DISK_1: restoring datafile 00009 to /home/oradata/powerdes/adobelc01.dbf channel ORA_DISK_1: restoring datafile 00010 to /home/oradata/powerdes/sms01.dbf channel ORA_DISK_1: restoring datafile 00011 to /home/oradata/powerdes/plcrm01.dbf channel ORA_DISK_1: restoring datafile 00012 to /home/oradata/powerdes/powerdesk02.dbf channel ORA_DISK_1: restoring datafile 00013 to /home/oradata/powerdes/datagm01.dbf channel ORA_DISK_1: reading from backup piece /home/oradata/2016-04-05/full_POWERDES_20160405_5595.bak channel ORA_DISK_1: piece handle=/home/oradata/2016-04-05/full_POWERDES_20160405_5595.bak tag=TAG20160405T204221 channel ORA_DISK_1: restored backup piece 1 channel ORA_DISK_1: restore complete, elapsed time: 00:18:35 Finished restore at 06-APR-16 RMAN> |
10,recover database应用归档日志恢复数据文件
开始recoverdatabase恢复:RMAN> recover database; Starting recover at 06-APR-16 using channel ORA_DISK_1 starting media recovery channel ORA_DISK_1: starting archived log restore to default destination channel ORA_DISK_1: restoring archived log archived log thread=1 sequence=301 channel ORA_DISK_1: restoring archived log archived log thread=1 sequence=302 channel ORA_DISK_1: reading from backup piece /home/oradata/2016-04-05/arch_POWERDES_20160405_5596.bak channel ORA_DISK_1: piece handle=/home/oradata/2016-04-05/arch_POWERDES_20160405_5596.bak tag=TAG20160405T222327 channel ORA_DISK_1: restored backup piece 1 channel ORA_DISK_1: restore complete, elapsed time: 00:00:04 archived log file name=/oracle/app/oracle/flash_recovery_area/PDUNQ/archivelog/2016_04_06/o1_mf_1_301_cj7w0c0c_.arc thread=1 sequence=301 channel default: deleting archived log(s) archived log file name=/oracle/app/oracle/flash_recovery_area/PDUNQ/archivelog/2016_04_06/o1_mf_1_301_cj7w0c0c_.arc RECID=85662 STAMP=908413453 archived log file name=/oracle/app/oracle/flash_recovery_area/PDUNQ/archivelog/2016_04_06/o1_mf_1_302_cj7w0c33_.arc thread=1 sequence=302 channel default: deleting archived log(s) archived log file name=/oracle/app/oracle/flash_recovery_area/PDUNQ/archivelog/2016_04_06/o1_mf_1_302_cj7w0c33_.arc RECID=85661 STAMP=908413453 unable to find archived log archived log thread=1 sequence=303 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of recover command at 04/06/2016 01:04:18 RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 303 and starting SCN of 11981163537 RMAN> |
RMAN> recover database until scn 11981163537; Starting recover at 06-APR-16 using channel ORA_DISK_1 starting media recovery media recovery complete, elapsed time: 00:00:01 Finished recover at 06-APR-16 RMAN> |
11,开始打开数据库
RMAN> alter database open resetlogs; database opened RMAN> |
12,验证测试数据库
做tnsname配置:[oracle@chhj_test_121_61 admin]$ more tnsnames.ora # tnsnames.ora Network Configuration File: /oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora # Generated by Oracle configuration tools. EARTH61 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.121.61)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = powerdes) ) ) [oracle@chhj_test_121_61 admin]$ |
[oracle@chhj_test_121_61 admin]$ rlwrap sqlplus powerdesk/earthyueworld0311@EARTH61; SQL*Plus: Release 11.2.0.1.0 Production on Wed Apr 6 01:24:28 2016 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> SQL> SQL> create table z_te(id number); Table created. SQL> insert into z_te(id)values(1); 1 row created. SQL> commit; Commit complete. SQL> select * from z_te; ID ---------- 1 SQL> drop table z_te; Table dropped. SQL> select * from z_te; select * from z_te * ERROR at line 1: ORA-00942: table or view does not exist SQL> |
相关文章推荐
- Oracle学习笔记(五)——Oracle表的管理
- Oracle学习笔记(四)——上机练习一
- oracle PL/SQL小结
- Oracle数据库远程连接配置教程
- TimesTen与Oracle字符集查询
- SQL按时间段统计(5分钟统计一次访问量为例,oracle统计)
- oracle序列详解
- oracle sql语句查询时 表名和字段名要加双引号的问题详解,oraclesql
- Oracle 外连接和 (+)号的用法
- oracle 报错
- ORACLE执行计划学习总结
- oracle性能优化总结
- oracle case when 简单列子
- JAVA9将于2017年3月份发布,中国Java用户有什么反馈请赶紧提,我们一起整理给Oracle.
- 关于oracle优化的策略等SQL
- Oracle analytic function入门
- oracle在cmd下通过命令导入导出数据
- 在JSP中获取oracle中的时间戳类型的字段并显示
- oracle,把A表在B表没有的字段数据插入到B中
- .Net使用Oracle驱动访问数据库