Welcome 微信登录

首页 / 数据库 / MySQL / Oracle—用户管理的备份

Oracle—用户管理的备份(一)一.首先要知道数据库中表空间和文件的信息,有几个性能视图,v$datafile,v$tablespace,v$tempfile,v$logfile,v$controlfile,dba_tablespaces,dba_data_files可以用它们来查看表空间或者文件的位置和名字,其中dba_data_files可以查看到每个数据文件属于哪个表空间。参考阅读:Oracle教程:用户管理的备份 http://www.linuxidc.com/Linux/2011-10/44976.htm推荐阅读:Oracle基础教程之通过RMAN复制数据库 http://www.linuxidc.com/Linux/2013-07/87072.htmRMAN备份策略制定参考内容 http://www.linuxidc.com/Linux/2013-03/81695.htmRMAN备份学习笔记 http://www.linuxidc.com/Linux/2013-03/81892.htmOracle数据库备份加密 RMAN加密 http://www.linuxidc.com/Linux/2013-03/80729.htm对于查看每个数据文件属于哪个表空间也可以用$datafile,v$tablespace来join一下。例如:SQL> select  t.name tablespace,d.name datafile from  v$tablespace t  join  v$datafile d  on t.ts#=d.ts#;TABLESPACE                    DATAFILE------------------------------              -----------------------------------SYSTEM                        /u01/oradata/wilson/system01.dbfSYSAUX                        /u01/oradata/wilson/sysaux01.dbfUNDOTBS1                      /u01/oradata/wilson/undotbs01.dbfUSERS                          /u01/oradata/wilson/users01.dbfEXAMPLE                        /u01/oradata/wilson/example01.dbfPAUL                          /u01/oradata/wilson/paul01.dbfSUN                            /u01/oradata/wilson/sun01.dbfSMALLUNDO                      /u01/oradata/wilson/smallundo1.dbfASSM                          /u01/oradata/wilson/assm_1.dbfMSSM                          /u01/oradata/wilson/mssm_1dbfPAUL                          /u01/oradata/wilson/paul02.dbf二.备份的方式1.处于非归档模式在非归档模式下,关闭数据库执行完整的备份是唯一的选择。在上面给出的视图中找到每个文件的位置,要备份的有控制文件和整个数据文件集,最好把临时文件和spfile,password文件(它们在/u01/oracle/dbs中)一起也备份了。在备份之前必须干净的关闭数据库,那么对于联机重做日志没有必要备份。但是如果是出现不干净的关闭数据库,那么必须备份联机重做日志,不然还原后无法打开数据库。(其实无论在什么情况下,最好都备份)2.处于归档模式在归档模式下,既可以在关闭数据库时备份也可以在打开数据库时备份;(一)在关闭数据库时备份和非归档模式备份是一样,有一个差别就是不备份联机重做日志了,改为备份归档日志。(二)在打开数据库时备份,备份是非一致性的,所以必须备份归档日志文件。有下面三个步骤:(1)备份控制文件备份控制文件有两种方式,alter database backup confile to <filename>;alter database backup confile to  trace as <filename>;第一种形式生成一个二进制备份,输出文件将是当前控制文件的严格的读一致性副本;第二种形式生成一个逻辑备份,在指定文件中使用一组SQL命令来创建一个新的控制文件,并且包含与当前的控制文件相同的数据库物理结构信息。这里说明一下create controlfile命令,它必须在非加载模式下执行,并且在control_files参数指定的位置生成一个新的控制文件;这个命令生成的新控制文件只包含与物理结构有关的数据;例如RMAN备份将会丢失。在操作系统下建立个目录/tmp/con,用第一种形式备份控制文件;SQL> alter database backup  controlfile to "/tmp/con/c1.ctl";Database altered.SQL> !ls -l /tmp/contotal 9636-rw-r----- 1 oracle oinstall 9846784 Aug 23 10:07 c1.ctl用第二种形式备份控制文件;SQL> alter database backup controlfile to trace as "/tmp/con/c2.ctl";Database altered.SQL> !ls -l /tmp/contotal 9648-rw-r----- 1 oracle oinstall 9846784 Aug 23 10:07 c1.ctl-rw-r--r-- 1 oracle oinstall    7107 Aug 23 10:11 c2.ctl只要控制文件发生变化就要备份它,建议每次备份时都备份一下控制文件。(2)关于归档日志文件备份先执行alter system archive log current,再找到归档日志位置,复制到别的地方即可。有关归档日志的设置请参照:归档模式(3)当他们的表空间置于备份模式时复制数据文件;有关备份模式请参照:oracle中backup模式查看有哪些表空间;SQL> select tablespace_name,contents from dba_tablespaces;TABLESPACE_NAME                CONTENTS------------------------------                  ---------SYSTEM                        PERMANENTSYSAUX                        PERMANENTUNDOTBS1                      UNDOTEMP                          TEMPORARYUSERS                          PERMANENTEXAMPLE                        PERMANENTPAUL                          PERMANENTMYTEMP                        TEMPORARYSUN                            PERMANENTSMALLUNDO                      UNDOASSM                          PERMANENTTABLESPACE_NAME                CONTENTS------------------------------                ---------MSSM                          PERMANENT12 rows selected.查看一下表空间中有哪些数据文件;SQL> select tablespace_name,file_name from  dba_data_files;TABLESPACE_NAME                FILE_NAME------------------------------ -----------------------------------PAUL                          /u01/oradata/wilson/paul01.dbfUSERS                          /u01/oradata/wilson/users01.dbfUNDOTBS1                      /u01/oradata/wilson/undotbs01.dbfSYSAUX                        /u01/oradata/wilson/sysaux01.dbfSYSTEM                        /u01/oradata/wilson/system01.dbfEXAMPLE                        /u01/oradata/wilson/example01.dbfSUN                            /u01/oradata/wilson/sun01.dbfSMALLUNDO                      /u01/oradata/wilson/smallundo1.dbfASSM                          /u01/oradata/wilson/assm_1.dbfMSSM                          /u01/oradata/wilson/mssm_1dbfPAUL                          /u01/oradata/wilson/paul02.dbf11 rows selected.在备份前,先创建个目录/tmp/hb把sun表空间改为backup模式下,SQL> alter tablespace sun begin backup;Tablespace altered.备份表空间下的数据文件,SQL> !cp  /u01/oradata/wilson/sun01.dbf  /tmp/hb查看一下结果,SQL> !ls  -l /tmp/hbtotal 20516-rw-r----- 1 oracle oinstall 20979712 Aug 22 23:01 sun01.dbf结束备份,SQL> alter tablespace sun  end backup;Tablespace altered.在数据库打开的情况下手动备份(在归档模式下),必须执行begin  backup,虽然可以在操作系统层面上备份,但是其备份的将不能使用。也可以使用SQL> alter database  begin  backup;Database altered.把所有的表空间一次性的全部处于backup模式。还有一点就是不能备份临时表空间,甚至不能将他们置于备份模式。SQL> alter tablespace temp begin  backup;alter tablespace temp begin  backup*ERROR at line 1:ORA-03217: invalid option for alter of TEMPORARY TABLESPACE(4)备份参数文件和口令文件对它们的备份不是必须的,但是为了方便的还原它们,最好还是备份了;参数文件,为了备份spfile,使用下面的命令生成个文本文件。SQL> create pfile="initwilson.ora" from spfile;如果动态参数文件在某个时候受损,那么在非加载模式下使用该命令重新创建它或者在关闭实例时也可以执行,、Create spfile from  pfile=’initwilson.ora’;口令文件,为了备份口令文件,保存用来创建??的命令的一个副本。如:orapwd file=$ORACLE_HOME/dbs/orapwd<SID>  password=oracle  entries=5;其中<SID>是实例名称。如果口令文件某个时刻被损坏,那么简单运行该脚本来重新创建它。续:Oracle—用户管理的备份(二)http://www.linuxidc.com/Linux/2013-07/87986p2.htm
  • 1
  • 2
  • 下一页
Oracle中backup模式MySQL 备份与还原详解相关资讯      Oracle备份  Oracle用户管理 
  • 利用Oracle自带的impdp和expdp进行  (05月18日)
  • Oracle 10.2.0.5 版本之后 asm   (08/08/2014 11:02:09)
  • Linux系统中Oracle自动备份方案  (07/25/2014 13:11:25)
  • Java实现Oracle数据库备份  (08/12/2014 11:24:51)
  • Oracle备份与恢复系列  (08/01/2014 09:15:02)
  • Oracle exp imp备份、恢复表空间数  (06/15/2014 11:38:40)
本文评论 查看全部评论 (0)
表情: 姓名: 字数