Назад | Перейти на главную страницу

Простая доставка журналов Oracle

Я ищу достойный способ поддерживать вторичную базу данных 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 и вам неудобно запускать собственные сценарии.