Ziel ist es, in einer bestehenden Umgebung ONLINE ein neues Netz und einen neuen Listener für dieses Netz hinzuzufügen OHNE dass die anderen Datenbanken auf dem System „gestört“ werden.
In unsere Beispiel:
Bedeutung | Name | IP |
---|---|---|
Host 1 | racdb01 | 192.162.178.220 |
Host 2 | racdb01 | 192.162.178.222 |
GPI Lan Host 1 | racdb01-GPI | 192.162.183.220 |
GPI Lan Host 2 | racdb02-PL | 192.162.183.222 |
VIP GPI Lan Host 1 | racdb01-GPI-vip | 192.162.183.224 |
VIP GPI Lan Host 2 | racdb02-GPI-vip | 192.162.183.226 |
Name der DB : GPIDB
Möglichst keine Host files sondern einen DNS Server verwenden!
Je nach Umgebung nicht vergessen zu pflegen
User root , auf 1. Knoten und 2. Knoten
nslookup racdb01-GPI-vip nslookup racdb02-GPI-vip nslookup racdb02-GPI nslookup racdb01-GPI
User root , auf 1. Knoten und 2. Knoten
ip route show > route_before.txt route >> route_before.txt
Da sich das Routing beim Aktivieren einer Netzwerkarte ändert, ist ein Lösung „Policy Routing“ einzuetzen.
Policy Routing With Linux Details:
Als Oracle Grid, auf 1. Knoten
set ORALCE_HOME=/u01/app/11.2.0.4/grid cd %ORACLE_HOME/bin ./cluvfy comp nodecon -n racdb01,racdb02 -verbose > clufy_before.txt
Ausgabe in der Datei auf Fehler prüfen, treten hier Fehler auf, diese zuvor fixen.
User root , auf 1. Knoten und 2. Knoten
vi /etc/udev/rules.d/70-persistent-net.rules # für die Doku cp 70-persistent-net.rules /tmp
User root , auf 1. Knoten und 2. Knoten
Je nach Hardware ist eine Karte bereits im System bekannt bzw. wird per HotPlug dem System hinzugefügt.
Im OS testen ob die Karte da ist:
lspci
lshw - class network
Mac Adresse kann erkannt werden mit:
ip link show
User root , auf 1. Knoten und 2. Knoten In VMware kann zum Beispiel eine Karte via Hotplug im laufenden Betrieb hinzugefügt werden, allerdings setzt dabei die Maschine kurz aus.
# check the changes, numbering of the interfaces should not change! vi /etc/udev/rules.d/70-persistent-net.rules
Ändert sich hier die Reihenfolge, gibt es spätestens beim nächsten Reboot Ärger!
User root , auf 1. Knoten und 2.Knoten
cd /etc/sysconfig/network-scripts/ vi ifcfg-eth5 DEVICE=eth5 BOOTPROTO=none HWADDR="<MAC ADDRESS>" NM_CONTROLLED="no TYPE="Ethernet" PEERDNS=no ONBOOT=yes MASTER=ibond3 SLAVE=yes USERCTL=no vi ifcfg-eth6 DEVICE=eth6 BOOTPROTO=none HWADDR="<MAC ADDRESS>" NM_CONTROLLED="no TYPE="Ethernet" PEERDNS=no ONBOOT=yes MASTER=ibond3 SLAVE=yes USERCTL=no
User root , auf 1. Knoten und 2.Knoten
#add Bonding Interface /etc/modprobe.d/bonding.conf: alias bond3 bonding # be carefully no default gateway! # Gateway set with routing rules vi ifcfg-ibond3 DEVICE=ibond3 TYPE="Ethernet" IPADDR=192.162.183.224 NETMASK=255.255.255.0 ONBOOT=yes NM_CONTROLLED=no PEERDNS=no BOOTPROTO=none BONDING_OPTS="mode=1 miimon=1000" # Define Routing Polices /etc/iproute2/rt_tables: 100 gpivlan /etc/sysconfig/network-scripts/route-bond3: default via 192.162.183.254 dev bond3 table gpivlan /etc/sysconfig/network-scripts/rule-bond3: from 192.162.183.224 lookup plvlan from 192.162.183.226 lookup plvlan from all to 192.162.183.220 lookup gpivlan from all to 192.162.183.224 lookup gpivlan
User root , auf 1. Knoten und 2.Knoten
ifconfig bond3 up # alternativ ifup bond3
User root , auf 1. Knoten und 2.Knoten
set ORALCE_HOME=/u01/app/11.2.0.4/grid cd %ORACLE_HOME/bin ./crsctl stat res -t ./srvctl status nodeapps ./crs_stat -t -v
User root , auf 1. Knoten und 2.Knoten
ip route show
route
User root , auf 1. Knoten und 2.Knoten
ifconfig cat /sys/class/net/bonding_masters cat /sys/class/net/bond0/bonding/mode cat /proc/net/bonding/bond3
User root , auf 1. Knoten und 2.Knoten
ping rac-db01-pl
User root , auf 1. Knoten und 2.Knoten
ping racdb01-GPI ping racdb02-pl
User Oracle GRID, auf 1 Knoten für das ganze Cluster
set ORALCE_HOME=/u01/app/11.2.0.4/grid %ORACLE_HOME/bin/cluvfy comp nodecon -n racdb01,racdb02 -verbose
User root , auf 1 Knoten für das ganze Cluster
set ORALCE_HOME=/u01/app/11.2.0.4/grid cd %ORACLE_HOME/bin ./srvctl add network -k 2 -S 192.168.183.0/255.255.255.0/bond3
User root , auf 1 Knoten für das ganze Cluster
set ORALCE_HOME=/u01/app/11.2.0.4/grid cd %ORACLE_HOME/bin ./srvctl config network ./oifcfg iflist
User root , auf 1 Knoten für das ganze Cluster
cd %ORACLE_HOME/bin ./srvctl add vip -n racdb01 -k 2 -A 192.168.183.224/255.255.255.0/bond3 ./srvctl add vip -n racdb02 -k 2 -A 192.168.183.226/255.255.255.0/bond3
User root , auf 1 Knoten für das ganze Cluster
VIP is zu diesem Zeitpunkt noch offline, bis der Listener die Resource anfordert und es online genommen wird.
cd %ORACLE_HOME/bin ./crsctl stat res -t | grep -C 2 vip ./oifcfg iflist ./srvctl config nodeapps
User oracle GRID , Knoten 1
#Als user Oracle GRID set ORALCE_HOME=/u01/app/11.2.0.4/grid %ORACLE_HOME/bin/netca & # the create LISTENER_GPI ; Check carefully that you use network 2
Per Befehlt:
./srvctl add listener -l LISTENER_GPI -s -p 1521 -k 2
User oracle, auf jeden Knoten
lsnrctl status listener LISTENER_PL
User oracle, auf jeden Knoten
vi $TNS_ADMIN/tnsnames.ora #add entry local listner listener_net2_racdb01_GPI listener_net2_racdb01_GPI=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=racdb01-GPI-vip)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=192.162.183.224)(PORT=1521)(IP=FIRST)))) #add entry local listner listener_net2_racdb02_GPI listener_net2_racdb02_GPI=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=racdb02-GPI-vip)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=192.162.183.226)(PORT=1521)(IP=FIRST))))
User oracle DB, Knoten 1
export ORACLE_SID=GPIDB1 sqlplus / AS sysdba SHOW parameter listner ALTER system SET LISTENER_NETWORKS='((NAME=network2)(LOCAL_LISTENER=listener_net2_racdb01_GPI)(REMOTE_LISTENER=listener_net2_racdb02_GPI))' sid='GPIDB1' ALTER system SET LISTENER_NETWORKS='((NAME=network2)(LOCAL_LISTENER=listener_net2_racdb02_GPI)(REMOTE_LISTENER=listener_net2_racdb01_GPI))' sid='GPIDB2';
User oracle DB, Knoten 1
sqlplus / as sysdba sql>alter system register;
User oracle, Externer Rechner
#tnsnames Eintrag für das neue Netz hinzufügen vi $TNS_ADMIN/tnsnames.ora tnsping new_GPI_db sqlplus system@new_GPI_db
Metalink: