zoukankan      html  css  js  c++  java
  • oracle 命令4 热备份

    热备份:
    不停数据库,一定范围内(内存写满后,用户操作挂起),不影响用户使用。
    数据库开着,时刻变化,因此热备份通过以下手段保持一致性:
    1、开启归档
    2、备份前,通知数据库,把文件锁定,在备份未完成前,不操作这个数据文件(不写脏块)

    备份数据文件:
    SQL> conn / as sysdba
    SQL> alter database begin backup; #数据库所有的数据文件SCN就会固定,DBW进程不会写脏块,即使内存不够用,会让用户等待。如果备份需要几个小时,日志很快就会写满。日志很快就会切换,不归档日志,就会造成数据丢失。所以要开归档,并锁定数据文件,在备份复制。
    SQL> @check
    SQL> !cp -v /data/oracle/oradata/orcl/*.dbf /u02/hotbak #复制数据文件
    SQL>alter database end backup; #备份完了,及时告诉数据库,数据文件不再锁定,这样DBW进程就可以写脏块,清理内存空间了。

    备份控制文件;
    控制文件在使用时,是一直在变化的,记录最新的SCN。
    热备时,因为控制文件有两个,会先锁定一个进行备份,有专用的命令,不能直接复制;
    # chown -R oracle:oinstall /u02
    # ls -l
    drwxr-xr-x. 4 oracle oinstall 32 Nov 15 21:31 u02
    # cd /u02/hotbak
    SQL> alter database backup controlfile to '/u02/hotbak/control.bak'; # 用二进制方式备份,如源文件9.3M,备份后也是9.3M
    Database altered.
    SQL>
    还有一种方式
    SQL> alter database backup controlfile to trace as '/u02/hotbak/control.trace'; # 用文本方式备份,cat查看会发现里面是一些脚本,当控制文件丢失,会用这些脚本把控制文件创建出来,源文件9.3M,备份后可能就只有 6.1K。
    Database altered.
    SQL>

    备份日志:
    SQL> alter system switch logfile;
    System altered.
    SQL>
    一般不备份,而是执行日志切换,一旦日志切换,就会自动以归档的方式备份日子。

    可编写热备份脚本:
    # su - oracle
    # vi hotbak.sh
    # cat hotbak.sh
    sqlplus / as sysdba << eof
    alter database begin backup;
    !cp -v /data/oracle/oradata/orcl/*.dbf /u02/hotbak
    alter database end backup;
    alter database backup controlfile to '/u02/hotback/control.bak' reuser;
    alter database backup controlfile to trace as '/u02/hotbak/control.trace' reuser;
    alter system switch logfile;
    alter system switch logfile;
    alter system switch logfile;
    alter system switch logfile;
    exit
    eof
    $chmod u+x hotbak.sh #u代表所有者,x代表执行权限。 + 表示增加权限,chmod u+x file.sh 就表示对file.sh文件的所有者增加可执行权限.
    $./hotbak.sh
    备注:
    备份控制文件,两个命令都可以,不放心可以两个命令都执行,用二进制方式和文本方式备份,恢复时,想用哪个就用哪个。 加resuer是覆盖的意思,如果不加,如果目录下有相同名称的文件,会提示报错,不能备份。
    备份日志文件,有几组日志文件,就执行N+1次,此处有3组,所以就执行4次。

  • 相关阅读:
    Linux之文件处理命令
    Linux基础命令
    rip实验
    Linux基础之磁盘分区
    mysql安装
    centos Apache、php、mysql默认安装路径
    You probably tried to upload too large file. Please refer to documentation for ways to workaround this limit.
    Wrong permissions on configuration file, should not be world writable!
    机器会学习么 学习总结
    实验 5 Spark SQL 编程初级实践
  • 原文地址:https://www.cnblogs.com/lei2017/p/7841210.html
Copyright © 2011-2022 走看看