Menu

13 Ocak 2013 Pazar

Linux uzerine Oracle Golden Gate Kurulumu

Bu makalemizde, Oracle Enterprise Linux uzerine Golden Gate 11g kurulumunu yapacagiz. 

Kurulum icin gerekenler..

https://edelivery.oracle.com/ sitesinde,

Select a Product Pack
 Click for list of licenses for each product pack
Platform

Oracle GoldenGate on Oracle v11.2.1 Media Pack for Linux x86-6411.2.1.0.1B68070-02SEP-10-20122 /
172M
secerek indirilir.

-- indirilen .zip dosyasi, unzip ile acilir

[oracle@easlan ~]$ unzip V34339-01.zip
inflating: tar -xvof fbo_ggs_Linux_x64_ora11g_64bit.tar

-- golden gate`in kurulacagi directory olusturulur.

[oracle@easlan ~]$mkdir /u01/goldengate

-- .tar dosyasi buraya kopyalanir

[oracle@easlan ~]$ cp fbo_ggs_Linux_x64_ora11g_64bit.tar /u01/goldengate
[oracle@easlan ~]$ cd /u01/goldengate

-- .tart dosyasi acilir.

[oracle@easlan goldengate]$ tar -xvof fbo_ggs_Linux_x64_ora11g_64bit.tar

-- burdaki .tart dosyasini artik silinebilir.

[oracle@easlan goldengate]$ rm fbo_ggs_Linux_x64_ora11g_64bit.tar

-- shared olarak kullanacak library path`i set edilir.

[oracle@easlan goldengate]$ export PATH=$PATH:/u01/goldengate
[oracle@easlan goldengate]$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/u01/goldengate

-- golden gate`imiz hazir. simdi gerekli configurasyonlar yapilmali

[oracle@easlan goldengate]$ ggsci
Oracle GoldenGate Command Interpreter for Oracle
Version 11.2.1.0.3 14400833 OGGCORE_11.2.1.0.3_PLATFORMS_120823.1258_FBO
Linux, x64, 64bit (optimized), Oracle 11g on Aug 23 2012 20:20:21
Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.

GGSCI (localhost.localdomain) 1>


-- directoryler olusturulur.

GGSCI (localhost.localdomain) 1> CREATE SUBDIRS
Creating subdirectories under current directory /u01/app/oracle/product/11.2.0/db_1
Parameter files /u01/goldengate/dirprm: created
Report files /u01/goldengate/dirrpt: created
Checkpoint files /u01/goldengate/dirchk: created
Process status files /u01/goldengate/dirpcs: createds
SQL script files /u01/goldengate/dirsql: created
Database definitions files /u01/goldengate/dirdef: created
Extract data files /u01/goldengate/dirdat: created
Temporary files /u01/goldengate/dirtmp: created
Veridata files /u01/goldengate/dirver: created
Veridata Lock files /u01/goldengate/dirver/lock: created
Veridata Out-Of-Sync files /u01/goldengate/dirver/oos: created
Veridata Out-Of-Sync XML files /u01/goldengate/dirver/oosxml: created
Veridata Parameter files /u01/goldengate/dirver/params: created
Veridata Report files /u01/goldengate/dirver/report: created
Veridata Status files /u01/goldengate/dirver/status: created
Veridata Trace files /u01/goldengate/dirver/trace: created
Stdout files /u01/goldengate/dirout: created

-- simdi Golden Gate Manager, Extract ve Replicat prosesleri icin bir veritabani kullanicisi olusturup, priviligeslerini vermeliyiz. Oncelikli bir, bu kullanicin kullanacagi biri tablespace olusturalalim

[oracle@easlan goldengate]$ sqlplus / as sysdba;


SQL> create tablespace gg_tbs 
          datafile '/u02/oradata/ORCL/gg_data01.dbf' size 200m;
          Tablespace created.

SQL> create user gg_owner identified by gg_owner default tablespace gg_tbs;

           User created.

SQL> grant connect,resource to gg_owner;

           Grant succeeded.

SQL> grant select any dictionary, select any table to gg_owner;

           Grant succeeded.

SQL> grant create table to gg_owner;
           Grant succeeded.
SQL> grant flashback any table to gg_owner;
           Grant succeeded.
SQL> grant execute on dbms_flashback to gg_owner;
           Grant succeeded.
SQL> grant execute on utl_file to gg_owner;

           Grant succeeded.


-- Simdi olusturdugumuz veritabani kullanici ile Golden gate uzerinden baglanalim

[oracle@easlan goldengate]$ ggsci
Oracle GoldenGate Command Interpreter for Oracle
Version 11.2.1.0.3 14400833 OGGCORE_11.2.1.0.3_PLATFORMS_120823.1258_FBO
Linux, x64, 64bit (optimized), Oracle 11g on Aug 23 2012 20:20:21
Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.

GGSCI (devu007) 1> DBLOGIN USERID gg_owner, PASSWORD gg_owner

Successfully logged into database.

-- Golden Gate extract sureci basladiginda, hata almamak icin veritabaninin supplementa loggin`ini enable edilmelidir.

[oracle@easlan goldengate]$ sqlplus / as sysdba;

SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;

          Database altered.

Bir sonraki, makalede, golden gate ile veri tasinmasi gorecegiz..

12 Ocak 2013 Cumartesi

Oracle Active Dataguard ve Golden Gate Farki

    Bu makalemizde, Oracle ailesin iki onemli urunu olan Active Dataguard(Standby) ve Golden Gate`in farklarina bakalalim.
    Oracle Golden gate ve Active Data Guard teknolojileri bazi durumlarda birbiriyle karistirilmaktadir. Aslinda, bu iki urunude tam anlamiyla anlasilmadigimiz zaman bu sekilde bir karmasinin icine girebiliriz. Yani, ne zaman hangisi kullanmali, birinin digerinden farki nedir.? 

Active Data Guard : Data guard teknolojisi, Urun(production) veritabanin, kopyasini baska lokasyon(lar) da real-time olarak tutmaya yarayan ve felaket durumlarinda urun veritabani ile role degisimi yaparak, urun veritabani haline getirebildigimiz cok guclu bir teknolojidir. Active Data Guard, Oracle 11g versiyonu ile birlikte gelen, ve standby veritabanimizi, read-only mode acarak, raporlar alabilmemizi saglayan DataGuard`da eklenmis bir ozellikdir. 


Golde Gate : Fussion Middleware gurubuna ait olan,  Kaynak veritabanindaki verilerin, hedef sistemdeki bir veritabinina tasinmasini saglayan farkli(MYSQL, MS-SQL, DB2 vs.) veritabanlari arasinda, replikasyona olanak saglayan bir yazilimdir. Golden Gate, kaynak veritabani uzerinde yapilan islemlerin kayitlarini istedigimiz hedef veritaban(lari) uzerine, online yada gecikmeli olarak aktarip, bu aktarim islemi kaynak veritabaninda yapilan butun islemler olabilecegi gibi, spesifik bir tablo veya schema`nin aktarimida olabilir.


Simdi, bu iki teknolojinin farklarina bakalim..


Active Data Guard                                                Golden Gate

- Memoryden tasima                                              - Okuma ve redo loglardan tasima 
- Senkron veya asenkron                                       - Sadece asenkron
- Basit replikasyon                                                  - Gelismis replikasyon
- Standby sadece read only modda                      - Hedefe db okuma-yazma
- Sifir I/O                                                                   - Capture zamani I/O
- Standby urun db`nin fiziksel kopyasidir              - SQL kullarak mantiksal replokasyon
- Oracle veritabani                                                   - Farkli veritabanlari

Yukaridaki maddelere ek olarak, Golden Gate, DataGuard`dan farkli olarak veritabanin cogaltimasin haricinde, Oracle disindaki diger veritabanlarina cogaltilmasi, Veriambari olusturmak icin verilerin farkli veritabanlarindan, bir veritabani tasimasi, veya bir veritabanindaki veri distributed sistemlere dagitmasi gibi farkli ozellikleri vardir. 


Sonuc olarak, buyuk sistemlerin kullanildigi ortamlarda bu iki teknolojininde kullanilmasini, hem verimizin guvenligi hemde kesintisiz bir sisteme sahip olmamizda cok buyuk rol oynamaktadir.

8 Ocak 2013 Salı

Managed Serverlara bir uygulamanin deploy ve test edilmesi

Merhaba, weblogic yazi dizimizin makalesi olan, managed serverlara bir web uygulamamiz deploy edecegiz ve bir managed servera ulasamadigimiz zaman, diger managed server ile nasil ulasilabildigini gorecegiz. Bundan sonraki bolumde ise, Managed serverlarimizi bir cluster atip, oradan test edecegiz.

Oncelikle asagidaki gibi, bir jsf uygulamamiz var ve bunu weblogic admin console ile, managed servera deploy edecez.

1. Consoldan deployment, bolumunde uygulama deploy edilir.
2. war dosyamizi seciyoruz.

3. Secerek next denir.
 4. Uygulamanin deploy edilecegi, managed Serverlar secilir.

5. Uygulamanin context root`u secilerek Next denir.
 6. Asagidada goruldugu gibiiki port ile uygulamamiz kullanilabilir.
 7. 7003 portundaki j2eeServer managed Serverindaki

8. 7004 portunda portalServer managed serverde
      Demomuzdada goruldugu gibi, suanda uygulamamiz her iki managed serverdada calismaktadir. Eger managed serverlardan biri kapanirsa, digerinden uygulamamiza ulasabiliriz.

Bir sonraki bolumden, managed serverlarimizi cluster yapacaz ve uygulamamizin, Scability, load balancing, failover ve migration icin ve bir managed server instance`ine ulasilamadiginda otomatik olarak digeri devreye girer ve uygulamamizin surekliligi icin cok onemlidir. Neyse devamini bir sonraki makaleye birakalim :)

Phyton ile NodeManager, Admin Server ve Managed Serverleri baslatma

        Merhaba, cok uzun bir baslik oldu sanirim :), evet konu basligindanda anlasildigi gibi, phyton scripti kullanarak, NodeManager`imizi start edip, daha sonra NodeManager baglanip, Admin ve Managed Servlerimizi start edecegiz.

Bu islem icin bize iki tane dosya gerekmektedir. 

  • domain.properties
  • ve scriptimizin oldugu NodeManager_AdminServer_Start.py diger dosyamiz
domain.properties dosyamizin icerigi
username=weblogic
password=wadmin12
host=localhost
nm.port=5556
domain.name=lab_domain
domain.dir=/u01/app/oracle/Middleware/user_projects/domains/lab_domain
nm.type=ssl
admin.server.name=AdminServer
managed.server.name=j2eeServer

NodeManager_AdminServer_Start.py dosyamizin icerigi

#############################################################################

#
# Bu dosyada python kodlari bulunmaktadir.
# Daha onceki bolumde gordugumu NodeManager`imizi bu seferde
# bu script ile calistiracagiz.
#
#############################################################################
from java.io import FileInputStream
import java.lang
import os
import string
print '.....NodeManager, Admin Server ve Managed Server baslatiliyor....'
propInputStream = FileInputStream("/media/DATA/Programming/domain.properties")
configProps = Properties()
configProps.load(propInputStream)
print '.................... Properties dosyasi yuklendi.................'
kullaniciAdi = configProps.get("username")
parola = configProps.get("password")
host = configProps.get("host")
nmPort = configProps.get("nm.port")
domainAdi = configProps.get("domain.name")
domainDir = configProps.get("domain.dir")
nmType = configProps.get("nm.type")
startNodeManager()
print ''
print '============================================='
print '...NodeManager baslatildi...!!!'
print '============================================='
print ''
nmConnect(kullaniciAdi,parola,host,nmPort,domainAdi,domainDir,nmType)
print ''
print '============================================='
print '...NodeManager ile baglanti kuruldu ...'
print '============================================='
print ''
print '...Admin Server Baslatilacak ...'
adminServerName = configProps.get("admin.server.name")
print '###### serverName = ', adminServerName
nmStart(adminServerName)
adminServerName = configProps.get("admin.server.name")
print ''
print '============================================='
print '===>  ', adminServerName, ' server baslatildi <==='
print '============================================='
print '' 
print '...Managed Server baslatilacak ...'
managedServerName = configProps.get("managed.server.name")
print '###### managedServerName = ', managedServerName
nmStart(managedServerName)
managedServerName = configProps.get("managed.server.name")
print ''
print '============================================='
print '===>  ', managedServerName, ' server baslatildi <==='
print '============================================='
print '' 

Simdi Scriptimizi calistiyoruz..
[ertugrula@easlan ]$./wlst.sh /media/DATA/Programming/NodeManager_AdminServer_Start.py 
CLASSPATH=/u01/app/oracle/Middleware/patch_wls1211/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/u01/app/oracle/Middleware/patch_ocp371/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/usr/java/jdk1.7.0_07/lib/tools.jar:/u01/app/oracle/Middleware/wlserver_12.1/server/lib/weblogic_sp.jar:/u01/app/oracle/Middleware/wlserver_12.1/server/lib/weblogic.jar:/u01/app/oracle/Middleware/modules/features/weblogic.server.modules_12.1.1.0.jar:/u01/app/oracle/Middleware/wlserver_12.1/server/lib/webservices.jar:/u01/app/oracle/Middleware/modules/org.apache.ant_1.7.1/lib/ant-all.jar:/u01/app/oracle/Middleware/modules/net.sf.antcontrib_1.1.0.0_1-0b2/lib/ant-contrib.jar::/u01/app/oracle/Middleware/utils/config/10.3/config-launch.jar::/u01/app/oracle/Middleware/wlserver_12.1/common/derby/lib/derbynet.jar:/u01/app/oracle/Middleware/wlserver_12.1/common/derby/lib/derbyclient.jar:/u01/app/oracle/Middleware/wlserver_12.1/common/derby/lib/derbytools.jar::

Initializing WebLogic Scripting Tool (WLST) ...

Welcome to WebLogic Server Administration Scripting Shell

Type help() for help on available commands

.....NodeManager, Admin Server ve Managed Server baslatiliyor....
.................... Properties dosyasi yuklendi.................
Launching NodeManager ... 
 Properties: {} 
 Command: /usr/java/jdk1.7.0_07/jre/bin/java -classpath /usr/java/jdk1.7.0_07/jre/lib/rt.jar:/usr/java/jdk1.7.0_07/jre/lib/i18n.jar:/u01/app/oracle/Middleware/patch_wls1211/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/u01/app/oracle/Middleware/patch_ocp371/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/usr/java/jdk1.7.0_07/lib/tools.jar:/u01/app/oracle/Middleware/wlserver_12.1/server/lib/weblogic_sp.jar:/u01/app/oracle/Middleware/wlserver_12.1/server/lib/weblogic.jar:/u01/app/oracle/Middleware/modules/features/weblogic.server.modules_12.1.1.0.jar:/u01/app/oracle/Middleware/wlserver_12.1/server/lib/webservices.jar:/u01/app/oracle/Middleware/modules/org.apache.ant_1.7.1/lib/ant-all.jar:/u01/app/oracle/Middleware/modules/net.sf.antcontrib_1.1.0.0_1-0b2/lib/ant-contrib.jar:/u01/app/oracle/Middleware/utils/config/10.3/config-launch.jar:/u01/app/oracle/Middleware/wlserver_12.1/common/derby/lib/derbynet.jar:/u01/app/oracle/Middleware/wlserver_12.1/common/derby/lib/derbyclient.jar:/u01/app/oracle/Middleware/wlserver_12.1/common/derby/lib/derbytools.jar weblogic.NodeManager -v
NMProcess:
NMProcess: Jan 08, 2013 8:58:57 PM weblogic.nodemanager.server.NMServerConfig initDomainsMap
NMProcess: INFO: Loading domains file: /u01/app/oracle/Middleware/wlserver_12.1/common/bin/nodemanager.domains
NMProcess:
NMProcess: Jan 08, 2013 8:58:58 PM weblogic.nodemanager.server.SSLConfig loadKeyStoreConfig
NMProcess: INFO: Loading identity key store: FileName=/u01/app/oracle/Middleware/wlserver_12.1/server/lib/DemoIdentity.jks, Type=jks, PassPhraseUsed=true
NMProcess:
NMProcess: Jan 08, 2013 8:58:58 PM weblogic.nodemanager.server.NMServer
NMProcess: INFO: Loaded node manager configuration properties from '/u01/app/oracle/Middleware/wlserver_12.1/common/bin/nodemanager.properties'
NMProcess: Node manager v10.3
NMProcess: 
NMProcess: Configuration settings:
NMProcess: 
NMProcess: NodeManagerHome=/u01/app/oracle/Middleware/wlserver_12.1/common/bin
NMProcess: ListenAddress=
NMProcess: ListenPort=5556
NMProcess: ListenBacklog=50
NMProcess: SecureListener=true
NMProcess: AuthenticationEnabled=true
NMProcess: NativeVersionEnabled=true
NMProcess: CrashRecoveryEnabled=false
NMProcess: JavaHome=/usr/java/jdk1.7.0_07/jre
NMProcess: StartScriptEnabled=true
NMProcess: StopScriptEnabled=false
NMProcess: StartScriptName=startWebLogic.sh
NMProcess: StopScriptName=
NMProcess: LogFile=/u01/app/oracle/Middleware/wlserver_12.1/common/bin/nodemanager.log
NMProcess: LogLevel=INFO
NMProcess: LogLimit=0
NMProcess: LogCount=1
NMProcess: LogAppend=true
NMProcess: LogToStderr=true
NMProcess: LogFormatter=weblogic.nodemanager.server.LogFormatter
NMProcess: DomainsFile=/u01/app/oracle/Middleware/wlserver_12.1/common/bin/nodemanager.domains
NMProcess: DomainsFileEnabled=true
NMProcess: StateCheckInterval=500
NMProcess: QuitEnabled=true
NMProcess: UseMACBroadcast=false
NMProcess: DomainRegistrationEnabled=false
NMProcess: DomainsDirRemoteSharingEnabled=false
NMProcess: 
NMProcess: Domain name mappings:
NMProcess: 
NMProcess: lab_domain -> /u01/app/oracle/Middleware/user_projects/domains/lab_domain
NMProcess: 
NMProcess: configuration properties loaded from "/u01/app/oracle/Middleware/user_projects/domains/lab_domain/servers/portalServer/data/nodemanager/startup.properties">
NMProcess: Jan 08, 2013 8:58:58 PM weblogic.nodemanager.server.AbstractServerManager log
NMProcess: INFO: Startup configuration properties loaded from "/u01/app/oracle/Middleware/user_projects/domains/lab_domain/servers/portalServer/data/nodemanager/startup.properties"
NMProcess:
NMProcess: Jan 08, 2013 8:58:58 PM weblogic.nodemanager.server.AbstractServerManager log
NMProcess: INFO: Startup configuration properties loaded from "/u01/app/oracle/Middleware/user_projects/domains/lab_domain/servers/j2eeServer/data/nodemanager/startup.properties"
NMProcess:
NMProcess: Jan 08, 2013 8:58:59 PM weblogic.nodemanager.server.SSLListener run
NMProcess: INFO: Secure socket listener started on port 5556
Successfully launched the Node Manager.
The Node Manager process is running independent of the WLST process.
Exiting WLST will not stop the Node Manager process. Please refer 
to the Node Manager logs for more information.
The Node Manager logs will be under /u01/app/oracle/Middleware/wlserver_12.1/common/bin/.
Node Manager starting in the background

=============================================
...NodeManager baslatildi...!!!
=============================================

Connecting to Node Manager ...
 
 
Successfully Connected to Node Manager.
=============================================
...NodeManager ile baglanti kuruldu ...
=============================================
###### serverName =  AdminServer
Starting server AdminServer ...
NMProcess:
NMProcess: Jan 08, 2013 8:59:08 PM weblogic.nodemanager.server.LogFileRotationUtil log
NMProcess: INFO: Rotated server output log to "/u01/app/oracle/Middleware/user_projects/domains/lab_domain/servers/AdminServer/logs/AdminServer.out00006"
NMProcess:
NMProcess: Jan 08, 2013 8:59:08 PM weblogic.nodemanager.server.LogFileRotationUtil log
NMProcess: INFO: Server error log also redirected to server log
NMProcess:
NMProcess: Jan 08, 2013 8:59:08 PM weblogic.nodemanager.server.AbstractServerManager log
NMProcess: INFO: Starting WebLogic server with command line: /u01/app/oracle/Middleware/user_projects/domains/lab_domain/bin/startWebLogic.sh 
NMProcess:
NMProcess: Jan 08, 2013 8:59:08 PM weblogic.nodemanager.server.AbstractServerManager log
NMProcess: INFO: Working directory is '/u01/app/oracle/Middleware/user_projects/domains/lab_domain'
NMProcess:
NMProcess: Jan 08, 2013 8:59:08 PM weblogic.nodemanager.server.AbstractServerManager log
NMProcess: INFO: Server output log file is '/u01/app/oracle/Middleware/user_projects/domains/lab_domain/servers/AdminServer/logs/AdminServer.out'
Successfully started server AdminServer ...
=============================================
===>   AdminServer  server baslatildi <===
=============================================
###### managedServerName =  j2eeServer
Starting server j2eeServer ...
NMProcess:
NMProcess: Jan 08, 2013 8:59:39 PM weblogic.nodemanager.server.LogFileRotationUtil log
NMProcess: INFO: Rotated server output log to "/u01/app/oracle/Middleware/user_projects/domains/lab_domain/servers/j2eeServer/logs/j2eeServer.out00008"
NMProcess:
NMProcess: Jan 08, 2013 8:59:39 PM weblogic.nodemanager.server.LogFileRotationUtil log
NMProcess: INFO: Server error log also redirected to server log
NMProcess:
NMProcess: Jan 08, 2013 8:59:39 PM weblogic.nodemanager.server.AbstractServerManager log
NMProcess: INFO: Starting WebLogic server with command line: /u01/app/oracle/Middleware/user_projects/domains/lab_domain/bin/startWebLogic.sh 
NMProcess:
NMProcess: Jan 08, 2013 8:59:39 PM weblogic.nodemanager.server.AbstractServerManager log
NMProcess: INFO: Working directory is '/u01/app/oracle/Middleware/user_projects/domains/lab_domain'
NMProcess:
NMProcess: Jan 08, 2013 8:59:39 PM weblogic.nodemanager.server.AbstractServerManager log
NMProcess: INFO: Server output log file is '/u01/app/oracle/Middleware/user_projects/domains/lab_domain/servers/j2eeServer/logs/j2eeServer.out'
Successfully started server j2eeServer ...
=============================================
===>   j2eeServer  server baslatildi <===
=============================================
[ertugrula@easlan bin]$ 

Bir sonraki makalemizde, managed Serverlarimiza, bir .war dosyasi deploy edip, biri kapandiginda digeri ile nasil baglanacagimizi gorecegiz.

Weblogic Node Manager

    Merhaba, bu makalemizde weblogic yazi dizimizin devami olan Node Manager nedir, nasil kurulur ve nasil kullanilir bunu goruyor olacagiz.
  
1.  Node Manager nedir. 
    Once sunu belirmeliyim ki, Node Manager weblogic serveri urun(production) ortaminda zorunlu degildir. Yani Node manager olmadan,  weblogic server`inizi, admin server, managed server ve cluster`larinizi yonetebilirsiniz. Peki, Node Manager olmadan, biz bunlari yapabiliyorsak Node Manager`a neden ihtiyac duyuyoruz.? diye bir soru akillara gelecektir. 
Bunu ornekle aciklayalim.
  Dusunun ki, Weblogic Serverimiz ve bunun icinde birden fazla domain ve machine`lar var ve bunlarda ayri ayri lokasyonlarda, bu durumda bunlari idare etmemiz, bu domainle iliskili olan Admin Server ve Managed Servleri nasil start, stop ve monitor etmek zor bir durum olacaktir. Iste bu noktada Node Manager aklimiza geliyor. Hatirlayalim, Node Manager, fiziksel makine uzerinde calisan bir processdir. Bize uzakdan Admin server, Managed Server`larimizi start, stop ve monitor etmemize yarar. 
  Node Manager, spesifik bir domain ile iliskili degildir, fiziksel bir makine ile iliskilidir. Ve machine logical bir yapidir.

Yukaridaki sekilde WLST kullanarak Node Manager`a baglandikdan sonra Serverlarin yonetilmesini gosterir

2. Node Manager nasil kurulur.
 Node Manager, iki sekilde kullanilabilir. Java-based ve Script based.
 Guvenlik acisindan Node Manager`i java-based olarak kullanmak script based`dan daha guvenlidir. Bu makalemizde, daha anlasilir olmasi acisindan script tabanli olacaktir.
 a. Oncelikle Admin console acarak, Environmets -> Machines -> bolumunden machine yoksa, yeni bir nachine olusturup, bu machine uzerinde node manager olustururak servlerimizi yonetecez.


 Save diyerek, Node Manager`imizi olusturuyoruz.

3. Nasil Kullanilir.
  Yukarida Node Manager`in ne oldugundan bahsettikden, daha sonra, nasil olusturulacagini gorduk, simdide nasil kullanicagimizi ve Admin ve managed serverlerimizi nasil start, stop ve monitor edecegimizi gorecegiz.
- Ortam degiskenlerimizi set ediyoruz.
    /u01/app/oracle/Middleware/wlserver_12.1/bin/setWLSEnv.cmd    
- WLST baslatiyoruz.
java weblogic.WLST
-   Node Manager`i baslatiyoruz.
startNodeManager(verbose='true', NodeManagerHome='/u01/app/oracle/Middleware/wlserver_12.1/common/nodemanager/', ListenPort='5556', ListenAddress='localhost')
- Node Manager`a baglaniyoruz.
nmConnect('weblogic','wadmin12','localhost','5556','lab_domain','/u01/app/oracle/Middleware/user_projects/domains/lab_domain/','ssl') 
- Admin server eklenmesi icin, boot.properties dosyasini ekliyoruz.

/u01/app/oracle/Middleware/user_projects/domains/lab_domain/servers/AdminServer/security/ 
   boot.properties
   
Bu dosyayi, /u01/app/oracle/Middleware/user_projects/domains/lab_domain/servers/AdminServer/security/
altindan kopyalayip ekleyebiliriz.

- connect('weblogic','wadmin12','t3://localhost:7001')
- Admin Server`i start etmek icin,
nmStart('AdminServer')
-  Admin Server statusunu ogrenmek icin
nmServerStatus('AdminServer')
- Admin Server`i durdurmak icin
nmKill('AdminServer')
- Managed serverlarida ayni Admin Server gibi start, stop edebiliriz.
 nmStart('j2eeServer')
 nmStart('portalServer')
 nmKill('j2eeServer')
- Node Manager`i start ve stop etmek icin
startNodeManager()
stopNodeManager() 
 - Admin consol uzerinde, machine inactive veya unreachable olarak gorunurse, asagidakini eklememiz gerekmektedir.  
   nmEnroll('/u01/app/oracle/Middleware/user_projects/domains/lab_domain/','/u01/app/oracle/Middleware/wlserver_12.1/common/')

Ornek bir demo yaparsak;


[ertugrula@easlan ~]$ cd /u01/app/oracle/Middleware/wlserver_12.1/common/bin/
[ertugrula@easlan bin]$ ./wlst.sh 
CLASSPATH=/u01/app/oracle/Middleware/patch_wls1211/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/u01/app/oracle/Middleware/patch_ocp371/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/usr/java/jdk1.7.0_07/lib/tools.jar:/u01/app/oracle/Middleware/wlserver_12.1/server/lib/weblogic_sp.jar:/u01/app/oracle/Middleware/wlserver_12.1/server/lib/weblogic.jar:/u01/app/oracle/Middleware/modules/features/weblogic.server.modules_12.1.1.0.jar:/u01/app/oracle/Middleware/wlserver_12.1/server/lib/webservices.jar:/u01/app/oracle/Middleware/modules/org.apache.ant_1.7.1/lib/ant-all.jar:/u01/app/oracle/Middleware/modules/net.sf.antcontrib_1.1.0.0_1-0b2/lib/ant-contrib.jar::/u01/app/oracle/Middleware/utils/config/10.3/config-launch.jar::/u01/app/oracle/Middleware/wlserver_12.1/common/derby/lib/derbynet.jar:/u01/app/oracle/Middleware/wlserver_12.1/common/derby/lib/derbyclient.jar:/u01/app/oracle/Middleware/wlserver_12.1/common/derby/lib/derbytools.jar::

Initializing WebLogic Scripting Tool (WLST) ...


Welcome to WebLogic Server Administration Scripting Shell


Type help() for help on available commands


wls:/offline> startNodeManager(verbose='true', NodeManagerHome='/u01/app/oracle/Middleware/wlserver_12.1/common/nodemanager/', ListenPort='5556', ListenAddress='localhost')

Launching NodeManager ... 
 Properties: {ListenAddress=localhost,ListenPort=5556,NodeManagerHome=/u01/app/oracle/Middleware/wlserver_12.1/common/nodemanager/,} 
 Command: /usr/java/jdk1.7.0_07/jre/bin/java -classpath /usr/java/jdk1.7.0_07/jre/lib/rt.jar:/usr/java/jdk1.7.0_07/jre/lib/i18n.jar:/u01/app/oracle/Middleware/patch_wls1211/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/u01/app/oracle/Middleware/patch_ocp371/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/usr/java/jdk1.7.0_07/lib/tools.jar:/u01/app/oracle/Middleware/wlserver_12.1/server/lib/weblogic_sp.jar:/u01/app/oracle/Middleware/wlserver_12.1/server/lib/weblogic.jar:/u01/app/oracle/Middleware/modules/features/weblogic.server.modules_12.1.1.0.jar:/u01/app/oracle/Middleware/wlserver_12.1/server/lib/webservices.jar:/u01/app/oracle/Middleware/modules/org.apache.ant_1.7.1/lib/ant-all.jar:/u01/app/oracle/Middleware/modules/net.sf.antcontrib_1.1.0.0_1-0b2/lib/ant-contrib.jar:/u01/app/oracle/Middleware/utils/config/10.3/config-launch.jar:/u01/app/oracle/Middleware/wlserver_12.1/common/derby/lib/derbynet.jar:/u01/app/oracle/Middleware/wlserver_12.1/common/derby/lib/derbyclient.jar:/u01/app/oracle/Middleware/wlserver_12.1/common/derby/lib/derbytools.jar weblogic.NodeManager -v
NMProcess:
NMProcess: Jan 08, 2013 4:18:01 PM weblogic.nodemanager.server.NMServerConfig initDomainsMap
NMProcess: INFO: Loading domains file: /u01/app/oracle/Middleware/wlserver_12.1/common/nodemanager/nodemanager.domains
NMProcess:
NMProcess: Jan 08, 2013 4:18:02 PM weblogic.nodemanager.server.SSLConfig loadKeyStoreConfig
NMProcess: INFO: Loading identity key store: FileName=/u01/app/oracle/Middleware/wlserver_12.1/server/lib/DemoIdentity.jks, Type=jks, PassPhraseUsed=true
NMProcess:
NMProcess: Jan 08, 2013 4:18:02 PM weblogic.nodemanager.server.NMServer
NMProcess: INFO: Loaded node manager configuration properties from '/u01/app/oracle/Middleware/wlserver_12.1/common/nodemanager/nodemanager.properties'
NMProcess: Node manager v10.3
NMProcess: 
NMProcess: Configuration settings:
NMProcess: 
NMProcess: NodeManagerHome=/u01/app/oracle/Middleware/wlserver_12.1/common/nodemanager/
NMProcess: ListenAddress=localhost
NMProcess: ListenPort=5556
NMProcess: ListenBacklog=50
NMProcess: SecureListener=true
NMProcess: AuthenticationEnabled=true
NMProcess: NativeVersionEnabled=true
NMProcess: CrashRecoveryEnabled=false
NMProcess: JavaHome=/usr/java/jdk1.7.0_07/jre
NMProcess: StartScriptEnabled=true
NMProcess: StopScriptEnabled=false
NMProcess: StartScriptName=startWebLogic.sh
NMProcess: StopScriptName=
NMProcess: LogFile=/u01/app/oracle/Middleware/wlserver_12.1/common/nodemanager/nodemanager.log
NMProcess: LogLevel=INFO
NMProcess: LogLimit=0
NMProcess: LogCount=1
NMProcess: LogAppend=true
NMProcess: LogToStderr=true
NMProcess: LogFormatter=weblogic.nodemanager.server.LogFormatter
NMProcess: DomainsFile=/u01/app/oracle/Middleware/wlserver_12.1/common/nodemanager/nodemanager.domains
NMProcess: DomainsFileEnabled=true
NMProcess: StateCheckInterval=500
NMProcess: QuitEnabled=true
NMProcess: UseMACBroadcast=false
NMProcess: DomainRegistrationEnabled=false
NMProcess: DomainsDirRemoteSharingEnabled=false
NMProcess: 
NMProcess: Domain name mappings:
NMProcess: 
NMProcess: lab_domain -> /u01/app/oracle/Middleware/user_projects/domains/lab_domain
NMProcess: 
NMProcess:
NMProcess: Jan 08, 2013 4:18:02 PM weblogic.nodemanager.server.AbstractServerManager log
NMProcess: INFO: Startup configuration properties loaded from "/u01/app/oracle/Middleware/user_projects/domains/lab_domain/servers/portalServer/data/nodemanager/startup.properties"
NMProcess:
NMProcess: Jan 08, 2013 4:18:03 PM weblogic.nodemanager.server.AbstractServerManager log
NMProcess: INFO: Resume monitoring of active server process (pid = 23650)
NMProcess: < Initializing ServerMonitor for weblogic.nodemanager.server.ServerManager@4260904e : with config : weblogic.nodemanager.common.StartupConfig@51a212ed>
NMProcess: Jan 08, 2013 4:18:03 PM weblogic.nodemanager.server.AbstractServerManager log
NMProcess: INFO:  Initializing ServerMonitor for weblogic.nodemanager.server.ServerManager@4260904e : with config : weblogic.nodemanager.common.StartupConfig@51a212ed
NMProcess:
NMProcess: Jan 08, 2013 4:18:03 PM weblogic.nodemanager.server.AbstractServerManager log
NMProcess: INFO: Resume monitoring of active server process (pid = 21293)
NMProcess: < Initializing ServerMonitor for weblogic.nodemanager.server.ServerManager@572c4a12 : with config : weblogic.nodemanager.common.StartupConfig@1cb31074>
NMProcess: Jan 08, 2013 4:18:03 PM weblogic.nodemanager.server.AbstractServerManager log
NMProcess: INFO:  Initializing ServerMonitor for weblogic.nodemanager.server.ServerManager@572c4a12 : with config : weblogic.nodemanager.common.StartupConfig@1cb31074
NMProcess:
NMProcess: Jan 08, 2013 4:18:03 PM weblogic.nodemanager.server.AbstractServerManager log
NMProcess: INFO: Startup configuration properties loaded from "/u01/app/oracle/Middleware/user_projects/domains/lab_domain/servers/j2eeServer/data/nodemanager/startup.properties"
NMProcess:
NMProcess: Jan 08, 2013 4:18:03 PM weblogic.nodemanager.server.AbstractServerManager log
NMProcess: INFO: Resume monitoring of active server process (pid = 23510)
NMProcess: < Initializing ServerMonitor for weblogic.nodemanager.server.ServerManager@1b0b2fd9 : with config : weblogic.nodemanager.common.StartupConfig@7b725d6d>
NMProcess: Jan 08, 2013 4:18:03 PM weblogic.nodemanager.server.AbstractServerManager log
NMProcess: INFO:  Initializing ServerMonitor for weblogic.nodemanager.server.ServerManager@1b0b2fd9 : with config : weblogic.nodemanager.common.StartupConfig@7b725d6d
NMProcess:
NMProcess: Jan 08, 2013 4:18:04 PM weblogic.nodemanager.server.SSLListener run
NMProcess: INFO: Secure socket listener started on port 5556, host localhost/127.0.0.1
Successfully launched the Node Manager.
The Node Manager process is running independent of the WLST process.
Exiting WLST will not stop the Node Manager process. Please refer 
to the Node Manager logs for more information.
The Node Manager logs will be under /u01/app/oracle/Middleware/wlserver_12.1/common/nodemanager
Node Manager starting in the background
wls:/offline> 
wls:/offline> 
wls:/offline> nmConnect('weblogic','wadmin12','localhost','5556','lab_domain','/u01/app/oracle/Middleware/user_projects/domains/lab_domain/','ssl')
Connecting to Node Manager ...
 
 
Successfully Connected to Node Manager.
wls:/nm/lab_domain> 
wls:/nm/lab_domain> 
wls:/nm/lab_domain> connect('weblogic','wadmin12','t3://localhost:7001')
Connecting to t3://localhost:7001 with userid weblogic ...
Successfully connected to Admin Server 'AdminServer' that belongs to domain 'lab_domain'.

Warning: An insecure protocol was used to connect to the 

server. To ensure on-the-wire security, the SSL port or 
Admin port should be used instead.

wls:/lab_domain/serverConfig> 

wls:/lab_domain/serverConfig> 
wls:/lab_domain/serverConfig> nmKill('AdminServer')
Killing server AdminServer ...
WLST lost connection to the WebLogic Server that you were 
connected to, this may happen if the server was shutdown or 
partitioned. You will have to re-connect to the server once the 
server is available.
Disconnected from weblogic server: AdminServer
NMProcess:
NMProcess: Jan 08, 2013 4:19:05 PM weblogic.nodemanager.server.AbstractServerManager log
NMProcess: INFO: Server was killed
Successfully killed server AdminServer ...
wls:/nm/lab_domain> nmStart('AdminServer')
Starting server AdminServer ...
NMProcess:
NMProcess: Jan 08, 2013 4:19:13 PM weblogic.nodemanager.server.LogFileRotationUtil log
NMProcess: INFO: Rotated server output log to "/u01/app/oracle/Middleware/user_projects/domains/lab_domain/servers/AdminServer/logs/AdminServer.out00005"
NMProcess:
NMProcess: Jan 08, 2013 4:19:13 PM weblogic.nodemanager.server.LogFileRotationUtil log
NMProcess: INFO: Server error log also redirected to server log
NMProcess:
NMProcess: Jan 08, 2013 4:19:13 PM weblogic.nodemanager.server.AbstractServerManager log
NMProcess: INFO: Starting WebLogic server with command line: /u01/app/oracle/Middleware/user_projects/domains/lab_domain/bin/startWebLogic.sh 
NMProcess:
NMProcess: Jan 08, 2013 4:19:13 PM weblogic.nodemanager.server.AbstractServerManager log
NMProcess: INFO: Working directory is '/u01/app/oracle/Middleware/user_projects/domains/lab_domain'
NMProcess:
NMProcess: Jan 08, 2013 4:19:13 PM weblogic.nodemanager.server.AbstractServerManager log
NMProcess: INFO: Server output log file is '/u01/app/oracle/Middleware/user_projects/domains/lab_domain/servers/AdminServer/logs/AdminServer.out'
Successfully started server AdminServer ...
wls:/nm/lab_domain> 
wls:/nm/lab_domain> 
wls:/nm/lab_domain> 
wls:/nm/lab_domain> help()

WLST is a command line scripting tool to configure and administer WebLogic Server. Try:


    help('all')              List all WLST commands available.

    help('browse')           List commands for browsing the hierarchy.
    help('common')           List the most commonly used commands.
    help('control')          List commands for controlling the domain/server.
    help('deployment')       List commands for deploying applications.
    help('diagnostics')      List commands for performing diagnostics.
    help('editing')          List commands for editing the configuration.
    help('information')      List commands for displaying information.
    help('lifecycle')        List commands for managing life cycle.
    help('nodemanager')      List commands for using Node Manager.
    help('offline')          List all offline commands available.
    help('online')           List all online commands available.
    help('storeadmin')       List all store admin commands.
    help('trees')            List commands use to navigate MBean hierarchy.
    help('variables')        List all global variables available.

wls:/nm/lab_domain> help('nodemanager')


Use Node Manager.

    help('nm')                  Determine whether WLST is connected to Node Manager.
    help('nmConnect')           Connect WLST to Node Manager.
    help('nmDisconnect')        Disconnect WLST from a Node Manager session.
    help('nmEnroll')            Enroll the machine with Node Manager.
    help('nmGenBootStartupProps')   Generate boot and startup properties
    help('nmKill')              Kill the specified server instance.
    help('nmLog')               Return the Node Manager log.
    help('nmServerLog')         Return the server output log.
    help('nmServerStatus')      Return the status of the server.
    help('nmStart')             Start a server using Node Manager.
    help('nmVersion')           Return the Node Manager server version.
    help('startNodeManager')    Start Node Manager.
    help('stopNodeManager')     Stop Node Manager.

wls:/nm/lab_domain> exit()

Exiting WebLogic Scripting Tool.
[ertugrula@easlan bin]$