免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2279 | 回复: 1
打印 上一主题 下一主题

[原创]oracle数据库备份与恢复 a piece of cake (3) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-08-26 10:49 |只看该作者 |倒序浏览
oracle数据库在线备份:(windows平台)

1. 检查你的数据库是否运行在Archive模式下。
        以system连接数据库运行以下的查询语句。
        SQL>; select name,log_mode from v$database;
                NAME      LOG_MODE
                --------- ------------
                DEMO      ARCHIVELOG
    如果你的log_mode显示为archivelog, OK你的数据库可以进行在线的备份。否则参考文档修改数据为archive mode。
   
2. 建立教本管理目录 C:\oracle\admin\admin script
3. 建立数据库备份的脚本
        在上面建立的目录下建立如下的两个脚本。
        3.1 建立执行备份任务的脚本(批处理文件)
            文件内容如下:
            
            @echo OFF
                Rem ===========================================================================
                Rem  NAME     - Open_Backup_Run.bat
                Rem  FUNCTION - Creates a backup script for a User Managed backup
                Rem  NOTES    - This script will create a script and run OS copy commands
                Rem             on closed (cold) database
                Rem  MODIFIED - Tianliang Guo    02/08/12   
                Rem ===========================================================================
               
                Rem  For Windows, set environment variables for the root path.
                set ORACLE_SID=TSTDB
                set ORACLE_CONNECTSTRING=tstdb
                set ORACLE_BASE=c:\oracle
                set ORACLE_HOME=%ORACLE_BASE%\ora81
                set ORACLE_DATA=%ORACLE_BASE%\oradata\%ORACLE_SID%
                set ORACLE_ADMIN=%ORACLE_BASE%\admin\%ORACLE_SID%
               
                %ORACLE_HOME%\bin\sqlplus /nolog @Open_Backup.sql >; Open_Backup.sql.log
               
        3.2 建立完成备份认为的命令文件(sqlplus内执行的sql脚本)
                文件内容如下:
               
                Rem =====================================================================================
                Rem  NAME     - Open_Backup.sql
                Rem  FUNCTION - Creates a backup command file for a User Managed Open database backup
                Rem  NOTES    - This script will create a script and run OS copy commands
                Rem             on an open (hot) database. The datafile backups will be inconsistent.
                Rem  MODIFIED - Mr. Tianliang Guo       2002/08/11         
                Rem =====================================================================================
               
                Rem
                Rem Set SQL*Plus variables to manipulate output
                Rem
               
                set heading off
                set pagesize 0
                set linesize 600
                set verify off
                set trimspool on
                set feedback off
               
                Rem Set SQL*Plus user variables used in script
               
                define adm = 'sys'
                define pwd = 'oracle8i'
               
                Rem Windows User variables
                define dir = 'C:\oracle\admin\TSTDB\backup'
                define fil = 'open_backup_commands.sql'
                define spo = 'open_backup_output.lst'
                define ctl = '&dir\control.ctl'
                define cpy = 'ocopy'
               
                Rem login database
                connect &adm/&pwd as sysdba;
               
                Rem Create a file containing all the file copy commands needed for open user managed backup
               
                set serveroutput on
                spool &fil
                prompt spool &spo
                prompt archive log list;;
                prompt alter system switch logfile;;
                prompt alter system archive log all;;
               
                DECLARE
                 CURSOR cur_tablespace IS
                  SELECT tablespace_name
                    FROM dba_tablespaces;
               
                 CURSOR cur_datafile (tn VARCHAR) IS
                  SELECT file_name
                    FROM dba_data_files
                   WHERE tablespace_name = tn;
                BEGIN
                  FOR ct IN cur_tablespace LOOP
                    dbms_output.put_line ('alter tablespace '||ct.tablespace_name||' begin backup;');
                    FOR cd IN cur_datafile (ct.tablespace_name) LOOP
                          dbms_output.put_line ('host &cpy '||cd.file_name||' &dir');
                    END LOOP;
                    dbms_output.put_line ('alter tablespace '||ct.tablespace_name||' end backup;');
                  END LOOP;
               
                END;
                /
               
                prompt alter system switch logfile;;
                prompt alter database backup controlfile to '&ctl' REUSE;;
                prompt alter database backup controlfile to trace;;
               
                prompt archive log list;;
                prompt spool off
                spool off;
               
                Rem Run the copy file commands from the operating system
                @&
               
                exit;
       

4. 修改教本定义的变量
        在运行教本中定义的一些变量,将其改为本地数据库安装环境的变量。
        需要修改的变量有,
        在close_Backup_run.bat脚本中:
          set ORACLE_SID=TSTDB
          set ORACLE_CONNECTSTRING=tstdb
          set ORACLE_BASE=c:\oracle
          set ORACLE_HOME=%ORACLE_BASE%\ora81
        在close_backup.sql脚本中:
          define adm = 'sys'
          define pwd = 'oracle8i'
          define dir = 'C:\oracle\admin\TSTDB\backup'
          define ctl = '&dir\control.ctl'
          
5. 执行数据库备份任务
        在$ORACLE_BASE\admin\admin_script目录下运行open_Backup_run.bat       
       
6. 执行自动备份
        在windows系统中添加计划任务,定期运行open_Backup_run.bat       


如果你有问题可以联系:
站内的短信:ganku
mail: peter_guo@pub.szedi.com.cn
           guo_tianliang@yahoo.com

论坛徽章:
0
2 [报告]
发表于 2004-05-14 09:00 |只看该作者

[原创]oracle数据库备份与恢复 a piece of cake (3)

好文。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP