воскресенье, 27 ноября 2011 г.
Восстановление пароля weblogic
Для безопасного хранения паролей в Weblogic server предусмотрено их шифрование с помощью алгоритмов 3DES или AES. Шифрованные пароли и логины хранятся в конфигурационных файлах домена (config.xml), конфигурационных файлах источников данных ($DOMAIN_HOME/config/jdbc/Datasource_name.xml ), в файле для запуска серверов без ввода пароля (boot.properties) и т.д. Ключ хранится в файле SerializedSystemIni.dat
Зашифрованные этими ключом данные при наличии доступа к ключу шифрования могут быть расшифрованы.
под катом - маленький класс, позволяющий это сделать.
На вход утилите требуются путь к домену и зашифрованный пароль. На выходе - дешифрованный пароль.
перед запуском необходимо добавить в переменную CLASSPATH директорию, где находится скомпилированный класс и путь к файлу weblogic.jar
например, вот так:
понедельник, 14 ноября 2011 г.
установка APEX на хост c EM Grid Control 11 Upd 29.11
Установка APEX на хост с EM Grid Control 11g.
Я буду использовать конфигурацию APEX + Oracle HTTP server: Scenario 3
Для этого требуется установить и сконфигурировать 2 инстанса:
1. Oracle DB с компонентом APEX.
2. Oracle HTTP server. (Компонент Oracle Web Tier).
Установка компонента БД
1. Download дистрибутив с OTN.
2. Копирование в Oracle_homecp apex_4.1_en.zip $ORACLE_HOME/3. Распаковка
unzip apex_4.1_en.zip5. Установка
cd $ORACLE_HOME/apex
sqlplus / as sysdba7.Установка пароля администратора
@apexins SYSAUX SYSAUX TEMP /i/
sqlplus / as sysdba8. Включение аккаунта APEX_PUBLIC_USER
@apxchpwd
sqlplus / as sysdbaНастройка ORACLE_HTTP_SERVER
ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK
ALTER USER APEX_PUBLIC_USER IDENTIFIED BY PASSWORD
В этом примере я использую компонент Web Tier, установленный вместе с Oracle Enterprise Manager Grid Control 11g. Инстанс Oracle HTTP Server уже сконфигурирован в директории /opt/oracle/gc_inst/WebTierIH1 и для его работы с APEX необходимо немного изменить конфигурацию.
Для проверки его состояния инстанса можно использовать команды opmnctl
$ export ORACLE_INSTANCE=/opt/oracle/gc_inst/WebTierIH1В моём случае вывод команды выглядит так:
$ /opt/oracle/middleware/oms11g/opmn/bin/opmnctl status
Processes in Instance: instance1
------------------------+---------------+--------+---------
ias-component | process-type | pid | status
------------------------+---------------+--------+---------
ohs1 | OHS | 1343 | Alive
Для старта/остановки сервера можно пользоваться командами
$ /opt/oracle/middleware/oms11g/opmn/bin/opmnctl startproc ias-component=ohs1
$ /opt/oracle/middleware/oms11g/opmn/bin/opmnctl stopproc ias-component=ohs1
1. В конфигурации APEX + Oracle HTTP Server изображения для web-страниц не хранятся в базе данных. Страницы с изображениями пользователю отправляет Apache-сервер, поэтому их нужно скопировать из дистрибутива в то место, где Apache сможет их увидеть. Например в
/opt/oracle/gc_inst/WebTierIH1/config/OHS/ohs1/htdocscp -r $ORACLE_HOME/apex/images /opt/oracle/gc_inst/WebTierIH1/config/OHS/ohs1/htdocs/
2. Конфигурирование mod_pl
Конфигурационный файл mod_pl располагается в директории
/opt/oracle/gc_inst/WebTierIH1/config/OHS/ohs1/mod_plsql/dads.conf
Он по умолчанию включён в конфигурацию сервера.
Добавляем туда конфиг:
Alias /i/ "/opt/oracle/gc_inst/WebTierIH1/config/OHS/ohs1/images/"
<Location /pls/apex>
Order deny,allow
PlsqlDocumentPath docs
AllowOverride None
PlsqlDocumentProcedure wwv_flow_file_mgr.process_download
PlsqlDatabaseConnectString localhost:1521:orcl
PlsqlNLSLanguage AMERICAN_AMERICA.AL32UTF8
PlsqlAuthenticationMode Basic
SetHandler pls_handler
PlsqlDocumentTablename wwv_flow_file_objects$
PlsqlDatabaseUsername APEX_PUBLIC_USER
PlsqlDefaultPage apex
PlsqlDatabasePassword PASSWORD
PlsqlRequestValidationFunction wwv_flow_epg_include_modules.authorize
Allow from all
</Location>
/opt/oracle/gc_inst/WebTierIH1/config/OHS/ohs1/images/ - Директория где хранятся рисунки. На конце должен быть слэш.
PlsqlDatabaseConnectString - строка соединения с БД. Она может быть задана в различных форматах. Не все из них одинаково хорошо работают.
PlsqlNLSLanguage - Языковые настройки БД.
PlsqlDatabasePassword - пароль, заданный APEX_PUBLIC_USER на этапе установки APEX.
3. Рестарт HTTP Server-а
$ export ORACLE_INSTANCE=/opt/oracle/gc_inst/WebTierIH1
$ /opt/oracle/middleware/oms11g/opmn/bin/opmnctl stopproc ias-component=ohs1
$ /opt/oracle/middleware/oms11g/opmn/bin/opmnctl startproc ias-component=ohs1
4. Можно попытаться получить страницу входа в приложение:
http://Host:Port/pls/apex/apex_admin
Здесь хост - имя хоста
Port - порт, на котором слушает Apache. Его можно посмотреть в файле
$ORACLE_INSTANCE/config/OHS/ohs1/httpd.conf
параметр
Listen
У меня это файл /opt/oracle/gc_inst/WebTierIH1/config/OHS/ohs1/httpd.conf и порт 7788 соответственно.
Troubleshuting
Причину большинства ошибок можно понять, почитав вывод файла
$ORACLE_INSTANCE/diagnostics/logs/OHS/ohs1/ohs1.log
У меня их было две.
1. После попытки получить страницу http://Host:Port/pls/apex/apex_admin в логе появилось сообщение об ошибке:
[2011-11-11T15:25:49.1473+04:00] [OHS] [INCIDENT_ERROR:32] [OHS-9999] [core.c] [host_id: OEM.host.ru] [host_addr: 10.0.0.10] [tid: 1126410560] [user: orcl] [ecid: 004gNF8ScXFFS8G6yzjc6G0007nx00000t] [rid: 0] [VirtualHost: OEM.host.ru:0] File does not exist: /opt/oracle/gc_inst/WebTierIH1/config/OHS/ohs1/htdocs/favicon.ico
Apache не смог найти иконку сайта. Просто копируем туда любую.
cp /opt/oracle/gc_inst/WebTierIH1/config/OHS/ohs1/htdocs/images/favicon.ico /opt/oracle/gc_inst/WebTierIH1/config/OHS/ohs1/htdocs/favicon.ico
2. При следующем запросе я получил ещё одну ошибку.
[2011-11-11T15:25:51.2482+04:00] [OHS] [INCIDENT_ERROR:32] [OHS-9999] [mod_context.c] [OEM.host.ru] [host_addr: 10.0.0.10] [tid: 1126410560] [user: orcl] [ecid: 004gNF8^b5_FS8G6yzjc6G0007nx000019] [rid: 0] [VirtualHost: OEM.host.ru:0] MODPLSQL-00054: mod_plsql: HTTP-503 ORA-12154 ORA-12154: TNS:could not resolve the connect identifier
Проблема оказалась в строке подключения
в формате TNSFormat.
Заработало в таком виде:
в формате TNSFormat.
Заработало в таком виде:
PlsqlDatabaseConnectString localhost:1521:orcl
Ссылки:
APEX на otn.oracle.com.
понедельник, 31 октября 2011 г.
TZ-Update Для Weblogic Portal 10.3
В результате отмены перехода на зимнее время потребоалось ручное вмешательство в скрипты запуска Weblogic-серверов портала. Стартующий сервер не использует локатьные настройки времени на машине и стартует с учётом timezone в JVM (у меня версия 1.6.25). Локальная pointbase с учётными записями также читает настройки из timezone в JVM.
Решение проблемы:
1. Patch для JVM
2. Ручная установка смещения GMT+4 в параметры запуска JVM
ключ -Duser.timezone=
смещению на 4 часа соответствует зона NET
для Pointbase в конце файла
Решение проблемы:
1. Patch для JVM
2. Ручная установка смещения GMT+4 в параметры запуска JVM
ключ -Duser.timezone=
смещению на 4 часа соответствует зона NET
для серверов можно отредактировать $DOMAIN_HOME/$DOMAIN_NAME/bin/setDomainEnv.sh
JAVA_PROPERTIES="${JAVA_PROPERTIES} -Duser.timezone=NET ${EXTRA_JAVA_PROPERTIES}"
для Pointbase в конце файла
/opt/oracle/middleware/wlserver_10.3/common/bin/startPointBase.shнужно отредактировать запись
"${JAVA_HOME}/bin/java" -Duser.timezone=NET com.pointbase.net.netServer ${CONSOLE} ${SERVERWINDOW} ${LOGFILE} /port:${PORT} /d:${DEBUG} /pointbase.ini="${POINTBASE_INI}"
среда, 12 октября 2011 г.
Запуск VirtualBox на OEL 6 с новым uek-ядром
На новом ядре от Oracle не компилируются модули VirtualBox
rpm -qa | grep kernel
kernel-uek-headers-2.6.32-100.34.1.el6uek.x86_64
kernel-uek-devel-2.6.32-100.34.1.el6uek.x86_64
kernel-uek-firmware-2.6.32-100.34.1.el6uek.noarch
kernel-uek-2.6.32-100.34.1.el6uek.x86_64
Решение - выстаить пременную MAKE c ключём -i
export MAKE='/usr/bin/gmake -i'
./VBoxLinuxAdditions.run
Источник:
вторник, 27 сентября 2011 г.
Demo-хранилища сертификатов
Для работы с SSL-сертификатами в Weblogic server используются хранилища сертификатов (javakeystore). При установке создаются Demo-хранилища, позволяющие начать использовать SSL соединения с сервером.
DemoTrust.jks - хранилище сертификатов коневых удостоверяющих центров.
DemoIdentity.jks - хранилище дляпользовательских сертификатов и цепочек сертификации.
По умолчанию, оба хранилища имеют пароль.
DemoTrust.jks - хранилище сертификатов коневых удостоверяющих центров.
DemoIdentity.jks - хранилище дляпользовательских сертификатов и цепочек сертификации.
По умолчанию, оба хранилища имеют пароль.
Хранилище | Путь | Password |
Trust store location | %ORACLE_HOME%/weblogic/wlserver_10.3/ server/lib/DemoTrust.jks | DemoTrustKeyStorePassPhrase |
Key store location | %ORACLE_HOME%/weblogic/wlserver_10.3/ server/lib/DemoIdentity.jks | DemoIdentityPassPhrase |
среда, 20 июля 2011 г.
Weblogic Portal
Маленькая особенность установки Weblogic Portal.
Во время конфигурирования домена я создал два управляемых сервера. При попытке их стартовать через NodeManager я получал ошибку:
<Critical> <WebLogicServer> <BEA-000362> <Server failed. Reason:java.net.UnknownHostException: someserver.ru at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:850)...
И сама ошибка
Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class weblogic.protocol.ServerIdentityManager$Initializer at weblogic.protocol.ServerIdentityManager.findServerIdentity(ServerIdentityManager.java:64) at weblogic.protocol.URLManager.findAdministrationURL(URLManager.java:172) at weblogic.server.ServerLifeCycleRuntime.getLifeCycleOperationsRemote(ServerLifeCycleRuntime.java:801) at weblogic.t3.srvr.ServerRuntime.sendStateToAdminServer(ServerRuntime.java:423) at weblogic.t3.srvr.ServerRuntime.updateRunState(ServerRuntime.java:409) at weblogic.t3.srvr.T3Srvr.setState(T3Srvr.java:187) at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:458) at weblogic.Server.main(Server.java:67)Stopping PointBase server...PointBase server stopped.
Оказалось, управляемый сервер потерял параметр
-Dweblogic.management.server=http://AdminServer.ru:7001
пятница, 15 июля 2011 г.
apache mod_wl mod_ssl
В блогах стало появляться много постов об обеспечении безопасности серверов Weblogic. Напишу и я что-нибудь.
1. Получение SSL сертификата
Сертификат можно купить или сгенерировать самоподписанный.
Для экспериментов можно сгенерировать с помощью пакета openssl.
Задача - обеспечение шифрование трафика между пользователем находящимся за пределами внутренней сети и приложением. Сервера приложений находятся за балансировщиком нагрузки, реализованном на Apache 2.2. Шифроваться будет только трафик между Apache и конечным пользователем.
Для начала можно организовать вот такую структуру
Для начала можно организовать вот такую структуру
1. Получение SSL сертификата
Сертификат можно купить или сгенерировать самоподписанный.
Для экспериментов можно сгенерировать с помощью пакета openssl.
openssl req -new -x509 -nodes -out server.crt -keyout server.key
После ответа на несколько вопросов получаем 2 файла.
server.key - ключ для сервера.
server.crt - сертификат, в котором хранится открытый ключ и информация о владельце сертификата. Сертификаты сразу можно разложить в те места, где их сможет найти Apache.
/etc/apache2/ssl.crt/server.crt
/etc/apache2/ssl.key/server.key
2. Настройка Apache
Я использую SUSE Linux 11. Для других дистрибутивов расположение файлов будет отличаться.
- Необходимо скопировать файл mod_wl_22.so в директорию с модулями.
/usr/lib64/apache2-prefork
- Подгружаем mod_wl_22
echo 'LoadModule weblogic_module /usr/lib64/apache2-prefork/mod_wl_22.so' >> /etc/apache2/loadmodule.conf
- Включаем поддержку SSL в файле /etc/sysconfig/apache2
APACHE_SERVER_FLAGS="SSL"
- Конфиг для виртуального хоста. Добавляем к файлу /etc/apache2/vhosts.d/vhost.conf
<IfDefine SSL>
<IfDefine !NOSSL>
<VirtualHost *:443>
ServerName LoadBalancer.ru
RewriteEngine On
<Location /myApp>
SetHandler weblogic-handler WebLogicCluster srv1.ru:8001,srv2.ru:8002
</Location>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl.crt/server.crt
SSLCertificateKeyFile /etc/apache2/ssl.key/server.key
</VirtualHost>
</IfDefine>
</IfDefine>
- Можно рестартовать апач. Готово.
/etc/init.d/apache2 restart
суббота, 9 июля 2011 г.
Fedora 15
Установил Fedora 15.
- gxneur загрузился из стандартного репозитория. Но блокирует gnome-терминал и некотрые приложения. Этот баг обещают починить в готовящейся версии, которую можно скачать отсюда:
http://kojipkgs.fedoraproject.org/packages/gxneur/0.13.0/1.fc15/i686/gxneur-0.13.0-1.fc15.i686.rpm
- remmina не находит плагины для vnc и freeRDP.
- Чтобы выключит компьютер нужно кликнуть на имени пользователя в правом верхнем углу и нажать Alt. Меню Suspend изменится на Power off. Или
gnome-shell-extensions-alternative-status-menu
- bluetooth не стартует. Пришлось просить об этом отдельно.
# systemctl enable bluetooth.service
# systemctl start bluetooth.service
- Weblogic работает.
- Oracle Database 11g PS2 (11.2.0.2) тоже.
четверг, 23 июня 2011 г.
Active Data Guard 11g Upd 26.10.2011
Step-by-step руководство по созанию Standby сервера БД.
Для удобства администрирования Primary и Standby базы будут иметь один и тот же SID, DB_NAME, одинаковыми будут пути расположения файлов и журналов. Различаться инстансы будут по service_names и db_unique_name.
Primary DB создана.
ORACLE_HOME установлена в /opt/oracle/ora11g/11.2.0.2/oradb
Grid Control Agents установлены.
Настройка Net services
1. Правим /etc/hosts
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = oracle_stb)
(ORACLE_HOME = /opt/oracle/ora11g/11.2.0.2/oradb)
(SID_NAME = oracle)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
Для удобства администрирования Primary и Standby базы будут иметь один и тот же SID, DB_NAME, одинаковыми будут пути расположения файлов и журналов. Различаться инстансы будут по service_names и db_unique_name.
Primary | Stanby | |
SID | oracle | oracle |
Service_names | oracle_prd | oracle_stb |
DB_name | oracle | oracle |
Host | oraclem | oracles |
Primary DB создана.
ORACLE_HOME установлена в /opt/oracle/ora11g/11.2.0.2/oradb
Grid Control Agents установлены.
Настройка Net services
1. Правим /etc/hosts
127.0.0.1 localhost
10.0.0.1 oraclem
10.0.0.2 oracles
2. Настройка listener для статической регистрации сервисов на Primary-хосте:
cat $ORACLE_HOME/network/admin/listener.ora
SID_LIST_LISTENER =и на Standby-хосте
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = oracle_prd)
(ORACLE_HOME = /opt/oracle/ora11g/11.2.0.2/oradb)
(SID_NAME = oracle)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oraclem)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = oracle_stb)
(ORACLE_HOME = /opt/oracle/ora11g/11.2.0.2/oradb)
(SID_NAME = oracle)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracles)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
3. Настройка TNSnames на обоих серверах.
Предварительная настройка Primary DB
4. Если это ещё не сделано, нужно перевести Primary базу в archivelog mode, указав место, где будут храниться архивные логи.
6. Создание STANDBY LOGFILS
Размер лога должен быть не меньше, чем размер redologs.
Количество групп не меньше (лучше на одну больше), чем количество redolog groups.
Для создание нового instance с новым именем можно снять холодный или горячий backup Развернуть его на standby-сервере и, в общем случае, для переименования instance воспользоваться утилитой nid. Этот способ описан в документации.
Я воспользуюсь командой rman duplicate. Если посмотреть на лог её выполнения, то можно заметить что она делает то же самое (переименовывать instance не нужно)
7. Подготовка конфигурационных файлов для Standby instance.
На primary host необходимо стоздать pfile.
10. Запускаем instance в nomount на Standby-host.
Копирование БД.
11. Если ping прошёл успешно, соединяемся с удалённой бд, запустив на primary-сервере
ORA-19527: physical standby redo log must be renamed или
RMAN-05001: auxiliary file name undotbs01.dbf conflicts with a file used by the target database
Если восстановление завершилось неудачно, перед новой попыткой необходимо удалить со standby сервера spfile, controlfiles и datafiles, если они были созданы.
Настройка Standby
Upd: Для запуска брокера лучше использовать запуск утилиты dgmgrl без параметров логин/пароль и авторизовываться командой connect уже из консоли брокера. Если этого не делать, в некоторых случаях команды брокеру не будут выполняться.
или вот так:
oracle=
cat $ORACLE_HOME/network/admin/tnsnames.ora
oracle_stb =После настройки служб можно протестировать доступность Primary-сервера.
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracles)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = oracle_stb)
)
)
oracle_prd =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = oraclem)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = oracle_prd)
)
)
oracle_prd_DGB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = oraclem)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = oracle_prd )
)
)
oracle_stb_DGB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracles)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = oracle_stb )
)
)
Предварительная настройка Primary DB
4. Если это ещё не сделано, нужно перевести Primary базу в archivelog mode, указав место, где будут храниться архивные логи.
alter system set oracle.log_archive_format='%t_%s_%r.arc';5. Настройка необходимых для standby параметров на Primary-сервере.
alter system set log_archive_dest_1='location=/bachup/archive/oracle';
alter system set log_archive_max_processes = 5;
alter database archivelog;
alter database open
shutdown immediate
startup mount
- Необходимо включить принудительное логирование всех операций с БД.
alter database force logging;
- Для использования возможности Active Standby необходимо выставить на обеих базах параметр compatible не ниже 11.2.0.2 и audit_trail в 'NONE'.
alter system set audit_trail='NONE';
alter system set compatible='11.2.0.2';
- Для автоматического создания файлов на Standby-сервере при создании их на Primary нужно выставить
alter system set standby_file_management=AUTO;
- Для обеспечения уникальности имён.
alter system set db_unique_name='oracle_prd'; на Primary
6. Создание STANDBY LOGFILS
Размер лога должен быть не меньше, чем размер redologs.
Количество групп не меньше (лучше на одну больше), чем количество redolog groups.
ALTER DATABASE ADD STANDBY LOGFILE GROUP 11 '/media/redo/oracle/redo01.stb' SIZE 50M REUSE;Создание Standby instance.
ALTER DATABASE ADD STANDBY LOGFILE GROUP 12 '/media/redo/oracle/redo02.stb' SIZE 50M REUSE;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 13 '/media/redo/oracle/redo03.stb' SIZE 50M REUSE;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 14 '/media/redo/oracle/redo04.stb' SIZE 50M REUSE;
Для создание нового instance с новым именем можно снять холодный или горячий backup Развернуть его на standby-сервере и, в общем случае, для переименования instance воспользоваться утилитой nid. Этот способ описан в документации.
Я воспользуюсь командой rman duplicate. Если посмотреть на лог её выполнения, то можно заметить что она делает то же самое (переименовывать instance не нужно)
7. Подготовка конфигурационных файлов для Standby instance.
На primary host необходимо стоздать pfile.
create pfile from spfile;в получившемся файле отредактировать параметр
db_unique_name='oracle_stb'8. Копирование на на standby-host файлы orarwd и pfile:
scp /opt/oracle/ora11g/11.2.0.2/oradb/dbs/orapworacle oracle@10.0.0.2:/opt/oracle/ora11g/11.2.0.2/oradb/dbs/orapworacle9. На Standby-сервере, так же как на Primary, должны быть созданы все директории для хранения datafiles, archive/redo-logs, controlfiles.
10. Запускаем instance в nomount на Standby-host.
sqlplus / as sysdba
startup nomount
Так как в конфигурационном файле listener.ora используется статическая регистрация, этот instance будет доступен с Primary хоста. На Primmary хосте можно проверить соединение с удалённой БД командой
tnsping oracle_stbесли пинг не прошёл, можно поискать ошибки в настройках listener или параметрах service_names и db_name.
Копирование БД.
11. Если ping прошёл успешно, соединяемся с удалённой бд, запустив на primary-сервере
rman target / auxiliary sys/Password@oracle_stbДля случая, когда расположение файлов журналов исходной базы и файлов базы-назначения совпадают, необходимо явно указать одинаковые пути "конвертации" логфайлов. При совпадении путей расположения файлов данных необходимо добавить NOFILENAMECHECK в выражение duplicate target database
duplicate target database for standby from active database NOFILENAMECHECKЕсли этого не сделать, восстановление закончится с шибкой
spfile
set db_unique_name='oracle_stb'
set control_files='/media/data/oracle/control01.ctl','/media/data/oracle/control02.ctl' set audit_file_dest='/opt/oracle/ora11g/admin/oracle/adump'
set LOG_FILE_NAME_CONVERT='/media/redo/oracle','/media/redo/oracle';
ORA-19527: physical standby redo log must be renamed или
RMAN-05001: auxiliary file name undotbs01.dbf conflicts with a file used by the target database
Если восстановление завершилось неудачно, перед новой попыткой необходимо удалить со standby сервера spfile, controlfiles и datafiles, если они были созданы.
Настройка Standby
12. Для Standby database.
13. На Primary database.
alter system set log_archive_config='dg_config=(oracle_prd,oracle_stb)';
alter system set fal_server='oracle_stb';
alter system set log_archive_dest_1='LOCATION=/backup/archivelog/oracle VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=oracle_prd'
alter system set log_archive_dest_2='service=oracle_stb db_unique_name=oracle_stb valid_for=(all_logfiles,primary_role)'
Подробнее про log_archive_dest_n здесь.
14. Установка режима работы.
15. Запускаем standby
Alter database recover managed standby database disconnect from session;
Alter database recover managed standby database disconnect from session USING CURRENT LOGFILE
Настройка брокера
Брокер можно настроить вручную или через Grid Control.
для Grid Control версии 10.2.0.5 конфигурирование завершится c ошибкой
ORA-16538 When Adding Existent 11gR2 Standby Database to Grid Control 10.2.0.5 [ID 1145294.1]
Этот bug лечится установкой Patch 8267406. Или ручным конфигурированием Dataguard broker.
16. Ручная настройка брокера. (workaround)
По умолчанию брокер хранит конфигурационые файлы в $ORACLE_HOME/dbs
можно указать место хранения явно. На обеих базах.
alter system set log_archive_config='dg_config=(oracle_prd,oracle_stb)';
alter system set fal_server='oracle_prd';
alter system set log_archive_dest_1='location=/backup/archivelog/oracle VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=oracle_stb';
alter system set log_archive_dest_2='service=oracle_prd db_unique_name=oracle_prd VALID_FOR=(ALL_LOGFILES,PRIMARY_ROLE)';
alter system set log_archive_config='dg_config=(oracle_prd,oracle_stb)';
alter system set fal_server='oracle_stb';
alter system set log_archive_dest_1='LOCATION=/backup/archivelog/oracle VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=oracle_prd'
alter system set log_archive_dest_2='service=oracle_stb db_unique_name=oracle_stb valid_for=(all_logfiles,primary_role)'
Подробнее про log_archive_dest_n здесь.
14. Установка режима работы.
Alter database set standby database to maximize performance;Про режимы работы можно почитать в документации. Это лучше сделать до того, как вслед за отключившимся primary автоматически сложится standby.
Alter database set standby database to maximize protection;
Alter database set standby database to maximize availability;
15. Запускаем standby
- В режиме наката архивных логов
Alter database recover managed standby database disconnect from session;
- в режиме realtime apply
Alter database recover managed standby database disconnect from session USING CURRENT LOGFILE
- в режиме Active standby
alter database open read only;Stabdby готов.
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE THROUGH ALL SWITCHOVER DISCONNECT USING CURRENT LOGFILE;
Настройка брокера
Брокер можно настроить вручную или через Grid Control.
для Grid Control версии 10.2.0.5 конфигурирование завершится c ошибкой
ORA-16538 When Adding Existent 11gR2 Standby Database to Grid Control 10.2.0.5 [ID 1145294.1]
Этот bug лечится установкой Patch 8267406. Или ручным конфигурированием Dataguard broker.
16. Ручная настройка брокера. (workaround)
По умолчанию брокер хранит конфигурационые файлы в $ORACLE_HOME/dbs
можно указать место хранения явно. На обеих базах.
alter system set dg_broker_start=TRUE17. Создаём конфигурацию брокера. Добавляем обе базы.
alter system set Dg_broker_config_file1='/opt/oracle/ora11g/11.2.0.2/oradb/dbs/Dg_broker.cfig';
dgmgrl
connect sys/Password
create configuration dgb_oracle as primary database is oracle_prd connect identifier is oracle_prd;
add database oracle_stb as connect identifier is oracle_stb maintained as physical;
Если всё сделано правильно, можно посмотреть конфигурацию.
enable configuration;
show configuration;
Можно идти в Gridcontrol, настраивать оба instance и жать swichower.
Upd: Для запуска брокера лучше использовать запуск утилиты dgmgrl без параметров логин/пароль и авторизовываться командой connect уже из консоли брокера. Если этого не делать, в некоторых случаях команды брокеру не будут выполняться.
Tnsnames для пользователей.
oracle=
(DESCRIPTION_LIST=
(FAILOVER=true)
(LOAD_BALANCE=no)
(DESCRIPTION=
(ADDRESS = (PROTOCOL=TCP) (HOST= oraclem) (PORT=1521))
(CONNECT_DATA=
(SERVER=dedicated)
(SERVICE_NAME=oracle_prd)
)
)
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP) (HOST=oracles) (PORT=1521))
(CONNECT_DATA=
(SERVER=dedicated)
(SERVICE_NAME=oracle_stb)
)
)
)
или вот так:
oracle=
(DESCRIPTION =
(FAILOVER=on)
(CONNECT_TIMEOUT=5)
(ADDRESS_LIST=
(ADDRESS = (PROTOCOL=TCP) (HOST= oraclem) (PORT=1521)
(ADDRESS = (PROTOCOL=TCP) (HOST= oracles) (PORT=1521)
)
(CONNECT_DATA=
(SERVER=dedicated)
(SERVICE_NAME=oracle_prd)
)
)
Ссылки.
Достаточно старое руководство от Волкова:
Документация:
четверг, 16 июня 2011 г.
rlwrap и kline для WLST Upd 11.07.2011
Как и все тулзы oracle, консоль WLST не умеет повторять последнюю введённую команду или дополнять команду по нажатию горячей клавиши. Способ решить проблему (или создать себе другую) на linux-платформах есть:
Запускаем
Я долго пробовал скомпилировать из исходников readline и rlwrap, но победить компилятор не получилось.
http://hpux.ch/index.php/HPUX::Ports
Альтернативный метод для Windows и Linux - JLine.
1. Свежая версия.
2. Распаковываем в какую-нибудь директорию.
3. Добавляем директорию в CLASSPATH.
4. Запускаем
Устанавливаем:
rpm -ihv rlwrap-0.28-1.guru.suse102.x86_64.rpmСоздаём файл $HOME/.rlwrap/WLST и вписываем туда ключевые слова (под катом есть готовый набор)
Запускаем
rlwrap -f $HOME/.rlwrap/WLST --multi-line java weblogic.WLSTПосле этого начинает работать дополнение и повтор команд, но запущенный из этой консоли NodeManager будет в качестве родительского процесса считать процесс weblogic.WLST. То есть при выходе из консоли процесс weblogic.Nodemanager Завершится как дочерний. Имеет смысл завести в .bash_profile отдельный alias для работы, и не пользоваться для запуска NM.
alias "WLST"='/usr/bin/rlwrap -if $HOME/.rlwrap/wlst --multi-line java weblogic.WLST'Решение для HP-UX.
Я долго пробовал скомпилировать из исходников readline и rlwrap, но победить компилятор не получилось.
Your system and compiler (hpux11.31-cc) are not supported by theПока буду пользоваться решением c установкой gcc отсюда:
../support/shobj-conf script.
http://hpux.ch/index.php/HPUX::Ports
Альтернативный метод для Windows и Linux - JLine.
1. Свежая версия.
2. Распаковываем в какую-нибудь директорию.
3. Добавляем директорию в CLASSPATH.
4. Запускаем
java jline.ConsoleRunner weblogic.WLSTПосле этого должны заработать редактирование комнд и история.
вторник, 7 июня 2011 г.
Порядок применения параметров запуска weblogic-сервера.
Несколько способов запустить сервер с нужными параметрами.
1. Непосредственно из командной строки, написав конструкцию вида:
Вторая - параметры JVM, заданные в файле startup.properties. Параметры из этого файла всегда будут добавляться в конец строки запуска. Действующими параметрами будут только последние. Способ стоит пользоваться осторожно, так как для некоторых параметров JVM важен порядок следования, также важен порядок перечисления путей в переменной CLASSPATH .
1. Непосредственно из командной строки, написав конструкцию вида:
java [JVM options] [Weblogic Options] weblogic.ServerСобственно, компонованием этой строки и занимается startWeblogic.sh, лежащий в $MW_HOME/bin. Этот скрипт рекомендован Oracle для запуска и остановки серверов. Его можно немного подредактировать под свои нужды или передать ему пару параметров прямо из командной строки
nohup sh $DOMAIN_HOME/bin/startWebLogic.sh -Dweblogic.management.username=weblogic -Dweblogic.management.password=password > wls_start.log &2. Запуск Admin-сервера командой startServer из консоли WLST. Пример такой команды можно посмотреть, набрав
help('startServer')
3. Запуск серверов из консоли WLST с помощью NodeManager командой
nmStart('ServerName')В первом случае все параметры запуска задаются в тексте команды. Во втором параметры запуска jvmArgs передаются как аргумент метода startServer(). В третьем случае параметры берутся из конфиг-файлов и скрипта запуска. Параметры, хранящиеся в файле config.xml в этом случае не применяются. Они там просто хранятся.
Есть свои правила применения параметров при запуске сервера через Nodemanager:
1. В первую очередь применяются параметры, указанные явно в консоли WLST. В этом случае мы переопределяем всё, что было задано другими методами.
1. В первую очередь применяются параметры, указанные явно в консоли WLST. В этом случае мы переопределяем всё, что было задано другими методами.
arg="Arguments=\" -Dweblogic.management.server=localhost:7001\""
prps=makePropertiesObject(arg)
nmStart('serverName',props=prps)
2. Параметры, заданные в файле startup.properties.
После запуска блока из предыдущего пункта в директории {DOMAIN_HOME}/servers/serverName/data/nodemanager/
появится файл startup.properties примерно такого содержания
#Server startup properties
#Fri Jun 03 16:59:19 MSD 2011
Arguments=\ -Dweblogic.management.server\=localhost\:7001
Именно этот файл, а не config.xml читает Nodemanager перед запуском сервера. Полный список возможных параметров можно посмотреть тут.
3. Параметры запуска можно указать через web-консоль. Вообще говоря, этот способ - практически полное повторение пункта 2, но со своей логикой работы. При запуске/остановке серверов через web-консоль AdminServer обращается к NodeManager-у, который управляет ManagedServer-ом. Nodemanager в свою очередь выполняет метод nmStart('serverName')
На страничке Server Start вводим всё, что интересует
После сохранения и применения изменений значения пишутся в файл config.xml и, если сервер уже запущен, генерируется файл startup.properties.Если сервер не запущен, файл не создаётся. Такое поведение похоже на вызов функции
Если сервер до этого ни разу не запускался, то необходимого для запуска файла startup.properties всё ещё нет. За его создание почему-то отвечает кнопка "Start" на странице управления серверами.
На страничке Server Start вводим всё, что интересует
nmGenBootStartupProps('serverName')из консоли WLST, которая генерирует startup.properties-файл на основе config.xml и которая также требует подключения к работающему серверу.
Если сервер до этого ни разу не запускался, то необходимого для запуска файла startup.properties всё ещё нет. За его создание почему-то отвечает кнопка "Start" на странице управления серверами.
Такая логика работы web-консоли позволяет избежать ошибки (а может именно она её и вызывает), с которой сталкиваются новички, пытаясь стартовать свежесконфигурированный сервер из консоли WLST командой nmStart('serverName') до того, как будут заданы все необходимые параметры запуска.
4. Ещё один способ запустить сервер с нужными параметрами - использовать одновременно и скрипт startWeblogic, и файл startup.properties.
Если почитать документацию, можно найти вот такой текст:
4. Ещё один способ запустить сервер с нужными параметрами - использовать одновременно и скрипт startWeblogic, и файл startup.properties.
Если почитать документацию, можно найти вот такой текст:
You can use a start script to specify required startup properties and perform any other work you need performed at start up.Для этого надо отредактировать конфиг NodeManager-а
${MW_HOME}/wlserver_10.3/common/nodemanager/nodemanager.properties
StartScriptEnabled=trueи перезапустить его и сервер. После рестарта получаем процесс примерно такого вида:
ps -ef | grep weblogic.Server
/opt/oracle/java/latest/bin/java
-serverПервая выделенная группа - параметры JVM, заданные в скрипте startWeblogic.sh.
-Xms256m
-Xmx512m
-XX:MaxPermSize=256m
-Dweblogic.Name=serverName
-Djava.security.policy=/opt/oracle/middleware/wlserver_10.3/server/lib/weblogic.policy
-Dweblogic.ProductionModeEnabled=true
-Dweblogic.system.BootIdentityFile=/.../data/nodemanager/boot.properties
-Dweblogic.nodemanager.ServiceEnabled=true
-Dweblogic.security.SSL.ignoreHostnameVerification=true
-Dweblogic.ReverseDNSAllowed=false
-server
-Xms256m
-Xmx256m
-XX:MaxPermSize=128m
-Dplatform.home=/opt/oracle/middleware/wlserver_10.3
-Dwls.home=/opt/oracle/middleware/wlserver_10.3/server
-Dweblogic.home=/opt/oracle/middleware/wlserver_10.3/server
-Dweblogic.management.discover=false
-Dweblogic.management.server=http://...:7001
Вторая - параметры JVM, заданные в файле startup.properties. Параметры из этого файла всегда будут добавляться в конец строки запуска. Действующими параметрами будут только последние. Способ стоит пользоваться осторожно, так как для некоторых параметров JVM важен порядок следования, также важен порядок перечисления путей в переменной CLASSPATH .
среда, 1 июня 2011 г.
счастливым обладателям
На прошлой неделе на металинке появилась куча нот, посвящённых запуску и настройке wls.
четверг, 28 апреля 2011 г.
Параметры JVM для weblogic
Общие рассуждения о работе JVM.
Выделением памяти в Java занимается виртуальная машина. Машина выделяет память под объекты, удаляет объекты и освобождает память. В соответствии с Generation Model, объект за время своего существования перемещается между областями памяти, которые называются Young и Tenured. Но скорее всего, до Tenured объект не доживёт, ибо по статистике объекты умирают молодыми. Удалением объектов занимается сборщик мусора, который запускается по мере заполнения памяти.
среда, 20 апреля 2011 г.
Балансировка нагрузки с помощью mod_wl
Балансировка нагрузки возможна не только между серверами, объединёнными в кластер. С некоторыми ограничениями, можно сделать это с помощью любого балансировщика нагрузки, в том числе и с помощью apache + mod_wl просто перенаправляя запросы на разные сервера, на которые задеплоено одно приложение. Естественно, фича session failover при этом не доступна.
В моём случае необходимо было реализовать возможность перезагрузки экземпляров weblogic (по очереди) без потери доступности сервиса. При этом потеря сессии и её состояния не считается критичной.
Будем реализовывать вот такую схему:
Если почитать документацию, можно найти нужный параметр
WebLogicClusterпод которым подразумевается
List of WebLogic Servers that can be used for load balancingЭто список серверов, доступных для перенаправления на них запросов. Список динамически обновляется, учитывая failed и recvered в данный момент сервера.
При этом не стоит переопределять параметр
DynamicServerListон по имелчанию равен ON. При установке его в Off возможно перенаправление запроса на неработающий в данный момент сервер.
Для апача настройка будет такой же, как и в предыдущем посте. Конфиг модуля будет выглядеть так
LoadModule weblogic_module "/etc/apache2/modules/mod_wl_22.so"
<IfModule mod_weblogic.c>
WebLogicCluster server1:8001,server1:8002,server2:8001,server2:8002
MatchExpression *.jsp №перенаправлять только jsp-страницы
</IfModule>
Или, например, такПарвый вариант перенапрвляет запрс на основе MIME-типа. Второй по явному указанию пути (path) или его части
<Location /myApp>
SetHandler weblogic-handler
PathTrim /myApp WebLogicCluster server1:8001,server1:8002,server2:8001,server2:8002
</Location>
вторник, 19 апреля 2011 г.
Запуск и остановка серверов c помощью NodeManager Update 03.06.2011
В качестве best practices управления weblogic-доменами предлагается использовать NodeManager.
NodeManager запускается один на хост и может обслуживать несколько managed-серверов, принадлежащих одному или нескольким доменам.
5. Удобная настройка новых серверов на удалённых машинах.
6. Миграция серверов.
Benefits от использования:
1. Возможность управления managed-серверами через админскую консоль.
2. Возможность автоматического выключения\рестарта серверов в случае ошибки.
3. Автоматический запуск управляемых серверов.
4. Возможность восстановления состояния серверов до состояния, предшествующего "неожиданному выключению" (это значит, что если ваш сервер перед сбоем находился в состоянии standby, он запустится в standby, а не running)
6. Миграция серверов.
суббота, 9 апреля 2011 г.
Запуск weblogic на 80 порту upd 16.01.12
В Unix-like системах запуск приложений, слушаюших на портах меньших 1024 возможен только от пользователя root. Соответственно, запуск weblogic на 80 порту от имени другого пользователя невозможен. Пара способов обойти это ограничние.
1. Запуск процесса от имени root с последующим переключением его на непривилигированнойго пользователя. Настройка Weblogic-сервера производится через admin-консоль на вкладке
Environment - > Machines -> [Mashine name]
Post-Bind UID: – UID группы, на пользователя которой мы переключаемся.
Post-Bind GID: – GID пользователя, на которого переключаемся
2. Второй способ – запуск прокси-сервера на 80 порту и перенаправление на weblogic всех запросов, адресованных приложению.
В качестве прокси будем использовать apache 2.2 с модулем mod_wl
Для SuSE linux и утановленного из репозиториев apache это будет выглядеть так
1. Установка web-сервера
rpm –ihv apache2*
2. Создаём папку /etc/apache2/modules и копируем в неё mod_wl_22.so
3. В папке /etc/apache2/conf.d создаём конфиг примерно такого содержания:
LoadModule weblogic_module "/etc/apache2/modules/mod_wl_22.so"
<Location /console>
SetHandler weblogic-handler
WebLogicHost server
WeblogicPort 7001
</Location>
KeepAliveEnabled ON KeepAliveSecs 30
запросы к приложению console на 80 порту теперь перенаправляются на 7001 порт
4. Перезапускаем apache
rcapache2 reload
Проверяем работоспособность
понедельник, 28 марта 2011 г.
Установка Oracle DB 11g на Fedora 14
Возникла необходимость установить Oracle 11g на домашнюю машину под управлением Fedora 14. Процесс установки описывать целиком смысла не вижу.
Особенности для неподдерживаемой платформы:
1. Предлагаем системе притвориться пятым редхатом echo "redhat release 5" > /etc/redhat-release
2. Проблемы с "несовместимостью gcc" есть теперь и для Oracle !
При установке получаем ошибку:
Почитав интернет, можно найти два решения:
в процессе установки подкорректировать файл
Второй вариант - найти вот такой архив в дистрибутиве
../stage/Components/oracle.sysman.agent/<версия>/1/DataFiles/filegroup40.jar
в нём редактируем файл env_emagent.mk так же, как и в первом случае.
Должно помочь.
Особенности для неподдерживаемой платформы:
1. Предлагаем системе притвориться пятым редхатом echo "redhat release 5" > /etc/redhat-release
2. Проблемы с "несовместимостью gcc" есть теперь и для Oracle !
При установке получаем ошибку:
Error in invoking target 'agent nmhs' of makefile'/app/oracle/product/11.2.0/sysman/lib/ins_emagent.mk'
Почитав интернет, можно найти два решения:
в процессе установки подкорректировать файл
$ORACLE_HOME/sysman/lib/ins_emagent.mkЗаменив в нём $(MK_EMAGENT_NMECTL) на $(MK_EMAGENT_NMECTL) -lnnz11
../stage/Components/oracle.sysman.agent/<версия>/1/DataFiles/filegroup40.jar
в нём редактируем файл env_emagent.mk так же, как и в первом случае.
Должно помочь.
четверг, 24 марта 2011 г.
Пример конфигурирования домена Weblogic
Примеров конфтгурирования доменов Weblogic в сети достаточо много. К ним у меня есть только одно существенное дополнение. В сколько-нибудь production-среде weblogic сервера ассоциируются с машинами. AdminServer - тоже сервер, и его тоже неплохо бы расположить на машине. Лучше отдельной.
Для порядка, чтобы "всё было" выложу тут пару скриншотов. Поупражняюсь во вставке картинок в блог, заодно.
понедельник, 21 марта 2011 г.
Перенос конфигурации домена
Немного теории о том какакие существуют утилиты для создания, модификации и переноса доменов weblogic.
1. Утилита config.sh - в процессе настройки домена не генерирует его с чистого листа. Она предоставляет интерфейс для редактирования шаблонов из папки
1. Утилита config.sh - в процессе настройки домена не генерирует его с чистого листа. Она предоставляет интерфейс для редактирования шаблонов из папки
$DOMAIN_HOME/wlserver_10.3/common/templates/domains
и интерфейс добавления к существующему домену изменений на основе всё тех же шаблонов, сгенерированных, например, утилитой config_builder.sh
2. Утилита config_builder.sh генерирует шаблон домена целиком с возможностью добавлять собственные конфигурационные скрипты или генерирует шаблон изменений. Утилита может генерировать шаблон на основе существующего и работающего домена. Полученные с её помощью jar-архивы можно скормить config.sh или отредактировать с помощью консоли WLST.
3. C помощью weblogic.WLST можно сделать практически всё. В частности, можно отредактировать шаблон с доменом, используя те же самые команды конфигурирования, что и для развёрнутого домена.
Открываем шаблон:
и команды разворачивающей на его основе домен:
5. Утилита pack позволяет создать архив для переноса домена целиком или для переноса отдельного его сервера. Генерируя архив для перноса управляемого сервера, утилита не включает в него некоторые файлы, например SerializedSystemIni.dat. Об этом надо просто помнить и следовать инструкциям Oracle по поднятию Managed серверов.
6. В поставку weblogic включён так же скрипт clone.sh
Утилита клонирует файлы из каталога с доменом. Что именно копировать, можно указать в лежащем рядом конфигурационном файле clone.xml.
Важная особенность: можно воспользоваться этим способом только если совпадают директории установки приложений на development и production средах. Я не очень углублялся в возможности этой утилиты. На первый взгляд она очень напоминает копирование.
7. При должном понимании того, что делаешь, можно перенсти сервер простым копированием файлов.
Oracle предлагает несколько способов разворачивания production-среды, видимо, намекая на то, что не нужно конфигурировать production домен от самого Simple Domain Template
2. Утилита config_builder.sh генерирует шаблон домена целиком с возможностью добавлять собственные конфигурационные скрипты или генерирует шаблон изменений. Утилита может генерировать шаблон на основе существующего и работающего домена. Полученные с её помощью jar-архивы можно скормить config.sh или отредактировать с помощью консоли WLST.
3. C помощью weblogic.WLST можно сделать практически всё. В частности, можно отредактировать шаблон с доменом, используя те же самые команды конфигурирования, что и для развёрнутого домена.
Открываем шаблон:
wls:/offline/ > readTemplate('template.jar')Редактируем
wls:/offline/base_domain > create('...')Сохраняем
wls:/offline/base_domain >writeTemplate('newTemplate.jar')4. С помощью weblogic.WLST можно запускать jyton-скрипты. Этот способ переноса домена не использует шаблоны и не позволяет перносить дополнительные файлы и директории. Из основных его плюсов стоит отметить простоту использования. Вот пример команды, генерирующей скрипт:
$ configToScript('/path/to/domain','script.py')
и команды разворачивающей на его основе домен:
$ weblogic.WLST script.pyСтоит отметить, что скрипт перенесёт не только конфигурационные файлы, но и файлы с паролями, например boot.properties, если такой файл был создан.
5. Утилита pack позволяет создать архив для переноса домена целиком или для переноса отдельного его сервера. Генерируя архив для перноса управляемого сервера, утилита не включает в него некоторые файлы, например SerializedSystemIni.dat. Об этом надо просто помнить и следовать инструкциям Oracle по поднятию Managed серверов.
6. В поставку weblogic включён так же скрипт clone.sh
Утилита клонирует файлы из каталога с доменом. Что именно копировать, можно указать в лежащем рядом конфигурационном файле clone.xml.
Важная особенность: можно воспользоваться этим способом только если совпадают директории установки приложений на development и production средах. Я не очень углублялся в возможности этой утилиты. На первый взгляд она очень напоминает копирование.
7. При должном понимании того, что делаешь, можно перенсти сервер простым копированием файлов.
Oracle предлагает несколько способов разворачивания production-среды, видимо, намекая на то, что не нужно конфигурировать production домен от самого Simple Domain Template
Установка
Установка Weblogic достаточно проста, но есть несколько особенностей.
1. Надо не забыть, что в системе может быть установлена собственная опенсорсная или любая другая Java-машина и заранее определить путь к той, которую мы хотим использовать.
2. для 64 битных систем указываем ключик -d64. У меня это JAVA64=-d64
3. Я использовал файл ответов, отчего нашёл ещё одну "особенность" установки.
В файле ответов, предлагаемом Oracle, присутствуют линшние символы переноса строки.
Если копироваь файл со странички, и подсовывать в качестве файла ответов, получим ошибку
лечится очень просто. Удаляем все лишние пробелы в разделе "COMPONENT_PATHS" В итоге получаем что-то вроде
Запускаем
export JAVA_HOME=/opt/oracle/java/latest/bin/java
export PATH=$JAVA_HOME/bin:$PATH
2. для 64 битных систем указываем ключик -d64. У меня это JAVA64=-d64
3. Я использовал файл ответов, отчего нашёл ещё одну "особенность" установки.
В файле ответов, предлагаемом Oracle, присутствуют линшние символы переноса строки.
Если копироваь файл со странички, и подсовывать в качестве файла ответов, получим ошибку
The local BEA product registry is corrupted
лечится очень просто. Удаляем все лишние пробелы в разделе "COMPONENT_PATHS" В итоге получаем что-то вроде
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<bea-installer>
<input-fields>
<data-value name=\"BEAHOME\" value=\"${BEA_HOME}\" />
<data-value name=\"WLS_INSTALL_DIR\" value=\"${WL_HOME}\" />
<data-value name=\"COMPONENT_PATHS\"
value=\"WebLogic Server/Core Application Server|WebLogic Server/Administration Console|WebLogic Server/Configuration Wizard and Upgrade Framework|WebLogic Server/Web 2.0 HTTP Pub-Sub Server|WebLogic Server/WebLogic JDBC Drivers|WebLogic Server/Third Party JDBC Drivers|WebLogic Server/WebLogic Server Clients|WebLogic Server/WebLogic Web Server Plugins|WebLogic Server/UDDI and Xquery Support|WebLogic Server/Server Examples\"/>
<data-value name=\"INSTALL_SHORTCUT_IN_ALL_USERS_FOLDER\" value=\"no\"/>
<data-value name=\"LOCAL_JVMS\" value=\"${JAVA_HOME}\"/>
</input-fields>
</bea-installer>" > /tmp/silent$$.xml
Запускаем
java ${JAVA64} -jar ${WL_DISTRIB} -mode=silent -silent_xml=/tmp/silent$$.xmlГотово.
Подписаться на:
Сообщения (Atom)