用户管理模式下的备份操作【实例】

测试环境:

操作系统:windows7(32bit)

oracle 版本:11.2g

一、完整数据库备份

1、冷备份

第一步:查看相关文件的位置:

SQL> select * from v$controlfile;---查看控制文件的位置

STATUS  NAME                                               IS_ BLOCK_SIZE FILE_SIZE_BLKS
------- -------------------------------------------------  --- ---------- --------------
        D:\APP\ASUS\ORADATA\TEST\CONTROL01.CTL              NO       16384            600
        D:\APP\ASUS\FLASH_RECOVERY_AREA\TEST\CONTROL02.CTL  NO       16384            600
        
SQL> show parameter spfile;-----查看动态实例参数文件位置

NAME                                 TYPE        VALUE
------------------------------------ ----------- -----------------------------------------------------------
spfile                               string      D:\APP\ASUS\PRODUCT\11.2.0\DBHOME_1\DATABASE\SPFILETEST.ORA


SQL> select file#,name from v$datafile;-----查看数据文件位置

     FILE# NAME
---------- ----------------------------------------
         1 D:\APP\ASUS\ORADATA\TEST\SYSTEM01.DBF
         2 D:\APP\ASUS\ORADATA\TEST\SYSAUX01.DBF
         3 D:\APP\ASUS\ORADATA\TEST\UNDOTBS01.DBF
         4 D:\APP\ASUS\ORADATA\TEST\USERS01.DBF
         5 D:\APP\ASUS\ORADATA\TEST\EXAMPLE01.DBF
         6 D:\APP\ASUS\ORADATA\TEST\TEST01.DBF
         7 D:\APP\ASUS\ORADATA\TEST\TEST02.DBF

SQL> show parameter recovery;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      D:\app\asus\flash_recovery_are
                                                 a
db_recovery_file_dest_size           big integer 3852M
recovery_parallelism                 integer     0
第二步:正常关闭数据库

SQL>shutdown immediate
第三步:利用操作系统的copy 与xcopy命令复制实例文件、控制文件、数据文件、归档日志文件

----复制实例参数文件
C:\Users\asus>copy D:\APP\ASUS\PRODUCT\11.2.0\DBHOME_1\DATABASE\SPFILETEST.ORA G:\Oracle\backup\offline_full_backup
已复制         1 个文件。
----复制控制文件
C:\Users\asus>copy D:\APP\ASUS\ORADATA\TEST\CONTROL01.CTL G:\Oracle\backup\offline_full_backup
已复制         1 个文件。
----复制数据文件
C:\Users\asus>copy D:\APP\ASUS\ORADATA\TEST\SYSTEM01.DBF G:\Oracle\backup\offline_full_backup
已复制         1 个文件。

C:\Users\asus>copy D:\APP\ASUS\ORADATA\TEST\SYSAUX01.DBF G:\Oracle\backup\offline_full_backup
已复制         1 个文件。

C:\Users\asus>copy D:\APP\ASUS\ORADATA\TEST\UNDOTBS01.DBF G:\Oracle\backup\offline_full_backup
已复制         1 个文件。

C:\Users\asus>copy D:\APP\ASUS\ORADATA\TEST\USERS01.DBF G:\Oracle\backup\offline_full_backup
已复制         1 个文件。

C:\Users\asus>copy D:\APP\ASUS\ORADATA\TEST\EXAMPLE01.DBF G:\Oracle\backup\offline_full_backup
已复制         1 个文件。

C:\Users\asus>copy D:\APP\ASUS\ORADATA\TEST\TEST01.DBF G:\Oracle\backup\offline_full_backup
已复制         1 个文件。

C:\Users\asus>copy D:\APP\ASUS\ORADATA\TEST\TEST02.DBF G:\Oracle\backup\offline_full_backup
已复制         1 个文件。
----复制归档日志文件
C:\Users\asus>xcopy D:\app\asus\flash_recovery_area\TEST\ARCHIVELOG  G:\Oracle\backup\offline_full_backup\ARCHIVELOG /S/E

2、热备份

SQL> alter database begin backup;----开启热备份模式

数据库已更改。
-----用操作系统命令复制文件
SQL> host copy D:\APP\ASUS\ORADATA\TEST\SYSTEM01.DBF G:\Oracle\backup\hot_backup;
已复制         1 个文件。

SQL> host copy D:\APP\ASUS\ORADATA\TEST\SYSAUX01.DBF G:\Oracle\backup\hot_backup;
已复制         1 个文件。

SQL> host copy D:\APP\ASUS\ORADATA\TEST\UNDOTBS01.DBF G:\Oracle\backup\hot_backup;
已复制         1 个文件。

SQL> host copy D:\APP\ASUS\ORADATA\TEST\USERS01.DBF G:\Oracle\backup\hot_backup;
已复制         1 个文件。

SQL> host copy D:\APP\ASUS\ORADATA\TEST\TEST01.DBF G:\Oracle\backup\hot_backup;
已复制         1 个文件。

SQL> host copy D:\APP\ASUS\ORADATA\TEST\TEST02.DBF G:\Oracle\backup\hot_backup;
已复制         1 个文件。

-----从状态ACTIVE可以知道其实数据库的表空间处于热备份模式
SQL> select * from v$backup;

     FILE# STATUS                CHANGE# TIME
---------- ------------------ ---------- --------------
         1 ACTIVE                3199815 17-8月 -13
         2 ACTIVE                3199815 17-8月 -13
         3 ACTIVE                3199815 17-8月 -13
         4 ACTIVE                3199815 17-8月 -13
         5 ACTIVE                3199815 17-8月 -13
         7 ACTIVE                3199815 17-8月 -13

已选择6行。

SQL> alter database end backup;-----关闭热备份模式



SQL> alter system  archive log current;----关闭之后,应该马上刷新日志文件信息到归档日志文件中,以便保护用户恢复的数据

系统已更改。

SQL> select * from v$backup;---从STATUS状态可以看出,其实的数据库表空间已经退出热备份模式

     FILE# STATUS                CHANGE# TIME
---------- ------------------ ---------- --------------
         1 NOT ACTIVE            3199815 17-8月 -13
         2 NOT ACTIVE            3199815 17-8月 -13
         3 NOT ACTIVE            3199815 17-8月 -13
         4 NOT ACTIVE            3199815 17-8月 -13
         5 NOT ACTIVE            3199815 17-8月 -13
         7 NOT ACTIVE            3199815 17-8月 -13

已选择6行。

二、备份控制文件

      在修改了处于归档日志模式下的数据库的结构,如添加了某个表空间,可以备份一下控制文件,以记录创建备份的时候控制文件的映像。备份控制文件有两种方式可供选择,一种是二进制文件,一种是跟踪文件。

第一种:二进制文件【数据库打开的状态下】

      该种状态下的控制文件要比跟踪文件要好,因为其还附带了归档日志历史、read-only和offline表空间记录。如果是用RMAN的话,还会有备份集和COPY。如果数据库的版本大于或等于10.2,还会包括临时文件实体。

SQL> alter database backup controlfile to 'G:\Oracle\backup\hot_backup\Binary_controlfile.bak';

数据库已更改。

第二种:文本跟踪文件【数据库状态为open 或者mount】

SQL> alter database backup controlfile to trace;

数据库已更改。
       这种文件其实是创建当前状态控制文件的脚本,利用该脚本,就可以还原当前状态下的控制文件。在没有指定的情况下,该文件会包括noresetlogs和resetlogs两种状态的代码。临时文件的信息包含在脚本中的alter database ...add tempfile..语句中。

       该操作会记录在后台警报日志中,可以通过backgroup_dump_dest找出alert_sid.log文件中关于该操作的记录,然后查看出其中的具体文件。如下,为test_ora_5272.trc

Sat Aug 17 20:54:09 2013
alter database backup controlfile to trace
Backup controlfile written to trace file d:\app\asus\diag\rdbms\test\test\trace\test_ora_5272.trc
Completed: alter database backup controlfile to trace
      生成的文本跟踪文件的部分信息为:

STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "TEST" RESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 'D:\APP\ASUS\ORADATA\TEST\REDO01.LOG'  SIZE 50M BLOCKSIZE 512,
  GROUP 2 'D:\APP\ASUS\ORADATA\TEST\REDO02.LOG'  SIZE 50M BLOCKSIZE 512,
  GROUP 3 'D:\APP\ASUS\ORADATA\TEST\REDO03.LOG'  SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
  'D:\APP\ASUS\ORADATA\TEST\SYSTEM01.DBF',
  'D:\APP\ASUS\ORADATA\TEST\SYSAUX01.DBF',
  'D:\APP\ASUS\ORADATA\TEST\UNDOTBS01.DBF',
  'D:\APP\ASUS\ORADATA\TEST\USERS01.DBF',
  'D:\APP\ASUS\ORADATA\TEST\EXAMPLE01.DBF',
  'D:\APP\ASUS\ORADATA\TEST\TEST01.DBF',
  'D:\APP\ASUS\ORADATA\TEST\TEST02.DBF'
CHARACTER SET ZHS16GBK
;
-- Commands to re-create incarnation table
-- Below log names MUST be changed to existing filenames on
-- disk. Any one log file from each branch can be used to
-- re-create incarnation records.
-- ALTER DATABASE REGISTER LOGFILE 'D:\APP\ASUS\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\2013_08_17\O1_MF_1_1_%U_.ARC';
-- ALTER DATABASE REGISTER LOGFILE 'D:\APP\ASUS\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\2013_08_17\O1_MF_1_1_%U_.ARC';
-- ALTER DATABASE REGISTER LOGFILE 'D:\APP\ASUS\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\2013_08_17\O1_MF_1_1_%U_.ARC';
-- Recovery is required if any of the datafiles are restored backups,
-- or if the last shutdown was not normal or immediate.
RECOVER DATABASE USING BACKUP CONTROLFILE
-- Block change tracking was enabled, so re-enable it now.
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING
USING FILE 'D:\APP\ASUS\PRODUCT\11.2.0\DBHOME_1\DATABASE\RMAN_INC.TRK' REUSE;
-- Set Database Guard and/or Supplemental Logging
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
-- Database can now be opened zeroing the online logs.
ALTER DATABASE OPEN RESETLOGS;
-- Commands to add tempfiles to temporary tablespaces.
-- Online tempfiles have complete space information.
-- Other tempfiles may require adjustment.
ALTER TABLESPACE TEMP ADD TEMPFILE 'D:\APP\ASUS\ORADATA\TEST\TEMP01.DBF'
     SIZE 30408704  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;
-- End of tempfile additions.
三、备份归档日志文件
SQL> host xcopy D:\app\asus\flash_recovery_area\TEST\ARCHIVELOG G:\Oracle\backup\hot_backup\ARCHIVELOG /S/E;


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值