查看当前数据库的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>