oracle备份如何到异机还原
作者:ocpyang
情景描述:
有朋友问,MSSQLSERVER将数据库备份还原到其它机器很方便,基本就是傻瓜式操作,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. 备份源数据DB run {
configure retention policy to recovery window of 14 days; configure controlfileautobackup on; --自动开启控制文件备份 configure controlfileautobackup format for device type disk to 'E:\\backup\\controlfile\\bak_%F';
allocate channel c1 device type disk format 'E:\\backup\\data\\bak_%u'; allocate channel c2 device type disk format 'E:\\backup\\data\\bak_%u'; sql 'alter system archive log current';
backup incremental level=0 database skip inaccessible plus archivelogfilesperset 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:\\backup\\data\\bak_%u'; allocate channel c2 device type disk format 'E:\\backup\\data\\bak_%u'; sql 'alter system archive log current';
backup incremental level=0 database skip inaccessible plus archivelogfilesperset 20 delete all input;
--手动直接指明备份文件名和路径
backup current controlfile tag='bak_ctrollfile' format='E:\\backup\\controlfile\\bak_ctl_file_%U_%T';
backup spfile tag='bak_spfile' format='E:\\backup\\controlfile\\bak_spfile_%U_%T'; release channel c1; release channel c2; }
allocate channel for maintenance device type disk; crosscheck backupset; delete noprompt obsolete;
--3.手动备份spfile
createpfile='E:\\backup\\inittest.ora' from spfile;
------------------------------------ 二、目标库准备工作: ------------------------------------ ---步骤1. 创建口令文件 --如果有就不需要新建.
orapwd file=F:\\app\\Administrator\\product\\11.2.0\\dbhome_1\\database\\PWDorcl.ora password=password
--步骤2.恢复参数文件
--方法1.源数据库spfile并拷贝到B数据库服务器
\\\\192.168.2.25\\e$\\backup\\inittest.ORA 复制到
E:\\bk\\inittest.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:\\app\\Administrator'#修改路径 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:\\app\\Administrator\\admin\\orcl\\adump' #修改路径 *.audit_trail='db' *.compatible='11.2.0.0.0' #修改路径
*.control_files='F:\\app\\Administrator\\oradata\\orcl\\control01.ctl','F:\\app\\Administrator\\oradata\\orcl\\control02.ctl','F:\\app\\Administrator\\oradata\\orcl\\control03.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:\\app\\Administrator' #修改路径 *.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)' *.log_archive_dest_1='location=f:\\arch' #修改路径 *.nls_date_format='yyyy-mm-ddhh: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'
相关推荐: