ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 只有RMAN数据文件备份恢复过程

只有RMAN数据文件备份恢复过程

原创 Linux操作系统 作者:frog-qs 时间:2010-05-24 10:57:32 0 删除 编辑

只有RMAN数据文件备份恢复过程

(欢迎转载frog create http://space.itpub.net/22779291/)
步骤:
1.建立密码文件,参数文件,数据存放目录,日志存放目录.
2.指定ORACLE_SID,然后通过dbms_backup_restore从备份中读出数据文件
3.建立控制文件
4.加日志参数后resetlogs生成日志文件
5.全备数据库测试交易是否存在,并全备

模拟环境:
RMAN> backup database format '/opt/oracle/back/full_%d_%T_%s';

RMAN> list backup;
List of Backup Sets
===================

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
29      Full    650.94M    DISK        00:01:25     24-MAY-10     
        BP Key: 30   Status: AVAILABLE  Compressed: NO  Tag: FULL_BACK
        Piece Name: /opt/oracle/back/full_TMORCL_20100524_37
  List of Datafiles in backup set 29
  File LV Type Ckp SCN    Ckp Time  Name
  ---- -- ---- ---------- --------- ----
  1       Full 3913413    24-MAY-10 /opt/oracle/oradata/tmorcl/system01.dbf
  2       Full 3913413    24-MAY-10 /opt/oracle/oradata/tmorcl/undotbs01.dbf
  3       Full 3913413    24-MAY-10 /opt/oracle/oradata/tmorcl/sysaux01.dbf
  4       Full 3913413    24-MAY-10 /opt/oracle/oradata/tmorcl/users01.dbf
  7       Full 3913413    24-MAY-10 /opt/oracle/oradata/tmorcl/low.dbf

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
30      Full    7.08M      DISK        00:00:01     24-MAY-10     
        BP Key: 31   Status: AVAILABLE  Compressed: NO  Tag: FULL_BACK
        Piece Name: /opt/oracle/back/full_TMORCL_20100524_38
  Control File Included: Ckp SCN: 3913468      Ckp time: 24-MAY-10
  SPFILE Included: Modification time: 22-MAY-10

oracle@linux-rpu7:~> echo $ORACLE_SID
tmorcl
oracle@linux-rpu7:~> cd /opt/oracle/product/10.2/db_1/dbs/
oracle@linux-rpu7:~/product/10.2/db_1/dbs> ls
hc_temobi.dat  initdw.ora  init.ora  inittemobi.ora  lkTEMOBI  snapcf_tmorcl.f  spfiletemobi.ora
oracle@linux-rpu7:~/product/10.2/db_1/dbs> cd /opt/oracle/oradata/
oracle@linux-rpu7:~/oradata> ls
temobi
oracle@linux-rpu7:~/oradata> cd /opt/oracle/back/
oracle@linux-rpu7:~/back> ls
backup.log  backuup.sh  full_TMORCL_20100524_37  full_TMORCL_20100524_38

在该台电脑上面已经没有TMORCL相关的数据文件,参数文件,日志文件,控制文件。没有其他可用的备份文件,只有RMAN备份的数据文件存在。

数据库启动需要数据文件,参数文件,控制文件。

恢复过程:
1。建立实例TMORCL必须的目录,密码文件,参数文件
目录:
oracle@linux-rpu7:~> mkdir /opt/oracle/oradata/tmorcl
oracle@linux-rpu7:~> mkdir /opt/oracle/admin/tmorcl/adump -p
oracle@linux-rpu7:~> mkdir /opt/oracle/admin/tmorcl/cdump
oracle@linux-rpu7:~> mkdir /opt/oracle/admin/tmorcl/bdump
oracle@linux-rpu7:~> mkdir /opt/oracle/admin/tmorcl/udump
oracle@linux-rpu7:~> mkdir /opt/oracle/admin/tmorcl/dpdump
oracle@linux-rpu7:~> cd /opt/oracle/admin/tmorcl/
oracle@linux-rpu7:~/admin/tmorcl> ls
adump  bdump  cdump  dpdump  udump

建立密码文件:
oracle@linux-rpu7:~> orapwd file=/opt/oracle/product/10.2/db_1/dbs/orapwtmorcl password=qingsheng entries=5

建立参数文件:
oracle@linux-rpu7:~/product/10.2/db_1/dbs> pwd
/opt/oracle/product/10.2/db_1/dbs
oracle@linux-rpu7:~/product/10.2/db_1/dbs> vi inittmorcl.ora
tmorcl.__db_cache_size=62914560
tmorcl.__java_pool_size=4194304
tmorcl.__large_pool_size=4194304
tmorcl.__shared_pool_size=88080384
tmorcl.__streams_pool_size=4194304
*.audit_file_dest='/opt/oracle/admin/tmorcl/adump'
*.background_dump_dest='/opt/oracle/admin/tmorcl/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/opt/oracle/oradata/tmorcl/control01.ctl','/opt/oracle/oradata/tmorcl/control02.ctl','/opt/oracle/oradata/tmorcl/co
ntrol03.ctl'
*.core_dump_dest='/opt/oracle/admin/tmorcl/cdump'
*.db_block_checksum='TYPICAL'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='tmorcl'
*.db_recovery_file_dest='/opt/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=5368709120
*.dispatchers='(PROTOCOL=TCP) (SERVICE=tmorclXDB)'
*.job_queue_processes=10
*.log_archive_format='%t_%s_%r.dbf'
*.open_cursors=300
*.pga_aggregate_target=16777216
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=167772160
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/opt/oracle/admin/tmorcl/udump'

建立了参数文件,数据库可以启动到nomount状态了。

oracle@linux-rpu7:~> export ORACLE_SID=TMORCL
oracle@linux-rpu7:~> sqlplus / as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on Mon May 24 15:42:03 2010

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

Connected to an idle instance.

SQL> startup force nomount
ORACLE instance started.

Total System Global Area  167772160 bytes
Fixed Size                  1266392 bytes
Variable Size             100666664 bytes
Database Buffers           62914560 bytes
Redo Buffers                2924544 bytes
SQL> ho ls /opt/oracle/oradata/tmorcl       没有数据文件存在。

SQL>

2.使用DMBS_BACKUP_RESTORE提取数据文件。

SQL> declare
  2  devtype varchar2(256);
  3  done boolean;
  4  begin
  5  devtype:=sys.dbms_backup_restore.deviceAllocate(type=>'',ident=>'T1');
  6  sys.dbms_backup_restore.restoreSetDatafile;
  7  sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>1,toname=>'/opt/oracle/oradata/tmorcl/system01.dbf');
  8  sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>2,toname=>'/opt/oracle/oradata/tmorcl/undotbs01.dbf');
  9  sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>3,toname=>'/opt/oracle/oradata/tmorcl/sysaux01.dbf');
 10  sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>4,toname=>'/opt/oracle/oradata/tmorcl/users01.dbf');
 11  sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>7,toname=>'/opt/oracle/oradata/tmorcl/low.dbf');
 12  sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'/opt/oracle/back/full_TMORCL_20100524_37',params=>null);
 13  sys.dbms_backup_restore.deviceDeallocate;
 14  end;
 15  /
declare
*
ERROR at line 1:
ORA-19568: a device is already allocated to this session
ORA-06512: at "SYS.X$DBMS_BACKUP_RESTORE", line 173
ORA-06512: at "SYS.X$DBMS_BACKUP_RESTORE", line 148
ORA-06512: at line 5


SQL> shutdown immediate
ORA-01507: database not mounted


ORACLE instance shut down.
SQL> startup force nomount;
ORACLE instance started.

Total System Global Area  167772160 bytes
Fixed Size                  1266392 bytes
Variable Size             100666664 bytes
Database Buffers           62914560 bytes
Redo Buffers                2924544 bytes
SQL> cle scr

SQL> declare
  2  devtype varchar2(256);
  3  done boolean;
  4  begin
  5  devtype:=sys.dbms_backup_restore.deviceAllocate(type=>'',ident=>'T1');
  6  sys.dbms_backup_restore.restoreSetDatafile;
  7  sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>1,toname=>'/opt/oracle/oradata/tmorcl/system01.dbf');
  8  sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>2,toname=>'/opt/oracle/oradata/tmorcl/undotbs01.dbf');
  9  sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>3,toname=>'/opt/oracle/oradata/tmorcl/sysaux01.dbf');
 10  sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>4,toname=>'/opt/oracle/oradata/tmorcl/users01.dbf');
 11  sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>7,toname=>'/opt/oracle/oradata/tmorcl/low.dbf');
 12  sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'/opt/oracle/back/full_TMORCL_20100524_37',params=>null);
 13  sys.dbms_backup_restore.deviceDeallocate;
 14  end;
 15  /

PL/SQL procedure successfully completed.

SQL> ho ls -l /opt/oracle/oradata/tmorcl/          数据文件已经恢复。
total 1559321
-rw-r----- 1 oracle oinstall  10493952 2010-05-24 16:21 low.dbf
-rw-r----- 1 oracle oinstall 346038272 2010-05-24 16:22 sysaux01.dbf
-rw-r----- 1 oracle oinstall 534781952 2010-05-24 16:22 system01.dbf
-rw-r----- 1 oracle oinstall 340795392 2010-05-24 16:21 undotbs01.dbf
-rw-r----- 1 oracle oinstall 363077632 2010-05-24 16:21 users01.dbf

http://www.itpub.net/viewthread.php?tid=862625&extra=&page=2      关于DBMS_BACKUP_RESTORE的一个讨论

3.建立控制文件
SQL> create controlfile set database "TMORCL" resetlogs noarchivelog
  2  maxlogfiles 16
  3  maxlogmembers 3
  4  maxdatafiles 100
  5  maxinstances 8
  6  maxloghistory 292
  7  logfile
  8  group 1 '/opt/oracle/oradata/tmorcl/redo01.log' size 50m,
  9  group 2 '/opt/oracle/oradata/tmorcl/redo02.log' size 50m,
 10  group 3 '/opt/oracle/oradata/tmorcl/redo03.log' size 50m
 11  datafile
 12  '/opt/oracle/oradata/tmorcl/system01.dbf',
 13  '/opt/oracle/oradata/tmorcl/sysaux01.dbf',
 14  '/opt/oracle/oradata/tmorcl/undotbs01.dbf',
 15  '/opt/oracle/oradata/tmorcl/users01.dbf',
 16  '/opt/oracle/oradata/tmorcl/low.dbf'
 17  character set zhs16gbk;

Control file created.

SQL> alter database open resetlogs;

Database altered.

SQL> ho ls -l /opt/oracle/oradata/tmorcl/
total 1734752
-rw-r----- 1 oracle oinstall   7389184 2010-05-24 16:35 control01.ctl
-rw-r----- 1 oracle oinstall   7389184 2010-05-24 16:35 control02.ctl
-rw-r----- 1 oracle oinstall   7389184 2010-05-24 16:35 control03.ctl
-rw-r----- 1 oracle oinstall  10493952 2010-05-24 16:35 low.dbf
-rw-r----- 1 oracle oinstall  52429312 2010-05-24 16:35 redo01.log
-rw-r----- 1 oracle oinstall  52429312 2010-05-24 16:35 redo02.log
-rw-r----- 1 oracle oinstall  52429312 2010-05-24 16:35 redo03.log
-rw-r----- 1 oracle oinstall 346038272 2010-05-24 16:35 sysaux01.dbf
-rw-r----- 1 oracle oinstall 534781952 2010-05-24 16:35 system01.dbf
-rw-r----- 1 oracle oinstall 340795392 2010-05-24 16:35 undotbs01.dbf
-rw-r----- 1 oracle oinstall 363077632 2010-05-24 16:35 users01.dbf
到此步,控制文件已经建立完成。

4。生成日志文件
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area  167772160 bytes
Fixed Size                  1266392 bytes
Variable Size             100666664 bytes
Database Buffers           62914560 bytes
Redo Buffers                2924544 bytes
Database mounted.
Database opened.
SQL> ho ls -l /opt/oracle/oradata/tmorcl/             日志文件生成
total 1734752
-rw-r----- 1 oracle oinstall   7389184 2010-05-24 16:37 control01.ctl
-rw-r----- 1 oracle oinstall   7389184 2010-05-24 16:37 control02.ctl
-rw-r----- 1 oracle oinstall   7389184 2010-05-24 16:37 control03.ctl
-rw-r----- 1 oracle oinstall  10493952 2010-05-24 16:36 low.dbf
-rw-r----- 1 oracle oinstall  52429312 2010-05-24 16:36 redo01.log
-rw-r----- 1 oracle oinstall  52429312 2010-05-24 16:36 redo02.log
-rw-r----- 1 oracle oinstall  52429312 2010-05-24 16:36 redo03.log
-rw-r----- 1 oracle oinstall 346038272 2010-05-24 16:36 sysaux01.dbf
-rw-r----- 1 oracle oinstall 534781952 2010-05-24 16:36 system01.dbf
-rw-r----- 1 oracle oinstall 340795392 2010-05-24 16:36 undotbs01.dbf
-rw-r----- 1 oracle oinstall 363077632 2010-05-24 16:36 users01.dbf

SQL> create spfile from pfile;

File created.

至此,数据库已经恢复完成。
后续工作,备份数据库。

 

 

 

 

 

 


 

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

请登录后发表评论 登录
全部评论

注册时间:2009-10-27

  • 博文量
    132
  • 访问量
    273852