Chinaunix首页 | 论坛 | 博客
  • 博客访问: 193232
  • 博文数量: 50
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 641
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-11 19:48
文章分类

全部博文(50)

文章存档

2011年(2)

2010年(1)

2009年(5)

2008年(42)

我的朋友

分类: 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 28-MAY-07

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 28-MAY-07

channel ORA_DISK_1: finished piece 1 at 28-MAY-07

piece handle=/orabk/full_07iis0oe_1_1.bak comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:24:05

Finished backup at 28-MAY-07

 

Starting backup at 28-MAY-07

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 28-MAY-07

channel ORA_DISK_1: finished piece 1 at 28-MAY-07

piece handle=/orabk/arc_08iis25m_1_1.bak comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02

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 28-MAY-07

 

Starting copy at 28-MAY-07

using channel ORA_DISK_1

channel ORA_DISK_1: copied current controlfile

output filename=/orabk/control_bak.ctl

Finished copy at 28-MAY-07

 

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 重新启动数据库,做全备

 

 

阅读(2348) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~