首先要明确的是,oracle数据库的备份可以分为逻辑备份和物理备份。
          逻辑备份的是通过数据导出对数据进行备份,主要方式有老式的IMP/EXP和数据泵灯方式。适合变化较少的数据库,而对于高可用性数据库,由于这种方式备份的数据只能恢复到备份的时间点,所以并不适用。但由于逻辑备份具有平台无关性,所以更常见的是用来数据迁移及数据移动;
          物理备份是通过复制数据文件、参数文件等数据库的物理文件来进行备份。物理备份可以分为冷备份和热备份。冷备份需要在关闭数据库后进行备份,目前在高可用的生产环境中,这种方式使用较少。而热备份可以在系统运行的情况下通过备份数据文件及归档日志就可以恢复,因此使用的范围更广泛。
          热备份可以分为用户管理方式下的热备份(user-managed backup and recovery)和oracle管理(RMAN)的热备份(Recovery MANager-RMAN),要注意的是,数据库要进行热备份必须运行在归档模式下。

          一、用户管理方式下的备份:

首先,备份数据文件:
1)查询数据文件有哪些:
SQL> select name from v$datafile;
2)将数据库置于备份模式下:
SQL> alter database begin backup;
3)备份数据文件:
SQL> host copy D:\ORACLE\ORCDATA\TIOD\SYSTEM01.DBF C:\oracle\backup;
SQL> host copy D:\ORACLE\ORCDATA\TIOD\SYSAUX01.DBF C:\oracle\backup;
SQL> host copy D:\ORACLE\ORCDATA\TIOD\UNDOTBS01.DBF C:\oracle\backup;
SQL> host copy D:\ORACLE\ORCDATA\TIOD\USERS01.DBF C:\oracle\backup;
SQL> host copy E:\ORACLE\ORCL\ODS\HH_TBS.DBF C:\oracle\backup;
4)结束数据文件备份并归档日志:
SQL> alter database end backup;
SQL> alter system archive log current;

第二,备份控制文件,此处使用备份到跟踪文件的方式:
1)将建立控制文件的命令信息记录到trace文件中:
SQL> alter database backup controlfile to trace;
2)确定跟踪文件位置和名称:
SQL> select a.spid from v$process a,v$session b where a.addr=b.PADDR and b.USERNAME='SYS'
SQL> show parameter user_dump_dest;
跟踪文件命名为<SID>_ora_<SPID>.trc。
3)打开vidi_ora_1260.trc,确定建立控制文件内容;
CREATE CONTROLFILE REUSE DATABASE "TIOD" NORESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 'D:\ORACLE\ORCDATA\TIOD\REDO01.LOG'  SIZE 50M BLOCKSIZE 512,
  GROUP 2 'D:\ORACLE\ORCDATA\TIOD\REDO02.LOG'  SIZE 50M BLOCKSIZE 512,
  GROUP 3 'D:\ORACLE\ORCDATA\TIOD\REDO03.LOG'  SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
  'D:\ORACLE\ORCDATA\TIOD\SYSTEM01.DBF',
  'D:\ORACLE\ORCDATA\TIOD\SYSAUX01.DBF',
  'D:\ORACLE\ORCDATA\TIOD\UNDOTBS01.DBF',
  'D:\ORACLE\ORCDATA\TIOD\USERS01.DBF',
  'E:\ORACLE\ORCL\ODS\HH_TBS.DBF'
CHARACTER SET ZHS16GBK
;
第三、备份归档日志:
确定需要备份的归档日志:
SQL> select name from v$archived_log where dest_id=1 and first_time>=sysdate-1;
使用copy命令备份到备份文件夹即可。

第四、备份参数文件:
SQL> CREATE PFILE='C:\oracle\backup\initelse.ora' from spfile;

           二、使用备份文件复制数据库到另外一台机器:

当需要在另外一台机器克隆一套与生产环境同样的数据进行测试、学习时,我们可以使用上面备份的文件复制数据库。需要注意两点:
1)源机器和目标机器应为相同的操作系统平台;
2)复制数据库可以包含所有的数据文件也可以仅仅复制部分数据文件,但system表空间和undo表空间的数据文件必须有。

一)建立存放目标库的相关文件目录。比如tiod数据库建立D:\oracle\orcdata\tiod目录,及目录下BDUMP、UDUMP、ARCHIVE等目录。

二)建立实例服务:
C:\Users\Administrator>oradim -new -sid tiod -intpwd oracle;

三)建立参数文件:
          1)编辑initelse.ora,修改以下参数:
*.db_name='tiod'
*.log_archive_dest_1='location=D:\oracle\orcdata\tiod\ARCHIVE'
*.user_dump_dest='D:\oracle\orcdata\tiod\udump'
*.background_dump_dest='D:\oracle\orcdata\tiod\bdump'
此处对应我们第一步建立起的相关文件目录
          2)建立目标库参数文件:
SQL> create spfile='C:\oracle\product\11.2.0\dbhome_1\database\spfiletiod.ora' from pfile='C:\oracle\backup\initelse.ora';

四)将原库备份好的数据文件和归档文件复制到目标库的相应文件目录。

五)启动实例,修改并建立控制文件,控制文件可根据我们上述备份中的方法获得,并修改后执行即可。
C:\Users\Administrator>set oracle_sid=tiod
C:\Users\Administrator>sqlplus sys/oracle as sysdba
SQL> startup nomount spfile='C:\oracle\product\11.2.0\dbhome_1\database\spfiletiod.ora';
SQL>CREATE CONTROLFILE REUSE DATABASE "TIOD" RESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 'D:\ORACLE\ORCDATA\TIOD\REDO01.LOG'  SIZE 50M BLOCKSIZE 512,
  GROUP 2 'D:\ORACLE\ORCDATA\TIOD\REDO02.LOG'  SIZE 50M BLOCKSIZE 512,
  GROUP 3 'D:\ORACLE\ORCDATA\TIOD\REDO03.LOG'  SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
  'D:\ORACLE\ORCDATA\TIOD\SYSTEM01.DBF',
  'D:\ORACLE\ORCDATA\TIOD\SYSAUX01.DBF',
  'D:\ORACLE\ORCDATA\TIOD\UNDOTBS01.DBF',
  'D:\ORACLE\ORCDATA\TIOD\USERS01.DBF',
  'E:\ORACLE\ORCL\ODS\HH_TBS.DBF'
CHARACTER SET ZHS16GBK
;
六)恢复目标库
          1)指定要使用的归档目录(第一步所建ARCHIVE目录)并执行恢复操作:
SQL> set logsource 'D:\oracle\orcdata\tiod\ARCHIVE';
SQL> recover database using backup controlfile until cancel;
          2)使用RESETLOGS选项打开数据库,并建立起目标库的所有重做日志
SQL> alter database open resetlogs;

这样就完成了对一个数据库的备份以及使用其备份复制数据库到另外一个机器上的过程,这个过程是用户管理方式下的备份和复制数据库,此外我们可以使用RMAN方式达到同样的目的。这个备份和恢复适用于在open状态下的归档模式数据库。

ORACLE用户管理方式下备份数据和复制数据库的更多相关文章

  1. Oracle—用户管理的备份(一)

    用户管理的备份(一) 一.首先要知道数据库中表空间和文件的信息,有几个性能视图,v$datafile,v$tablespace,v$tempfile,v$logfile,v$controlfile,d ...

  2. Oracle—用户管理的备份(二)

    在用户管理的备份(一)中(详见:Oracle—用户管理的备份)对用户管理备份几种情况进行了说明:接下来说明几种特别情况和DBverify的使用. 一.如果在表空间在备份模式下,主机发生了异常关闭,会出 ...

  3. Oracle 用户管理权限

    Oracle 用户管理权限 一.创建用户的Profile文件 SQL> create profile student limit // student为资源文件名 FAILED_LOGIN_AT ...

  4. Oracle—用户管理的完全恢复(四)

    在用户管理的备份(三)中,最后打开数据库时,用了alter database open resetlogs;的命令,这里为什么用resetlogs命令? 一.resetlogs的作用 1.将当前的日志 ...

  5. Oracle—用户管理的完全恢复(一)

    一.分类 可以分为在非归档模式下和归档模式下的完全恢复,完全恢复主要是针对归档模式下的,在非归档模式下很难做到完全恢复,除非是在做恢复时,联机重做日志还没有被重写. 二.非归档的有关性质 1.在非归档 ...

  6. Oracle的学习一:安装与卸载、sql *plus常用命令、Oracle用户管理

    1.为什么学习oracle? 性能优越: 小型数据库 中型数据库 大型数据库 acess.foxbase mysql.sql server.informix sybase.oracle.db2 复杂量 ...

  7. 四、oracle 用户管理(Profile)

    oracle 用户管理 :profile + tablespace + role + user  一.使用profile管理用户口令概述:profile是口令限制,资源限制的命令集合,当建立数据库时, ...

  8. 三、oracle 用户管理一

    三.oracle 用户管理一 一.创建用户概述:在oracle中要创建一个新的用户使用create user语句,一般是具有dba(数据库管理员)的权限才能使用.create user 用户名 ide ...

  9. Oracle 用户管理与权限控制

    Oracle 用户管理与权限控制 oracle数据库的权限系统分为系统权限与对象权限.系统权限( database system privilege )可以让用户执行特定的命令集.例如,create ...

随机推荐

  1. Android - N级树形结构实现

    目前已经实现3级之内的任意级树形结构展示(如果想增加更多级,需要扩展排序算法),并支持单选和多选(使用不同的适配器). 实现使用的控件:ListView 首先,最重要的应该是数据源的格式,支持树形结构 ...

  2. 14.6.3.3 Making the Buffer Pool Scan Resistant

    14.6.3.3 Making the Buffer Pool Scan Resistant 相比使用一个严格的LRU算法,InnoDB 使用一个技术来最小化数据总量 带入到buffer pool 而 ...

  3. VS2010 快速写入注释小技巧

    /************************************************************************//*  *//******************* ...

  4. Dr.com5.2 for linux

    最近安装了在ubuntu基础上改的elementaryos,很漂亮,学校提供的破linux客户端不能连上,网上常见的也是旧版本. 最后在百度Dr.com贴吧和这个帖子 http://forum.ubu ...

  5. C语言中数据类型转换的学习

    1. 整型和枚举类型数据的转换 测试代码如下: #include <stdio.h> typedef enum _E_TYPE_T {     E_TYPE_1 = -1,     E_T ...

  6. com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 127.0.0.1 的 TCP/IP 连接失败。错误:“Connection refused: connect。请验证连接属性。确保 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”

    检查SQL Server Configuration Manager 确定实例名为"SKYSQLEXPRESS"下的TCP/IP已经开启了: sql2014配置(系统为Window ...

  7. Ehcache专栏

    http://www.iteye.com/blogs/subjects/ehcache

  8. asp 验证

    <% dim redirectUrl,checkState checkState=0 MyArray = Array("127","Feb"," ...

  9. c#委托和事件(上)

    C# 中的委托和事件 引言 委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易.它们就像是一道槛儿,过了这个槛的人,觉得真 ...

  10. VMware-workstation-full-12.0.1-3160714

    https://download3.vmware.com/software/wkst/file/VMware-workstation-full-12.0.1-3160714.exe 5A02H-AU2 ...