К основному контенту

Сообщения

Сообщения за октябрь, 2015

Автоматическое обновление snaphot standby

Задача: раз в сутки обновлять snapshot standby базу до актуального состояния. Делается это путем перевода в physycal standby и наката накопленных за день архивов.  После завершения обновления база снова переключается в snapshot standby. Для Windows: @echo off set ORACLE_SID=axtest set ORACLE_HOME=G:\oracle\ora11204 set prim_db=prd set std_db=std set cred=sys/p@S$w0Rd echo #################################################################### echo Refresh started at %time%  echo . echo #################################################################### set role = PHYSICAL %ORACLE_HOME%\bin\dgmgrl %cred%@%prim_db% "convert database %std_db% to %role% standby" echo  Now we are waiting for apply to finish. It'll take some time. echo ... :wait  ping 127.0.0.1 -n 30 >null %ORACLE_HOME%\bin\dgmgrl %cred%@%prd% "show database %std%" > log\lag.tmp for /f "tokens=3 delims= " %%i in ('find "Transport Lag" log\lag.tmp

Работа с архивлогами

Включение режима архивлог. CONNECT sys AS SYSDBA STARTUP MOUNT EXCLUSIVE -- really exclusive ? ALTER DATABASE ARCHIVELOG; -- NOARCHIVELOG to disable ARCHIVE LOG START; ALTER DATABASE OPEN; Список архивлогов, которые не были забекаплены list archivelog all backed up 0 times to disk/sbt_tape; Есть баг, когда Golden Gate держит архзивлоги, которые реально ему уже не нужны: RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process В таком случае, при острой необходимости можно их удалить с ключом force. Для пущей безопасности удалить можно только уже забекапленные логи и те, которые старше одного дня. delete force archivelog all backed up 1 times to device type sbt_tape completed before 'sysdate-1'; Как вытащить арихвлог из имеющегося бекапа. RMAN> run {  allocate channel t1 type 'sbt_tape';  set archivelog destination to 'C:\REPL';  restore archivelog sequence between 46435 and  46438 ;  release channel

Использование flashback database

Настройка 1. Настроен ли Flashback select flashback_on from v$database; FLASHBACK_ON ------------------ NO 2. Настройка FRA show parameter db_recovery_file_dest show parameter db_recovery_file_dest_size Если не настроена alter system set db_recovery_file_dest='+<FRA Diskgroup>' SCOPE=spfile; alter system set db_recovery_file_dest_size=100G SCOPE=spfile; 3. Настройка Flashback shutdown immediate; startup mount; alter database flashback on; alter database open; select flashback_on from v$database; FLASHBACK_ON ------------------ YES alter system set db_flashback_retention_target=2880; 4. Создание точки восстановления. CREATE RESTORE POINT before_upgrade; CREATE RESTORE POINT before_upgrade GUARANTEE FLASHBACK DATABASE; Откат изменений с использованием технологии flashback. CONN / AS SYSDBA SHUTDOWN IMMEDIATE STARTUP MOUNT EXCLUSIVE --не уверен, что обязательно exclusive ? FLASHBACK DATABASE TO RES

Улучьшения планировщика заданий в Oracle 12c

Планировщик двенадцатого оракла позволяет запускать задания основанные на скриптах (bash/rman). Это особенно удобно в среде RAC, так как расписание будет храниться в едином хранилище, а не в crontab каждого узла. В старых версиях тоже была возможность вызывать внешние скрипты, но для этого требовались определенные танцы с бубном. Сейчас же всё легко и просто. Для создания этих заданий требуются привилегии CREATE JOB, CREATE EXTERNAL JOB и  CREATE CREDENTIAL . 1.  Для начала нужно создать ссылку на учетную запись ОС. С этими правами и будет работать скрипт. BEGIN  DBMS_CREDENTIAL.create_credential(                          credential_name   => 'oracle_os',                          username          => 'oracle',                          password          => 'oracle'); END; / 2. Теперь можно создавать задание. В примере используется скрипт RMAN. DECLARE    l_job_name   VARCHAR2 (30);    l_script     VARCHAR2 (32767); BEGIN