在另外的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/ ,如需转载,请注明出处,否则将追究法律责任。