简单的Oracle日志传送

我正在寻找一种体面的方法来保持辅助Oracle数据库的最新,而不是每次都导出和导入数据库。 实例上有3个用户,如果在Oracle上调用它,我基本上就会“login”这个用户!

任何人都可以build议吗?

该数据库是远远低于GB总额,我们正在运行10克快递(虽然我有考虑使用10克标准,因为我们有一个备用许可证)。

干杯

克里斯

这就是我所做的:

我的主数据库已打开事务日志传送。 日志写入/ db / archive。

每个小时,一个cron作业就像oracle用户一样运行。 这个cronjob做了以下的事情:

将/ db / archive /的内容移动到/ db_archive / YYYYMMDD /(使用下面的脚本(我没有写,所以不要让我对丑陋负责))

#!/bin/bash # args: <src> <dest> <date> datechunk=$3 echo "Processing $datechunk" check=`ls $1 | wc -l` if [ $check -le 2 ]; then exit 0 fi let check2=check-2 echo "Processing $check2 files" ls -vA $1 | head -n $check2 > $2/dirlist.$datechunk for line in `cat $2/dirlist.$datechunk` do cp $1/$line $2/$datechunk if [ -s $2/$datechunk/$line ]; then rm $1/$line fi done 

在辅助服务器上rsyncs / db_archive / YYYYMMDD / to / db_archive / YYYYMMDD的内容。

这需要照顾在那里获取文件。

在辅助服务器上,/ db / archive是/ db_archive / YYYYMMDD的符号链接。 “恢复备用数据库”自动从/ ​​db / archive /中读取,因此无论您用于恢复数据库的任何脚本都应该能够处理在一天结束时产生的错误,以便它们可以将符号链接切换到新的一天。

这有帮助,还是你需要更多的信息?

我不确定10g和10g之间的区别是什么,但10g提供的复制类似于LDAP使用的复制,他们称之为“ stream复制 ”。

我还看到了用于将远程数据库链接设置回主服务器的方法,以及将数据复制到每个副本服务器上的本地表的方法。 (显然这具有安全隐患,只能复制副本提前知道的表)。

您可以查看DBVisit http://www.dbvisit.com/ 。 这是一个自动运送和应用Oracle重做日志的系统。 它支持XE以及更昂贵的标准版和企业版。

我没有使用该产品,只是发现这是一个选项,如果你需要避免企业版的成本,并不舒服滚动自己的脚本。