rman备份

查看当前数据库的db信息:

查看dbid:

SQL> select dbid from v$database;

      DBID
----------
1494693254

查看服务名:

SQL> select name from v$database ;  

NAME
---------
ORCL

查看实例名:

SQL> select instance_name from v$instance;

INSTANCE_NAME
----------------
orcl

SQL>

创建备份集存储目录:

[root@node2 ~]# chown -R oracle:dba /opt/
[root@node2 ~]# su - oracle
Last login: Thu Jul 12 22:32:19 EDT 2018 on pts/3
[oracle@node2 ~]$ mkdir -p  /opt/oracle/backup
[oracle@node2 ~]$

开启归档:

[oracle@node2 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Thu Jul 12 22:36:46 2018

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>  archive log list;
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     70
Current log sequence           72
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup nomount;
ORACLE instance started.

Total System Global Area 1536602112 bytes
Fixed Size                  2213616 bytes
Variable Size             956303632 bytes
Database Buffers          570425344 bytes
Redo Buffers                7659520 bytes

SQL> alter database mount;

Database altered.

SQL> alter database archivelog;

Database altered.

SQL> alter database open;

Database altered.

SQL> 
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     70
Next log sequence to archive   72
Current log sequence           72
SQL> 
SQL> exit

备份输出信息:

RMAN> run {
2> Allocate channel rman_1 type disk;
3> Allocate channel rman_2 type disk;
4> Allocate channel rman_3 type disk;
5> 
6> sql 'alter system switch logfile';
7> backup database format '/opt/oracle/backup/df_%T_%U.dbf';            
8> backup current controlfile format '/opt/oracle/backup/cf_%T_%U.ctf';    
9> backup spfile format '/opt/oracle/backup/sp_%T_%U.sp';                  
10> sql 'alter system archive log current';                 
11>  
12> release channel rman_1;
13> release channel rman_2;
14> release channel rman_3;
15> 
16> }


using target database control file instead of recovery catalog
allocated channel: rman_1
channel rman_1: SID=36 device type=DISK

allocated channel: rman_2
channel rman_2: SID=37 device type=DISK

allocated channel: rman_3
channel rman_3: SID=38 device type=DISK

sql statement: alter system switch logfile

Starting backup at 12-JUL-18
channel rman_1: starting full datafile backup set
channel rman_1: specifying datafile(s) in backup set
input datafile file number=00005 name=/home/oracle/data/dataspace.dbf
channel rman_1: starting piece 1 at 12-JUL-18
channel rman_2: starting full datafile backup set
channel rman_2: specifying datafile(s) in backup set
input datafile file number=00002 name=/home/oracle/app/oradata/orcl/sysaux01.dbf
input datafile file number=00003 name=/home/oracle/app/oradata/orcl/undotbs01.dbf
channel rman_2: starting piece 1 at 12-JUL-18
channel rman_3: starting full datafile backup set
channel rman_3: specifying datafile(s) in backup set
input datafile file number=00001 name=/home/oracle/app/oradata/orcl/system01.dbf
input datafile file number=00004 name=/home/oracle/app/oradata/orcl/users01.dbf
channel rman_3: starting piece 1 at 12-JUL-18
channel rman_1: finished piece 1 at 12-JUL-18
piece handle=/opt/oracle/backup/df_20180712_06t7rmih_1_1.dbf tag=TAG20180712T224016 comment=NONE
channel rman_1: backup set complete, elapsed time: 00:00:29
channel rman_1: starting full datafile backup set
channel rman_1: specifying datafile(s) in backup set
channel rman_2: finished piece 1 at 12-JUL-18
piece handle=/opt/oracle/backup/df_20180712_07t7rmih_1_1.dbf tag=TAG20180712T224016 comment=NONE
channel rman_2: backup set complete, elapsed time: 00:00:45
channel rman_2: starting full datafile backup set
channel rman_2: specifying datafile(s) in backup set
including current SPFILE in backup set
channel rman_2: starting piece 1 at 12-JUL-18
channel rman_3: finished piece 1 at 12-JUL-18
piece handle=/opt/oracle/backup/df_20180712_08t7rmih_1_1.dbf tag=TAG20180712T224016 comment=NONE
channel rman_3: backup set complete, elapsed time: 00:00:45
including current control file in backup set
channel rman_1: starting piece 1 at 12-JUL-18
channel rman_1: finished piece 1 at 12-JUL-18
piece handle=/opt/oracle/backup/df_20180712_09t7rmjt_1_1.dbf tag=TAG20180712T224016 comment=NONE
channel rman_1: backup set complete, elapsed time: 00:00:01
channel rman_2: finished piece 1 at 12-JUL-18
piece handle=/opt/oracle/backup/df_20180712_0at7rmju_1_1.dbf tag=TAG20180712T224016 comment=NONE
channel rman_2: backup set complete, elapsed time: 00:00:02
Finished backup at 12-JUL-18

Starting backup at 12-JUL-18
channel rman_1: starting full datafile backup set
channel rman_1: specifying datafile(s) in backup set
including current control file in backup set
channel rman_1: starting piece 1 at 12-JUL-18
channel rman_1: finished piece 1 at 12-JUL-18
piece handle=/opt/oracle/backup/cf_20180712_0bt7rmk4_1_1.ctf tag=TAG20180712T224108 comment=NONE
channel rman_1: backup set complete, elapsed time: 00:00:01
Finished backup at 12-JUL-18

Starting backup at 12-JUL-18
channel rman_1: starting full datafile backup set
channel rman_1: specifying datafile(s) in backup set
including current SPFILE in backup set
channel rman_1: starting piece 1 at 12-JUL-18
channel rman_1: finished piece 1 at 12-JUL-18
piece handle=/opt/oracle/backup/sp_20180712_0ct7rmk7_1_1.sp tag=TAG20180712T224110 comment=NONE
channel rman_1: backup set complete, elapsed time: 00:00:01
Finished backup at 12-JUL-18

sql statement: alter system archive log current

released channel: rman_1

released channel: rman_2

released channel: rman_3

RMAN> 
RMAN> 

查看是否有pfile文件,没有则生成一个

[oracle@node2 dbs]$ pwd
/home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs
[oracle@node2 dbs]$ ls
hc_DBUA0.dat  init.ora  orapworcl      spfileorcl.ora
hc_orcl.dat   lkORCL    snapcf_orcl.f
[oracle@node2 dbs]$ 
[oracle@node2 dbs]$ pwd
/home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs
[oracle@node2 dbs]$ ls
hc_DBUA0.dat  init.ora  orapworcl      spfileorcl.ora
hc_orcl.dat   lkORCL    snapcf_orcl.f
[oracle@node2 dbs]$ 
SQL> create pfile from spfile;

File created.

SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@node2 dbs]$ ls
hc_DBUA0.dat  init.ora      lkORCL     snapcf_orcl.f
hc_orcl.dat   initorcl.ora  orapworcl  spfileorcl.ora
[oracle@node2 dbs]$ 

此时文件夹下多了一个initorcl.ora文件

将initorcl.ora文件拷贝到备份集中

[oracle@node2 ~]$ cp /home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora  /opt/oracle/backup/

查看备份集中的文件信息

[oracle@node2 ~]$ ls -alh /opt/oracle/backup/
total 1.1G
drwxr-xr-x. 2 oracle dba 4.0K Jul 12 22:58 .
drwxr-xr-x. 3 oracle dba   20 Jul 12 22:34 ..
-rw-r-----. 1 oracle dba 9.4M Jul 12 22:41 cf_20180712_0bt7rmk4_1_1.ctf
-rw-r-----. 1 oracle dba 9.4M Jul 12 22:35 df_20180712_02t7rm9v_1_1.dbf
-rw-r-----. 1 oracle dba  96K Jul 12 22:35 df_20180712_04t7rma0_1_1.dbf
-rw-r-----. 1 oracle dba  52M Jul 12 22:40 df_20180712_06t7rmih_1_1.dbf
-rw-r-----. 1 oracle dba 417M Jul 12 22:40 df_20180712_07t7rmih_1_1.dbf
-rw-r-----. 1 oracle dba 593M Jul 12 22:41 df_20180712_08t7rmih_1_1.dbf
-rw-r-----. 1 oracle dba 9.4M Jul 12 22:41 df_20180712_09t7rmjt_1_1.dbf
-rw-r-----. 1 oracle dba  96K Jul 12 22:41 df_20180712_0at7rmju_1_1.dbf
-rw-r--r--. 1 oracle dba  913 Jul 12 22:58 initorcl.ora
-rw-r-----. 1 oracle dba  96K Jul 12 22:41 sp_20180712_0ct7rmk7_1_1.sp
[oracle@node2 ~]$ 

在备用机137上查看pfile并备份

[root@oraclelinux2 dbs]# pwd 
/opt/oracle/app/product/11.2.0/dbhome_1/dbs
[root@oraclelinux2 dbs]# ls
hc_DBUA0.dat  init.ora      lkORCL     spfileorcl.ora
hc_orcl.dat   initorcl.ora  orapworcl
[root@oraclelinux2 dbs]# vim init
init.ora      initorcl.ora  
[root@oraclelinux2 dbs]# vim initorcl.ora 
orcl.__db_cache_size=281018368
orcl.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcl.__oracle_base='/opt/oracle/app'#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=293601280
orcl.__sga_target=436207616
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=138412032
orcl.__streams_pool_size=0
*.audit_file_dest='/opt/oracle/app/admin/orcl/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/opt/oracle/app/oradata/orcl/control01.ctl','/opt/oracle/app/flash_recovery_area/orcl/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='orcl'
*.db_recovery_file_dest='/opt/oracle/app/flash_recovery_area'
*.db_recovery_file_dest_size=5218762752
*.diagnostic_dest='/opt/oracle/app'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.memory_target=729808896
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'

pfile文件中记录了控制文件路径等路径信息,等后面把133数据库的pfile拷贝过来之后参照此文件修改

[root@oraclelinux2 dbs]# cp initorcl.ora /opt/local_backup_initorcl.ora

在备用库上建立存储备份集的目录并修改属主

[root@oraclelinux2 ~]# mkdir -p  /opt/backup
[root@oraclelinux2 ~]# chown -R  oracle:dba /opt/
[root@oraclelinux2 ~]# 
[root@oraclelinux2 ~]# ls -alh /opt/
total 8.0K
drwxr-xr-x.  6 oracle dba    93 Jul 13 11:02 .
dr-xr-xr-x. 17 root   root 4.0K Jul 10 17:39 ..
drwxr-xr-x.  2 oracle dba     6 Jul 13 11:02 backup
-rw-r--r--.  1 oracle dba   904 Jul 13 10:56 local_backup_initorcl.ora
drwxr-xr-x.  3 oracle dba    17 Jul 12 20:06 oracle
drwxr-xr-x.  3 oracle dba    22 Jul 12 21:54 ORCLfmap
drwxr-xr-x.  2 oracle dba     6 Mar 26  2015 rh
[root@oraclelinux2 ~]# 

从192.168.137.133拷贝(scp)备份集文件夹到备用机上

[oracle@node2 ~]$ scp /opt/oracle/backup/
cf_20180712_0bt7rmk4_1_1.ctf  df_20180712_08t7rmih_1_1.dbf
df_20180712_02t7rm9v_1_1.dbf  df_20180712_09t7rmjt_1_1.dbf
df_20180712_04t7rma0_1_1.dbf  df_20180712_0at7rmju_1_1.dbf
df_20180712_06t7rmih_1_1.dbf  initorcl.ora
df_20180712_07t7rmih_1_1.dbf  sp_20180712_0ct7rmk7_1_1.sp
[oracle@node2 ~]$ scp /opt/oracle/backup/sp_20180712_0ct7rmk7_1_1.sp oracle@192.168.137.137:/opt/backup
oracle@192.168.137.137's password: 
scp: /opt/backup/sp_20180712_0ct7rmk7_1_1.sp: Permission denied
[oracle@node2 ~]$ scp -r  /opt/oracle/backup oracle@192.168.137.137:/opt/backup
oracle@192.168.137.137's password: 
df_20180712_04t7rma0_1_1.dbf                  100%   96KB   1.3MB/s   00:00    
df_20180712_02t7rm9v_1_1.dbf                  100% 9568KB  28.6MB/s   00:00    
df_20180712_06t7rmih_1_1.dbf                  100%   51MB  25.5MB/s   00:02    
df_20180712_08t7rmih_1_1.dbf                  100%  593MB  24.6MB/s   00:24    
df_20180712_07t7rmih_1_1.dbf                  100%  416MB  24.1MB/s   00:17    
df_20180712_0at7rmju_1_1.dbf                  100%   96KB 737.3KB/s   00:00    
df_20180712_09t7rmjt_1_1.dbf                  100% 9568KB  23.8MB/s   00:00    
cf_20180712_0bt7rmk4_1_1.ctf                  100% 9568KB  27.0MB/s   00:00    
sp_20180712_0ct7rmk7_1_1.sp                   100%   96KB   1.8MB/s   00:00    
initorcl.ora                                  100%  913    36.3KB/s   00:00    
[oracle@node2 ~]$ 

在备用机上查看备份集文件

[root@oraclelinux2 ~]# ls -alh /opt/backup/backup/
total 1.1G
drwxr-xr-x. 2 oracle dba 4.0K Jul 13 11:08 .
drwxr-xr-x. 3 oracle dba   20 Jul 13 11:07 ..
-rw-r-----. 1 oracle dba 9.4M Jul 13 11:08 cf_20180712_0bt7rmk4_1_1.ctf
-rw-r-----. 1 oracle dba 9.4M Jul 13 11:07 df_20180712_02t7rm9v_1_1.dbf
-rw-r-----. 1 oracle dba  96K Jul 13 11:07 df_20180712_04t7rma0_1_1.dbf
-rw-r-----. 1 oracle dba  52M Jul 13 11:07 df_20180712_06t7rmih_1_1.dbf
-rw-r-----. 1 oracle dba 417M Jul 13 11:08 df_20180712_07t7rmih_1_1.dbf
-rw-r-----. 1 oracle dba 593M Jul 13 11:08 df_20180712_08t7rmih_1_1.dbf
-rw-r-----. 1 oracle dba 9.4M Jul 13 11:08 df_20180712_09t7rmjt_1_1.dbf
-rw-r-----. 1 oracle dba  96K Jul 13 11:08 df_20180712_0at7rmju_1_1.dbf
-rw-r--r--. 1 oracle dba  913 Jul 13 11:08 initorcl.ora
-rw-r-----. 1 oracle dba  96K Jul 13 11:08 sp_20180712_0ct7rmk7_1_1.sp
[root@oraclelinux2 ~]# 

现在开始在备用机上恢复:

关闭备用库

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> exit

将initorcl.ora拷贝到pfile目录(根据之前备份的pfile文件路径),拷贝前先备份所有spfile及pfile

[oracle@oraclelinux2 dbhome_1]$ cd dbs/
[oracle@oraclelinux2 dbs]$ ls
hc_DBUA0.dat  init.ora      lkORCL     spfileorcl.ora
hc_orcl.dat   initorcl.ora  orapworcl
[oracle@oraclelinux2 dbs]$ mv spfileorcl.ora spfileorcl.ora.bak
[oracle@oraclelinux2 dbs]$ mv initorcl.ora initorcl.ora.bak
[oracle@oraclelinux2 dbs]$ mv init.ora init.ora.bak
[oracle@oraclelinux2 dbs]$
[oracle@oraclelinux2 dbs]$ cp /opt/backup/backup/initorcl.ora ./

接着修改initorcl.ora的文件内容(根据备用库之前的pfile内容和修改,所写路径确保都存在,否则会报错)

修改后的内容:

[oracle@oraclelinux2 dbs]$ cat initorcl.ora
orcl.__db_cache_size=570425344
orcl.__java_pool_size=16777216
orcl.__large_pool_size=16777216
orcl.__oracle_base='/opt/oracle/app'#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=620756992
orcl.__sga_target=922746880
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=301989888
orcl.__streams_pool_size=0
*.audit_file_dest='/opt/oracle/app/admin/orcl/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/opt/oracle/app/oradata/orcl/control01.ctl','/opt/oracle/app/flash_recovery_area/orcl/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='orcl'
*.db_recovery_file_dest='/opt/oracle/app/flash_recovery_area'
*.db_recovery_file_dest_size=5218762752
*.diagnostic_dest='/opt/oracle/app'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.memory_target=1541406720
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
[oracle@oraclelinux2 dbs]$ 

主要修改这几项:

audit_file_dest

control_files

db_name

db_recovery_file_dest

diagnostic_dest

其他内存参数等根据服务器配置修改(可选)

使用修改后的pfile启动数据库到nomount:

SQL> startup nomount pfile='/opt/oracle/app/product/11.2.0/dbhome_1/dbs/initorcl.ora';
ORACLE instance started.

Total System Global Area 1536602112 bytes
Fixed Size                  2213616 bytes
Variable Size             805308688 bytes
Database Buffers          721420288 bytes
Redo Buffers                7659520 bytes
SQL> 

恢复控制文件:

restore controlfile from '/opt/backup/backup/cf_20180712_0bt7rmk4_1_1.ctf';
RMAN> restore controlfile from '/opt/backup/backup/cf_20180712_0bt7rmk4_1_1.ctf';

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

channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
output file name=/opt/oracle/app/oradata/orcl/control01.ctl
output file name=/opt/oracle/app/flash_recovery_area/orcl/control02.ctl
Finished restore at 14-JUL-18

RMAN> 

启动数据库到mount状态

RMAN> alter database mount;

database mounted
released channel: ORA_DISK_1

RMAN> 

检查备份数据的有效性

RMAN> crosscheck backup;

Starting implicit crosscheck backup at 14-JUL-18
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=20 device type=DISK
Crosschecked 7 objects
Finished implicit crosscheck backup at 14-JUL-18

Starting implicit crosscheck copy at 14-JUL-18
using channel ORA_DISK_1
Finished implicit crosscheck copy at 14-JUL-18

searching for all files in the recovery area
cataloging files...
no files cataloged

using channel ORA_DISK_1
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/opt/oracle/backup/df_20180712_04t7rma0_1_1.dbf RECID=1 STAMP=981326144
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/opt/oracle/backup/df_20180712_02t7rm9v_1_1.dbf RECID=2 STAMP=981326144
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/opt/oracle/backup/df_20180712_06t7rmih_1_1.dbf RECID=3 STAMP=981326417
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/opt/oracle/backup/df_20180712_07t7rmih_1_1.dbf RECID=4 STAMP=981326417
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/opt/oracle/backup/df_20180712_08t7rmih_1_1.dbf RECID=5 STAMP=981326417
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/opt/oracle/backup/df_20180712_0at7rmju_1_1.dbf RECID=6 STAMP=981326463
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/opt/oracle/backup/df_20180712_09t7rmjt_1_1.dbf RECID=7 STAMP=981326463
Crosschecked 7 objects


RMAN> 

设置备份集所在目录:

catalog start with '/opt/backup/backup';
RMAN> catalog start with '/opt/backup/backup';

searching for all files that match the pattern /opt/backup/backup

List of Files Unknown to the Database
=====================================
File Name: /opt/backup/backup/df_20180712_04t7rma0_1_1.dbf
File Name: /opt/backup/backup/df_20180712_02t7rm9v_1_1.dbf
File Name: /opt/backup/backup/df_20180712_06t7rmih_1_1.dbf
File Name: /opt/backup/backup/df_20180712_08t7rmih_1_1.dbf
File Name: /opt/backup/backup/df_20180712_07t7rmih_1_1.dbf
File Name: /opt/backup/backup/df_20180712_0at7rmju_1_1.dbf
File Name: /opt/backup/backup/df_20180712_09t7rmjt_1_1.dbf
File Name: /opt/backup/backup/cf_20180712_0bt7rmk4_1_1.ctf
File Name: /opt/backup/backup/sp_20180712_0ct7rmk7_1_1.sp
File Name: /opt/backup/backup/initorcl.ora

Do you really want to catalog the above files (enter YES or NO)? yes
cataloging files...
cataloging done

List of Cataloged Files
=======================
File Name: /opt/backup/backup/df_20180712_04t7rma0_1_1.dbf
File Name: /opt/backup/backup/df_20180712_02t7rm9v_1_1.dbf
File Name: /opt/backup/backup/df_20180712_06t7rmih_1_1.dbf
File Name: /opt/backup/backup/df_20180712_08t7rmih_1_1.dbf
File Name: /opt/backup/backup/df_20180712_07t7rmih_1_1.dbf
File Name: /opt/backup/backup/df_20180712_0at7rmju_1_1.dbf
File Name: /opt/backup/backup/df_20180712_09t7rmjt_1_1.dbf
File Name: /opt/backup/backup/cf_20180712_0bt7rmk4_1_1.ctf
File Name: /opt/backup/backup/sp_20180712_0ct7rmk7_1_1.sp

List of Files Which Where Not Cataloged
=======================================
File Name: /opt/backup/backup/initorcl.ora
  RMAN-07517: Reason: The file header is corrupted

RMAN> 

通过控制文件获得表空间及数据文件列表

RMAN> report schema;

RMAN-06139: WARNING: control file is not current for REPORT SCHEMA
Report of database schema for database with db_unique_name ORCL

List of Permanent Datafiles
===========================
File Size(MB) Tablespace           RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1    0        SYSTEM               ***     /home/oracle/app/oradata/orcl/system01.dbf
2    0        SYSAUX               ***     /home/oracle/app/oradata/orcl/sysaux01.dbf
3    0        UNDOTBS1             ***     /home/oracle/app/oradata/orcl/undotbs01.dbf
4    0        USERS                ***     /home/oracle/app/oradata/orcl/users01.dbf
5    0        DATASPACE            ***     /home/oracle/data/dataspace.dbf

List of Temporary Files
=======================
File Size(MB) Tablespace           Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1    0        TEMP                 32767       /home/oracle/app/oradata/orcl/temp01.dbf

RMAN> 

获得改变数据文件路径的脚本

 select 'SET NEWNAME FOR DATAFILE ' || FILE# || ' TO "'
 || '/opt/oracle/app/oradata/orcl/' || substr(name,instr(name,'/',-1)+1) || ' "' || ';' from v$datafile;
SQL>  select 'SET NEWNAME FOR DATAFILE ' || FILE# || ' TO "' 
|| '/opt/oracle/app/oradata/orcl/' || substr(name,instr(name,'/',-1)+1) || ' "' || ';' from v$datafile;

'SETNEWNAMEFORDATAFILE'||FILE#||'TO"'||'/OPT/ORACLE/APP/ORADATA/ORCL/'||SUBSTR(N
--------------------------------------------------------------------------------
SET NEWNAME FOR DATAFILE 1 TO "/opt/oracle/app/oradata/orcl/system01.dbf ";
SET NEWNAME FOR DATAFILE 2 TO "/opt/oracle/app/oradata/orcl/sysaux01.dbf ";
SET NEWNAME FOR DATAFILE 3 TO "/opt/oracle/app/oradata/orcl/undotbs01.dbf ";
SET NEWNAME FOR DATAFILE 4 TO "/opt/oracle/app/oradata/orcl/users01.dbf ";
SET NEWNAME FOR DATAFILE 5 TO "/opt/oracle/app/oradata/orcl/dataspace.dbf ";

SQL> 

恢复:

run{
	SET NEWNAME FOR DATAFILE 1 TO "/opt/oracle/app/oradata/orcl/system01.dbf ";
	SET NEWNAME FOR DATAFILE 2 TO "/opt/oracle/app/oradata/orcl/sysaux01.dbf ";
	SET NEWNAME FOR DATAFILE 3 TO "/opt/oracle/app/oradata/orcl/undotbs01.dbf ";
	SET NEWNAME FOR DATAFILE 4 TO "/opt/oracle/app/oradata/orcl/users01.dbf ";
	SET NEWNAME FOR DATAFILE 5 TO "/opt/oracle/app/oradata/orcl/dataspace.dbf ";
	restore database;
	switch datafile all; 
	
}

RMAN> run{
2> SET NEWNAME FOR DATAFILE 1 TO "/opt/oracle/app/oradata/orcl/system01.dbf ";
3> SET NEWNAME FOR DATAFILE 2 TO "/opt/oracle/app/oradata/orcl/sysaux01.dbf ";
4> SET NEWNAME FOR DATAFILE 3 TO "/opt/oracle/app/oradata/orcl/undotbs01.dbf ";
5> SET NEWNAME FOR DATAFILE 4 TO "/opt/oracle/app/oradata/orcl/users01.dbf ";
6> SET NEWNAME FOR DATAFILE 5 TO "/opt/oracle/app/oradata/orcl/dataspace.dbf ";
7> restore database;
8> switch datafile all; 
9> 
10> }

executing command: SET NEWNAME


executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting restore at 14-JUL-18
using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00005 to /opt/oracle/app/oradata/orcl/dataspace.dbf 
channel ORA_DISK_1: reading from backup piece /opt/backup/backup/df_20180712_06t7rmih_1_1.dbf
channel ORA_DISK_1: piece handle=/opt/backup/backup/df_20180712_06t7rmih_1_1.dbf tag=TAG20180712T224016
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:01:37
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00002 to /opt/oracle/app/oradata/orcl/sysaux01.dbf 
channel ORA_DISK_1: restoring datafile 00003 to /opt/oracle/app/oradata/orcl/undotbs01.dbf 
channel ORA_DISK_1: reading from backup piece /opt/backup/backup/df_20180712_07t7rmih_1_1.dbf
channel ORA_DISK_1: piece handle=/opt/backup/backup/df_20180712_07t7rmih_1_1.dbf tag=TAG20180712T224016
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:28
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00001 to /opt/oracle/app/oradata/orcl/system01.dbf 
channel ORA_DISK_1: restoring datafile 00004 to /opt/oracle/app/oradata/orcl/users01.dbf 
channel ORA_DISK_1: reading from backup piece /opt/backup/backup/df_20180712_08t7rmih_1_1.dbf
channel ORA_DISK_1: piece handle=/opt/backup/backup/df_20180712_08t7rmih_1_1.dbf tag=TAG20180712T224016
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:25
Finished restore at 14-JUL-18

datafile 1 switched to datafile copy
input datafile copy RECID=6 STAMP=981418481 file name=/opt/oracle/app/oradata/orcl/system01.dbf 
datafile 2 switched to datafile copy
input datafile copy RECID=7 STAMP=981418481 file name=/opt/oracle/app/oradata/orcl/sysaux01.dbf 
datafile 3 switched to datafile copy
input datafile copy RECID=8 STAMP=981418481 file name=/opt/oracle/app/oradata/orcl/undotbs01.dbf 
datafile 4 switched to datafile copy
input datafile copy RECID=9 STAMP=981418481 file name=/opt/oracle/app/oradata/orcl/users01.dbf 
datafile 5 switched to datafile copy
input datafile copy RECID=10 STAMP=981418481 file name=/opt/oracle/app/oradata/orcl/dataspace.dbf 

RMAN> 
RMAN> 


SQL> col status for a7;
SQL> col type for a7;
SQL> col member for a64;
SQL> select * from v$logfile;

    GROUP# STATUS  TYPE
---------- ------- -------
MEMBER                                                           IS_
---------------------------------------------------------------- ---
         1         ONLINE    /home/oracle/app/oradata/orcl/redo01.log                         NO

         2         ONLINE    /home/oracle/app/oradata/orcl/redo02.log                         NO

         3         ONLINE    /home/oracle/app/oradata/orcl/redo03.log                         NO


SQL> 

redo log的路径在控制文件中,现在的控制文件时恢复过来的,需要更改为正确的路径

SQL> alter database rename file '/home/oracle/app/oradata/orcl/redo01.log' to '/opt/oracle/app/oradata/orcl/redo01.log';

Database altered.

SQL> alter database rename file '/home/oracle/app/oradata/orcl/redo02.log' to '/opt/oracle/app/oradata/orcl/redo02.log';

Database altered.

SQL> alter database rename file '/home/oracle/app/oradata/orcl/redo03.log' to '/opt/oracle/app/oradata/orcl/redo03.log';

Database altered.

SQL> 




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值