一、首先在主库上做完整0级备份
二、恢复服务器准备
数据库处于关闭状态
SQL>shutdown immediate;
先备份SPfile文件至目标数据库tablespace.ora
注:此处如果恢复服务器与主库目录结构相同,可以不用更改SPFILE。 省略SPFILE改为PFILE后导入的过程
1、SPfile 改为pfile后,更改参数
SQL>create pfile='/usr/local/u01/orabak/tablespace.ora' from spfile;
记事本打开tablespace.ora
修改相应参数,路径
*.control_files=:控制文件路径
*.audit_file_dest:Oracle审计输出的debug日志路径
*.log_archive_dest_1:归档文件路径,如果启用了归档模式的话
media360.__oracle_base:数据库根目录
*.db_recovery_file_dest
修改后上传至相应路径,修改权限
chown oracle:oinstall tablespace.ora
错误:
ORA-07391: sftopn: fopen error, unable to open text file
权限问题导致,PFILE目录要在ORACLE目录下
2、根据pfile创建SPFILE
SQL>create spfile from pfile ='/usr/local/u01/orabak/tablespace.ora';
File created.
3、创建成功后就可以启动到NOMOUNT状态了
SQL> startup nomount
错误:ORA-00845: MEMORY_TARGET not supported on this system
这个问题是由于设置SGA的大小超过了操作系统/dev/shm的大小:
查看主库上,MEMORY_TARGET大小设置
SQL> show parameter memory_target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
memory_target big integer 25856M
而215上,仅为6G
tmpfs 6.0G 0 6.0G 0% /dev/shm
调整/dev/shm大小
vi /etc/fstab
tmpfs /dev/shm tmpfs defaults,size=26624M 0 0
size大小要超过 25856M
#umount /dev/shm/
#mount /dev/shm/
df -h
tmpfs 26G 12G 15G 44% /dev/shm
之后执行startup nomount
SQL> startup nomount
ORACLE instance started.
Total System Global Area 2.6991E+10 bytes
Fixed Size 2213976 bytes
Variable Size 1.7448E+10 bytes
Database Buffers 9395240960 bytes
Redo Buffers
4、查询出源数据库的DBID(主库上操作)
ORACLE用户下,直接RMAN登录, 会显示5、恢复控制文件并加入到加载状态(恢复服务器上操作)控制文件会恢复到初始化参数CONTROL_FILES指定的目录下,之后MOUNT数据库
RMAN> alter database mount;
注:此处,备份集指定目录已写在配置文件中,主库与恢复服务器目录结构要保持相同 ,且要使用相同 的数据库备份集目录,而导入过程中又要求有相同的数据目录,如不同要额外指定表空间,且注意权限
6、修复数据库
如果两台数据库目录结构一致,则不用新建目录 ,要两者的备份集指向同一目录,在配置文件中有所指定
RMAN> restore database;、
7、恢复数据库
恢复过程中,要指定主库上的SCN。 在主库上执行
RMAN> list backup of archivelog all;查看 最后的scn,恢复使用“ recover database until scn 19005028832;” 不指定会报错 ;
RMAN> recover database until scn 19005028832;
8、打开数据库
RMAN> alter database open resetlogs;
注:为防止备份占用空间过,导致备份失败,设置备份保留天数为7天
RMAN> configure retention policy to recovery window of 7 days;
增量备份0级脚本[code]#!/bin/sh
echo "==============rman bak level 0 begin at=================";
date
source /usr/local/u01/app/.bash_profile
rman target / msglog /data0/OracleBak/rman/rman.log append <
二、恢复服务器准备
数据库处于关闭状态
SQL>shutdown immediate;
先备份SPfile文件至目标数据库tablespace.ora
注:此处如果恢复服务器与主库目录结构相同,可以不用更改SPFILE。 省略SPFILE改为PFILE后导入的过程
1、SPfile 改为pfile后,更改参数
SQL>create pfile='/usr/local/u01/orabak/tablespace.ora' from spfile;
记事本打开tablespace.ora
修改相应参数,路径
*.control_files=:控制文件路径
*.audit_file_dest:Oracle审计输出的debug日志路径
*.log_archive_dest_1:归档文件路径,如果启用了归档模式的话
media360.__oracle_base:数据库根目录
*.db_recovery_file_dest
修改后上传至相应路径,修改权限
chown oracle:oinstall tablespace.ora
错误:
ORA-07391: sftopn: fopen error, unable to open text file
权限问题导致,PFILE目录要在ORACLE目录下
2、根据pfile创建SPFILE
SQL>create spfile from pfile ='/usr/local/u01/orabak/tablespace.ora';
File created.
3、创建成功后就可以启动到NOMOUNT状态了
SQL> startup nomount
错误:ORA-00845: MEMORY_TARGET not supported on this system
这个问题是由于设置SGA的大小超过了操作系统/dev/shm的大小:
查看主库上,MEMORY_TARGET大小设置
SQL> show parameter memory_target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
memory_target big integer 25856M
而215上,仅为6G
tmpfs 6.0G 0 6.0G 0% /dev/shm
调整/dev/shm大小
vi /etc/fstab
tmpfs /dev/shm tmpfs defaults,size=26624M 0 0
size大小要超过 25856M
#umount /dev/shm/
#mount /dev/shm/
df -h
tmpfs 26G 12G 15G 44% /dev/shm
之后执行startup nomount
SQL> startup nomount
ORACLE instance started.
Total System Global Area 2.6991E+10 bytes
Fixed Size 2213976 bytes
Variable Size 1.7448E+10 bytes
Database Buffers 9395240960 bytes
Redo Buffers
4、查询出源数据库的DBID(主库上操作)
ORACLE用户下,直接RMAN登录, 会显示
- [oracle@localhost]$ rman target /
- Recovery Manager: Release 11.2.0.1.0 - Production on Thu May 9 14:59:15 2013
- Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
- connected to target database: MEDIA360 (DBID=2683963637)
- RMAN>
- DBID=2683963637
- RMAN> set DBID=2683963637;
- executing command: SET DBID
- 从指定备份集中恢复控制文件
- RMAN> restore controlfile from '/data0/rman/cntrl_15_1_20130509';
- Starting restore at 09-MAY-13
- using target database control file instead of recovery catalog
- allocated channel: ORA_DISK_1
- channel ORA_DISK_1: SID=958 device type=DISK
- channel ORA_DISK_1: restoring control file
- channel ORA_DISK_1: restore complete, elapsed time: 00:00:15
- output file name=/usr/local/u01/oradata/dataspace/control01.ctl
- output file name=/usr/local/u01/flash_recovery_area/dataspace/control02.ctl
- Finished restore at 09-MAY-13
RMAN> alter database mount;
注:此处,备份集指定目录已写在配置文件中,主库与恢复服务器目录结构要保持相同 ,且要使用相同 的数据库备份集目录,而导入过程中又要求有相同的数据目录,如不同要额外指定表空间,且注意权限
6、修复数据库
如果两台数据库目录结构一致,则不用新建目录 ,要两者的备份集指向同一目录,在配置文件中有所指定
RMAN> restore database;、
7、恢复数据库
恢复过程中,要指定主库上的SCN。 在主库上执行
RMAN> list backup of archivelog all;查看 最后的scn,恢复使用“ recover database until scn 19005028832;” 不指定会报错 ;
RMAN> recover database until scn 19005028832;
8、打开数据库
RMAN> alter database open resetlogs;
注:为防止备份占用空间过,导致备份失败,设置备份保留天数为7天
RMAN> configure retention policy to recovery window of 7 days;
增量备份0级脚本[code]#!/bin/sh
echo "==============rman bak level 0 begin at=================";
date
source /usr/local/u01/app/.bash_profile
rman target / msglog /data0/OracleBak/rman/rman.log append <
编辑回复