惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
MongoDB | Blog
MongoDB | Blog
博客园_首页
博客园 - 三生石上(FineUI控件)
博客园 - 聂微东
B
Blog RSS Feed
D
Docker
IT之家
IT之家
大猫的无限游戏
大猫的无限游戏
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
罗磊的独立博客
Recent Announcements
Recent Announcements
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
A
About on SuperTechFans
The GitHub Blog
The GitHub Blog
G
Google Developers Blog
V
V2EX
量子位
雷峰网
雷峰网
月光博客
月光博客
云风的 BLOG
云风的 BLOG
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tailwind CSS Blog

博客园 - Amonw's Weblog

.NET默认一个客户端对同一个服务器地址同时只能建立2个TCP连接 homekit2mqtt on DietPi .Net Trace->Listeners->Remove Oracle 12c client with .NET legacy Oracle driver Minimum setup for Apache+AD SSO Minimum configuration for openldap to proxy multiple AD into a single search base 排列组合算法(PHP) Make Notepad++ auto close HTML/XML tags after the slash(the Dreamweaver way) ASDM through site to site VPN - Amonw's Weblog PHP, LDAPS and Apache DFS security warning and use group policy to set up internet security zones Refresh recovery area usage data after manually deleting files under recovery area Create Oracle Enterprise Manager repository data after restore a database from another server .PRT extension and multiple NX versions Fix network adapter not present problem in cloned CentOS NX 8.5 License Server Firewall Setting Cisco ASA intra-interface routing How to configure windows machine to allow file sharing with dns alias (CNAME) Install unifi controller on CentOS
Restore Oracle database to another server
Amonw's Weblog · 2014-10-27 · via 博客园 - Amonw's Weblog

1. Copy or remotely mount the backupset folder from the source server to the target server

2. On the target server, export ORACLE_SID as same as the source database and run "rman target /"

3. Restore spfile from backup:

RMAN> startup nomount;

startup failed: ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl01.ora'

starting Oracle instance without parameter file for retrieval of spfile
Oracle instance started

Total System Global Area 158662656 bytes

Fixed Size 2211448 bytes
Variable Size 88080776 bytes
Database Buffers 62914560 bytes
Redo Buffers 5455872 bytes

RMAN> restore spfile from '/u01/app/remote/flash_recovery_area/ORCL01/backupset/2014_10_01/o1_mf_ncsn1_TAG20141001T011809_b2q3ojl8_.bkp';

Starting restore at 27-OCT-14
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=18 device type=DISK

channel ORA_DISK_1: restoring spfile from AUTOBACKUP /u01/app/remote/flash_recovery_area/ORCL01/backupset/2014_10_01/o1_mf_ncsn1_TAG20141001T011809_b2q3ojl8_.bkp
channel ORA_DISK_1: SPFILE restore from AUTOBACKUP complete
Finished restore at 27-OCT-14

4. Open another ssh session, export ORACLE_SID and run "sqlplus / as sysdba" and create pfile from spfile:

[oracle@localhost dbs]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Mon Oct 27 10:34:57 2014

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> create pfile from spfile;

File created.

SQL> exit

5. Review the pfile just created and mkdir all the file dests:

[oracle@localhost dbs]$ cat initorcl01.ora
orcl01.__db_cache_size=188743680
orcl01.__java_pool_size=4194304
orcl01.__large_pool_size=4194304
orcl01.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
orcl01.__pga_aggregate_target=272629760
orcl01.__sga_target=515899392
orcl01.__shared_io_pool_size=0
orcl01.__shared_pool_size=306184192
orcl01.__streams_pool_size=4194304
*.audit_file_dest='/u01/app/oracle/admin/orcl01/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/u01/app/oracle/oradata/orcl01/control01.ctl','/u01/app/oracle/flash_recovery_area/orcl01/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='orcl01'
*.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=4070572032
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orcl01XDB)'
*.memory_target=787480576
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
[oracle@localhost dbs]$ mkdir -p /u01/app/oracle/admin/orcl01/adump

[oracle@localhost dbs]$ mkdir -p /u01/app/oracle/oradata/orcl01

[oracle@localhost dbs]$ mkdir -p /u01/app/oracle/flash_recovery_area/orcl01

6. In the RMAN session, restore the control files:

RMAN> restore controlfile from '/u01/app/remote/flash_recovery_area/ORCL01/backupset/2014_10_01/o1_mf_ncsn1_TAG20141001T011809_b2q3ojl8_.bkp';

7. Restart database in mount mode. You cannot directly alter database mount because the spfile has been restored:

RMAN> alter database mount;

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of alter db command at 10/27/2014 10:35:35
ORA-01103: database name 'ORCL01' in control file is not 'DUMMY'

RMAN> shutdown immediate;

Oracle instance shut down

RMAN> startup mount;

8. Catalog the backupsets:

RMAN> catalog start with '/u01/app/remote/flash_recovery_area/ORCL01/backupset/2014_10_01';

9. In the sqlplus session, check v$datafile and v$logfile and mkdir the directories.

SQL> select file#,name from v$datafile;

FILE#
----------
NAME
--------------------------------------------------------------------------------
1
/u01/app/oracle/oradata/orcl01/system01.dbf

2
/u01/app/oracle/oradata/orcl01/sysaux01.dbf

3
/u01/app/oracle/oradata/orcl01/undotbs01.dbf


FILE#
----------
NAME
--------------------------------------------------------------------------------
4
/u01/app/oracle/oradata/orcl01/user01.dbf

5
/u01/app/oracle/oradata/orcl01/example01.dbf

6
/u01/app/oracle/oradata/orcl01/index01


6 rows selected.

SQL> select member from v$logfile;

MEMBER
----------------------------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl01/redo03.log
/u01/app/oracle/oradata/orcl01/redo02.log
/u01/app/oracle/oradata/orcl01/redo01.log

In this case, /u01/app/oracle/oradata/orcl01 has been created at step 5.

10. In RMAN session, restore database, recover database and open database with resetlogs option

RMAN> restore database;

...

RMAN> recover database;

...

RMAN> alter database open resetlogs;

...

P.S.: if you want to restore datafiles to a different path, in step 10:

RMAN> run{
2> set newname for datafile 1 to '/u01/app/oracle/oradata/newpath/system01.dbf';

3> restore database;
4> switch datafile all;
5> recover database;
6> }