一、因为目前还不能全部通过程序来定时备份全部的数据库,采用以下备份方式
导出/导入(Export/Import)
利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到 Oracle数据库中去。
1、简单导出数据(Export)和导入数据(Import) Oracle支持三种方式类型的输出: (1)、表方式(T方式),将指定表的数据导出。 (2)、用户方式(U方式),将指定用户的所有对象及数据导出。 (3)、全库方式(Full方式),瘵数据库中的所有对象导出。
数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据 库和将数据库数据导出到数据文件。
数据库备份完成后在本地放一份,在我的本机放一份。每隔一个月刻录一次光盘。
二 以后完善定时备份全部数据库时,还需要一个空间大点的服务器。可以做到定时备份数据库完成以后上传至存储数据服务器。这一系列动作都可以用程序来完成。 具体操作如下: (1)备份数据库
设定数据库的拥有者为Oracle,用户名为system,其口令为test,新建备份目录为/export/home/oracle/backup。建立一个命名为testbackup的备份文件,文件内容如下:
ORACLE-HOME=/export/home/oracle;export ORACLE-HOME(数据库初始化)
ORACLE-SID=ora;export ORACLE-SID(数据库初始化)
rm /export/home/oracle/backup/*(清空备份目录,考虑到数据量大,可以把之前的数据清空后在做备份)
rq=date +“%m%d”(取当前日期变量)
/export/home/oracle/bin/exp system/test file=/export/home/oracle/backup
/exp$rq.dmp log=/exoport/home/oracle/backup/exp$rq.log
testbackup编写完成后,用“chmod +x testbackup”命令授予它可执行权限。
(2)异地传输
在备份主机里建立一个备份目录:/data/oradata/newbackup, 在本地主机Oracle用户的注册目录/export/home/oracle里建立一个.netrc文件。设定好备份主机的IP地址,备份主机上的用户为system, 口令为text1。.netrc文件内容为:
machine x.x.x..x
login oraclebk
password testbk2(前3句是完成备份主机的登录)
macdef init(定义一个名为init的宏)
Bin(二进制传输)
cd /export/home/oracle/backup(进入本地工作目录)
cd /data/oradata/backup(进入备份主机目录)
mput *(完成将本地主机/export/home/oracle/backup目录下的所有文件传输至备份主机/data/oradata/backup目录下)
Bye(退出ftp会话进程)
.netrc文件编写完成后,用命令“chmod 600 .netrc”使该文件只能被该用户所访问。
(3)自动执行
我们以oracle用户登录本地主机,用“crontab -e”编写crontab文件用以启动自动备份进程。oracle文件内容如下:
10 23 * * * /export/home/oracle/testbackup
30 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数据异地自动备份,本地主机如果有什么故障,数据有了可靠备份,同时,在一定程度上也减轻了系统管理人员烦琐、重复的备份工作。