oracle自动异地备份实现
- 格式:doc
- 大小:36.00 KB
- 文档页数:8
Linux上实现oracle双机实时备份DataGuard更改机器名Hostname 机器名(自己启,两台机器不能一样,建议用dataguard1和dataguard2) vi /etc/sysconfig/network 文件里面的hostname 然后vi /etc/hosts 添加本地hosts安装数据库在RHEL5下安装oracle 10g1、添加组和用户# /usr/sbin/groupadd oinstall# /usr/sbin/groupadd dba# /usr/sbin/useradd -g oinstall -G dba oracle# passwd oracle2、添加以下内容到/etc/sysctl.confkernel.shmall = 2097152kernel.shmmax = 2147483648kernel.shmmni = 4096kernel.sem = 250 32000 100 128fs.file-max = 65536net.ipv4.ip_local_port_range = 1024 65000net.core.rmem_default = 1048576net.core.rmem_max = 1048576net.core.wmem_default = 262144net.core.wmem_max = 2621443、添加以下内容到/etc/security/limits.conforacle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 655364、添加以下内容到/etc/pam.d/loginsession required /lib/security/pam_limits.sosession required pam_limits.so5、添加以下内容到/etc/profileif [ $USER = "oracle" ]; thenif [ $SHELL = "/bin/ksh" ]; thenulimit -p 16384ulimit -n 65536elseulimit -u 16384 -n 65536fifi6、创建安装目录# mkdir -p /u01/app/oracle# chown -R oracle:oinstall /u01/app/oracle# chmod -R 775 /u01/app/oracle7、修改oracle环境变量,首先进入oracle用户模式,vi ~/.bash_profile ,在里面加入以下内容export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1export ORACLE_SID=DB99export PATH=$ORACLE_HOME/bin:$PATHexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/libexport LC_CTYPE=en_US.UTF-8export NLS_LANG=AMERICAN_AMERICA.ZHS16GBKexport LANG=AMERICAN_AMERICA.ZHS16GBKexport LC_ALL=C8、安装数据库# gunzip 10201_database_linux_x86_64.cpio.gz (64位)# cpio -idmv < 10201_database_linux_x86_64.cpio# vi database/install/oraparam.ini[Certified Versions]Linux=redhat-3,SuSE-9,redhat-4,redhat-5,UnitedLinux-1.0,asianux-1,asi anux-2]再添加:[Linux-redhat-5.0-optional]TEMP_SPACE=80SWAP_SPACE=150MIN_DISPLAY_COLORS=256vi /etc/sysconfig/vncservers添加VNCSERVERS="1:oracle"VNCSERVERARGS[1]="-geometry 800x600 -nolisten tcp -nohttpd -localhost" 使用oracle用户(su –oracle)启动vnc服务(vncserver) 将.vnc/.xstart中的twm &改成gnome-session &,然后用vnc viewer连接服务器运行database 目录下的runinstaller 第一个界面选择Advanced Installation 第三个界面需要在语言选项中添加中文支持在提示是否创建新库时,选择install database software only 安装结束时注意安装程序会提示用root用户执行下面两条命令: /u01/app/oracle/oraInventory/orainstRoot.sh/u01/app/oracle/product/10.2.0/db_1/root.sh 主数据库(简称dbtest1)备用数据库(简称dbtest2) 在dbtest1上安装数据库环境并创建数据库(数据库sid为DB99,安装目录为/u01/app/) 在dbtest2上只安装数据库环境,不创建数据库。
浪擎-海南航空- 海口至北京的异地容灾1.摘要随着2007年11月《信息系统灾难恢复规范》正式成为国家标准,并明确指出民航需要建设异地容灾系统,以及海航自身业务发展需求,海航在北京建设一个符合国家标准的异地容灾中心,选择浪擎科技作为其业务系统实时异地容灾解决方案供应商。
2.关于海航海南航空集团(如下简称海航)于2000年1月经国家工商行政管理局批准组建,以航空运输业为主体,产业覆盖航空运输、旅游服务、机场管理、物流、酒店管理、商贸零售、金融服务和其他相关产业。
海航集团对所从事的产业实行专业性产业管理模式。
经过15年发展,海航集团已经由一家单一的航空运输企业,转型为以航空运输为主业,围绕航空上下游发展的八大产业集群并举的大型企业集团,已形成以航空运输为主业,多产业共同发展、各产业齐头并举的发展新局面,资产结构和收入结构发生重大转变。
当前,集团资产总值超过700亿人民币,员工39000余人。
3.业务容灾的需求为了向业务部门提供具有更高可用性的IT服务,海航信息技术管理部门提出构建统一的存储网络,形成统一、具有高可用性和高扩展性的存储架构和平台。
因此,将多个业务系统包括鹏程网、决策系统、运行网、邮件及人力资源等应用系统,以及SQLServer、Oracle等业务数据整合到一体化存储系统上,同时还将部分核心应用整合到多台EXS服务器,并将各系统的存储进行整合,以进一步加强数据的安全性、可用性和系统性能,提高整个系统维护效率,降低系统维护成本及数据管理的风险。
待业务数据实现集中存储后,海航集团希望实现系统数据在异地灾备中心的异地容灾,从而提高整个数据中心及各业务系统的高可靠性。
3.浪擎科技的在线式应用级解决方案为什么选择浪擎科技?海航技术部门根据自身业务系统特点及需求,对国内外各容灾产品及技术进行了严格的评估、测试。
经过长时间的、严格的测试筛选,浪擎科技的在线式应用级容灾解决方案以其独特的应用级复制、无需恢复、在线运行、统一Web监管等创新技术以及出色的服务,赢得了海航的青睐。
Windows下Oracle自动异地备份方法2012-6-27方法一(利用ORACLE客户端)一、编写脚本文件:Oracle自动导出脚本(Windows下,导出文件名自动加上日期和时间)只适用于Windows 客户端,通过exp命令完成数据库导出。
导出文件有以下特点:1.导出的文件名自动添加上日期和时间,避免了导出文件的混乱。
2.导出的文件自动通过RAR压缩,同时删除压缩前的文件(需要导出端Windows系统安装好WinRAR),通过WinRAR压缩,Oracle的dmp文件压缩比例很高。
3.支持windows的任务计划。
4.将导出的日志和dmp文件共同打包,避免忘记exp导出的内容。
导出条件:导出端Windows必须安装好Oracle客户端或exp.exe文件,并且配置好Net Manager(指定数据库连接符pcchina)。
以下是具体的脚本,命名为:oracle_bak.bat--------------------------------------------------------------------------------------------------@echo offset RAR_CMD="C:\Program Files\WinRAR\WinRAR.exe"set USERNAME=xxxset PASSWORD=yyyset ORA_SID=orclset COMMAND=%USERNAME%/%PASSWORD%@%ORA_SID%set BACKUPPATH=D:/set TIMESTYLE=%Date:~0,4%年%Date:~5,2%月%Date:~8,2%日%time:~0,2%时%time:~3,2%分set FILEPATH=%BACKUPPATH%/%USERNAME%_%TIMESTYLE%.dmpset LOGPATH=%BACKUPPATH%/%USERNAME%_%TIMESTYLE%.logset RARPATH=%BACKUPPATH%/%USERNAME%_%TIMESTYLE%.rarecho ============================================echo 正在备份Oracle数据库,请稍等......echo ============================================exp %COMMAND% file=%FILEPATH% full=y log=%LOGPATH%echo 任务完成!echo ============================================echo 压缩备份文件,请稍等......echo ============================================%RAR_CMD% a -df "%RARPATH%" "%FILEPATH%" "%LOGPATH%"echo 压缩完成!--------------------------------------------------------------------------------------------------脚本结束。
数据库Oracle数据的异地的⾃动备份正在看的ORACLE教程是:数据库Oracle数据的异地的⾃动备份。
在⼤型商业应⽤中,数据的异地容灾备份⼗分重要,也必不可少。
笔者根据⾃⼰的实践经验,设计了⼀套简洁地实现异地数据⾃动备份的⽅法,可供数据库管理⼈员参考。
⽂中所有的程序都经过测试,运⾏良好。
这⾥模拟的异地运⾏环境为⼀主⼀备两套Sun Solaris系统,所采⽤的备份⽅法为Oracle数据库提供的标准备份:export。
相关命令 ⽂中主要⽤到三个命令,这⾥先单独介绍⼀下: export: 将数据库中数据备份成⼀个⼆进制系统⽂件,它有三种模式: ⽤户模式、表模式、整个数据库模式。
还可分为三种备份类型:完全型、积累型、增量型。
本⽂以整个数据库模式下的完全型为例说明。
export使⽤格式为: exp userid file 其中:userid的⽤法为username/userpassword,即Oracle中的⽤户名/⼝令。
userid必须为exp的第⼀个参数,file指备份⽂件所放位置及名称。
ftp: ⼀般情况下可通过交互⽅式实现两台主机间的数据传输,即需要⼿⼯输⼊⽬标主机的IP地址、⽤户名、⼝令等。
但是当⽤户使⽤ftp命令时,系统将会先在该⽤户的注册⽬录中寻找.netrc⽂件,并⾸先执⾏该⽂件。
这样,我们可以通过编写⼀个.netrc的⽂件来达到⾃动备份的⽬的。
要注意该⽂件必须命名为.netrc,且必须存放在启动ftp命令主机上的⽤户注册⽬录⾥。
ftp常⽤选项: -i:进⾏多⽂件传送时关闭交互提⽰; -n:在连接之后不进⾏⾃动登录。
本⽂使⽤“-i”选项,以关闭交互提⽰。
crontab: cron是⼀个永久进程,它由/etc/rc.local启动执⾏。
cron检查/var/spool/cron/crontabs/⽬录中的⽂件,找到所要执⾏的任务和执⾏任务的时间,并⾃动完成。
该⽬录中⽂件由crontab命令建⽴。
数据库常用的备份和恢复方法1. 数据库备份方法:使用数据库管理系统自带的备份工具,比如MySQL的mysqldump 命令、SQL Server的备份与还原工具、Oracle的RMAN等。
2. 备份恢复方法:通过数据库管理系统自带的还原工具进行数据库的恢复操作,还原到备份的状态。
3. 使用备份数据库文件:将数据库文件完整拷贝到另一个地方,以便在需要时进行恢复。
4. 使用数据库复制:通过数据库复制功能实现备份,比如MySQL的主从复制、SQL Server的数据库镜像等。
5. 使用第三方备份工具:如Acronis Backup、Veeam Backup等第三方软件来进行数据库备份。
6. 使用文件系统级别的备份:直接备份数据库所在的文件系统,这种方法需要确保数据库处于非活动状态。
7. 冷备份:在数据库服务未运行的情况下进行备份,确保备份文件的完整性。
8. 热备份:在数据库服务正在运行的情况下进行备份,能够实现数据库的连续性。
9. 定时自动备份:通过定时任务或其他调度工具定期对数据库进行备份,确保备份的及时性。
10. 增量备份:仅备份数据库中发生变化的部分数据,从而减少备份数据的大小和时间。
11. 差异备份:备份数据库自上次完整备份之后发生变化的部分数据,比增量备份更快,但恢复时需要依赖上次的完整备份。
12. 完整备份:备份整个数据库的数据和结构,是最基本的备份方法。
13. 数据库备份到云存储:将数据库备份文件上传至云存储服务,保证备份的安全性和可靠性。
14. 数据库备份加密:对备份文件进行加密,增加备份文件的安全性。
15. 数据库备份压缩:对备份文件进行压缩,减小备份文件的大小,节省存储空间。
16. 数据库备份验证:对备份文件进行验证,确保备份文件的完整性和可恢复性。
17. 数据库备份日志记录:记录备份的相关信息,如备份时间、备份状态、备份文件位置等,便于管理和追踪备份操作。
18. 数据库备份监控:通过监控系统对数据库备份进行实时监控,确保备份的正常进行。
oracle数据库迁移方案在进行Oracle数据库迁移时,需要考虑到诸多因素,包括数据的完整性、稳定性和安全性。
本文将介绍一种可行的Oracle数据库迁移方案,希望能够对大家有所帮助。
首先,进行数据库迁移前,需要对现有的数据库进行全面的备份。
这一步非常关键,可以保证在迁移过程中出现问题时,能够及时恢复数据,避免造成不必要的损失。
可以选择使用Oracle提供的备份工具,也可以使用第三方备份软件进行备份操作。
其次,确定目标数据库的环境和配置。
在进行数据库迁移时,目标数据库的环境和配置需要与原数据库保持一致,包括操作系统、数据库版本、存储设备等。
如果目标数据库与原数据库的环境有所不同,需要提前进行环境的调整和配置的优化。
接下来,选择合适的迁移工具。
Oracle提供了多种数据库迁移工具,包括Data Pump、Transportable Tablespaces等。
根据实际情况选择合适的迁移工具,并对迁移工具进行详细的配置和参数设置。
然后,进行数据迁移操作。
在进行数据迁移时,需要确保数据的完整性和一致性。
可以选择全量迁移或增量迁移的方式,根据实际情况选择合适的迁移策略。
在迁移过程中,需要对迁移的数据进行验证和测试,确保数据的准确性和完整性。
最后,进行数据库的验证和性能调优。
在完成数据迁移后,需要对目标数据库进行全面的验证和性能调优。
可以使用Oracle提供的性能调优工具,对数据库的性能进行优化和调整,确保数据库的稳定性和高效性。
综上所述,Oracle数据库迁移是一个复杂的过程,需要对各个环节进行详细的规划和操作。
通过本文介绍的迁移方案,希望能够帮助大家顺利完成数据库迁移操作,确保数据的安全和稳定。
祝大家在数据库迁移的过程中顺利完成,谢谢!。
Oracle数据库备份与恢复方案任何数据库在长期使用过程中,都会存在安全隐患。
对于数据库管理员来说不能仅寄希望于计算机操作系统的安全运行,而是要建立一整套的数据库备份与恢复机制。
当任何人为的或是自然的灾难一旦出现,而导致数据库崩溃、物理介质损坏等,就可以及时恢复系统中重要的数据,不影响整个单位业务的运作。
然而如果没有可靠的备份数据和恢复机制,就会带来系统瘫痪、工作停滞、经济损失等等不堪设想的后果。
本文以ORACLE数据库为例,结合医院的业务应用环境,介绍ORACLE数据库的备份恢复。
首先,应当制定一个严格的工作制度,规范化数据库维护的工作流程。
总结实际工作中的经验,数据库管理员应当按照以下原则进行数据库系统的维护:要求:每日值班的数据库管理员应当随时监控主数据库服务器、备份数据库服务器的软件、硬件的正常运行,一旦出现故障,应立即向领导汇报并采取相应恢复措施。
一、管理员应当每日察看数据库的冷备份报告,出现问题及时检查备份文件,保障每日数据库服务器的备份正常运行。
二、当主数据库服务器出现数据库错误时,应检查数据库的工作状态。
如果工作不正常应及时将最新的备份数据覆盖当前数据库的损坏数据,并重新启动机器,检验数据库系统是否能够自行恢复运行。
如果重新启动后数据库系统不能正常运行,则数据库系统文件被破坏,应重新安装ORACLE数据库并启用紧急恢复方案。
三、当主数据库服务器出现硬件故障时,应在1小时内更新备份数据库为最新数据,并启动备份数据库服务器,将备份数据库服务器升级为主数据库服务器。
对于损坏的主数据库服务器应重新安装ORACLE数据库,并启用紧急恢复方案。
四、当备份数据库服务器出现数据库错误时,应检查ORACLE数据库的工作状态,如果工作不正常应及时将最新的备份数据覆盖当前数据库的损坏数据,并重新启动机器,检验数据库系统是否能够自行恢复运行。
如果重新启动后数据库系统不能正常运行,则数据库系统文件被破坏,应重新安装ORACLE数据库并启用紧急恢复方案。
Oracle 灾备方案1. 引言随着企业对数据安全和业务连续性的需求不断增加,灾备方案的设计和实施变得至关重要。
Oracle作为一种流行的关系数据库管理系统(RDBMS),为企业提供了可靠的数据存储和管理解决方案。
本文档将介绍Oracle灾备方案的基本原理和常见实施方法。
2. 灾备概述灾备(Disaster Recovery)是指为了减少灾难发生时对业务造成的影响而采取的预防和恢复措施。
Oracle灾备方案旨在确保企业的关键数据和系统能够在灾难发生时保持稳定和可用。
3. Oracle 灾备架构Oracle灾备架构通常由两个关键组件组成:主数据库和备份数据库。
主数据库用于处理实时事务和数据更新,而备份数据库则用作主数据库的容灾备份。
下面是常用的Oracle灾备架构类型:3.1. 同城双机房在同一个城市的两个不同机房建立主备数据库,主数据库负责处理业务操作,而备份数据库作为冷备份与主数据库保持数据同步。
主备数据库通过双向数据传输进行同步,以确保数据的一致性。
3.2. 异地容灾异地容灾方案是指将主数据库和备份数据库部署在不同的地理位置上。
这种架构适用于对数据安全和业务连续性要求更高的企业。
主数据库和备份数据库通过网络进行数据同步,并通过自动故障切换实现业务的持续运行。
4. Oracle 灾备技术Oracle提供了多种灾备技术和工具来保证数据的安全和可用性。
以下是一些常见的Oracle灾备技术:4.1. 数据库复制数据库复制是指将数据从一个数据库复制到另一个数据库的过程。
Oracle提供了多种数据复制技术,包括物理复制和逻辑复制。
物理复制使用数据库日志来进行数据同步,而逻辑复制则通过SQL语句来实现数据同步。
4.2. 数据库备份和恢复数据库备份和恢复是灾备方案的基础。
Oracle提供了多种备份和恢复工具,包括RMAN(Recovery Manager)和Data Pump。
通过定期备份数据库,可以在数据意外丢失或损坏时恢复数据。
深度了解异地备份几个问题作者: 王永亮, 出处:比特网,责任编辑: 袁绍龙,2008-07-09 09:20/backup/119/8208119_1.shtml目前,金融业拿银行来说,一些银行需要其金融监管系统有两个位于不同地理位置、一年365天连续运行的数据中心。
其中一个为主数据中心,用于日常操作,另一个为灾难备份中心。
第二个数据中心要保持与主数据中心运行系统完全同步,以支持灾难恢复。
这就应用到了异地备份。
异地备份将数据在另外的地方实时产生一份可用的副本,此副本的使用不需要做数据恢复,可以将副本立即投入使用。
这就是异地备份。
异地备份的数据复制目前有如下实现方式:基于主机。
基于主机的数据复制技术,可以不考虑存储系统的同构问题,只要保持主机是相同的操作系统即可,而目前也存在支持异构主机之间的数据复制软件,如BakBone NetVault Replicator就可以支持异构服务器之间的数据复制,可以支持跨越广域网的远程实时复制。
缺点是需要占用一点主机资源。
基于存储系统。
利用存储系统提供的数据复制软件,复制的数据流通过存储系统之间传递,和主机无关。
这种方式的优势是数据复制不占用主机资源,不足之处是需要灾备中心的存储系统和生产中心的存储系统有严格的兼容性要求,一般需要来自同一个厂家的存储系统,这样对用户的灾备中心的存储系统的选型带来了限制。
基于光纤交换机。
这项技术正在发展中,利用光纤交换机的新功能,或者利用管理软件控制光纤交换机,对存储系统进行虚拟化,然后管理软件对管理的虚拟存储池进行卷管理、卷复制、卷镜像等技术,来实现数据的远程复制。
比较典型的有Storag-age,Falcon等。
基于应用的数据复制。
这项技术有一定局限性,都是针对具体的应用。
主要利用数据库自身提供的复制模块来完成,比如OracleDataGuard,Sybase Replication 等。
灾难备份解决方案的分析及选择在推行计算机应用的过程中,银行已深深体会到系统可用性对银行业务的重要性。
在大型商业应用中,数据的异地容灾备份十分重要,也必不可少。
笔者根据自己的实践经验,设计了一套简洁地实现异地数据自动备份的方法,可供数据库管理人员参考。
文中所有的程序都经过测试,运行良好。
这里模拟的异地运行环境为一主一备两套Sun Solaris系统,所采用的备份方法为Oracle数据库提供的标准备份:export。
相关命令文中主要用到三个命令,这里先单独介绍一下:export: 将数据库中数据备份成一个二进制系统文件,它有三种模式: 用户模式、表模式、整个数据库模式。
还可分为三种备份类型:完全型、积累型、增量型。
本文以整个数据库模式下的完全型为例说明。
export使用格式为:exp userid file其中:userid的用法为username/userpassword,即Oracle中的用户名/口令。
userid必须为exp的第一个参数,file指备份文件所放位置及名称。
ftp: 一般情况下可通过交互方式实现两台主机间的数据传输,即需要手工输入目标主机的IP地址、用户名、口令等。
但是当用户使用ftp命令时,系统将会先在该用户的注册目录中寻找.netrc文件,并首先执行该文件。
这样,我们可以通过编写一个.netrc的文件来达到自动备份的目的。
要注意该文件必须命名为.netrc,且必须存放在启动ftp命令主机上的用户注册目录里。
ftp常用选项:-i:进行多文件传送时关闭交互提示;-n:在连接之后不进行自动登录。
本文使用“-i”选项,以关闭交互提示。
crontab: cron是一个永久进程,它由/etc/rc.local启动执行。
cron检查/var/spool/cron/crontabs/目录中的文件,找到所要执行的任务和执行任务的时间,并自动完成。
该目录中文件由crontab命令建立。
用户所建立的crontab文件存于/var/spool/cron/crontabs中,其文件名与用户名一致,本文使用crontab的用户为Oracle,所建立的文件名也为Oracle。
cron使用者的权限记载在下列两个文件中: /usr/var/adm/cron/cron.deny和/usr/var/adm/cron/cron.allow。
前面的文件中所列的用户不允许使用crontab命令;后一文件中所列的用户允许使用crontab命令。
crontab命令的常用格式为:crontab -l:显示用户的crontab文件的内容;crontab -r:从crontabs目录中删除用户的crontab文件;crontab -e:编辑用户的crontab文件。
crontab文件每行中有6个字段,前5个为时间设定段,第6个为所要执行的命令。
时间段分别为: minutes、hours、day of month、month、day of week,字段之间用空格或Tab 分开。
字段如果为“*”,表示该字段在所有可能的取值范围内取值; 如果一个字段是由连字符隔开的两个数字,表明命令可以在两个数字之间的范围内执行。
备份数据库设定数据库的拥有者为Oracle,用户名为mistest,其口令为test,新建备份目录为/export/home/oracle/backup。
建立一个命名为testbackup的备份文件,文件内容如下:ORACLE-HOME=/export/home/oracle/815;export ORACLE-HOMEORACLE-SID=ora815;export ORACLE-SIDrm /export/home/oracle/backup/*rq=丶date +“%m%d”丶/export/home/oracle/815/bin/exp mistest/test file=/export/home/oracle/backup/exp$rq.dmp log=/exoport/home/oracle/backup/exp$rq.log说明:前两句对Oracle数据库初始化,第3条语句清空备份目录,第4条语句建立一个取当前日期的变量,以便在最后一条语句的备份文件名里含有当前日期信息。
testbackup编写完成后,用“chmod +x testbackup”命令授予它可执行权限。
异地传输在备份主机里建立一个备份目录:/data/oradata/newbackup, 在本地主机Oracle用户的注册目录/export/home/oracle里建立一个.netrc文件。
设定好备份主机的IP地址,备份主机上的用户为oraclebk, 口令为testbk2。
.netrc文件内容为:machine x.x.x..xlogin oraclebkpassword testbk2macdef initbinlcd /export/home/oracle/backupcd /data/oradata/backupmput *bye说明: 前3条语句完成在备份主机上的登录,第4条语句定义一个名为init的宏,第5条语句表示以二进制传输,第6条语句表示进入本地工作目录,第7条语句表示进入备份主机目录,第8条语句完成将本地主机/export/home/oracle/backup目录下的所有文件传输至备份主机/data/oradata/backup目录下,最后一条语句退出ftp会话进程。
.netrc文件编写完成后,用命令“chmod 600.netrc”使该文件只能被该用户所访问。
自动执行我们以oracle用户登录本地主机,用“crontab -e”编写crontab文件用以启动自动备份进程。
oracle文件内容如下:10 23 * * * /export/home/oracle/testbackup30 23 * * * ftp -i x.x.x.x说明:第1条语句指定每天自动在23点10分执行对数据库的备份,第2条语句指定每天自动在23点半启动ftp,将备份文件传输到备份主机(备份主机为符合语句中指定IP地址的主机)。
Oracle文件只能在Oracle用户名下用“crontab -e”命令来编辑。
编辑完成后,可以在用“crontab-l”命令来查看crontab文件内容,同时在/var/spool/cron/crontabs目录下查看是否增加了一个Oracle文件。
至此,本地主机可以每天定时备份数据库,并定时把备份数据传到备份主机。
这样,较好地实现了Oracle数据异地自动备份,本地主机如果有什么故障,数据有了可靠备份,同时,在一定程度上也减轻了系统管理人员烦琐、重复的备份工作。
一、设计思路当前支撑绍兴烟草营销、呼叫、专卖、财务、OA等核心系统运行的主要是TradeCtr、QueryCtr、JTCW、OA四个Oracle数据库,运行在两台HP8420小型机上,每个数据库的备份大约为30G左右,考虑到今后两年内的数据增长可能会达到50-60G左右。
绍兴烟草下属四个县公司,每个公司均具备充分的存储空间,网络实际可利用带宽均为6Mbit/s左右,完成一个备份文件的数据传输大约需要10-20个小时,考虑到网络带宽、传输时间及工作时间对业务经营的影响,我们将数据备份及远程传输放在星期六进行,每个单位对应一个数据库进行远程备份,备份周期为每周一次,每周六下午开始。
备份中主要用到数据库导出、ftp自动传输、HP UNIX 定时作业等技术,下面以财务数据库JTCW为例来说明具体实现方式。
二、导出数据库export命令将数据库中的数据备份成一个二进制文件,它通常有三种模式:用户模式、表模式和整个数据库模式。
本文拟采用用户模式,备份之前,应先建立一个备份目录,以在本机容纳备份文件,比如可建一个/localbak目录。
我们将JTCW数据库在用户模式下备份,备份保留周期为一天,具体脚本如下,保留在exp_JTCW.sh文件中:export EXP_HOME=/localbak #设置环境变量EXP_HOMEexport ORACLE_SID=JTCW#设置环境变量ORACLE_SIDexp system/password owner=hsa6 file=$EXP_HOME/JTCW$(LC_ALL=Cdate +%y%m%d).dmp log=$EXP_HOME/JTCW$(LC_ALL=C date +%y%m%d).log statistics=none#备份数据以日期方式命名find /oradata/cwdata/backup -type f -mtime 3 -exec rm {} \;#保留周期为三天三、自动数据传输我们知道,通常可用FTP命令在两台主机间传输数据,但一般是通过交互方式实现的,即需要手工输入目标主机的IP地址、用户名、口令等。
显然,这不符合自动备份的要求。
所幸的是,在HP UNIX平台下我们可以通过编写一个.netrc的文件来达到目标。
这一文件必须命名为.netrc,且必须存放在启动FTP命令的机器上的用户注册目录中,该文件的权限应禁止组内或其它用户进行读访问。
这样,当用户使用FTP命令的时候,系统将会在该用户的注册目录中寻找.netrc文件,如果能够寻找到,将会首先执行该文件,否则,会交互式地提示用户输入用户名、口令等。
在使用FTP命令之前,应先在对应县公司一台作备份用的机器上开启ftp服务并建立上传文件目录,以容纳备份文件,本文建立的目录是/remotebak。
为了加快备份速度,.netrc文件内容如下:machine host2 # host2为作备份用的主机名login ftpuser # ftpuser为远程备份主机上的一个用户password ftpuser # ftpuser用户的口令为ftpusermacdef init #定义一个名为init的宏,它将在自动注册进程的最后被执行bin #文件的传输方式设为二进制lcd /localbak #进入本地工作目录/localbakcd /remotebak #进入远程备份主机目录/remotebakmput *# 将/localbak目录下的所有文件传输至备份主机bye #退出FTP会话进程.netrc文件编写完成后,使用下述命令:chmod 600 .netrc这样,.netrc文件就只能被该用户所访问四、启动备份进程HP UNIX平台下,Cron是一个永久进程,它由/etc/rc.local启动执行。
Cron 检查/var/spool/cron/crontabs/目录中的文件,找到所要执行的任务和执行任务的时间。
Crontab文件的每一行由六个域(minutes、hours、day of month、month、day of week、command)组成,域之间用空格或Tab分开,其中:minutes:分钟域,值的范围是0到59hours:小时域,值的范围是0到23day of month:日期,值的范围是1到31month:月份,值的范围是1到12day of week:星期,值的范围是0到6,星期日值为0command:所要运行的命令如果一个域是空,表明命令可以在该域所有可能的取值范围内执行。