网站首页 > 技术教程 正文
概述
继续上一篇rman跨版本恢复的内容,今天主要分享在目的端恢复的过程,下面一起来看看吧!
因为目标数据库已经有实例,但不需要的,所以这里需要先删除一下。
1、删除安装oracle数据库时的实例
cmd> dbca
2、创建一个空的数据库实例
cmd> oradim -new -sid orcl -startmode a cmd> rman target / nocatalog
3、编辑pfile文件
因为源数据库是32G内存,目的数据库是8G内存,所以需编辑pfile文件
--8G参考
*.audit_file_dest='F:\app\Administrator\admin\orcl\adump' *.audit_trail='db' *.compatible='11.2.0.4.0' *.control_files='F:\app\Administrator\oradata\orcl\control01.ctl','F:\app\Administrator\fast_recovery_area\orcl\control02.ctl' *.db_block_size=8192 *.db_domain='' *.db_name='orcl' *.db_recovery_file_dest='F:\app\Administrator\fast_recovery_area' *.db_recovery_file_dest_size=107374182400 *.diagnostic_dest='F:\app\Administrator' *.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)' *.log_archive_format='F:\app\Administrator\fast_recovery_area\orcl\archivelog\archivelog_%t_%s_%r.arc' *.memory_target=3722444800 *.open_cursors=2000 *.processes=900 *.remote_login_passwordfile='EXCLUSIVE' *.resource_limit=FALSE *.undo_retention=900 *.undo_tablespace='UNDOTBS1'
4、创建对应目录及授权
--根据前面pfile文件所涉及的目录创建 F:\app\Administrator\oradata\orcl\ F:\app\Administrator\flash_recovery_area\orcl\ F:\app\Administrator\flash_recovery_area\orcl\archivelog\
5、利用参数文件打开实例到nomount模式。
SQL> startup force nomount pfile='E:\rmanbackup\pfile.ora'; SQL> create spfile from pfile='E:\rmanbackup\pfile.ora';
重要:根据修改好的pfile创建新的spfile。
sql > create spfile from pfile;
原因:下次重启oracle的时候,oracle优先用spfile打开数据库,如果spfile还是旧的话,那么就会报错,打不开数据库。
6、恢复控制文件
--恢复控制文件到参数文件指定目录 RMAN> restore controlfile from 'E:\rmanbackup\SPFILE_CONTROLFILE_ORCL_1425356587_13510_1_20190923.BKP';
7、根据控制文件将数据库打开到mount模式。
RMAN> sql 'alter database mount';
清理过期备份:
RMAN> crosscheck backup; RMAN> delete expired backup;
8、注册rman信息
把拷贝来的备份注册到rman里
RMAN> catalog start with 'E:\rmanbackup\';
9、查看数据文件原路径
SQL>select file# as "file/grp#", name from v$datafile;
10、还原数据库数据文件。
根据实际环境设置新的数据文件恢复目录,这里使用之前准备的source数据库文件结构信息。
RMAN> run { allocate channel c1 type disk; allocate channel c2 type disk; allocate channel c3 type disk; set newname for datafile 1 to "F:\oradata\SYSTEM01.dbf"; set newname for datafile 2 to "F:\oradata\SYSAUX01.dbf"; set newname for datafile 3 to "F:\oradata\UNDOTBS01.dbf"; set newname for datafile 4 to "F:\oradata\USERS01.dbf"; set newname for datafile 5 to "F:\oradata\NNC_DATA01.dbf"; set newname for datafile 6 to "F:\oradata\NNC_INDEX01.dbf"; set newname for datafile 7 to "F:\oradata\NNC_DATA02.dbf"; set newname for datafile 8 to "F:\oradata\NNC_DATA03.dbf"; set newname for datafile 9 to "F:\oradata\NNC_DATA04.dbf"; set newname for datafile 10 to "F:\oradata\AUD01.dbf"; restore database; switch datafile all; release channel c1; release channel c2; release channel c3; }
对switch datafile all的说明:
------------------------------------------------------------------- 对于nocatalog 模式下,rman备份的信息是保存在控制文件里的,包括文件的路径信息。 这里的switch datafile all的作用,就是更新控制文件里的信息。 -------------------------------------------------------------------
11、数据库介质恢复
SQL> recover database;
出现此错误的原因是恢复需要的日志记录在控制文件或恢复目录中找不到。解决方法分两种情况:
1.如果相关的日志存在且可用的话,就将此日志记录添加到控制文件或恢复目录中。
2.如果相关的日志已经被删除了或不可用了,那么就按照错误的提示scn将数据库恢复到此scn,本案例是1268579013。
也就是说此时数据库只能进行不完全恢复了,在打开数据库时得使用resetlogs打开。
rman> recover database until scn 1268579013;
12、指定联机日志在新系统中的路径
SQL> alter database rename file 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG' to 'F:\APP\ADMINISTRATOR\oradata\orcl\REDO01.LOG'; SQL> alter database rename file 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG' to 'F:\APP\ADMINISTRATOR\oradata\orcl\REDO02.LOG'; SQL> alter database rename file 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG' to 'F:\APP\ADMINISTRATOR\oradata\orcl\REDO03.LOG'; SQL> alter database rename file 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO04.LOG' to 'F:\APP\ADMINISTRATOR\oradata\orcl\REDO04.LOG'; SQL> alter database rename file 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO05.LOG' to 'F:\APP\ADMINISTRATOR\oradata\orcl\REDO05.LOG'; SQL> alter database rename file 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO06.LOG' to 'F:\APP\ADMINISTRATOR\oradata\orcl\REDO06.LOG';
13、更改temp表空间目录
SQL> select name from v$tempfile; --表空间offline SQL> alter database tempfile 'xxx.dbf' offline; --在OS 级别移动temp 的数据文件 SQL> !mv xxx/temp01.dbf xxxtemp01.dbf --修改控制文件中temp文件的信息 SQL> alter database rename file 'xxxtemp01.dbf' to 'xxxxtemp01.dbf'; --temp 表空间online SQL> alter database tempfile 'xxxtemp01.dbf' online; --验证 SQL> select name from v$tempfile;
14、打开数据库
SQL> shutdown immediate; SQL> startup upgrade; --执行升级脚本catupgrd.sql SQL> spool upgrade.log SQL> @?/rdbms/admin/catupgrd.sql --执行升级脚本catuppst.sql SQL> startup SQL> @?/rdbms/admin/catuppst.sql
需要说明的就是:在open resetlogs 之后,自动在原来默认的路径创建了temp 表空间和online redo 日志文件。为了方便起见,建议先在controlfile中进行这些目录的更改。
15、编译无效对象
重新编译下:
SQL> @?/rdbms/admin/utlrp.sql;
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~
- 上一篇: 通用事业部出品:升级辉煌普及版的功能讲解
- 下一篇: 一起来学习Oracle的备份恢复基础吧-2
猜你喜欢
- 2024-11-18 日立EUB-5500彩超故障维修(仁成医疗)
- 2024-11-18 魔兽世界怀旧服:TBC战士 P1单刷老虎 加尔达成,分享下心得
- 2024-11-18 《天国拯救》控制台MOD使用教程秘籍代码大全
- 2024-11-18 升级 | 硬核的数据库支持与恢复能力,效率源DBF6300凭实力圈粉
- 2024-11-18 DBV命令行工具检测坏块
- 2024-11-18 ArcMap中常见的错误及解决方法
- 2024-11-18 每天学点Arcgis实用操作:如何批量核查gis规划情况?
- 2024-11-18 解决软件弹出对话框界面,内容显示不全问题(以OptiBPM为例)
- 2024-11-18 一起来学习Oracle的备份恢复基础吧-2
- 2024-11-18 通用事业部出品:升级辉煌普及版的功能讲解
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)