Я ищу достойный способ поддерживать вторичную базу данных Oracle в актуальном состоянии, не экспортируя и не импортируя ее каждый раз. В экземпляре есть 3 пользователя, которых я бы хотел "зарегистрировать", если это то, что он называется в Oracle!
Кто-нибудь может что-нибудь подсказать?
Общая база данных меньше ГБ, и мы используем 10g express (хотя я думал об использовании стандарта 10g, так как у нас есть запасная лицензия).
Ура
Крис
Вот что я делаю:
В моей основной базе данных включена доставка журналов транзакций. Журналы записываются в / db / archive.
Каждый час от пользователя oracle запускается задание cron. Этот 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 / в / db_archive / YYYYMMDD на вторичном сервере.
Это позаботится о том, чтобы файлы были там.
На вторичном сервере / db / archive является символической ссылкой на / db_archive / ГГГГММДД. «Восстановление резервной базы данных» автоматически считывается из / db / archive /, поэтому любой сценарий, который вы используете для восстановления базы данных, должен уметь обрабатывать ошибки, сгенерированные в конце дня, чтобы они могли переключить символическую ссылку на новый день.
Это помогает или вам нужна дополнительная информация?
Я не уверен, в чем разница между 10g и 10g express, но 10g предлагал репликацию, аналогичную той, что используется LDAP, которую они назвали 'Репликация потоков'.
Я также видел подходы, которые использовались, когда вы устанавливали ссылки удаленной базы данных обратно на мастер, и материализованное представление для копирования данных в локальную таблицу на каждой реплике. (очевидно, это имеет последствия для безопасности и позволяет копировать только те таблицы, о которых реплики знают заранее).
Вы можете проверить DBVisit http://www.dbvisit.com/ . Это система для автоматизации доставки и применения журналов повторного выполнения Oracle. Он поддерживает XE, а также более дорогие версии Standard и Enterprise.
Я не использовал продукт, просто обнаружил, что это вариант, если вам нужно избежать затрат на Enterprise Edition и вам неудобно запускать собственные сценарии.