oracle备份 我现在需要结合linux的定时作业(crontab)写个备份(shell)脚本,请哪位大神提供一下代码示例,可以是导入导出,也可以是物理备份,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 数据库每天自动备份数据需求第一:每天自动备份当天的数据库的数据信息 。第二:把当天备份的数据和日志一起打成.tar.gz包,这样会减少硬盘的容量。第三:用FTP把当天的数据.tar.gz包上传到外面的服务器做备份。第四:每天的数据日益增加,硬盘的容量有限。所以只保留前五天的数据备份,删除五天前的数据备份。2自动备份实现步骤(从数据库服务器1备份到服务器2)2.1在数据库服务器1编写backup.sh文件用安装Oracle数据库的用户(这里的用户为oracle)在数据库服务器的/home/databackup创建并编写backup.sh文件。该文件先定义Oracle的环境变量,然后导出当天的数据,并创建相关的日志,然后把当天的数据和日志打包成.tar.gz文件。文件内容:(#为注释)export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK#Oracle的字符集,Oracle数据库的中文字符集为AMERICAN_AMERICA.ZHS16GBKexport ORACLE_HOME=/oracle/product/10.2.0/db_1#Oracle数据库的根目录/oracle/product/10.2.0/db_1/bin/exp risenet56/1@ora10g file=risenet56`date +%Y%m%d`.dmp log=risenet56`date +%Y%m%d`.logowner=risenet56#导出当日的数据库的数据并写日志。如当为2008-1-16,数据文件为risenet5620080116.dmp,日志为risenet5620080116.logtar -cf risenet56`date +%Y%m%d`.tar risenet56`date +%Y%m%d`.dmp risenet56`date +%Y%m%d`.log#把数据文件和日志打包gzip risenet56`date +%Y%m%d`.tar#把tar包压缩成.tar.gz包cat risenet56`date +%Y%m%d`.log | mail -s 'risenet56 Web Backup' [email protected]#把当天日志发送到[email protected]邮箱rm -f risenet56`date +%Y%m%d`.dmprm -f risenet56`date +%Y%m%d`.log#删除备份.dmp文件和.log日志mv risenet56`date +%Y%m%d`.tar.gz /home/databackup#把当前目录的.tar.gz包移动到/home/databackup目录下rm -f /home/databackup/risenet56`date -d -5day +%Y%m%d`.tar.gz#删除/home/databackup/目录下前第5天的数据2.2在数据库服务器1创建FTP服务的autoftp.sh文件从数据库服务器1的当天备份数据用FTP上传到另一服务器2。在数据库服务器1的/home/databackup的目录下创建并编写autoftp.sh文件。文件内容如下:#!/bin/shftp -i -v -n <<!open ***.***.***.***#启动 FTP 连接服务器2***.***.***.***为服务器2的ip地址user risesoft ******#risesoft为用户名******为密码Binary#以二进制传输prompt offlcd /home/databackup#在数据库服务器1的目录cd /home/risesoft/67OracleBackup#在服务器2的目录mput risenet56`date +%Y%m%d`.tar.gz#上传数据closebye!--------------------------------------------------2.3在数据库服务器1上给两个shell文件赋予权限用oracle用户给backup.sh赋予相应的权限,启动一个终端,执行切换用户命令:su – oracle ,然后输入用户的密码。执行赋予权限命令:chmod +x /home/databackup/backup.sh 然后再执行命令:chomd +x /home/databackup/autoftp.sh2.4在数据库服务器1中的crontab来定时执行shell用oracle用户启动一个终端,输入命令进行编写:crontab –e内容如下:30 19 * * * /home/databackup/backup.sh 2>&13022 * * * /home/databackup/autoftp.sh 2>&1--------------------------------------------------保存,可以用命令:crontab –l来查看.上述的作用:每天19:30执行backup.sh文件,而backup.sh进行备份当天的数据,并删除前第6天的数据,则保留前5天的数据。每天22:30执行autoftp.sh文件,把当天的备份数据从数据库服务器1上传到另一服务器2。2.5在服务器2上创建删除前第6天的 shell文件每天都从数据库服务器1的备份数据上传到另一服务器2上,但服务器2)上的容量也是有限的,只保留前5天的数据,每天自动删除前第六天的备份数据。因为上传的用户名为risesoft,所以用risesoft用户在服务器2的/home/risesoft/67OracleBackup目录下创建并编写delete.sh文件。内容如下:rm -f /home/risesoft/67OracleBackup/risenet56`date -d -5day +%Y%m%d`.tar.gz#删除前第5天的数据--------------------------------------------------2.6在服务器2上给delete.sh文件赋予权限备份的数据是用risesoft用户上传上来的,用risesoft用户给delete.sh赋予相应的权限,启动一个终端,执行切换用户命令:su – risesoft,然后输入用户的密码。执行赋予权限命令:chmod +x /home/risesoft/67OracleBackup/delete.sh2.7在服务器2中的crontab定时执行delete.sh文件用oracle用户启动一个终端,输入命令进行编写:crontab –e内容如下:3023 * * * /home/risesoft/67OracleBackup/delete.sh 2>&1--------------------------------------------------保存,可以用命令:crontab –l来查看.上述作用:在每天的23:30自动执行delete.sh文件,delete.sh文件则自动删除在/home/risesoft/67OracleBackup目录下的前第5天的备份数据。Oracle数据库操作中,数据库备份是非常重要的操作之一,因为它涉及到数据库的安全性。数据库管理员常常将数据库设置为自动备份来备份数据库,那么如何设置自动备份呢?不同操作系统平台的设置有什么区别吗?本文我们主要就介绍这一部分内容,希望能够对您有所帮助。Linux系统下Oracle数据库的备份:FIELNAME=/home/oracle/dmp/`date +%Y%m%d`.dmp echo $FIELNAME > /home/oracle/dmp/filename /home/oracle/product/9.2/bin/exp ccbip/'und\=2008CN(Y|N)' full=y file=$FIELNAME bzip2 $FIELNAME 注:创建的文件都是Oracle用户oinstall组的。Windows系统下Oracle数据库自动备份脚本:expData.bat的内容:exp system/system@orcl file=c:\oracle_bak\tne%date:~4,10%.dmp owner=tne exp system/system@orcl file=c:\oracle_bak\prt%date:~4,10%.dmp owner=prt exp system/system@orcl file=c:\oracle_bak\sec%date:~4,10%.dmp owner=sec exp system/system@orcl file=c:\oracle_bak\tea%date:~4,10%.dmp owner=tea exp system/system@orcl file=c:\oracle_bak\pic%date:~4,10%.dmp owner=pic exp system/system@orcl file=c:\oracle_bak\system%date:~4,10%.dmp owner=system path=D:\WinRAR 3.20 rar a Data%date:~4,10%.rar *%date:~4,10%.dmp del *%date:~4,10%.dmp 以上就是Oracle数据库在linux和windows下自动备份脚本的全部内容,本文我们就介绍到这里了,如果您想了解更多Oracle数据库的内容,也可以看一下这里的文章:http://database.51cto.com/oracle/,相信一定可以给您带来收获的!【编辑推荐】Oracle数据库GLOBAL_NAMES参数的详细研究 Oracle数据库分析函数应用实例之查找状态全为1的ID Oracle 10g UNDO表空间过大导致磁盘空间不足的解决 Oracle handbook系列之虚拟专用数据库VPD的使用详解 Oracle 10g中UNDO数据的作用及UNDO表空间的操作详解【责任编辑:赵鹏 TEL:(010)68476606】export NLS_LANG=AMERICAN_AMERICA.ZHS16GBKexport ORACLE_HOME=/oracle/product/10.2.0/db_1/oracle/product/10.2.0/db_1/bin/exp snjga_db/snjga@dqb file=/orabackup/snjga_db`date +%Y%m%d`.dmp log=/orabackup/snjga_db`date +%Y%m%d`.logowner=snjga_dbtar -cf snjga_db`date +%Y%m%d`.tar snjga_db`date +%Y%m%d`.dmp snjga_db`date +%Y%m%d`.loggzip snjga_db`date +%Y%m%d`.tarrm -f snjga_db`date +%Y%m%d`.dmprm -f snjga_db`date +%Y%m%d`.log#mv risenet56`date +%Y%m%d`.tar.gz /home/databackuprm -f /databackup/snjga_db`date -d -5day +%Y%m%d`.tar.gz 我的oracle版本是11g的,我仔细看过了,好像路径有点区别的 oracle 性能问题 关于动态SQL的问题 请教SQL优化 一个简单的过程,问什么编译通不过? ORACLE的NUMBER和LONG类型分别支持最大多少的值? 这个SQL应该怎么写 关于Java外部例程(高分求一问题答案) oracle存储过程中游标好象取不到数据 在816中如何监视SQL语句的运行? 请问怎么在Oracle中进行如建表,修改表等这样简单的操作! 求个pl/sql的例子 写了一个很简单的循环loop,但是一直报错,求大神解释啊
第一:每天自动备份当天的数据库的数据信息 。
第二:把当天备份的数据和日志一起打成.tar.gz包,这样会减少硬盘的容量。
第三:用FTP把当天的数据.tar.gz包上传到外面的服务器做备份。
第四:每天的数据日益增加,硬盘的容量有限。所以只保留前五天的数据备份,删除五天前的数据备份。2
自动备份实现步骤(从数据库服务器1备份到服务器2)2.1
在数据库服务器1编写backup.sh文件
用安装Oracle数据库的用户(这里的用户为oracle)在数据库服务器的/home/databackup创建并编写backup.sh文件。该文件先定义Oracle的环境变量,然后导出当天的数据,并创建相关的日志,然后把当天的数据和日志打包成.tar.gz文件。
文件内容:(#为注释)export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
#Oracle的字符集,Oracle数据库的中文字符集为AMERICAN_AMERICA.ZHS16GBKexport ORACLE_HOME=/oracle/product/10.2.0/db_1
#Oracle数据库的根目录/oracle/product/10.2.0/db_1/bin/exp risenet56/1@ora10g file=risenet56`date +%Y%m%d`.dmp log=risenet56`date +%Y%m%d`.log
owner=risenet56
#导出当日的数据库的数据并写日志。如当为2008-1-16,数据文件为risenet5620080116.dmp,日志为risenet5620080116.logtar -cf risenet56`date +%Y%m%d`.tar risenet56`date +%Y%m%d`.dmp risenet56`date +%Y%m%d`.log
#把数据文件和日志打包gzip risenet56`date +%Y%m%d`.tar
#把tar包压缩成.tar.gz包cat risenet56`date +%Y%m%d`.log | mail -s 'risenet56 Web Backup' [email protected]
#把当天日志发送到[email protected]邮箱rm -f risenet56`date +%Y%m%d`.dmp
rm -f risenet56`date +%Y%m%d`.log
#删除备份.dmp文件和.log日志mv risenet56`date +%Y%m%d`.tar.gz /home/databackup
#把当前目录的.tar.gz包移动到/home/databackup目录下rm -f /home/databackup/risenet56`date -d -5day +%Y%m%d`.tar.gz
#删除/home/databackup/目录下前第5天的数据
2.2
在数据库服务器1创建FTP服务的autoftp.sh文件
从数据库服务器1的当天备份数据用FTP上传到另一服务器2。在数据库服务器1的/home/databackup的目录下创建并编写autoftp.sh文件。文件内容如下:#!/bin/sh
ftp -i -v -n <<!
open ***.***.***.***
#启动 FTP 连接服务器2
***.***.***.***为服务器2的ip地址user risesoft ******
#risesoft为用户名
******为密码Binary
#以二进制传输prompt off
lcd /home/databackup
#在数据库服务器1的目录cd /home/risesoft/67OracleBackup
#在服务器2的目录mput risenet56`date +%Y%m%d`.tar.gz
#上传数据close
bye
!
--------------------------------------------------
2.3
在数据库服务器1上给两个shell文件赋予权限
用oracle用户给backup.sh赋予相应的权限,启动一个终端,执行切换用户命令:su – oracle ,然后输入用户的密码。执行赋予权限命令:chmod +x /home/databackup/backup.sh
然后再执行命令:chomd +x /home/databackup/autoftp.sh2.4
在数据库服务器1中的crontab来定时执行shell
用oracle用户启动一个终端,输入命令进行编写:crontab –e内容如下:30 19 * * * /home/databackup/backup.sh 2>&1
30
22 * * * /home/databackup/autoftp.sh 2>&1
--------------------------------------------------
保存,可以用命令:crontab –l
来查看.
上述的作用:每天19:30执行backup.sh文件,而backup.sh进行备份当天的数据,并删除前第6天的数据,则保留前5天的数据。每天22:30执行autoftp.sh文件,把当天的备份数据从数据库服务器1上传到另一服务器2。
2.5
在服务器2上创建删除前第6天的 shell文件
每天都从数据库服务器1的备份数据上传到另一服务器2上,但服务器2)上的容量也是有限的,只保留前5天的数据,每天自动删除前第六天的备份数据。因为上传的用户名为risesoft,所以用risesoft用户在服务器2的/home/risesoft/67OracleBackup目录下创建并编写delete.sh文件。
内容如下:rm -f /home/risesoft/67OracleBackup/risenet56`date -d -5day +%Y%m%d`.tar.gz
#删除前第5天的数据
--------------------------------------------------
2.6
在服务器2上给delete.sh文件赋予权限
备份的数据是用risesoft用户上传上来的,用risesoft用户给delete.sh赋予相应的权限,启动一个终端,执行切换用户命令:su – risesoft
,然后输入用户的密码。执行赋予权限命令:chmod +x /home/risesoft/67OracleBackup/delete.sh2.7
在服务器2中的crontab定时执行delete.sh文件
用oracle用户启动一个终端,输入命令进行编写:crontab –e内容如下:30
23 * * * /home/risesoft/67OracleBackup/delete.sh 2>&1
--------------------------------------------------
保存,可以用命令:crontab –l
来查看.
上述作用:在每天的23:30自动执行delete.sh文件,delete.sh文件则自动删除在/home/risesoft/67OracleBackup目录下的前第5天的备份数据。Oracle数据库操作中,数据库备份是非常重要的操作之一,因为它涉及到数据库的安全性。数据库管理员常常将数据库设置为自动备份来备份数据库,那么如何设置自动备份呢?不同操作系统平台的设置有什么区别吗?本文我们主要就介绍这一部分内容,希望能够对您有所帮助。Linux系统下Oracle数据库的备份:
FIELNAME=/home/oracle/dmp/`date +%Y%m%d`.dmp echo $FIELNAME > /home/oracle/dmp/filename /home/oracle/product/9.2/bin/exp ccbip/'und\=2008CN(Y|N)' full=y file=$FIELNAME bzip2 $FIELNAME
注:创建的文件都是Oracle用户oinstall组的。Windows系统下Oracle数据库自动备份脚本:expData.bat的内容:
exp system/system@orcl file=c:\oracle_bak\tne%date:~4,10%.dmp owner=tne exp system/system@orcl file=c:\oracle_bak\prt%date:~4,10%.dmp owner=prt exp system/system@orcl file=c:\oracle_bak\sec%date:~4,10%.dmp owner=sec exp system/system@orcl file=c:\oracle_bak\tea%date:~4,10%.dmp owner=tea exp system/system@orcl file=c:\oracle_bak\pic%date:~4,10%.dmp owner=pic exp system/system@orcl file=c:\oracle_bak\system%date:~4,10%.dmp owner=system path=D:\WinRAR 3.20 rar a Data%date:~4,10%.rar *%date:~4,10%.dmp del *%date:~4,10%.dmp
以上就是Oracle数据库在linux和windows下自动备份脚本的全部内容,本文我们就介绍到这里了,如果您想了解更多Oracle数据库的内容,也可以看一下这里的文章:http://database.51cto.com/oracle/,相信一定可以给您带来收获的!【编辑推荐】Oracle数据库GLOBAL_NAMES参数的详细研究
Oracle数据库分析函数应用实例之查找状态全为1的ID
Oracle 10g UNDO表空间过大导致磁盘空间不足的解决
Oracle handbook系列之虚拟专用数据库VPD的使用详解
Oracle 10g中UNDO数据的作用及UNDO表空间的操作详解
【责任编辑:赵鹏 TEL:(010)68476606】export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export ORACLE_HOME=/oracle/product/10.2.0/db_1
/oracle/product/10.2.0/db_1/bin/exp snjga_db/snjga@dqb file=/orabackup/snjga_db`date +%Y%m%d`.dmp log=/orabackup/snjga_db`date +%Y%m%d`.log
owner=snjga_db
tar -cf snjga_db`date +%Y%m%d`.tar snjga_db`date +%Y%m%d`.dmp snjga_db`date +%Y%m%d`.log
gzip snjga_db`date +%Y%m%d`.tar
rm -f snjga_db`date +%Y%m%d`.dmp
rm -f snjga_db`date +%Y%m%d`.log
#mv risenet56`date +%Y%m%d`.tar.gz /home/databackup
rm -f /databackup/snjga_db`date -d -5day +%Y%m%d`.tar.gz