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

Сообщения

Перемещение ORACLE_HOME с диска на диск (Windows)

Перемещать будем с "C:\\oracle\\product\\12.1.0" в "D:\\oracle\\product\\12.1.0". Экземпляр БД называется DBAX. Заходим на сервера под локальным администратором (по совместительству в группе ora_dba). Экземпляр пока может работать. xcopy  C:\\oracle\\product\\12.1.0 D:\\oracle\\product\\12.1.0 Дожидаемся окончания процесса Открываем первое окно с cmd и выполняем: C:\>set ORACLE_HOME=C:\\oracle\\product\\12.1.0 C:\>set PATH=C:\\oracle\\product\\12.1.0\\OPatch;C:\\oracle\\product\\12.1.0\\bin;%PATH% C:\>opatch version C:\>opatch lsinventory Открываем второе окно с командной строкой: D:\>set PERL5LIB=D:\\oracle\\product\\12.1.0\\perl\\lib D:\>set PATH=D:\\oracle\\product\\12.1.0\\perl\\5.8.3\\bin\\MSWin32-x86-multi-thread;%PATH% D:\>perl %ORACLE_HOME\clone\bin\clone.pl ORACLE_HOME="D:\\oracle\\product\\12.1.0" ORACLE_HOME_NAME="OraDB11gR1_home" ORACLE_BASE="D:\\oracle" Убеждаемся, что: The cloning...

Перемещение SYSTEM TABLESPACE ONLINE (12с)

В Oracle 12c появилась новая возможность: перемещение файлов данных он-лайн. Это относится даже к файлам пространства SYSTEM. select file_name from dba_data_files where tablespace_name = 'SYSTEM'; FILE_NAME                                                            ------------------------------------------------------------------- /app/oracle/oradata/dbax/system01.dbf                                         1 row selected. ALTER DATABASE MOVE DATAFILE '/app/oracle/oradata/dbax/system01.dbf' TO '/u01/oradata/dbax/system01.dbf'; Database altered. select file_name from dba_data_files where tablespace_name = 'SYSTEM'; FILE_NAME                             ...

Увеличение размеров партиции(lvm) в linux

1. Узнать имена логических разделов: sudo lvs 2. Найти новый диск sudo fdisk -l 3. Создать раздел на новом диске: sudo fdisk /dev/sdb 4. Узнать тип файловой системы на расширяемом диске df -T 5. Отформатировать новый раздел sudo mkfs.xfs /dev/sdb1 6. Создать физический том в новом разделе sudo pvcreate /dev/sdb1 7. Узнать имя группы томов: sudo vgs 8. Добавить новый раздел к увеличиваемому: sudo vgextend vg_centos6 /dev/sdb1 9. Расширить логический раздел sudo lvextend -l +100%FREE /dev/mapper/vg_system-lv_root 10. Увеличить ФС: sudo xfs_growfs /

Параллельное создание индексов

Задача: Измерение скорости построения индекса при различных степенях параллелизма. Для примера взята таблица размером 600 мегабайт. S ELECT SUM(BYTES)/1024/1024 MB FROM DBA_SEGMENTS WHERE OWNER = 'DBAX' AND SEGMENT_NAME = 'TEST1' AND SEGMENT_TYPE='TABLE';                  MB -------------------                 646 Для этой таблицы будет построен индекс по всем полям (для утяжеления операции). CREATE INDEX DBAX.TEST_I1 ON DBAX.TEST1(C1, C2, C3, C4, C5, C6); -- PARALLEL N Результаты: PARALLELISM     16 CPU         RAC(CPU 2x192) NOPARALLEL 01:00,3        00:21,0 PARALLEL 2 00:21,2        00:19,1 PARALLEL 4 00:12,3        00:11,0 PARALLEL 8 00:09,3        00:04,7 PARALLEL 16 00:08,7  ...

Диагностика работы дисковой подсистемы БД Oracle

Заказчик подозревает проблемы в работе дисковой подсистемы своих центральных серверов БД. Задача: подтвердить или опровергнуть подозрение. Определение проблем в работе подсистеме ввода/вывода. События ожидания Oracle, свидетельствующие о наличии возможных проблем в дисковой подсистеме: • db file sequential read • db file scattered read • read by other session • db file async i/o submit • direct path read • direct path write / direct path write temp • db file parallel read • async disk IO | ksfd: async disk IO • control file sequential read Также о проблемах подсистемы ввода вывода могут свидетельствовать следующие события, связанные с обработкой REDO логов: • log file sync • log file switch completion • log file switch (checkpoint incomplete) • {ARCH | LGWR | LNS} wait on ATTACH • {ARCH | LGWR | LNS} wait on SENDREQ • {ARCH | LGWR | LNS} wait on DETACH • LGWR-LNS wait on channel Основным средством диагностики работы дисковой подсистемы и связа...

Автоматическое обновление 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...