Benutzer-Werkzeuge

Webseiten-Werkzeuge


dba:install_solaris_10_x86_11g

Installation Oracle 11g Single Instance auf Solaris x64 mit Oracle ASM Disk

Vorbereitungen

Download Software

System

Überprüfen und System einstellen auch mit der Solaris Management Console

/usr/sadm/bin/smc &

Speicher > 1GB

/usr/sbin/prtconf | grep "Memory size"

Swap > einfach bis doppelter Hauptspeicher (je nach RAM)

/usr/sbin/swap -l

Was für eine Architektur

/bin/isainfo -kv

Genügend Plattenplatz tmp > 1GB

df -h /tmp

Genügend Platz für die Installation > 5GB, unter /opt

df -h

Netzwerk

Zielsystem Netzwerkstack überprüfen, Namensauflösung einreichten etc siehe auch ⇒ Netzwerkkarte einrichten

OS Software Stand

Version OS ermitteln
siehe auch den Abschnitt dba:10g_11g_upgrade_sparc_solaris#betriebssystem_voraussetzungen_ueberpruefen_und_bei_bedarf_optimieren_nachinstallieren

$uname -a
SunOS solaris01 5.10 Generic_141445-09 i86pc i386 i86pc
$cat /etc/release
Solaris 10 10/09 s10x_u8wos_08a X86

Package Requirements prüfen

Benötigt wird:

  • SUNWarc
  • SUNWbtool
  • SUNWhea
  • SUNWlibC
  • SUNWlibm
  • SUNWlibms
  • SUNWsprot
  • SUNWtoo
  • SUNWi1of
  • SUNWi1cs (ISO8859-1)
  • SUNWi15cs (ISO8859-15)
  • SUNWxwfnt
  • SUNWcsl

prüfen mit:

pkginfo -i SUNWarc SUNWbtool SUNWhea SUNWlibC SUNWlibms SUNWsprot SUNWtoo SUNWi1of SUNWi1cs SUNWi15cs SUNWxwfnt SUNWcsl

Falls ein Package fehlt, Solaris CD mounten und in Verzeichnis /cdrom/sol_10_1009_x86/Solaris_10/Product wechseln
und mit „pkgadd -d . <name_des_paketes>“ installieren.

pkgadd -d /cdrom/sol_10_1009_x86/Solaris_10/Product SUNWcsl

Patch Requirements

Für alle Datenbank Installationen

  Evlt. veraltet!?  
  * 120753-06: SunOS 5.10: Microtasking libraries (libmtsk) patch
  * 139574-03: SunOS 5.10

  • 120754-06: SunOS 5.10_x86 libmtsk
  • 119961-05: SunOS 5.10_x86: Assembler
  • 119964-14: SunOS 5.10_x86 Shared library patch for C++_x86
  • 137104-02
  • 139575-03
  • 139556-08
  • 141445-09 (11.2.0.2)
  • 141415-04

Überprüfen mit

# /usr/sbin/patchadd -p | grep patch_number(without version number)
wie
/usr/sbin/patchadd -p | grep 139574

Falls nicht gefunden über http://sunsolve.sun.com den Patch Laden (Sun Account UND Wartungsvertrag für Solaris notwendig!)

User anlegen

folgende Gruppen und User werden angelegt:

  • oinstall - Oracle Inventory group
  • dba - OSDBA group
  • oracle - Oracle software owner
  • oper - OSOPER group Optional
# gibt es die Datei oraInst.loc schon?
more /var/opt/oracle/oraInst.loc
inventory_loc=/u01/app/oracle/oraInventory
inst_group=oinstall

falls nicht, noch keine Oracle Umgebung angelegt

User und Gruppen anlegen:

/usr/sbin/groupadd oinstall
/usr/sbin/groupadd dba
mkdir /export/home
mkdir /export/home/oracle
/usr/sbin/ useradd -g oinstall -G dba -d /export/home/oracle -m oracle
passwd -r files oracle

Bash als default shell einrichten durch anpassen der /etc/passwd

oracle:x:100:100::/export/home/oracle:/usr/bin/bash

Umgebung für den Oracle User einrichten
Anmelden mit „su - oracle“ und„.profile“ setzen (siehe Arbeitsumgebung setzen und einrichten unter Windows und Linux) (An Solaris anpassen!)
„umask 022“ in .profile aufnehmen

Kernel Parameters on Solaris 10 einstellen

Parameter Replaced by Resource Control Recommended Value
noexec_user_stack NA 1
semsys:seminfo_semmni project.max-sem-ids 100
semsys:seminfo_semmns NA 1024
semsys:seminfo_semmsl process.max-sem-nsems 256
semsys:seminfo_semvmx NA 32767
shmsys:shminfo_shmmax project.max-shm-memory 4294967295
shmsys:shminfo_shmmni project.max-shm-ids 100

Global einstellen in der Datei /etc/system (Alle evlt. Paramter eingestellt, verhalten muss im Detail geprüft und optimiert werden!)

set noexec_user_stack=1
set semsys:seminfo_semmsl=256
set semsys:seminfo_semvmx=32767
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmseg=1024
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=1024
set semsys:seminfo_semaem=16384
set semsys:seminfo_semmns=16384
set semsys:seminfo_semmni=1024
set semsys:seminfo_semmap=1026
set semsys:seminfo_semmnu=2048
set semsys:seminfo_semume=256
set semsys:seminfo_semopm=200
set msgsys:msginfo_msgmap=1026
set msgsys:msginfo_msgmax=65535
set msgsys:msginfo_msgmnb=65535
set rlim_fd_cur=1024

System warm neu starten

Arbeiten mit Solaris 10 resource control facility project groups

Projekgruppen anzeigen

projects -l

Ist die Gruppe group.dba schon dabei? Wenn nicht ⇒

#anlegen und oracle User zuweisen
projadd -U oracle -p 100 group.dba
#Commentar
projmod -c 'Oracle DB Umgebung' group.dba
#Attribute setzen
projmod -sK "project.max-shm-memory=(privileged,4G,deny)" group.dba
projmod -sK "project.max-sem-ids=(privileged,100,deny)" group.dba
projmod -sK "project.max-shm-ids=(privileged,100,deny)" group.dba
projmod -sK "process.max-sem-nsems=(privileged,256,deny)" group.dba

den Oracle Anwender der projekt Gruppe zuweisen

usermod -K project=group.dba oracle
id -p oracle
uid=100(oracle) gid=100(oinstall) projid=100(group.dba)

Überprüfen als User Oracle

su - oracle
id -p
uid=100(oracle) gid=100(dba) projid=100(group.dba)
prctl -n project.max-shm-memory -i process $$

Shell Limits

Shell Limit Recommended Value
TIME -1 (Unlimited)ulimit -t
FILE -1 (Unlimited)ulimit -f
DATA Minium value: 1048576ulimit -d
STACK Minium value: 32768ulimit -s
NOFILES Minium value: 4096ulimit -n
VMEMORY Minium value: 4194304ulimit -v

anzeigen mit:

ulimit -a

Kann über /etc/profile gesetzt werden:

ulimit -n 65536
ulimit -s 16384

Verzeichnisstruktur anlegen

mkdir -p /opt/oracle
chown -R oracle:oinstall /opt/oracle
chmod -R 775 /opt/oracle/

ASM Platten einrichten

Auf dem System werden 4 Platten für ASM eingerichet, ASM übernimmt Raid Level (1) und Stripping, internal Redundancy Konzept

  • Platten „physikalisch“ am System einrichten (einbauen bzw. bei VM der Maschine zuweisen)
  • Maschine starten
  • Mit dem Befehlt Devices anlegen und binden
    devfsadm

    oder

    touch /reconfigure 
    reboot
  • Mit „format“ Platten auflisten und devices merken
  • Rechte auf die Platten setzen
    chown oracle:dba /dev/rdsk/c2t<n> # 0-3
    chmod 660 /dev/rdsk/c2t<n> # 0-3
    ls -lhL /dev/rdsk/c2t<n> # 0-3
  • Platten default partionieren und formatieren
     #format
    format>disk 5
    format>fdisk
    y
    format>volname
    asm5
    format>label
    format>verify
    format>p
    partition>print
    partition>6
    usr
    wm
    1
    19gb
    partition>print
    partition>label
    partition>quit
    format>verify
    format>quit

Installation starten

  • Quellen prüfen und entpacken
  • Installation ASM Software starten
  • Installation DB Software Standard Edition ohne Starterdb
  • Einrichten Listener und SQL*Net
  • Einrichten der ASM Instance
  • Einrichten einer Datenbank mit dem DBCA

Quellen prüfen und entpacken

Prüfen ob alles komplett ist (Größe und Checksum)

cksum solaris.x64_11gR2_grid.zip           # (1,065,998,995 bytes) (cksum - 2022125792)
2022125792
cksum solaris.x64_11gR2_database_1of2.zip  # (1,342,890,396 bytes) (cksum - 974026425)
974026425
cksum  solaris.x64_11gR2_database_2of2.zip # (1,005,450,726 bytes) (cksum - 351090271)
351090271

unzip solaris.x64_11gR2_grid.zip
unzip solaris.x64_11gR2_database_1of2.zip
unzip solaris.x64_11gR2_database_2of2.zip

Installation ASM starten

Display auf Display Host setzen, xhost <IP Adresse> auf Display Host

export DISPLAY=localhost:0.0
cd grid
 ./runInstaller

InstallerScreen durchgehen „Nur Grid Infrastuktur Software installieren“ auswählen,
Installationsverzeichnis entgegen dem Installeranweisungen unter /opt/oracle/product/11.2.0/grid gesetzt
Root.script laufen lassen
Configurieren für Standalone:

/opt/oracle/product/11.2.0/grid/perl/bin/perl -I/opt/oracle/product/11.2.0/grid/perl/lib -I/opt/oracle/product/11.2.0/grid/crs/install /opt/oracle/product/11.2.0/grid/crs/install/roothas.pl

Installation Standard Edition Software ohne Starterdb

Display auf Display Host setzen, xhost <IP Adresse> auf Display Host

export DISPLAY=localhost:0.0
cd database
 ./runInstaller

Installer Screen durchlaufen, bei Auswahl der Standard Edition können keine weiteren Optionen gewählt werden
Auf eigenes Oracle Home achten!

(im Prinzip gleicher Ablauf wie Installationsscreens 11g ), root script ausführen.

Fehler beim Linken

Exception String: Error in invoking target 'irman ioracle' of makefile

Ursache: Swap Space zu klein ⇒ online vergrößeren und auf „wiederholen“ klicken (siehe swap_space_bei_bedarf_erweitern )

Einrichten Listener und SQL*Net im Oracle DB Home

Auf richtes Home achten (DB Home!)
Mit dem netmgr Assistent SQL*Net Listener.ora einrichten und listener mit lsnrctl starten

Einrichten der ASM Instance

mit dem asmca

# Oracle Home auf Grid Home einstellen
asmca starten

Manuelles Anlegen einer ASM Instance
Erstellen der init.ora

INSTANCE_TYPE=ASM
DB_UNIQUE_NAME=+ASM
LARGE_POOL_SIZE=16M
ASM_DISKGROUPS='DB_DATA'
ASM_DISKSTRING =’/dev/rdsk/c2t*’
diagnostic_dest='/opt/oracle'

starten der instance

export ORACLE_SID=+ASM
sqlplus / as sysdba

SQL> startup

ORA-01078: failure in processing system parameters
ORA-29701: unable to connect to Cluster Synchronization Service

# Cluster Dienst starten!
# im Grid Home
crsctl start resource -all

# Nächster Startversuch
sqlplus / as sysdba

SQL> startup

ORA-01031: insufficient privileges

## !!!! 11G!!!!!  SYSASM !!!!

sqlplus / as sysasm

SQL> startup


ORA-15032: not all alterations performed
ORA-15017: diskgroup "DB_DATA" cannot be mounted
ORA-15063: ASM discovered an insufficient number of disks for diskgroup
"DB_DATA"

SQL> SELECT group_number, disk_number, mount_status, header_status, state, path FROM v$asm_disk;

no rows selected

### Darauf auchten das die /dev/rdsk/ Devices die Recht gesetzt sind!

#DISKGROUP anlegen
SQL>CREATE DISKGROUP DB_DATA_GRP NORMAL REDUNDANCY
    FAILGROUP failure_group_1 DISK   '/dev/rdsk/c2t1d0s6' NAME diska1, '/dev/rdsk/c2t2d0s6' NAME diska2,
    FAILGROUP failure_group_2 DISK   '/dev/rdsk/c2t3d0s6' NAME diskb1, '/dev/rdsk/c2t4d0s6' NAME diskb2;
    
    
    ERROR at line 3:
ORA-15106: missing or invalid operating system disk locator string

#nächster Versuch, OHNE KOMMA! und erstmal nur einen Disk...

SQL> create DISKGROUP DB_DATA_GRP normal redundancy 
      failgroup failure_group_1 DISK  '/dev/rdsk/c2t1d0s6'  
      failgroup failure_group_2 DISK  '/dev/rdsk/c2t3d0s6' ;

# Weitere dann hinzugefügt

SQL> alter diskgroup db_data_GRP add failgroup failure_group_1 DISK '/dev/rdsk/c2t2d0s6';	
SQL> alter diskgroup db_data_GRP add failgroup failure_group_2 DISK '/dev/rdsk/c2t4d0s6';

#geht!

SQL> select name,total_mb,USABLE_FILE_MB,FREE_MB from v$asm_diskgroup;

NAME                             TOTAL_MB USABLE_FILE_MB    FREE_MB
------------------------------ ---------- -------------- ----------
DB_DATA_GRP                         78825          39346      78719

    


Demnächst mehr ….

Probleme:

 SQL> drop diskgroup db_data_grp;
drop diskgroup db_data_grp
*
ERROR at line 1:
ORA-15039: diskgroup not dropped
ORA-29786: SIHA attribute GET failed with error [Attribute 'SPFILE' sts[200]
lsts[0]]

SQL> create spfile from memory;
create spfile from memory
*
ERROR at line 1:
ORA-29786: SIHA attribute GET failed with error [Attribute 'SPFILE' sts[200]
lsts[0]]


Ursache:  CRS Registry muss Verweis auf Listener und ASM Instance enthalten!

crsctl stat res | grep NAME\= |grep asm

#srvctl add listener -l LISTENER -s -o /opt/oracle/product/11.2.0/dbhome_1
#srvctl add asm -l LISTENER

siehe ⇒ http://it.toolbox.com/blogs/surachart/ora29786-siha-attribute-get-failed-with-error-attribute-spfile-sts200-lsts0-41226

Doppelter Eintrag im SPFILE für die ASM Diskgroups aus Wandlung init.ora nach Spfile und nachträgliches Hinzufügen einer Default Diskgroup.

...
+ASM.asm_diskgroups='DB_DATA','DB_DATA_GRP'#Manual Mount
*.asm_diskgroups='DB_DATA_GRP'

...
Lösung:
alter system reset asm_diskgroups scope=spfile sid='+ASM';
alter system reset asm_diskgroups scope=spfile;

Quellen

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
"Autor: Gunther Pipperr"
dba/install_solaris_10_x86_11g.txt · Zuletzt geändert: 2012/11/29 20:17 von Gunther Pippèrr