oracle查看备份策略,linux下Oracle数据库常见备份策略
常见备份策略:
数据库每天⾃动备份数据需求
第⼀:每天⾃动备份当天的数据库的数据信息 。
第⼆:把当天备份的数据和⽇志⼀起打成.包,这样会减少所占硬盘的空间。
第三:⽤FTP把当天的数据.包上传到外⾯的服务器做备份。
第四:每天的数据⽇益增加,硬盘的容量有限。所以只保留最近⼀个⽉(30天)的备份,删除之前的备份。
⾃动备份实现步骤(从数据库服务器1备份到服务器2)
1、在数据库服务器1编写backup.sh⽂件
⽤安装Oracle数据库的⽤户(这⾥的⽤户为oracle)在数据库服务器的/home/databackup创建并编写backup.sh⽂件。该⽂件先定义Oracle的环境变量,然后导出当天的数据,并创建相关的⽇志,然后把当天的数据和⽇志打包成.⽂件。
脚本⽂件内容:(#为注释)
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
#Oracle的字符集,Oracle数据库的中⽂字符集为AMERICAN_AMERICA.ZHS16GBK
export ORACLE_HOME=/oracle/product/10.2.0/db_1
#Oracle数据库的根⽬录
/oracle/product/10.2.0/db_1/bin/exp dbtest@ora10g file=dbtest`date +%Y%m%d`.dmp log=dbtest`date +%Y%m%d`.log owner=dbtest
#导出当⽇的数据库的数据并写⽇志。
tar -cf dbtest`date +%Y%m%d`.tar dbtest`date +%Y%m%d`.dmp dbtest`date +%Y%m%d`.log
oracle数据库自动备份方法#把数据⽂件和⽇志打包
gzip dbtest`date +%Y%m%d`.tar
#把tar包压缩成.包
cat dbtest`date +%Y%m%d`.log | mail -s ‘dbtest Web Backup’ test@163
#把当天⽇志发送到test@163邮箱
rm -f dbtest`date +%Y%m%d`.dmp
rm -f dbtest`date +%Y%m%d`.log
#删除备份.dmp⽂件和.log⽇志
mv dbtest`date +%Y%m%d`. /home/databackup
#把当前⽬录的.包移动到/home/databackup⽬录下
rm -f /home/databackup/dbtest`date -d -30day +%Y%m%d`.
#删除/home/databackup/⽬录下30天前的数据
2、在数据库服务器1创建FTP服务的autoftp.sh⽂件
从数据库服务器1的当天备份数据⽤FTP上传到另⼀服务器2。在数据库服务器1的/home/databackup的⽬录下创建并编写autoftp.sh⽂件。
脚本⽂件内容如下:
#!/bin/sh
ftp -i -v -n <
#启动 FTP 连接服务器2,***.***.***.***为服务器2的ip地址
user dbtest ******
#dbtest为⽤户名,******为密码
Binary
#以⼆进制传输
prompt off
lcd /home/databackup
#在数据库服务器1的⽬录
cd /home/dbtest/OracleBackup
#在服务器2的⽬录
mput dbtest`date +%Y%m%d`.
#上传数据
close
bye
!
————————————————–
3、在数据库服务器1上给两个shell⽂件赋予权限
⽤oracle⽤户给backup.sh赋予相应的权限,启动⼀个终端,执⾏切换⽤户命令:su – oracle ,然后输⼊⽤户的密码。执⾏赋予权限命令:chmod +x /home/databackup/backup.sh
然后再执⾏命令:chomd +x /home/databackup/autoftp.sh
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⽂件,每天22:30执⾏autoftp.sh⽂件。
5、在服务器2上创建删除30天前的shell⽂件
因为上传的⽤户名为dbtest,所以⽤dbtest⽤户在服务器2的/home/dbtest/OracleBackup⽬录下创建并编写delete.sh⽂件。
内容如下:
rm -f /home/dbtest/OracleBackup/dbtest`date -d -30day +%Y%m%d`. #删除30天前的数据
6、在服务器2上给delete.sh⽂件赋予权限
执⾏赋予权限命令:chmod +x /home/dbtest/OracleBackup/delete.sh
7、在服务器2中的crontab定时执⾏delete.sh⽂件
与上同,输⼊命令进⾏编写:crontab –e
内容如下:
30 23 * * * /home/risesoft/67OracleBackup/delete.sh 2>&1————————————————–
保存,可以⽤命令:crontab –l
上述作⽤:在每天的23:30⾃动执⾏delete.sh⽂件。
(注:gz的解压命令:(如:)
1 先解压成tar包: gunzip?
2 在解压Test.tar包:tar xvfm Test.tar)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论