网站建设| 数据库类| 图形图象| 程序设计| 现代办公| 操作系统| 考试认证| 网络技术| 软件工程| 电脑相关| 文学作品
网站开发| 网页制作| 操作系统| 图象图形| 考试认证| 数据库类| 程序设计| 硬件技术| 现代办公| 网络技术| 笑话频道
 
您的位置: 电脑书库首页-> 电脑文摘-> 数据库类-> Oracle-> 用Linux完成Oracle自动物理备份

用Linux完成Oracle自动物理备份
作者:佚名 来源:InterNet 加入时间:2005-1-31
相关文章
  • 夺取月薪之冠-Oracle认证!
  • Oracle数据安全面面观(2)
  • Oracle数据安全面面观(1)
  • Oracle10g数据库的创建
  • Oracle新技术对Linux意味着什么?
  • 在Oracle里设置访问多个SQL Server
  • 深入分析Oracle数据库日志文件
  • 在ORACLE里用存储过程定期分割表
  • Oracle Rman/tivoli-TDP/下数据恢复到节点
  • SQL Server到Oracle连接服务器的实现
  • 相关书籍:
  • 利用 DBCA建立 Oracle 9i 资料库
  • Oracle 数据库DBA管理手册
  • Oracle 管理员手册
  • Oracle 官方文档CHM合集-SQL参考手册
  • Oracle WebServer 中文手册
  • Oracle 9i 数据库管理员指南
  • Oracle 9i 数据库管理实务讲座
  • Oracle 9I 入门基础(第02部分)
  • Oracle 9I 入门基础(第01部分)
  • Oracle 9i 官方教材
  • Oracle数据库提供了几种数据备份方法,但用得最多的还是使用exp进行逻辑备份,而物理备份(包括联机备份和脱机备份)过程用得并不多。其主要原因是物理备份过程比较复杂,不易掌握。本文以Oracle数据库在Linux下自动物理备份(脱机备份)的实现为例描述物理备份的操作步骤,希望能帮助更多的Oracle数据库管理员了解这一物理备份过程,避免不必要的数据丢失。

      本文的目标是通过执行一Shell脚本来完成Oracle数据库自动备份的全过程,而且能够在当前目录下生成其压缩文件。具体实现步骤如下:

    1.以Oracle用户身份登录到Linux系统下。

    2.建立database.srcipt文件,以便生成备份数据库的一些参数信息并保存在文件database.parm中。

      这些信息对于以后恢复数据库具有重要的参考作用,所以在物理备份的过程中,需要保存这些信息,也可以把其他一些重要的信息写在这个脚本里。

    $vi database.srcipt 
    spool database.parm 
    --这是当前备份数据库的系统参数列表 
    select * from v$parameter; 
    --这是当前备份数据库的字符集部分参数 
    select * from props$; 
    --这是当前备份数据库数据文件存储位置及名称 
    select * from v$datafile; 
    --这是当前备份数据库控制文件存储位置及名称 
    select * from v$controlfile; 
    --这是当前备份数据库日志文件存储位置及名称 
    select * from v$logfile; 
    --可以在这里添加其他一些重要信息 
    --开始生成备份shell文件,可参考backup.sh 
    spool off 
    spool backup.sh 
    select 'cp '||name || ' backup/' from v$datafile ; 
    select 'cp '||name || ' backup/' from v$controlfile ;
    select 'cp '||member || ' backup/' from v$logfile;
    spool off 
    shutdown immediate 
    exit 
    !


    3.修改上一步中生成的backup.sh文件,并执行它来完成数据库文件的操作系统备份。为清晰起见,将这段脚本命名为文件alterbackup.sh。

    $vi alterbackup.sh 
    echo “该脚本完成把数据库数据文件、控制文件、日志文件的复制到当前目录的过程” 
    cat backup.sh|grep ‘cp /’>c.sh 
    #该语句把backup.sh中所有以“cp /”开头的语句提取出来生成新的文件c.sh 
    rm backup.sh 
    mv c.sh backup.sh 
    chmod +x backup.sh 
    . backup.sh 
    #注意:点号“.”与backup.sh之间有一空格


    4.建立数据库启动脚本,以便完成备份之后启动数据库,将这段脚本命名为startup.script。

    $vi startup.script 
    spool StartStatus.readme 
    --开始启动数据库 
    startup 
    --数据库启动完成,可以查看StartStatus.readme文件检查数据库启动情况 
    spool off 
    exit 
    !


    5.为节省磁盘空间和复制到其他存储位置,建立Shell文件gzip.script来完成备份数据文件的压缩。注意生成备份文件时,在文件名中注明时间。

    $vi gzip.sh 
    echo “开始进行备份文件的压缩过程” 
    thedate=‘date + %Y.%m.%d.%H.%M’ 
    #注意:字符串前后都有一个反引号,不是单引号 
    outfile=$thedate 
    tar -cvf backup$outfile.tar backup/* 
    #将备份到backup目录下的所有文件生成一档案文件 
    gzip backup$outfile.tar 
    #把档案文件进行压缩,以节省硬盘空间 
    rm -R backup #删除那些没有压缩的文件


    6.把上面第2步到第5步生成的内容组织成一个Shell文件begin.sh,但这之前还需要先运行以下命令:

    $chmod +x alterbackup.sh 
    $chmod +x gzip.sh 
    $vi begin.sh 
    echo “开始进行数据库的自动物理备份过程,该Shell将在当前目录下生成backup.gz文件,
    该文件中包含数据库的一些参数信息及数据库的物理文件……” 
    mkdir backup 
    sqlplus internal/oracle < database.srcipt 
    . alterbackup.sh 
    sqlplus internal/oracle < startup.script 
    . gzip.sh 
    echo “数据库自动进行物理备份过程结束,请在当前目录下检查backup.tar.gz”


    7.增加数据库参数文件的备份语句。

      数据库参数文件通常存储在“ORACLE/ADMIN/数据库名/pfile/”目录下,其文件命名规则为“init+数据库名.ora”,数据库名缺省名称为orcl,可根据数据库安装名称来进行修改。如果不知道该文件存储在什么位置,可使用下面命令进行查找:

    $find $ORACLE_HOME -name ‘initorcl.ora’


      该语句可能显示出/u01/app/oracle/product/8.1.7/dbs/initorcl.ora,由于在Linux中有一种链接文件,所以要查看显示出的文件是不是链接文件,如果是,还需要进一步查看其原始文件。

    $ll /u01/app/oracle/product/8.1.7/dbs/initorcl.ora


      本例中显示出该文件是一个链接文件,它指向/u01/app/oracle/admin/orcl/pfile/initorcl.ora。为此,可以修改第3步的alterbackup.sh,修改结果如下(粗体显示,该语句需要根据数据库安装情况进行修改):

    …… 
    chmod +x backup.sh 
    cp /u01/app/oracle/admin/orcl/pfile/initorcl.ora backup/initorcl.ora 
    . backup.sh 
    #注意:点号“.”与backup.sh之间有一空格


    8.在准备进行备份时,先使用“ls -l(或ll)”命令检查当前目录下,此时应该有这样几个文件:alterbackup.Sh,begin.sh,database.script,gzip.sh,startup.script。

      此后,还应执行命令:

    $chmod +x begin.sh


      如果一切完成,就可以执行begin.sh来完成备份过程了:

    . begin.sh 
    #注意begin.sh与前面点号之前有一空格。


      以后每次需要做备份时,只需运行begin.sh即可。这里也可以使用crontab自动完成按计划备份,有关如何使用crontab,请参考相关资料,也可在网上查询,本文不再做介绍。

      使用此方法进行物理备份过程,不仅备份了数据库的数据文件,也同时记录了数据库的一些重要信息(第2步的database.parm文件中),这对于以后恢复数据是非常重要的。最后要提醒读者注意的是,本文提供的方法要求有足够大的剩余磁盘空间(尽管最后只保留了备份文件的压缩文件),这个缺撼留给读者去弥补。


    [文章录入员:nancy]

    相关文章
  • 夺取月薪之冠-Oracle认证!
  • Oracle数据安全面面观(2)
  • Oracle数据安全面面观(1)
  • Oracle10g数据库的创建
  • Oracle新技术对Linux意味着什么?
  • 在Oracle里设置访问多个SQL Server
  • 深入分析Oracle数据库日志文件
  • 在ORACLE里用存储过程定期分割表
  • Oracle Rman/tivoli-TDP/下数据恢复到节点
  • SQL Server到Oracle连接服务器的实现
  • 相关书籍:
  • 利用 DBCA建立 Oracle 9i 资料库
  • Oracle 数据库DBA管理手册
  • Oracle 管理员手册
  • Oracle 官方文档CHM合集-SQL参考手册
  • Oracle WebServer 中文手册
  • Oracle 9i 数据库管理员指南
  • Oracle 9i 数据库管理实务讲座
  • Oracle 9I 入门基础(第02部分)
  • Oracle 9I 入门基础(第01部分)
  • Oracle 9i 官方教材
  • 本站推荐内容

    近期主机类热搜关键词:
    美国服务器 美国服务器租用 海外服务器租用 国外服务器租用

    Oracle
    ACCESS
    MS SQL
    MySQL
    Oracle
    Foxpro
    PowerBuilder
    Sybase
    其它
    电脑教程阅读排行
    ·Oracle 常用技巧和脚本
    ·Oracle常用数据字典
    ·Oracle8 数据类型
    ·Oracle 8.1.6 for...
    ·Oracle 基本知识
    ·深入分析Oracle数据库日志文...
    ·安装Oracle后,经常使用的修...
    ·怎样快速查出Oracle数据库中...
    ·Oracle 8.0.4 for...
    ·Oracle10g数据库的创建