情景描述:有朋友问,MS SQL SERVER将数据库备份还原到其它机器很方便,基本就是傻瓜式操作,Oracle有控制文件、参数文件一堆东西,觉得还原很复杂;其实不然,我抽出了点时间,简单演示下案例,朋友们,参考下!为了简单快速,我采用RMAN备份和还原。--说明:
(1).RMAN备份到异机恢复的时候,db_name需要相同。如果说要想改成其他的实例名,可以在恢复成功后,用nid 命令修改。 实例名的信息会记录到控制文件里,所以如果在恢复的时候,如果实例名不一致,恢复的时候会报错。
(2).恢复的路径和源库不一致时,就需要在restore命令中使用set 命令指定新位置,并且使用switch datafile all将变更信息更新的到控制文件中。测试环境:源数据库服务器A,安装在E,备份目录已在E盘; 源数据库服务器B,安装在F盘.------------------------------------一、源数据库准备工作--------------------------------------1. 查询DBID SQL> select name,dbid from v$database;NAME DBID
--------- ----------
ORCL 1320546556 --2. 备份源数据DBrun {
configure retention policy to recovery window of 14 days;
configure controlfile autobackup on; --自动开启控制文件备份
configure controlfile autobackup format for device type disk to "E:ackupcontrolfileak_%F";
allocate channel c1 device type disk format "E:ackupdataak_%u";
allocate channel c2 device type disk format "E:ackupdataak_%u";
sql "alter system archive log current";
backup incremental level=0 database skip inaccessible
plus archivelog filesperset 20
delete all input;
release channel c1;
release channel c2;
}
allocate channel for maintenance device type disk;
crosscheck backupset;
delete noprompt obsolete;
--或run {
configure retention policy to recovery window of 14 days;
allocate channel c1 device type disk format "E:ackupdataak_%u";
allocate channel c2 device type disk format "E:ackupdataak_%u";
sql "alter system archive log current";
backup incremental level=0 database skip inaccessible
plus archivelog filesperset 20
delete all input;
--手动直接指明备份文件名和路径
backup current controlfile tag="bak_ctrollfile" format="E:ackupcontrolfileak_ctl_file_%U_%T";
backup spfile tag="bak_spfile" format="E:ackupcontrolfileak_spfile_%U_%T";
release channel c1;
release channel c2;
}
allocate channel for maintenance device type disk;
crosscheck backupset;
delete noprompt obsolete; --3.手动备份spfilecreate pfile="E:ackupinittest.ora" from spfile;
------------------------------------二、目标库准备工作:---------------------------------------步骤1. 创建口令文件--如果有就不需要新建.orapwd file=F:appAdministratorproduct11.2.0dbhome_1databasePWDorcl.ora password=password --步骤2.恢复参数文件
--方法1.源数据库spfile并拷贝到B数据库服务器
\192.168.2.25e$ackupinittest.ORA
复制到
E:kinittest.ORA
--步骤3.编辑参数文件中的文件路径如路径和原来一样,则不需修改eg:
- *_DUMP_DEST
- LOG_ARCHIVE_DEST*
- CONTROL_FILES
---实例:orcl.__db_cache_size=939524096
orcl.__java_pool_size=16777216
orcl.__large_pool_size=16777216
orcl.__oracle_base="F:appAdministrator"#修改路径
orcl.__pga_aggregate_target=855638016
orcl.__sga_target=2550136832
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=1526726656
orcl.__streams_pool_size=16777216
*.audit_file_dest="F:appAdministratoradminorcladump" #修改路径
*.audit_trail="db"
*.compatible="11.2.0.0.0"
#修改路径
*.control_files="F:appAdministratororadataorclcontrol01.ctl","F:appAdministratororadataorclcontrol02.ctl","F:appAdministratororadataorclcontrol03.ctl"
*.db_block_size=8192
*.db_domain=""
*.db_name="orcl"
*.db_recovery_file_dest="F:arch" #修改路径
*.db_recovery_file_dest_size=6442450944
*.diagnostic_dest="F:appAdministrator" #修改路径
*.dispatchers="(PROTOCOL=TCP) (SERVICE=orclXDB)"
*.log_archive_dest_1="location=f:arch" #修改路径
*.nls_date_format="yyyy-mm-dd hh:mi:ss"
*.open_cursors=300
*.optimizer_capture_sql_plan_baselines=TRUE
*.pga_aggregate_target=845152256
*.processes=150
*.remote_login_passwordfile="EXCLUSIVE"
*.sga_target=2536505344
*.skip_unusable_indexes=TRUE
*.undo_tablespace="UNDOTBS1" --步骤4.重启实例,使用已编辑好的参数文件将用pfile将B数据库服务器启动到nomout 状态rman target /startup nomount pfile="e:kinittest.ora"
Oracle number显示科学计数的解决方法Oracle 增量备份相关资讯 Oracle备份 Oracle备份还原
- 利用Oracle自带的impdp和expdp进行 (05月18日)
- Oracle 10.2.0.5 版本之后 asm (08/08/2014 11:02:09)
- Linux系统中Oracle自动备份方案 (07/25/2014 13:11:25)
| - Java实现Oracle数据库备份 (08/12/2014 11:24:51)
- Oracle备份与恢复系列 (08/01/2014 09:15:02)
- Oracle exp imp备份、恢复表空间数 (06/15/2014 11:38:40)
|
本文评论 查看全部评论 (0)