分类: LINUX
2008-05-22 18:28:04
全库备份(包括数据库,控制文件,归档日志)
RMAN> run {
2> backup full database format '/orabk/full_%U.bak';
3> backup archivelog all format '/orabk/arc_%U.bak' delete input;
4> copy current controlfile to '/orabk/control_bak.ctl';
5> }
Starting backup at
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including current SPFILE in backupset
including current controlfile in backupset
input datafile fno=00011 name=/u01/app/oracle/oradata/orcl9i/rep_test.dbf
input datafile fno=00001 name=/u01/app/oracle/oradata/orcl9i/system01.dbf
input datafile fno=00002 name=/u01/app/oracle/oradata/orcl9i/undotbs01.dbf
input datafile fno=00005 name=/u01/app/oracle/oradata/orcl9i/example01.dbf
input datafile fno=00012 name=/u01/app/oracle/oradata/orcl9i/rman_ts01.dbf
input datafile fno=00010 name=/u01/app/oracle/oradata/orcl9i/xdb01.dbf
input datafile fno=00006 name=/u01/app/oracle/oradata/orcl9i/indx01.dbf
input datafile fno=00009 name=/u01/app/oracle/oradata/orcl9i/users01.dbf
input datafile fno=00003 name=/u01/app/oracle/oradata/orcl9i/cwmlite01.dbf
input datafile fno=00004 name=/u01/app/oracle/oradata/orcl9i/drsys01.dbf
input datafile fno=00007 name=/u01/app/oracle/oradata/orcl9i/odm01.dbf
input datafile fno=00008 name=/u01/app/oracle/oradata/orcl9i/tools01.dbf
channel ORA_DISK_1: starting piece 1 at
channel ORA_DISK_1: finished piece 1 at
piece handle=/orabk/full_07iis0oe_1_1.bak comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time:
Finished backup at
Starting backup at
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting archive log backupset
channel ORA_DISK_1: specifying archive log(s) in backup set
input archive log thread=1 sequence=23 recid=23 stamp=623773878
channel ORA_DISK_1: starting piece 1 at
channel ORA_DISK_1: finished piece 1 at
piece handle=/orabk/arc_08iis25m_1_1.bak comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time:
channel ORA_DISK_1: deleting archive log(s)
archive log filename=/u01/app/oracle/oradata/orcl9i/archive/1_23.dbf recid=23 stamp=623773878
Finished backup at
Starting copy at
using channel ORA_DISK_1
channel ORA_DISK_1: copied current controlfile
output filename=/orabk/control_bak.ctl
Finished copy at
RMAN>
异机恢复实践。
下面仍以linux为例来说明利用上面的全备来做异机恢复测试。
Windows平台需要将下面存放在$ORACLE_HOME/dbs下的文件房在$ORACLE_HOME/database下,同时需要使用oradim配置一个OracleServiceSID的服务。
cmd>oradim –NEW –SID ORCL9I -STARTMODE a
然后在netmgr中配置一个监听,用lsnrctl start启动,会自动在添加一个监听服务。
按照原数据库环境的设置来配置异机的环境,但是也不是必须完全一样,在不一样的情况下需要做相应的技术处理,这里以相同的环境设置来做实验。
1. 配置环境变量
$ORACLE_BASE= /u01/app/oracle
$ORACLE_HOME= /u01/app/oracle/product/9.2.0
如下图:
2. 安装ORACLE SOFTWARE, 不需要创建数据库
3. 设置环境变量ORACLE_SID=orcl9i (我这里的是orcl9i, 这个依据实际情况而定);
验证:
4. 创建和原数据库相同的目录结构,如下
/u01/app/oracle/
|___admin
| |___orcl9i
| |___bdump
| |___udump
| |___cdump
|
|___oradata
|____orcl9i 数据文件、控制文件、redo log文件位置
|____archive(这个是我这里的归档日志存放的位置)
5. 配置默认监听器及本地服务名,工具netmgr
监听:
Local Service Naming:
6. 创建密码文件,工具orapwd
例:[oracle@ora9lnx bin]$ cd $ORACLE_HOME/dbs
[oracle@ora9lnx dbs]$ orapwd file=orapworcl9i password=oracle entries=5
file格式 orapwORACLE_SID
password sys用户的密码
entries 最多允许sysdba/sysoper用户的数量,默认1.
7. 复制原数据库的参数文件
原数据库操作
Sqlplus: SQL>create pfile from spfile;
这里会在原数据库机器上的$ORACLE_HOME/dbs下产生一个initORACLE_SID.ora的参数文件。
复制
将上面产生的参数文件ftp或通过samba共享等方式复制到测试机的$ORACLE_HOME/dbs下。
8. 复制控制文件
将rman全库备份中copy出来的控制文件备份/orabk/control_bak.ctl传到测试机, 然后将其按照参数文件中的控制文件配置复制。这里是复制成如下三个文件:
/u01/app/oracle/oradata/orcl9i/control01.ctl
/u01/app/oracle/oradata/orcl9i/control02.ctl
/u01/app/oracle/oradata/orcl9i/control03.ctl
8. 将全备后的备份文件复制到异机,这里是/orabk.
在异机下先建文件夹/orabk,且授权给oracle.dba,操作如下
mkdir /orabk
chown oracle.dba /orabk
然后将备份的文件传过来,由于oracle用户在2台机器中创建后的id并不一定一样,所以最后再重新授权。
Chown oracle.dba /orabk/*.bak
如果由于空间等问题复制的文件夹不是/orabk,那么我们可以通过ln –s 做符号连接来完成。
9. 启动数据库到mount状态
1) 启动监听
2) 启动数据库到mount 状态
如果将数据库改到OPEN状态(SQL>alter database open;),会报错。
10. 用RMAN做全库恢复
a) 检查备份
b) 全库恢复。
11. 启动数据库到OPEN
使用该热备方式做的备份和方式,一般alter database open时必须加resetlogs参数,除非是在mount状态下的冷备,并且将重做日志也复制到异机的情况下可以直接alter database open;。
12. 检查temp表空间,为temp表空间增加临时文件。
添加临时文件:
13. 重新启动数据库,做全备