10GR2 RAC恢复为单实例数据库

 

1         基本环境

1.1     源端

       操作系统版本:Red Hat Enterprise Linux Server release 5.8 (Tikanga)

       操作系统内核版本:Linux oradba 2.6.18-308.el5 #1 SMP Fri Jan 27 17:17:51 EST 2012 x86_64 x86_64 x86_64 GNU/Linux

数据库版本:Oracle Database Enterprise for linux 64bit(10.2.0.5.0)

Oracle基础目录:ORACLE_BASE=/app/oracle

集群件宿主目录:ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs

数据库宿主目录:ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db

1.2     目标端

操作系统版本:Red Hat Enterprise Linux Server release 5.8 (Tikanga)

操作系统内核版本:Linux oradba 2.6.18-308.el5 #1 SMP Fri Jan 27 17:17:51 EST 2012 x86_64 x86_64 x86_64 GNU/Linux

数据库版本:Oracle Database Enterprise for linux 64bit(10.2.0.5.0)

Oracle基础目录:ORACLE_BASE=/app/oracle

数据库宿主目录:ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db

2         源端数据库结构

2.1     数据库名称

SQL> select name from v$database;

NAME

---------------------------------------------

TCCM

2.2     日志模式

SQL> select log_mode from v$database;

LOG_MODE

------------------------

ARCHIVELOG

2.3     参数文件

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

spfile                               string      +ARC/tccm/spfiletccm.ora

2.4     控制文件

SQL> select name from v$controlfile;

NAME

--------------------------------------------------------------------------------

+DATA/tccm/controlfile/current.256.852041897

+ARC/tccm/controlfile/current.256.852041897

2.5     重做日志

   THREAD#     GROUP# MEMBER                                             SIZES

---------- ---------- --------------------------------------------- ----------

         1          1 +DATA/tccm/onlinelog/group_1.257.852044107           300

         1          2 +ARC/tccm/onlinelog/group_2.258.852044055            300

         1          2 +DATA/tccm/onlinelog/group_2.258.852044055           300

         1          3 +ARC/tccm/onlinelog/group_3.260.852044009            300

         1          3 +DATA/tccm/onlinelog/group_3.266.852044007           300

         1          1 +ARC/tccm/onlinelog/group_1.257.852044109            300

         2          6 +DATA/tccm/onlinelog/group_6.268.852043729           300

         2          5 +ARC/tccm/onlinelog/group_5.262.852043681            300

         2          5 +DATA/tccm/onlinelog/group_5.267.852043681           300

         2          6 +ARC/tccm/onlinelog/group_6.263.852043729            300

         2          4 +DATA/tccm/onlinelog/group_4.265.852043983           300

   THREAD#     GROUP# MEMBER                                             SIZES

---------- ---------- --------------------------------------------- ----------

         2          4 +ARC/tccm/onlinelog/group_4.259.852043985            300

2.6     数据文件

     FILE# NAME

---------- ---------------------------------------------

         1 +DATA/tccm/datafile/system.259.852041899

         2 +DATA/tccm/datafile/undotbs1.260.852041903

         3 +DATA/tccm/datafile/sysaux.261.852041905

         4 +DATA/tccm/datafile/undotbs2.263.852041907

         5 +DATA/tccm/datafile/users.264.852041909

         6 +DATA/tccm/datafile/test.269.852046259

         7 +DATA/tccm/datafile/kts_kd_com_dx.dbf

         8 +DATA/tccm/datafile/kts_kd_sale_dx.dbf

         9 +DATA/tccm/datafile/kts_kd_his_dx.dbf

        10 +DATA/tccm/datafile/kts_kd_bank_dx.dbf

        11 +DATA/tccm/datafile/kts_fsms.dbf

     FILE# NAME

---------- ---------------------------------------------

        12 +DATA/tccm/datafile/kts_fsms_his.dbf

        13 +DATA/tccm/datafile/kfcs.dbf

        14 +DATA/tccm/datafile/dgtest.277.883135239

2.7     临时文件

SQL> select file#,name from v$tempfile;

     FILE# NAME

---------- ---------------------------------------------

         1 +DATA/tccm/tempfile/temp.262.852046113

2.8     归档参数情况

SQL> select inst_id,name,value from gv$parameter where name like 'log_archive_dest_%' and value!='enable' and value is not null;

   INST_ID NAME                           VALUE

---------- ------------------------------ -----------------------------------

         1 log_archive_dest_1             location=+ARC

         2 log_archive_dest_1             location=+ARC

2.9     诊断文件的位置

SQL> select name,value from v$parameter where name like '%dest';

NAME                 VALUE

-------------------- ---------------------------------------------

background_dump_dest           /app/oracle/admin/tccm/bdump

user_dump_dest                 /app/oracle/admin/tccm/udump

core_dump_dest                 /app/oracle/admin/tccm/cdump

audit_file_dest                              /app/oracle/admin/tccm/adump

3         源数据库备份

3.1     备份脚本

run

{

allocate channel c1 device type disk;

allocate channel c2 device type disk;

allocate channel c3 device type disk;

allocate channel c4 device type disk;

crosscheck backup;

crosscheck archivelog all;

backup full database format '/oraback/rman/TCZB_%t_%d_%I_%s.db';

sql 'alter system switch logfile';

sql 'alter system checkpoint';

backup archivelog all format '/oraback/rman/TCZB_%t_%d_%I_%s.arc';

backup current controlfile format '/oraback/rman/TCZB_%t_%d_%I_%s.ctl';

backup spfile format '/oraback/rman/TCZB_%t_%d_%I_%s_%p.spfile';

delete noprompt obsolete;

delete noprompt expired backup;

release channel c1;

release channel c2;

release channel c3;

release channel c4;

}

3.2     生成的备份集

TCZB_883218978_TCCM_1582065125_745.db         

TCZB_883218978_TCCM_1582065125_746.db         

TCZB_883218978_TCCM_1582065125_747.db         

TCZB_883218978_TCCM_1582065125_748.db         

TCZB_883218993_TCCM_1582065125_749.db         

TCZB_883218994_TCCM_1582065125_750.db         

TCZB_883219002_TCCM_1582065125_751.arc        

TCZB_883219002_TCCM_1582065125_752.arc        

TCZB_883219002_TCCM_1582065125_753.arc        

TCZB_883219002_TCCM_1582065125_754.arc        

TCZB_883219038_TCCM_1582065125_755.arc        

TCZB_883219042_TCCM_1582065125_756.ctl        

TCZB_883219043_TCCM_1582065125_757_1.spfile

4         目标数据库的准备工作

4.1     创建相关目录

4.1.1      创建数据文件目录

4.1.1.1            创建数据库目录

SQL> alter diskgroup data add directory '+DATA/TCCM';

Diskgroup altered.

4.1.1.2            创建归档日志目录

SQL> alter diskgroup data add directory '+DATA/TCCM/ARCHIVELOG';

Diskgroup altered.

4.1.1.3            创建控制文件目录

SQL> alter diskgroup data add directory '+DATA/TCCM/CONTROLFILE';

Diskgroup altered.

4.1.1.4            创建数据文件目录

SQL> alter diskgroup data add directory '+DATA/TCCM/DATAFILE';

Diskgroup altered.

4.1.1.5            创建REDO日志目录

SQL> alter diskgroup data add directory '+DATA/TCCM/ONLINELOG';

Diskgroup altered.

4.1.1.6            创建参数文件目录

SQL> alter diskgroup data add directory '+DATA/TCCM/PARAMETERFILE';

Diskgroup altered.

4.1.1.7            创建临时文件目录

SQL> alter diskgroup data add directory '+DATA/TCCM/TEMPFILE';

Diskgroup altered.

4.1.1.8            其他ASM磁盘组的处理

SQL> alter diskgroup arc add directory '+ARC/TCCM';

Diskgroup altered.

SQL> alter diskgroup arc add directory '+ARC/TCCM/ARCHIVELOG';

Diskgroup altered.

SQL> alter diskgroup arc add directory '+ARC/TCCM/CONTROLFILE';

Diskgroup altered.

SQL> alter diskgroup arc add directory '+ARC/TCCM/DATAFILE';

Diskgroup altered.

SQL> alter diskgroup arc add directory '+ARC/TCCM/ONLINELOG';

Diskgroup altered.

SQL> alter diskgroup arc add directory '+ARC/TCCM/PARAMETERFILE';

Diskgroup altered.

SQL> alter diskgroup arc add directory '+arc/TCCM/TEMPFILE';

Diskgroup altered.

4.1.2      创建诊断文件的位置

mkdir -p /app/oracle/admin/tccm/bdump

mkdir -p /app/oracle/admin/tccm/udump

mkdir -p /app/oracle/admin/tccm/cdump

mkdir -p /app/oracle/admin/tccm/adump

4.2     复制备份集

复制源数据库位于/oraback/rman目录下的备份集到目标库的/home/oracle/oraback目录下

备份集文件的名称为:

TCZB_883218978_TCCM_1582065125_745.db           

TCZB_883218978_TCCM_1582065125_746.db           

TCZB_883218978_TCCM_1582065125_747.db           

TCZB_883218978_TCCM_1582065125_748.db           

TCZB_883218993_TCCM_1582065125_749.db           

TCZB_883218994_TCCM_1582065125_750.db           

TCZB_883219002_TCCM_1582065125_751.arc          

TCZB_883219002_TCCM_1582065125_752.arc          

TCZB_883219002_TCCM_1582065125_753.arc          

TCZB_883219002_TCCM_1582065125_754.arc          

TCZB_883219038_TCCM_1582065125_755.arc          

TCZB_883219042_TCCM_1582065125_756.ctl          

TCZB_883219043_TCCM_1582065125_757_1.spfile

由于有标记能够明显的区分出哪个是什么类型的文件。

5         恢复过程

5.1     目标数据库创建密码文件

$ORACLE_HOME/dbs/$ orapwd file=orapwetax password=oracle entries=2

5.2     恢复参数文件

全损坏恢复中的参数文件恢复非常重要,只有参数文件恢复成功,才能恢复控制文件和数据文件

5.2.1      DBID的发现

查看备份集

TCZB_883218978_TCCM_1582065125_745.db           

TCZB_883218978_TCCM_1582065125_746.db           

TCZB_883218978_TCCM_1582065125_747.db           

TCZB_883218978_TCCM_1582065125_748.db           

TCZB_883218993_TCCM_1582065125_749.db           

TCZB_883218994_TCCM_1582065125_750.db           

TCZB_883219002_TCCM_1582065125_751.arc          

TCZB_883219002_TCCM_1582065125_752.arc          

TCZB_883219002_TCCM_1582065125_753.arc          

TCZB_883219002_TCCM_1582065125_754.arc          

TCZB_883219038_TCCM_1582065125_755.arc          

TCZB_883219042_TCCM_1582065125_756.ctl          

TCZB_883219043_TCCM_1582065125_757_1.spfile

注意在全部都损坏的情况下要恢复数据库,必须要有dbid,我们在备份脚本中的%I的参数指定的就是为dbid,我们看这里的dbid1582065125

5.2.2      设定ORACLE_SID

$export ORA_RMAN_SGA_TARGET=350

$ export ORACLE_SID=tccm

$ rman target / nocatalog

Recovery Manager: Release 10.2.0.5.0 - Production on Mon Jun 1 15:52:43 2015

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

connected to target database (not started)

5.2.3      将数据库启动到nomount状态

RMAN> startup nomount

startup failed: ORA-01078: failure in processing system parameters

LRM-00109: could not open parameter file '/app/oracle/product/10.2.0/db/dbs/inittccm.ora'

starting Oracle instance without parameter file for retrival of spfile

Oracle instance started

Total System Global Area     369098752 bytes

Fixed Size                     2096312 bytes

Variable Size                109052744 bytes

Database Buffers             247463936 bytes

Redo Buffers                  10485760 bytes

5.2.4      设定数据库DBID

RMAN> set dbid=1582065125

executing command: SET DBID

5.2.5      使用spfile文件的备份创建出pfile

由于我们的源环境是RAC环境,所以这里要先创建出pfile文件然后修改部分参数。

RMAN> restore spfile to pfile '$ORACLE_HOME/dbs/inittccm.ora' from '/home/oracle/oraback/TCZB_883219043_TCCM_1582065125_757_1.spfile';

Starting restore at 24-JUN-15

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=34 devtype=DISK

channel ORA_DISK_1: autobackup found: /home/oracle/oraback/TCZB_883219043_TCCM_1582065125_757_1.spfile

channel ORA_DISK_1: SPFILE restore from autobackup complete

Finished restore at 24-JUN-15

RMAN> shutdown immediate

Oracle instance shut down

RMAN> quit

Recovery Manager complete.

5.2.6      查看生成的文件

drwxr-x---  2 oracle oinstall  4096 Jun 24 20:13 .

drwxr-x--- 61 oracle oinstall  4096 Jun 24 17:16 ..

-rw-rw----  1 oracle oinstall  1179 Jun 24 19:53 ab_+ASM.dat

-rw-r-----  1 oracle oinstall  1057 Jun 24 20:13 alert_tccm.log

-rw-rw----  1 oracle oinstall  1544 Jun 24 19:53 hc_+ASM.dat

-rw-rw----  1 oracle oinstall  1544 Jun 24 20:13 hc_tccm.dat

-rw-r--r--  1 oracle oinstall 12920 May  3  2001 initdw.ora

-rw-r-----  1 oracle oinstall  8385 Jun 24 19:56 init.ora

-rw-r--r--  1 oracle oinstall  1540 Jun 24 20:12 inittccm.ora

-rw-rw----  1 oracle oinstall    24 Jun 24 17:17 lk+ASM

-rw-r-----  1 oracle oinstall  1536 Jun 24 17:17 orapw+ASM

-rw-r-----  1 oracle oinstall  1536 Jun 24 19:07 orapwtccm

-rw-r-----  1 oracle oinstall  1536 Jun 24 17:18 spfile+ASM.ora

5.2.7      修改文件的部分参数

5.2.7.1            源文件

tccm1.__db_cache_size=7230980096               //与下一行合并tccm.__db_cache_size=7230980096

tccm2.__db_cache_size=8120172544

tccm1.__java_pool_size=16777216                            //与下一行合并tccm.__java_pool_size=16777216

tccm2.__java_pool_size=16777216

tccm1.__large_pool_size=16777216                 //与下一行合并tccm.__large_pool_size=16777216

tccm2.__large_pool_size=16777216

tccm1.__shared_pool_size=2348810240           //与下一行合并tccm.__shared_pool_size=2348810240

tccm2.__shared_pool_size=1459617792

tccm1.__streams_pool_size=33554432             //与下一行合并tccm.__streams_pool_size=33554432

tccm2.__streams_pool_size=33554432

*.audit_file_dest='/app/oracle/admin/tccm/adump'

*.background_dump_dest='/app/oracle/admin/tccm/bdump'

*.cluster_database_instances=2                         //删除

*.cluster_database=TRUE                                 //更改为*.cluster_database=false

*.compatible='10.2.0.5.0'

*.control_files='+DATA/tccm/controlfile/control01.ctl','+ARC/tccm/controlfile/control02.ctl'

*.core_dump_dest='/app/oracle/admin/tccm/cdump'

*.db_block_size=8192

*.db_create_file_dest='+DATA'

*.db_domain=''

*.db_file_multiblock_read_count=16

*.db_name='tccm'

*.db_recovery_file_dest='+ARC'

*.db_recovery_file_dest_size=32212254720

*.dispatchers='(PROTOCOL=TCP) (SERVICE=tccmXDB)'

tccm1.instance_number=1                                 //删除

tccm2.instance_number=2                                 //删除

*.job_queue_processes=10

tccm1.local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.10.183)(PORT=1521))'            //删除

tccm2.local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.10.184)(PORT=1521))'            //删除

*.log_archive_dest_1='location=+ARC'

*.open_cursors=300

*.pga_aggregate_target=1667235840

*.processes=600

*.remote_listener='LISTENERS_TCCM'                   //删除

*.remote_login_passwordfile='exclusive'

*.sessions=170

*.sga_target=9663676416

tccm2.thread=2                                         //删除

tccm1.thread=1                                         //删除

*.undo_management='AUTO'

tccm1.undo_tablespace='UNDOTBS1'             //与下一行合并*.undo_tablespace='UNDOTBS1'

tccm2.undo_tablespace='UNDOTBS2'             //删除

*.user_dump_dest='/app/oracle/admin/tccm/udump'

5.2.7.2            修改后的文件

*.__db_cache_size=7230980096

*.__java_pool_size=16777216

*.__large_pool_size=16777216

*.__shared_pool_size=2348810240

*.__streams_pool_size=33554432

*.audit_file_dest='/app/oracle/admin/tccm/adump'

*.background_dump_dest='/app/oracle/admin/tccm/bdump'

*.cluster_database=false

*.compatible='10.2.0.5.0'

*.control_files='+DATA/tccm/controlfile/control01.ctl','+ARC/tccm/controlfile/control02.ctl'

*.core_dump_dest='/app/oracle/admin/tccm/cdump'

*.db_block_size=8192

*.db_create_file_dest='+DATA'

*.db_domain=''

*.db_file_multiblock_read_count=16

*.db_name='tccm'

*.db_recovery_file_dest='+ARC'

*.db_recovery_file_dest_size=32212254720

*.dispatchers='(PROTOCOL=TCP) (SERVICE=tccmXDB)'

*.job_queue_processes=10

*.log_archive_dest_1='location=+ARC'

*.open_cursors=300

*.pga_aggregate_target=1667235840

*.processes=600

*.remote_login_passwordfile='exclusive'

*.sessions=170

*.sga_target=9663676416

*.undo_management='AUTO'

*.undo_tablespace='UNDOTBS1'

*.user_dump_dest='/app/oracle/admin/tccm/udump'

5.2.8      启动数据库到nomount状态

$export ORACLE_SID=tccm

$sqlplus /nolog

SQL*Plus: Release 10.2.0.5.0 - Production on Wed Jun 24 20:29:12 2015

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

SQL> conn / as sysdba

Connected to an idle instance.

SQL> startup pfile='$ORACLE_HOME/dbs/inittccm.ora' nomount;

ORACLE instance started.

Total System Global Area 9663676416 bytes

Fixed Size                  2112048 bytes

Variable Size            2415920592 bytes

Database Buffers         7230980096 bytes

Redo Buffers               14663680 bytes

5.2.9      生成spfile文件

SQL> create spfile from pfile;

File created.

SQL> shutdown immediate

ORA-01507: database not mounted

ORACLE instance shut down.

SQL> startup nomount

ORACLE instance started.

Total System Global Area 9663676416 bytes

Fixed Size                  2112048 bytes

Variable Size            2415920592 bytes

Database Buffers         7230980096 bytes

Redo Buffers               14663680 bytes

SQL> show parameter spfile

NAME                                 TYPE

------------------------------------ ----------------------

VALUE

------------------------------

spfile                               string

/app/oracle/product/10.2.0/db/

dbs/spfiletccm.ora

5.3     恢复控制文件

5.3.1      数据库启动到nomount状态

SQL> conn / as sysdba

Connected to an idle instance.

SQL> startup nomount

ORACLE instance started.

Total System Global Area 1610612736 bytes

Fixed Size                  2096632 bytes

Variable Size             385876488 bytes

Database Buffers         1207959552 bytes

Redo Buffers               14680064 bytes

5.3.2      恢复控制文件

在上一节中我们已经指定了控制文件的参数为

*.control_files='+DATA/tccm/controlfile/control01.ctl','+ARC/tccm/controlfile/control02.ctl'

$rman target / nocatalog

Recovery Manager: Release 10.2.0.5.0 - Production on Wed Jun 24 20:31:52 2015

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

connected to target database: tccm (not mounted)

using target database control file instead of recovery catalog

RMAN> restore controlfile from '/home/oracle/oraback/TCZB_883219042_TCCM_1582065125_756.ctl';

Starting restore at 24-JUN-15

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=649 devtype=DISK

channel ORA_DISK_1: restoring control file

channel ORA_DISK_1: restore complete, elapsed time: 00:00:09

output filename=+DATA/tccm/controlfile/control01.ctl

output filename=+ARC/tccm/controlfile/control02.ctl

Finished restore at 24-JUN-15

5.3.3      将数据库启动到mount状态

RMAN> startup mount;

database is already started

database mounted

released channel: ORA_DISK_1

5.3.4      查看控制文件中记载的各物理组件的位置

5.3.4.1            参数文件

SQL> show parameter spfile

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

spfile                               string      /app/oracle/product/10.2.0/db/

                                                 dbs/spfiletccm.ora

5.3.4.2            数据文件

SQL> select file#,name from v$datafile;

     FILE# NAME

---------- ---------------------------------------------

         1 +DATA/tccm/datafile/system.259.852041899

         2 +DATA/tccm/datafile/undotbs1.260.852041903

         3 +DATA/tccm/datafile/sysaux.261.852041905

         4 +DATA/tccm/datafile/undotbs2.263.852041907

         5 +DATA/tccm/datafile/users.264.852041909

         6 +DATA/tccm/datafile/test.269.852046259

         7 +DATA/tccm/datafile/kts_kd_com_dx.dbf

         8 +DATA/tccm/datafile/kts_kd_sale_dx.dbf

         9 +DATA/tccm/datafile/kts_kd_his_dx.dbf

        10 +DATA/tccm/datafile/kts_kd_bank_dx.dbf

        11 +DATA/tccm/datafile/kts_fsms.dbf

     FILE# NAME

---------- ---------------------------------------------

        12 +DATA/tccm/datafile/kts_fsms_his.dbf

        13 +DATA/tccm/datafile/kfcs.dbf

        14 +DATA/tccm/datafile/dgtest.277.883135239

5.3.4.3            临时文件

SQL> select file#,name from v$tempfile;

     FILE# NAME

---------- ---------------------------------------------

         1 +DATA1/etax/tempfile/temp.276.880987427

5.3.4.4            控制文件

SQL> select name from v$controlfile;

NAME

--------------------------------------------------------------------------------

+DATA/tccm/controlfile/control01.ctl

+ARC/tccm/controlfile/control02.ctl

5.3.4.5            重做日志

    THREAD#     GROUP# MEMBER                                             SIZES

---------- ---------- --------------------------------------------- ----------

         1          1 +DATA/tccm/onlinelog/group_1.257.852044107           300

         1          2 +ARC/tccm/onlinelog/group_2.258.852044055            300

         1          2 +DATA/tccm/onlinelog/group_2.258.852044055           300

         1          3 +ARC/tccm/onlinelog/group_3.260.852044009            300

         1          3 +DATA/tccm/onlinelog/group_3.266.852044007           300

         1          1 +ARC/tccm/onlinelog/group_1.257.852044109            300

         2          6 +DATA/tccm/onlinelog/group_6.268.852043729           300

         2          5 +ARC/tccm/onlinelog/group_5.262.852043681            300

         2          5 +DATA/tccm/onlinelog/group_5.267.852043681           300

         2          6 +ARC/tccm/onlinelog/group_6.263.852043729            300

         2          4 +DATA/tccm/onlinelog/group_4.265.852043983           300

   THREAD#     GROUP# MEMBER                                             SIZES

---------- ---------- --------------------------------------------- ----------

         2          4 +ARC/tccm/onlinelog/group_4.259.852043985            300

几个物理组件除了控制文件和参数文件之外,datafiletempfileredofile位置均在原位置,目标环境与生产环境相同,所以不用做rename更改

5.4     恢复数据文件

5.4.1      将数据库启动到mount状态

SQL> conn / as sysdba

Connected to an idle instance.

SQL> startup mount

ORACLE instance started.

Total System Global Area 1610612736 bytes

Fixed Size                  2096632 bytes

Variable Size             385876488 bytes

Database Buffers         1207959552 bytes

Redo Buffers               14680064 bytes

Database mounted.

SQL> quit

5.4.2      进入RMAN

5.4.2.1            查看数据库的结构

RMAN> report schema;

List of Permanent Datafiles

===========================

File Size(MB) Tablespace           RB segs Datafile Name

---- -------- -------------------- ------- ------------------------

1    0        SYSTEM               ***     +DATA/tccm/datafile/system.259.852041899

2    0        UNDOTBS1             ***     +DATA/tccm/datafile/undotbs1.260.852041903

3    0        SYSAUX               ***     +DATA/tccm/datafile/sysaux.261.852041905

4    0        UNDOTBS2             ***     +DATA/tccm/datafile/undotbs2.263.852041907

5    0        USERS                ***     +DATA/tccm/datafile/users.264.852041909

6    0        TEST                 ***     +DATA/tccm/datafile/test.269.852046259

7    0        KTS_KD_COM_DX        ***     +DATA/tccm/datafile/kts_kd_com_dx.dbf

8    0        KTS_KD_SALE_DX       ***     +DATA/tccm/datafile/kts_kd_sale_dx.dbf

9    0        KTS_KD_HIS_DX        ***     +DATA/tccm/datafile/kts_kd_his_dx.dbf

10   0        KTS_KD_BANK_DX       ***     +DATA/tccm/datafile/kts_kd_bank_dx.dbf

11   0        KTS_FSMS             ***     +DATA/tccm/datafile/kts_fsms.dbf

12   0        KTS_FSMS_HIS         ***     +DATA/tccm/datafile/kts_fsms_his.dbf

13   0        KFCS                 ***     +DATA/tccm/datafile/kfcs.dbf

14   0        DGTEST               ***     +DATA/tccm/datafile/dgtest.277.883135239

List of Temporary Files

=======================

File Size(MB) Tablespace           Maxsize(MB) Tempfile Name

---- -------- -------------------- ----------- --------------------

1    0        TEMP                 0           +DATA/tccm/tempfile/temp.262.852046113

5.4.2.2            查看备份集的情况

RMAN> list backup of database;

BS Key  Type LV Size       Device Type Elapsed Time Completion Time

------- ---- -- ---------- ----------- ------------ ---------------

745     Full    22.80M     DISK        00:00:10     24-JUN-15     

        BP Key: 745   Status: EXPIRED  Compressed: NO  Tag: TAG20150624T103618

        Piece Name: /oraback/rman/TCZB_883218978_TCCM_1582065125_746.db

  List of Datafiles in backup set 745

  File LV Type Ckp SCN    Ckp Time  Name

  ---- -- ---- ---------- --------- ----

  7       Full 29421204   24-JUN-15 +DATA/tccm/datafile/kts_kd_com_dx.dbf

  9       Full 29421204   24-JUN-15 +DATA/tccm/datafile/kts_kd_his_dx.dbf

  12      Full 29421204   24-JUN-15 +DATA/tccm/datafile/kts_fsms_his.dbf

  13      Full 29421204   24-JUN-15 +DATA/tccm/datafile/kfcs.dbf

BS Key  Type LV Size       Device Type Elapsed Time Completion Time

------- ---- -- ---------- ----------- ------------ ---------------

746     Full    736.00K    DISK        00:00:10     24-JUN-15     

        BP Key: 746   Status: EXPIRED  Compressed: NO  Tag: TAG20150624T103618

        Piece Name: /oraback/rman/TCZB_883218978_TCCM_1582065125_745.db

  List of Datafiles in backup set 746

  File LV Type Ckp SCN    Ckp Time  Name

  ---- -- ---- ---------- --------- ----

  5       Full 29421203   24-JUN-15 +DATA/tccm/datafile/users.264.852041909

  6       Full 29421203   24-JUN-15 +DATA/tccm/datafile/test.269.852046259

我们看到备份集的位置均在/oraback/rman目录下,但我们真实的备份集是在/home/oracle/oraback目录下,所以现在的备份集记录均无效,需要验证备份集后,将失效备份集清除,然后将新的备份集位置注册到控制文件中。

5.4.2.2.1    验证备份集

RMAN> crosscheck backup;

5.4.2.2.2    清除无用备份集

RMAN> delete noprompt expired backup;

5.4.2.2.3    查看备份集

RMAN> list backup;

5.4.2.2.4    注册新位置的备份集

目标机的备份集复制到了/home/oracle/oraback/目录下,将这个目录注册到控制文件的记录中。

RMAN> catalog start with '/home/oracle/oraback/';

searching for all files that match the pattern /home/oracle/oraback/

List of Files Unknown to the Database

=====================================

File Name: /home/oracle/oraback/TCZB_883219002_TCCM_1582065125_754.arc

File Name: /home/oracle/oraback/TCZB_883219043_TCCM_1582065125_757_1.spfile

File Name: /home/oracle/oraback/TCZB_883219042_TCCM_1582065125_756.ctl

File Name: /home/oracle/oraback/TCZB_883218994_TCCM_1582065125_750.db

File Name: /home/oracle/oraback/TCZB_883218993_TCCM_1582065125_749.db

File Name: /home/oracle/oraback/TCZB_883218978_TCCM_1582065125_745.db

File Name: /home/oracle/oraback/TCZB_883219002_TCCM_1582065125_753.arc

File Name: /home/oracle/oraback/TCZB_883218978_TCCM_1582065125_748.db

File Name: /home/oracle/oraback/TCZB_883219002_TCCM_1582065125_751.arc

File Name: /home/oracle/oraback/TCZB_883219038_TCCM_1582065125_755.arc

File Name: /home/oracle/oraback/TCZB_883218978_TCCM_1582065125_746.db

File Name: /home/oracle/oraback/TCZB_883219002_TCCM_1582065125_752.arc

File Name: /home/oracle/oraback/TCZB_883218978_TCCM_1582065125_747.db

Do you really want to catalog the above files (enter YES or NO)? yes

cataloging files...

cataloging done

List of Cataloged Files

=======================

File Name: /home/oracle/oraback/TCZB_883219002_TCCM_1582065125_754.arc

File Name: /home/oracle/oraback/TCZB_883219043_TCCM_1582065125_757_1.spfile

File Name: /home/oracle/oraback/TCZB_883219042_TCCM_1582065125_756.ctl

File Name: /home/oracle/oraback/TCZB_883218994_TCCM_1582065125_750.db

File Name: /home/oracle/oraback/TCZB_883218993_TCCM_1582065125_749.db

File Name: /home/oracle/oraback/TCZB_883218978_TCCM_1582065125_745.db

File Name: /home/oracle/oraback/TCZB_883219002_TCCM_1582065125_753.arc

File Name: /home/oracle/oraback/TCZB_883218978_TCCM_1582065125_748.db

File Name: /home/oracle/oraback/TCZB_883219002_TCCM_1582065125_751.arc

File Name: /home/oracle/oraback/TCZB_883219038_TCCM_1582065125_755.arc

File Name: /home/oracle/oraback/TCZB_883218978_TCCM_1582065125_746.db

File Name: /home/oracle/oraback/TCZB_883219002_TCCM_1582065125_752.arc

File Name: /home/oracle/oraback/TCZB_883218978_TCCM_1582065125_747.db

5.4.2.2.5    查看备份集情况

RMAN> list backup;

745     Full    22.80M     DISK        00:00:10     24-JUN-15     

        BP Key: 764   Status: AVAILABLE  Compressed: NO  Tag: TAG20150624T103618

        Piece Name: /home/oracle/oraback/TCZB_883218978_TCCM_1582065125_746.db

  List of Datafiles in backup set 745

  File LV Type Ckp SCN    Ckp Time  Name

  ---- -- ---- ---------- --------- ----

  7       Full 29421204   24-JUN-15 +DATA/tccm/datafile/kts_kd_com_dx.dbf

  9       Full 29421204   24-JUN-15 +DATA/tccm/datafile/kts_kd_his_dx.dbf

  12      Full 29421204   24-JUN-15 +DATA/tccm/datafile/kts_fsms_his.dbf

  13      Full 29421204   24-JUN-15 +DATA/tccm/datafile/kfcs.dbf

BS Key  Type LV Size       Device Type Elapsed Time Completion Time

------- ---- -- ---------- ----------- ------------ ---------------

746     Full    736.00K    DISK        00:00:10     24-JUN-15     

        BP Key: 759   Status: AVAILABLE  Compressed: NO  Tag: TAG20150624T103618

        Piece Name: /home/oracle/oraback/TCZB_883218978_TCCM_1582065125_745.db

  List of Datafiles in backup set 746

  File LV Type Ckp SCN    Ckp Time  Name

  ---- -- ---- ---------- --------- ----

  5       Full 29421203   24-JUN-15 +DATA/tccm/datafile/users.264.852041909

  6       Full 29421203   24-JUN-15 +DATA/tccm/datafile/test.269.852046259

通过注册后看到备份集的位置是正确的了,现在可以使用备份集了。

5.4.3      转储数据文件

在转储数据文件时直接更换文件的位置,并转储数据文件。

RMAN> restore database;

Starting restore at 24-JUN-15

using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile backupset restore

channel ORA_DISK_1: specifying datafile(s) to restore from backup set

restoring datafile 00002 to +DATA/tccm/datafile/undotbs1.260.852041903

restoring datafile 00008 to +DATA/tccm/datafile/kts_kd_sale_dx.dbf

restoring datafile 00010 to +DATA/tccm/datafile/kts_kd_bank_dx.dbf

restoring datafile 00014 to +DATA/tccm/datafile/dgtest.277.883135239

channel ORA_DISK_1: reading from backup piece /home/oracle/oraback/TCZB_883218978_TCCM_1582065125_747.db

channel ORA_DISK_1: restored backup piece 1

piece handle=/home/oracle/oraback/TCZB_883218978_TCCM_1582065125_747.db tag=TAG20150624T103618

channel ORA_DISK_1: restore complete, elapsed time: 00:00:08

channel ORA_DISK_1: starting datafile backupset restore

channel ORA_DISK_1: specifying datafile(s) to restore from backup set

restoring datafile 00001 to +DATA/tccm/datafile/system.259.852041899

restoring datafile 00003 to +DATA/tccm/datafile/sysaux.261.852041905

restoring datafile 00004 to +DATA/tccm/datafile/undotbs2.263.852041907

restoring datafile 00011 to +DATA/tccm/datafile/kts_fsms.dbf

channel ORA_DISK_1: reading from backup piece /home/oracle/oraback/TCZB_883218978_TCCM_1582065125_748.db

channel ORA_DISK_1: restored backup piece 1

piece handle=/home/oracle/oraback/TCZB_883218978_TCCM_1582065125_748.db tag=TAG20150624T103618

channel ORA_DISK_1: restore complete, elapsed time: 00:00:07

channel ORA_DISK_1: starting datafile backupset restore

channel ORA_DISK_1: specifying datafile(s) to restore from backup set

restoring datafile 00007 to +DATA/tccm/datafile/kts_kd_com_dx.dbf

restoring datafile 00009 to +DATA/tccm/datafile/kts_kd_his_dx.dbf

restoring datafile 00012 to +DATA/tccm/datafile/kts_fsms_his.dbf

restoring datafile 00013 to +DATA/tccm/datafile/kfcs.dbf

channel ORA_DISK_1: reading from backup piece /home/oracle/oraback/TCZB_883218978_TCCM_1582065125_746.db

channel ORA_DISK_1: restored backup piece 1

piece handle=/home/oracle/oraback/TCZB_883218978_TCCM_1582065125_746.db tag=TAG20150624T103618

channel ORA_DISK_1: restore complete, elapsed time: 00:00:08

channel ORA_DISK_1: starting datafile backupset restore

channel ORA_DISK_1: specifying datafile(s) to restore from backup set

restoring datafile 00005 to +DATA/tccm/datafile/users.264.852041909

restoring datafile 00006 to +DATA/tccm/datafile/test.269.852046259

channel ORA_DISK_1: reading from backup piece /home/oracle/oraback/TCZB_883218978_TCCM_1582065125_745.db

channel ORA_DISK_1: restored backup piece 1

piece handle=/home/oracle/oraback/TCZB_883218978_TCCM_1582065125_745.db tag=TAG20150624T103618

channel ORA_DISK_1: restore complete, elapsed time: 00:00:16

Finished restore at 24-JUN-15

5.4.4      恢复数据文件

由于我们使用的备份的控制文件进行的恢复,所以我们在执行恢复的时候要执行基于控制文件的恢复。

5.4.4.1.1    RMAN 恢复

RMAN> recover database;

RMAN-06054: media recovery requesting unknown log: thread 1 seq 289 lowscn 29421358

做基于日志序列号的恢复

RMAN> run

{

set until sequence 289;

recover database;

}

executing command: SET until clause

Starting recover at 24-JUN-15

using channel ORA_DISK_1

starting media recovery

media recovery complete, elapsed time: 00:00:02

Finished recover at 24-JUN-15

5.5     REDO文件

SQL> select l.thread#,l.group#,f.member,l.bytes from v$log l,v$logfile f where l.group#=f.group#;

     THREAD#     GROUP# MEMBER                                             BYTES

---------- ---------- --------------------------------------------- ----------

         1          1 +ARC/tccm/onlinelog/group_1.257.852044109      314572800

         1          1 +DATA/tccm/onlinelog/group_1.257.852044107     314572800

         1          2 +DATA/tccm/onlinelog/group_2.258.852044055     314572800

         1          2 +ARC/tccm/onlinelog/group_2.258.852044055      314572800

         1          3 +DATA/tccm/onlinelog/group_3.266.852044007     314572800

         1          3 +ARC/tccm/onlinelog/group_3.260.852044009      314572800

         2          4 +DATA/tccm/onlinelog/group_4.265.852043983     314572800

         2          4 +ARC/tccm/onlinelog/group_4.259.852043985      314572800

         2          5 +DATA/tccm/onlinelog/group_5.267.852043681     314572800

         2          5 +ARC/tccm/onlinelog/group_5.262.852043681      314572800

         2          6 +DATA/tccm/onlinelog/group_6.268.852043729     314572800

   THREAD#     GROUP# MEMBER                                             BYTES

---------- ---------- --------------------------------------------- ----------

         2          6 +ARC/tccm/onlinelog/group_6.263.852043729      314572800

select l.thread#,l.group#,f.member,l.status from v$log l,v$logfile f where l.group#=f.group# order by 1,2; 

 THREAD#     GROUP# MEMBER                                        STATUS

---------- ---------- --------------------------------------------- ----------

         1          1 +ARC/tccm/onlinelog/group_1.257.852044109     INACTIVE

         1          1 +DATA/tccm/onlinelog/group_1.257.852044107    INACTIVE

         1          2 +DATA/tccm/onlinelog/group_2.258.852044055    CURRENT

         1          2 +ARC/tccm/onlinelog/group_2.258.852044055     CURRENT

         1          3 +DATA/tccm/onlinelog/group_3.266.852044007    INACTIVE

         1          3 +ARC/tccm/onlinelog/group_3.260.852044009     INACTIVE

         2          4 +DATA/tccm/onlinelog/group_4.265.852043983    INACTIVE

         2          4 +ARC/tccm/onlinelog/group_4.259.852043985     INACTIVE

         2          5 +DATA/tccm/onlinelog/group_5.267.852043681    CURRENT

         2          5 +ARC/tccm/onlinelog/group_5.262.852043681     CURRENT

         2          6 +DATA/tccm/onlinelog/group_6.268.852043729    INACTIVE

   THREAD#     GROUP# MEMBER                                        STATUS

---------- ---------- --------------------------------------------- ----------

         2          6 +ARC/tccm/onlinelog/group_6.263.852043729     INACTIVE

5.6     打开数据库

必须以resetlogs方式打开数据库

SQL> alter database open resetlogs;

Database altered.

5.7     删除第二线程的重做日志

由于我们这里只有单个实例所有thread2的现成重做没有意义,这里做删除

5.7.1      查看全部重做日志

SQL> select thread#,group#,status from v$log;

    THREAD#     GROUP# STATUS

---------- ---------- ----------

         1          1 CURRENT

         1          2 UNUSED

         1          3 UNUSED

         2          4 CURRENT

         2          5 UNUSED

         2          6 UNUSED

rows selected

5.7.2      删除非当前日志

SQL> alter database disable thread 2;

Database altered.

SQL> alter database drop logfile group 5;

Database altered.

SQL> alter database drop logfile group 6;

Database altered.

5.7.3      删除第二线程的当前日志

5.7.3.1            重新启动数据库

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

Total System Global Area 9663676416 bytes

Fixed Size                  2112048 bytes

Variable Size            2415920592 bytes

Database Buffers         7230980096 bytes

Redo Buffers               14663680 bytes

Database mounted.

Database opened.

5.7.3.2            查看日志状态

SQL> select thread#,group#,status from v$log;

   THREAD#     GROUP# STATUS

---------- ---------- ----------

         1          1 CURRENT

         1          2 UNUSED

         1          3 UNUSED

         2          4 INACTIVE

5.7.3.3            删除日志

SQL> alter system archive log current;

System altered.

SQL> alter database drop logfile group 4;

Database altered.

5.7.3.4            再次查看日志状态

SQL> select thread#,group#,status from v$log;

   THREAD#     GROUP# STATUS

---------- ---------- ----------

         1          1 ACTIVE

         1          2 ACTIVE

1                                    3 CURRENT

附录

1         遇到的问题

1.1     RMAN不能nomount

$export ORACLE_SID=tccm

[orabk][oracle]>/home/oracle$rman target / nocatalog

Recovery Manager: Release 10.2.0.5.0 - Production on Wed Jun 24 20:04:43 2015

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

connected to target database (not started)

RMAN> startup nomount;

startup failed: ORA-01078: failure in processing system parameters

LRM-00109: could not open parameter file '/app/oracle/product/10.2.0/db/dbs/inittccm.ora'

starting Oracle instance without parameter file for retrival of spfile

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of startup command at 06/24/2015 20:04:47

RMAN-04014: startup failed: ORA-04031: unable to allocate 4128 bytes of shared memory ("shared pool","unknown object","sga heap(1,0)","kglsim hash table bkts")

这个问题通过手动建立参数文件的方法来解决

1176443.1文档对此有详细解释,解决方法:

1- Create temporary init.ora file (/oracle/product/11.2.0/db_1/dbs/initTEST.ora) with the following parameters:

    db_name=

    large_pool_size=100m

    shared_pool_size=250m

    db_cache_size=10m

2- Set environment variable  ORA_RMAN_SGA_TARGET before executing rman. For example:

    $ export ORA_RMAN_SGA_TARGET=350

此次实施用第二种方法解决了这个问题。

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

转载于:http://blog.itpub.net/20516214/viewspace-1716367/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值