Недавно узнал что Oracle листенер на одиночном сервере базы данных (не RAC) по умолчанию слушает все сетевые интерфейсы. Для этого достаточно в конфигурационном файле listener.ora указать имя сервера, например
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = setebos)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
Имя хоста:
oracle> hostname
setebos
oracle> cat /etc/hosts
10.127.120.129 setebos.dit.ru setebos
Проверяем:
oracle> ifconfig
bond0.1742 inet addr:10.127.120.129
bond0.2630 inet addr:172.16.8.1 Bcast:172.16.8.63 Mask:255.255.255.192
usb0 inet addr:169.254.95.120 Bcast:169.254.95.255 Mask:255.255.255.0
В файле /etc/hosts указан адрес 10.127.120.129, но слушаются все IP адреса:
setebos:/oracle> nmap 10.127.120.129
1521/tcp open oracle
setebos:/oracle> nmap 172.16.8.1
1521/tcp open oracle
setebos:/oracle> nmap 169.254.95.120
1521/tcp open oracle
На сервере RAC слушается только указанный сетевой интерфейс.
Oracle 10g,11g OCP, 11g Certified RAC Expert. Linkedin: https://www.linkedin.com/in/sbrazgin/ Telegram: https://t.me/SergeyBrazgin Skype: Sergey Brazgin GitHub: https://github.com/sbrazgin
5 октября 2013 г.
12 сентября 2013 г.
Oracle Golden Gate на Oracle Rac
При настройке настройке процесса Extract на кластерной базе столкнулся с ошибками:
1)
The number of Oracle redo threads (4) is not the same as the number of
checkpoint threads (1). EXTRACT groups on RAC systems should be created
with the THREADS parameter
Нужно добавить опцию threads
- Delete the extract
delete extract testext
- Recreate the extract
add extract testext, tranlog, threads 2, begin now
add <exttrail/rmttrail> <path>, extract testext
- Start the extract
start extract testext
2) На сервере с 2-мя узлами при старте выдается ошибка:
WARNING OGG-01423 No valid default archive log destination directory found for thread 4.
WARNING OGG-01423 No valid default archive log destination directory found for thread 3.
1)
The number of Oracle redo threads (4) is not the same as the number of
checkpoint threads (1). EXTRACT groups on RAC systems should be created
with the THREADS parameter
Нужно добавить опцию threads
- Delete the extract
delete extract testext
- Recreate the extract
add extract testext, tranlog, threads 2, begin now
add <exttrail/rmttrail> <path>, extract testext
- Start the extract
start extract testext
WARNING OGG-01423 No valid default archive log destination directory found for thread 4.
WARNING OGG-01423 No valid default archive log destination directory found for thread 3.
Нужно удалить лишние потоки в active redo log
alter database disable thread 3;
alter database disable thread 4;
ALTER DATABASE DROP LOGFILE GROUP 7;
ALTER DATABASE DROP LOGFILE GROUP 8;
ALTER DATABASE DROP LOGFILE GROUP 5;
ALTER DATABASE DROP LOGFILE GROUP 6;
3) Создание пользователя в ASM инстансе:
CREATE USER asm_user IDENTIFIED by XXX;
GRANT SYSASM TO asm_user;
GRANT sysdba TO asm_user;
Проверка:
sqlplus asm_user@ORCL_ASM as sysasm
Добавляем в файл параметров
TranLogOptions ASMUser asm_user@ORCL_ASM, asmpassword XXX
13 августа 2013 г.
Переподключение дисков в ASM через multipath
Проблема: диски в ASM примонтированы напрямую, не используя multipath.
Нужно отмонтировать диски а ASM с одного пути, например /dev/sdc, и примонтировать к другому, например к /dev/dm-1
Для примера:
1)
ls -al /dev/oracleasm/disks/
brw-rw---- 1 oracle oinstall 8, 16 Jul 2 15:12 DISK1
brw-rw---- 1 oracle oinstall 8, 32 Jul 2 15:12 DISK2
Видно что диски примонтированы напрямую, не через multipath (цифра 8)
2)
Должно быть:
ls -al /dev/oracleasm/disks/
brw-rw---- 1 oracle oinstall 253, 8 May 20 14:40 DISK1
brw-rw---- 1 oracle oinstall 253, 9 May 20 14:40 DISK2
Вместо 8 стоит 253, значит диски примонтированы правильно (через multipath )
3)
Для определения, к какому multipath относится DISK1:
multipath -ll | less
далее в этом списке ищем устройство с этими major minor номерами.
То есть 8:16. Для поиска можно просто в строке приглашения less набрать /8:16
Имеем например: 0:0:0:5 sdb 8:16 [active][ready], а принадлежит он mpath1.
Путь к нему будет: /dev/mapper/mpath1
4)
Определяем пути, к которым подключены диски:
/etc/init.d/oracleasm listdisks
DISK1
DISK2
DISK3
DISK4
ls -al /dev/oracleasm/disks/
total 0
drwxr-xr-x 1 root root 0 Jun 25 18:47 .
drwxr-xr-x 4 root root 0 Jun 25 18:47 ..
brw-rw---- 1 oracle oinstall 8, 48 Jul 3 16:58 DISK1
brw-rw---- 1 oracle oinstall 8, 64 Jul 3 16:58 DISK2
brw-rw---- 1 oracle oinstall 8, 80 Jul 3 16:58 DISK3
brw-rw---- 1 oracle oinstall 8, 96 Jul 3 16:58 DISK4
/etc/init.d/oracleasm querydisk -v -d DISK1
Disk "DISK1" is a valid ASM disk on device /dev/sdd[8,48]
Так смотрим по всем дискам, в итоге составляем таблицу соответствий:
------------------------------------------------------------------
| DISK1 sdd mpath6 dm-8
| DISK2 sde mpath3 dm-3
| DISK3 sdf mpath4 dm-4
| DISK4 sdg mpath5 dm-5
------------------------------------------------------------------
5) В ASM
SQL> select g.name "Group", d.name "Disk", d.mode_status "Status" from v$asm_disk d, v$asm_diskgroup g where d.group_number = g.group_number;
Group Disk Status
------------------------------ ------------------------------ -------
DATA DATA_0002 ONLINE
FLASH FLASH_0000 ONLINE
DATA DATA_0001 ONLINE
DATA DATA_0000 ONLINE
SQL> show parameter asm_diskstring
asm_diskstring string /dev/oracleasm/disks
SQL> select GROUP_NUMBER, DISK_NUMBER, MODE_STATUS, STATE, NAME, PATH from v$asm_disk;
1 2 ONLINE NORMAL DATA_0002 /dev/oracleasm/disks/DISK4
2 0 ONLINE NORMAL FLASH_0000 /dev/oracleasm/disks/DISK3
1 1 ONLINE NORMAL DATA_0001 /dev/oracleasm/disks/DISK2
1 0 ONLINE NORMAL DATA_0000 /dev/oracleasm/disks/DISK1
6) Удаление:
ALTER DISKGROUP FLASH DROP DISK FLASH_0000;
7) Отмонтируем:
ASMCMD> umount FLASH
DROP DISKGROUP FLASH INCLUDING CONTENTS;
8) Удаляем:
/etc/init.d/oracleasm deletedisk DISK3
Deleting Oracle ASM disk "VOL1" [ OK ]
9) Если не удаляется, то чистим заголовок диска:
-- Сохраняем заголовок диска в файл
dd if=/dev/sdf of=file_sdf bs=1024 count=100
dd if=/dev/sdf of=file_sdf3 bs=1024 count=100
-- Обнуление диска для возможности его удалить
dd if=/dev/zero of=/dev/sdf bs=1024 count=100
-- Удаляем с /etc/init.d/oracleasm deletedisk, если и сейчас не получится, то перезагружаем хост
-- Восстанавливаем заголовок диска:
dd if=file_sdf of=/dev/sdf bs=1024 count=100
10) Создаем
/etc/init.d/oracleasm createdisk DISK3 /dev/dm-4
11) Добавляем параметр EXCLUDE в /etc/sysconfig/oracleasm
/etc/init.d/oracleasm scandisks
Нужно отмонтировать диски а ASM с одного пути, например /dev/sdc, и примонтировать к другому, например к /dev/dm-1
Для примера:
1)
ls -al /dev/oracleasm/disks/
brw-rw---- 1 oracle oinstall 8, 16 Jul 2 15:12 DISK1
brw-rw---- 1 oracle oinstall 8, 32 Jul 2 15:12 DISK2
Видно что диски примонтированы напрямую, не через multipath (цифра 8)
2)
Должно быть:
ls -al /dev/oracleasm/disks/
brw-rw---- 1 oracle oinstall 253, 8 May 20 14:40 DISK1
brw-rw---- 1 oracle oinstall 253, 9 May 20 14:40 DISK2
Вместо 8 стоит 253, значит диски примонтированы правильно (через multipath )
3)
Для определения, к какому multipath относится DISK1:
multipath -ll | less
далее в этом списке ищем устройство с этими major minor номерами.
То есть 8:16. Для поиска можно просто в строке приглашения less набрать /8:16
Имеем например: 0:0:0:5 sdb 8:16 [active][ready], а принадлежит он mpath1.
Путь к нему будет: /dev/mapper/mpath1
4)
Определяем пути, к которым подключены диски:
/etc/init.d/oracleasm listdisks
DISK1
DISK2
DISK3
DISK4
ls -al /dev/oracleasm/disks/
total 0
drwxr-xr-x 1 root root 0 Jun 25 18:47 .
drwxr-xr-x 4 root root 0 Jun 25 18:47 ..
brw-rw---- 1 oracle oinstall 8, 48 Jul 3 16:58 DISK1
brw-rw---- 1 oracle oinstall 8, 64 Jul 3 16:58 DISK2
brw-rw---- 1 oracle oinstall 8, 80 Jul 3 16:58 DISK3
brw-rw---- 1 oracle oinstall 8, 96 Jul 3 16:58 DISK4
/etc/init.d/oracleasm querydisk -v -d DISK1
Disk "DISK1" is a valid ASM disk on device /dev/sdd[8,48]
Так смотрим по всем дискам, в итоге составляем таблицу соответствий:
------------------------------------------------------------------
| DISK1 sdd mpath6 dm-8
| DISK2 sde mpath3 dm-3
| DISK3 sdf mpath4 dm-4
| DISK4 sdg mpath5 dm-5
------------------------------------------------------------------
5) В ASM
SQL> select g.name "Group", d.name "Disk", d.mode_status "Status" from v$asm_disk d, v$asm_diskgroup g where d.group_number = g.group_number;
Group Disk Status
------------------------------ ------------------------------ -------
DATA DATA_0002 ONLINE
FLASH FLASH_0000 ONLINE
DATA DATA_0001 ONLINE
DATA DATA_0000 ONLINE
SQL> show parameter asm_diskstring
asm_diskstring string /dev/oracleasm/disks
SQL> select GROUP_NUMBER, DISK_NUMBER, MODE_STATUS, STATE, NAME, PATH from v$asm_disk;
1 2 ONLINE NORMAL DATA_0002 /dev/oracleasm/disks/DISK4
2 0 ONLINE NORMAL FLASH_0000 /dev/oracleasm/disks/DISK3
1 1 ONLINE NORMAL DATA_0001 /dev/oracleasm/disks/DISK2
1 0 ONLINE NORMAL DATA_0000 /dev/oracleasm/disks/DISK1
6) Удаление:
ALTER DISKGROUP FLASH DROP DISK FLASH_0000;
7) Отмонтируем:
ASMCMD> umount FLASH
DROP DISKGROUP FLASH INCLUDING CONTENTS;
8) Удаляем:
/etc/init.d/oracleasm deletedisk DISK3
Deleting Oracle ASM disk "VOL1" [ OK ]
9) Если не удаляется, то чистим заголовок диска:
-- Сохраняем заголовок диска в файл
dd if=/dev/sdf of=file_sdf bs=1024 count=100
dd if=/dev/sdf of=file_sdf3 bs=1024 count=100
-- Обнуление диска для возможности его удалить
dd if=/dev/zero of=/dev/sdf bs=1024 count=100
-- Удаляем с /etc/init.d/oracleasm deletedisk, если и сейчас не получится, то перезагружаем хост
-- Восстанавливаем заголовок диска:
dd if=file_sdf of=/dev/sdf bs=1024 count=100
10) Создаем
/etc/init.d/oracleasm createdisk DISK3 /dev/dm-4
11) Добавляем параметр EXCLUDE в /etc/sysconfig/oracleasm
ORACLEASM_SCANEXCLUDE="sd"
12)/etc/init.d/oracleasm scandisks
23 апреля 2013 г.
Oracle Web Services Manager Gateway Is Slow
На московском узле портала gosuslugi.ru стал зависать сервер с Oracle Web Services Manager
Нашел подходящую статью с описанием:
Oracle Web Services Manager Gateway Is Slow And Causes Locks [ID 967020.1]
Для исправления нужно создать 2 индекса и очистить пул:
CREATE INDEX orawsm.IDX_MPSTORE_TEST_1 ON orawsm.MEASUREMENT_PERSISTED_STORE (STORETIME) LOGGING TABLESPACE USERS NOPARALLEL;
CREATE INDEX orawsm.IDX_pipeline_TEST_1 ON orawsm.PIPELINES (policy_id, pipeline_status,pipeline_major_ver, pipeline_minor_ver ) LOGGING TABLESPACE USERS NOPARALLEL;
alter system flush shared_pool;
5 февраля 2013 г.
Ошибка TNS-12555: TNS:permission denied
При старте листенера на одном из серверов получил ошибку:
Starting /opt/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.2.0.1.0 - Production
System parameter file is /opt/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Log messages written to /opt/oracle/diag/tnslsnr/asur-nsi-db-02/listener/alert/log.xml
Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
TNS-12555: TNS:permission denied
TNS-12560: TNS:protocol adapter error
TNS-00525: Insufficient privilege for operation
Linux Error: 1: Operation not permitted
Listener failed to start. See the error message(s) above...
В интернете нашел, что причина в каталоге /var/tmp/.oracle
Для проверки:
ls -la /var/tmp/.oracle
total 44
drwxrwxrwt 2 root oracle 4096 Feb 5 15:44 .
drwxrwxrwt 3 root root 4096 Mar 22 2012 ..
srwxrwxrwx 1 oracle oracle 0 Mar 22 2012 s#12914.1
srwxrwxrwx 1 oracle oracle 0 Mar 22 2012 s#12914.2
srwxrwxrwx 1 oracle oracle 0 Mar 22 2012 s#13198.1
srwxrwxrwx 1 daemon root 0 May 14 2012 s#16174.1
srwxrwxrwx 1 daemon root 0 May 14 2012 s#16174.2
srwxrwxrwx 1 daemon root 0 Apr 2 2012 s#18732.1
srwxrwxrwx 1 daemon root 0 Apr 2 2012 s#18732.2
srwxrwxrwx 1 daemon root 0 Mar 22 2012 s#4741.1
srwxrwxrwx 1 daemon root 0 Apr 11 2012 s#7507.2
srwxrwxrwx 1 daemon root 0 Oct 6 12:45 sEXTPROC1
srwxrwxrwx 1 oracle oracle 0 Mar 22 2012 sEXTPROC1521
Как видно, несколько файлов имеют владельцем другую группу.
Для исправления:
chown -R oracle:oracle /var/tmp/.oracle
1 февраля 2013 г.
Opening of wallet based credential store failed. Reason java.io.IOException
Скопировал сервер с Oracle Aplication Server 10 на другой хост.
1) При старте получил ошибку:
Opening of wallet based credential store failed. Reason java.io.IOException
Для исправления нужно сделать:
chmod -R 777 /tmp
2) Нужно исправить файл hosts
1) При старте получил ошибку:
Opening of wallet based credential store failed. Reason java.io.IOException
Для исправления нужно сделать:
chmod -R 777 /tmp
2) Нужно исправить файл hosts
29 января 2013 г.
Удаление архивных логов
Настроил несколько standby серверов, после этого появилась проблема с удалением архивных логов Oracle.
По официальной документации делаем так:
- настроить архивирование логов с помощью rman
- настроить RETENTION POLICY
- включить mandatory для передачи архивных логов
- затем удалять логи с помощью
backup archivelog all delete input;
- на standby сервере можно использовать что-то вроде
delete archivelog all completed before 'sysdate';
или
delete archivelog until time ‘SYSDATE-10';
Этот вариант мне не подошел, пришлось удалять все логи вручную с помощью скриптов:
#!/bin/bash
echo "start ..."
. /home/oracle/scripts/oraenv.sh
export NLS_DATE_FORMAT="DD-MON-RRRR HH24:MI:SS"
export TODAY=`date '+%Y%m%d'`
export TIME=`date '+%H%M%S'`
echo "step 2 ..."
cd /home/oracle/scripts
rm /home/oracle/scripts/1.tmp
sqlplus -s / as sysdba << EOF
set heading off
set pages 0 echo off feedback off
spool /home/oracle/scripts/1.tmp
select max(sequence#)-10 from v\$archived_log where dest_id=5 and thread#=1 and standby_dest='YES' and applied ='YES';
spool off;
exit;
EOF
echo "step 3 ..."
seq1=`cat /home/oracle/scripts/1.tmp | awk 'NR==1{print $1}'`
echo "step 4 ..."
echo "seq1 = $seq1"
echo $seq1
echo "delete noprompt archivelog until sequence $seq1 thread 1;"
rman msglog /home/oracle/scripts/PRIMARY_ARC_DEL.${TODAY}_${TIME}.log << EOF
connect target /
run{
delete noprompt archivelog until sequence $seq1 thread 1;
}
EOF
echo "done ..."
exit
22 января 2013 г.
Краткая инструкция по установке Standby сервера
ON PRIMARY
1) Прописать
на каждом из 3-х узлов
в
/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
DOCSTB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxxxxxxxxx)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = docstb)
)
)
DOC =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxxxxxxxxxxxx)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = doc)
)
)
ON STANDBY
2) Прописать
тоже самое, что и в
пункте 1
3) Прописать статический листенер в
/u01/app/oracle/product/11.2.0/grid/network/admin/listener.ora , чтобы мы
могли удаленно подсоединиться к базе в состоянии nomount
SID_LIST_LISTENER
=
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME=docstb)
(ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = docstb)
)
)
ON PRIMARY
4) Скопировать файл паролей с одного из узлов на стендбай и
переименовать его в orapwdocstb
ON STANDBY
5) Создаём audit trail директорию в $ORACLE_BASE/admin
cd
/u01/app/oracle/admin
mkdir
docstb
cd docstb
mkdir adump
6) Создаём
файл параметров initdocstb.ora
в директории
/u01/app/oracle/product/11.2.0/dbhome_1/dbs/
db_name=docstb
7) Устанавливаем ORACLE_SID=docstb и
запускаем базу в режиме
nomount
startup
nomount
ON PRIMARY
8) Выполняем
команды
alter
system set log_archive_config='DG_CONFIG=(doc,docstby,docstb)';
alter
system set log_archive_dest_3='SERVICE=DOCSTB
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=docstb';
alter
system set log_archive_dest_state_3=enable;
9) Создаем скрипт standby.sql
run {
allocate channel doc type disk;
allocate auxiliary channel docstb type disk;
duplicate target database for standby
from active database
spfile
set cluster_database='FALSE'
set user_dump_dest='/u01/app/oracle/diag/rdbms/docstb/trace'
set core_dump_dest='/u01/app/oracle/diag/rdbms/docstb/cdump'
set background_dump_dest='/u01/app/oracle/diag/rdbms/docstb/trace'
set audit_file_dest='/u01/app/oracle/admin/docstb/adump'
set db_create_file_dest='+STBY'
set db_recovery_file_dest='+STBY'
set db_recovery_file_dest_size='300G'
set local_listener=''
set remote_listener=''
set service_names='docstb'
set db_unique_name='docstb'
set db_file_name_convert='+DATA','+STBY'
set log_file_name_convert='+DATA','+STBY'
set control_files='+STBY/docstb/controlfile/docstb.ctl'
set log_archive_max_processes='5'
set fal_client='docstb'
set fal_server='doc'
set standby_file_management='AUTO'
set log_archive_config='DG_CONFIG=(doc,docstb)'
set log_archive_dest_2='SERVICE=DOC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=doc';
}
10) Запускаем скрипт на одном из узлов
rman target
sys/xxxxxxx
connect
auxiliary sys/xxxxxxxxxxx@docstb
@/u01/app/oracle/product/11.2.0/dbhome_1/dbs/standby.sql
ON STANDBY
11)
alter
database recover managed standby database using current logfile disconnect from
session;
ALTER
DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
alter
database open read only;
alter
database recover managed standby database using current logfile disconnect from
session;
alter
system set dg_broker_start=TRUE;
ON PRIMARY
12)
dgmgrl>
connect sys/******
dgmgrl>
add database docstb as connect identifier is docstb;
dgmgrl> enable configuration;
15 января 2013 г.
Установка Crypto Pro JSP
Недостаточно просто установить, или скопировать в новый каталог, обязательно выполняем привязку:
C:\jcp\lib>install "D:\oracle\soasuite\asgw2\jdk\jre" СЕРИЙНЫЙ_НОМЕР "НАЗВАНИЕ_ОРГАНИЗАЦИИ"
14 января 2013 г.
Небольшая инструкция использования ASM без asmlib
В версии red hat 6.3 не поддерживается asmlib.
Инструкция сделана на основе документа во вложении Configure
RAW on ASM.docx
On first
node
1) #
fdisk /dev/sdb
Device
contains neither a valid DOS partition table, nor Sun, SGI or
OSF
disklabel
Building a
new DOS disklabel. Changes will remain in memory only,
until you
decide to write them. After that, of course, the previous
content
won't be recoverable.
Warning:
invalid flag 0x0000 of partition table 4 will be corrected
by w(rite)
Command (m
for help): n
Command
action
e extended
p primary partition (1-4)
p
Partition
number (1-4): 1
First
cylinder (1-522, default 1):
Using
default value 1
Last cylinder
or +size or +sizeM or +sizeK (1-522, default 522):
Using
default value 522
Command (m
for help): w
The
partition table has been altered!
Calling
ioctl() to re-read partition table.
Syncing
disks.
2) # cat
/proc/partitions -- проверяем создание партиции
major
minor #blocks name
8 0 104857600 sda
8 1 512000
sda1
8 2 74984448 sda2
8 16 524288000 sdb
8 17 524281243 sdb1
253
0 35745792 dm-0
253
1 16777216 dm-1
253
2 22458368 dm-2
3) Open /etc/udev/rules.d/60-raw.rules
and put these lines there for all disks
ACTION=="add",
KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add",
KERNEL=="raw*", OWNER=="oracle",
GROUP=="oinstall", MODE=="0660"
3) Run
following commands to bound raw disks:
# /bin/raw
/dev/raw/raw1 /dev/sdb1
4) Starting
udev
#
start_udev
ON
second node
1) #
/sbin/partprobe --обновляет /proc/partitions
2) Run
following commands to bound raw disks:
# /bin/raw
/dev/raw/raw1 /dev/sdb1
3) Starting udev
# start_udev
Недостатки:
К сожалению, при такой конфигурации не работает часть функционала ASM, например ACFS:
ASMCMD> volcreate -G data -s 1G volume_test
ORA-15032: not all alterations performed
ORA-15490: not all instances could add/drop the volume (DBD ERROR: OCIStmtExecute)
4 января 2013 г.
файлы конфигураций dgmgrl
В среде Oracle RAC по документации Oracle файлы конфигураций dgmgrl нужно создавать на shared диске. Но по умолчанию эти файлы лежат на
локальных дисках.
У меня это влияет на то, что
после перезагрузки одного узла RAC иногда он
перестает отправлять данные на standby сервер, иногда теряет конфигурацию.
Лечится это так:
Asmcmd:
cp /u01/app/oracle/product/11.2.0/dbhome_1/dbs/dr1dst.dat
+DATA/dr1dst.dat
cp /u01/app/oracle/product/11.2.0/dbhome_1/dbs/dr2dst.dat
+DATA/dr2dst.dat
sqlplus:
ALTER SYSTEM SET DG_BROKER_START=FALSE;
ALTER SYSTEM SET DG_BROKER_CONFIG_FILE1='+DATA/ dr1dst.dat' SCOPE=BOTH
sid='*';
ALTER SYSTEM SET DG_BROKER_CONFIG_FILE2='+DATA/ dr2dst.dat' SCOPE=BOTH
sid='*';
ALTER SYSTEM SET DG_BROKER_START=TRUE;
Подписаться на:
Сообщения (Atom)