ITPub博客

首页 > Linux操作系统 > Linux操作系统 > RAC环境利用备份恢复RAC数据库(一)

RAC环境利用备份恢复RAC数据库(一)

原创 Linux操作系统 作者:yangtingkun 时间:2010-04-09 23:58:46 0 删除 编辑

在另外的RAC环境中利用备份恢复RAC数据库的过程。

这一篇描述恢复前的准备工作。

 

 

前面介绍了在非RAC环境中,在一台服务器上通过单实例恢复RAC数据库。

这篇描述在已经建好的RAC环境中,恢复一个RAC数据库的过程。

首先需要在两个服务器上建立好同版本的CLUSTER和DATABASE软件。由于当前的RAC环境使用ASM作为共享存储机制,因此应该提前将ASM实例也创建好。

利用ftp将数据库的备份文件拷贝到本地磁盘组的相同位置上。

下面是恢复前的准备工作,首先设置当前的ORACLE_SID,然后从备份集中恢复初始化参数文件:

bash-3.00$ export ORACLE_SID=tradedb1
bash-3.00$ rman target /

恢复管理器: Release 10.2.0.3.0 - Production on 星期五 8月 14 16:33:46 2009

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

已连接到目标数据库 (未启动)

RMAN> startup nomount

启动失败: ORA-01078: failure in processing system parameters
LRM-00109: ???????????????? '/data/oracle/product/10.2/database/dbs/inittradedb1.ora'

在没有参数文件的情况下启动 Oracle 实例以检索 spfile
Oracle
实例已启动

系统全局区域总计     159383552 字节

Fixed Size                     2126864 字节
Variable Size                 81628144
字节
Database Buffers              71303168
字节
Redo Buffers                   4325376
字节

RMAN> restore spfile to '/export/home/oracle/spfiletradedb.ora' from '/data/backup/tradedb/a6kmlkel_1_1';

启动 restore 于 14-8月 -09
使用通道 ORA_DISK_1

通道 ORA_DISK_1: 已找到的自动备份: /data/backup/tradedb/a6kmlkel_1_1
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore
命令 (在 08/14/2009 16:35:49 上) 失败
ORA-19687:
在备份集内找不到 SPFILE

RMAN> restore spfile to '/export/home/oracle/spfiletradedb.ora' from '/data/backup/tradedb/a7kmlkem_1_1';

启动 restore 于 14-8月 -09
使用通道 ORA_DISK_1

通道 ORA_DISK_1: 已找到的自动备份: /data/backup/tradedb/a7kmlkem_1_1
通道 ORA_DISK_1: 从自动备份复原 SPFILE 已完成
完成 restore 于 14-8月 -09

在恢复控制文件前,先在节点2上利用ASMCMD工具来创建数据库所需的目录:

bash-3.00$ export ORACLE_SID=+ASM2
bash-3.00$ asmcmd
ASMCMD> cd member
ASMCMD> mkdir TRADEDB
ASMCMD> cd tradedb
ASMCMD> mkdir ARCHIVELOG
ASMCMD> exit
bash-3.00$

下面恢复控制文件:

RMAN> restore controlfile to '+MEMBER/tradedb/control01.ctl' from '/data/backup/tradedb/a7kmlkem_1_1';

启动 restore 于 14-8月 -09
使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在复原控制文件
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:04
完成 restore 于 14-8月 -09

RMAN> restore controlfile to '+MEMBER/tradedb/control02.ctl' from '/data/backup/tradedb/a7kmlkem_1_1';

启动 restore 于 14-8月 -09
使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在复原控制文件
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:02
完成 restore 于 14-8月 -09

RMAN> restore controlfile to '+MEMBER/tradedb/control03.ctl' from '/data/backup/tradedb/a7kmlkem_1_1';

启动 restore 于 14-8月 -09
使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在复原控制文件
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:02
完成 restore 于 14-8月 -09

RMAN> shutdown immediate

Oracle 实例已关闭

RMAN> exit


恢复管理器完成。

下面利用sqlplus来创建pfile文件:

bash-3.00$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.3.0 - Production on 星期五 8月 14 16:42:49 2009

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

已连接到空闲例程。

SQL> create pfile='/export/home/oracle/inittradedb1.ora' from spfile='/export/home/oracle/spfiletradedb.ora';

文件已创建。

编辑inittradedb1.ora初始化参数文件如下:

tradedb1.__db_cache_size=14378074112
tradedb2.__db_cache_size=16441671680
tradedb1.__java_pool_size=16777216
tradedb2.__java_pool_size=16777216
tradedb1.__large_pool_size=16777216
tradedb2.__large_pool_size=16777216
tradedb1.__shared_pool_size=6996099072
tradedb2.__shared_pool_size=4932501504
tradedb1.__streams_pool_size=50331648
tradedb2.__streams_pool_size=50331648
*.audit_file_dest='/data/oracle/admin/tradedb/adump'
*.background_dump_dest='/data/oracle/admin/tradedb/bdump'
*.cluster_database=true
*.cluster_database_instances=2
*.compatible='10.2.0.1.0'
*.control_files='+MEMBER/TRADEDB/control01.ctl', '+MEMBER/TRADEDB/control02.ctl', '+MEMBER/TRADEDB/control03.ctl'
*.core_dump_dest='/data/oracle/admin/tradedb/cdump'
*.db_block_size=16384
*.db_domain='us.oracle.com'
*.db_file_multiblock_read_count=16
*.db_name='tradedb'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=tradedbXDB)'
*.global_names=TRUE
tradedb1.instance_number=1
tradedb2.instance_number=2
*.job_queue_processes=50
tradedb1.local_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = 172.0.2.62)(PORT = 1521))'
tradedb2.local_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = 172.0.2.63)(PORT = 1521))'
*.log_archive_dest_1='LOCATION=+MEMBER/tradedb/archivelog'
*.log_archive_format='%t_%s_%r.dbf'
*.log_archive_local_first=FALSE
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=5000
*.pga_aggregate_target=4395630592
*.processes=300
*.remote_listener='LISTENERS_TRADEDB'
*.remote_login_passwordfile='EXCLUSIVE'
*.session_max_open_files=20
*.sessions=335
*.sga_target=21474836480
*.streams_pool_size=50331648
tradedb1.thread=1
tradedb2.thread=2
*.undo_management='AUTO'
*.undo_retention=10800
tradedb1.undo_tablespace='UNDOTBS1'
tradedb2.undo_tablespace='UNDOTBS2'
*.user_dump_dest='/data/oracle/admin/tradedb/udump'

主要修改了LOCAL_LISTENER初始化参数中的IP相关的参数信息,并重新设置了相关的dest目录信息。此外,将控制文件的路径和归档路径设置为ASM磁盘组。

下面建立DEST相关的路径:

bash-3.00$ mkdir -p /data/oracle/admin/tradedb
bash-3.00$ cd /data/oracle/admin/tradedb/
bash-3.00$ mkdir bdump adump cdump udump

在两个节点的tnsnames.ora中,添加LISTENERS_TRADEDB信息:

vi /data/oracle/product/10.2/database/network/admin/tnsnames.ora

LISTENERS_TRADEDB =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ser1-vip)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = ser2-vip)(PORT = 1521))
  )

下面可以启动数据库实例了:

SQL> startup mount pfile=/export/home/oracle/inittradedb1.ora
ORACLE
例程已经启动。

Total System Global Area 2.1475E+10 bytes
Fixed Size                  2166792 bytes
Variable Size            7090270200 bytes
Database Buffers         1.4378E+10 bytes
Redo Buffers                4325376 bytes
数据库装载完毕。
SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
断开

随后退出sqlplus,利用RMAN准备进行恢复。

在执行RESTORE命令之前,还需要进行一些额外的设置:

bash-3.00$ rman target /

恢复管理器: Release 10.2.0.3.0 - Production on 星期五 8月 14 17:07:18 2009

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

已连接到目标数据库: TRADEDB (DBID=4181457554, 未打开)

RMAN> show all;

使用目标数据库控制文件替代恢复目录
RMAN
配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
CONFIGURE DEVICE TYPE 'SBT_TAPE' PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   '/data/backup/tradedb/%U';
CONFIGURE CHANNEL 1 DEVICE TYPE DISK CONNECT '*' FORMAT   '/data/backup/tradedb/%U';
CONFIGURE CHANNEL 2 DEVICE TYPE DISK CONNECT '*' FORMAT   '/data/backup/tradedb/%U';
CONFIGURE CHANNEL 1 DEVICE TYPE 'SBT_TAPE' CONNECT '*';
CONFIGURE CHANNEL 2 DEVICE TYPE 'SBT_TAPE' CONNECT '*';
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/data/oracle/product/10.2/database/dbs/snapcf_tradedb1.f'; # default

RMAN> configure channel device type disk clear;

旧的 RMAN 配置参数:
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   '/data/backup/tradedb/%U';
已成功删除旧的 RMAN 配置参数

RMAN> configure channel 1 device type sbt clear;

旧的 RMAN 配置参数:
CONFIGURE CHANNEL 1 DEVICE TYPE 'SBT_TAPE' CONNECT '*';
已成功删除旧的 RMAN 配置参数

RMAN> configure channel 2 device type sbt clear;

旧的 RMAN 配置参数:
CONFIGURE CHANNEL 2 DEVICE TYPE 'SBT_TAPE' CONNECT '*';
已成功删除旧的 RMAN 配置参数

RMAN> configure channel 1 device type disk clear;

旧的 RMAN 配置参数:
CONFIGURE CHANNEL 1 DEVICE TYPE DISK CONNECT '*' FORMAT   '/data/backup/tradedb/%U';
已成功删除旧的 RMAN 配置参数

RMAN> configure channel 2 device type disk clear;

旧的 RMAN 配置参数:
CONFIGURE CHANNEL 2 DEVICE TYPE DISK CONNECT '*' FORMAT   '/data/backup/tradedb/%U';
已成功删除旧的 RMAN 配置参数

RMAN> configure device type disk clear;

旧的 RMAN 配置参数:
CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
RMAN
配置参数已成功重置为默认值

RMAN> configure device type sbt clear;

旧的 RMAN 配置参数:
CONFIGURE DEVICE TYPE 'SBT_TAPE' PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
RMAN
配置参数已成功重置为默认值

RMAN> catalog backuppiece '/data/backup/tradedb/a6kmlkel_1_1';

已列入目录的备份段
备份段 handle=/data/backup/tradedb/a6kmlkel_1_1 recid=2371 stamp=694890555

RMAN> catalog backuppiece '/data/backup/tradedb/a7kmlkem_1_1';

已列入目录的备份段
备份段 handle=/data/backup/tradedb/a7kmlkem_1_1 recid=2372 stamp=694890570

RMAN> catalog backuppiece '/data/backup/tradedb/a8kmlmrl_1_1';

已列入目录的备份段
备份段 handle=/data/backup/tradedb/a8kmlmrl_1_1 recid=2373 stamp=694890592

RMAN> catalog backuppiece '/data/backup/tradedb/a9kmlmrl_1_1';

已列入目录的备份段
备份段 handle=/data/backup/tradedb/a9kmlmrl_1_1 recid=2374 stamp=694890624

RMAN> catalog backuppiece '/data/backup/tradedb/aakmlmru_1_1';

已列入目录的备份段
备份段 handle=/data/backup/tradedb/aakmlmru_1_1 recid=2375 stamp=694890639

RMAN> catalog backuppiece '/data/backup/tradedb/abkmlmru_1_1';

已列入目录的备份段
备份段 handle=/data/backup/tradedb/abkmlmru_1_1 recid=2376 stamp=694890654

RMAN> catalog backuppiece '/data/backup/tradedb/ackmlndl_1_1';

已列入目录的备份段
备份段 handle=/data/backup/tradedb/ackmlndl_1_1 recid=2377 stamp=694890671

由于备份文件的存储位置和源数据库中保持一致,不再需要使用CATALOG命令将备份文件添加到控制文件中,至此恢复的准备工作完成,下面准备数据库的RESTORE工作。

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4227/viewspace-631736/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1964
  • 访问量
    11074371