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

推荐订阅源

C
Check Point Blog
罗磊的独立博客
量子位
Microsoft Azure Blog
Microsoft Azure Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
J
Java Code Geeks
M
MIT News - Artificial intelligence
月光博客
月光博客
IT之家
IT之家
D
DataBreaches.Net
A
About on SuperTechFans
博客园 - 三生石上(FineUI控件)
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Last Week in AI
Last Week in AI
D
Docker
The GitHub Blog
The GitHub Blog
B
Blog
V
Visual Studio Blog
博客园 - Franky
N
Netflix TechBlog - Medium
博客园 - 【当耐特】
Martin Fowler
Martin Fowler
博客园 - 聂微东
U
Unit 42

博客园 - 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> }