RAC環境利用備份恢復RAC資料庫(一)
在另外的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部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-631736/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RAC備份恢復之Voting備份與恢復
- 將RAC備份集恢復為單例項資料庫單例資料庫
- 備份與恢復:polardb資料庫備份與恢復資料庫
- 資料庫備份恢復資料庫
- 從nub備份恢復(同平臺)恢復RAC至單例項單例
- DM7 RAC資料庫恢復成單機資料庫資料庫
- DM7使用DMRMAN執行RAC資料庫恢復資料庫
- 利用innobackupex備份集恢復指定庫
- Mysql資料庫備份及恢復MySql資料庫
- 達夢資料庫備份恢復資料庫
- postgresql備份與恢復資料庫SQL資料庫
- 資料庫備份與恢復技術資料庫
- Mongo 資料庫備份和恢復命令Go資料庫
- pg_dump 備份,恢復資料庫資料庫
- PostgreSql資料庫的備份和恢復SQL資料庫
- Networker備份oracle racOracle
- SqlServer資料庫恢復備份資料的方法SQLServer資料庫
- 利用docker-compose恢復gitlab備份的資料DockerGitlab
- RAC恢復到單機
- mongodb資料庫備份與恢復(資料庫資料遷移)MongoDB資料庫
- vivo 資料庫備份恢復系統演化資料庫
- 使用Mysqldump備份和恢復MySQL資料庫MySql資料庫
- MySQL-19.資料庫備份與恢復MySql資料庫
- PG-pg_dump備份/恢復資料庫資料庫
- 備份與恢復:Polardb資料庫資料基於時間點恢復資料庫
- 【資料庫資料恢復】LINUX環境下ORACLE資料庫誤刪除的資料恢復資料庫資料恢復LinuxOracle
- 資料庫資料恢復—無備份,binlog未開啟的Mysql資料庫資料恢復案例資料庫資料恢復MySql
- KingbaseES RAC部署案例之---SAN環境構建RAC
- Oracle 12cR1 RAC叢集安裝(一)--環境準備Oracle
- NoSQL 資料庫案例實戰 -- MongoDB資料備份、恢復SQL資料庫MongoDB
- rac恢復到單例項單例
- RMAN備份恢復典型案例——資料庫卡頓資料庫
- Linux下MySQL資料庫的備份與恢復LinuxMySql資料庫
- Mysql資料備份與恢復MySql
- 利用MySQL全備份(mysqldump),如何只恢復一個庫或者一個表?MySql
- RAC環境修改spfile的位置
- 時序資料庫InfluxDB之備份和恢復策略資料庫UX
- 時序資料庫 InfluxDB 之備份和恢復策略資料庫UX
- Dedecms資料庫恢復與備份的兩種方法資料庫