oracle数据定时备份
oracle数据定时备份
有个简单需求:oracle数据库放到host-a上面,我希望在host-b每天早上3点备份host-a指定oracle table数据。
步骤一、在host-b安装oracle环境或者oracle instant client
步骤二、在host-b配置TNS Name
Java代码
# 编辑并添加下面配置
vi /u01/app/oracle/network/admin/tnsnames.ora
Java代码
host_a_db =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = host-a )(PORT = 1521))
)
(CONNECT_DATA = (SID = logstat)(SERVER = DEDICATED))
)
步骤三、编写shell脚本
Java代码
vi backup.sh #内容如下
exp logstat/xxxx@host_a_db FILE=snda-`date -d yesterday +%Y%m%d`.dmp TABLES=T1,T2 BUFFER=64000
#只保留7天的备份
find /home/oracle/snda_bak -name '*.dmp' -mtime +6 -exec rm -fr {} \;
备份文件名称包含当前日期前一天日期,这样的效果“snda-20130415.dmp”
步骤四:挂crontab
3 3 * * * source .bash_profile; /home/oracle/backup.sh > out.log
--end