Cette question est restée sans réponse depuis la sortie d'Oracle 18c. À l'exception de la plate-forme Linux Ubuntu, la plupart des autres plates-formes Linux prennent en charge l'installation d'Oracle 18c. J'ai moi-même testé cela sur CentOS 7
et Oracle 18c a été installé sans aucun problème!
Il est regrettable que Oracle Corporation n'ait pas documenté la procédure d'installation en particulier pour Ubuntu Linux platform
, néanmoins une bonne chose est que le fichier image db_home.Zip
est générique, installable sur toutes les plateformes Linux.
Alors, comment puis-je installer Oracle 18c (Enterprise Edition) sur Ubuntu 18.04?
Commençons par Partie I de la session de réponse.
1.1. Espace de stockage requis
db_home.Zip
Dont la taille est de 4,3 Go. Si vous n'avez pas beaucoup d'espace de stockage dans le répertoire $HOME
Ou /tmp
, Vous pouvez utiliser un Pendrive d'une capacité d'au moins 8 Go pour conserver le fichier téléchargé db_home.Zip
Jusqu'à l'extraction est fait./opt
, Il devrait avoir un espace libre inutilisé d'au moins 13 Go car l'extraction Oracle elle-même consommera environ 9,3 Go d'espace de stockage. Utilisez la commande suivante pour vérifier l'espace de stockage de la partition /opt
:$ df -h /opt
Figure-1: Amount of free space available under "/opt" partition.
1.2. JDK-11 est installé sur votre ordinateur.
$ echo $Java_HOME
Figure-2: Installation of JDK-11 is already done.
1.3. Activer la prise en charge multi-arc (32-bit support).
Avant d'activer 32-bit support
Pour Ubuntu 18.04 64 bits, vérifions que vous avez une architecture de noyau 64 bits:
$ dpkg --print-architecture
Figure-3: This Computer system has 64-bit Kernel Architecture.
La prise en charge de Multi-Arch vous permet d'utiliser des bibliothèques 32 bits aux côtés de bibliothèques 64 bits.
$ dpkg --print-foreign-architectures
Figure-4: This Computer system also supports i386 Architecture (i.e. supports 32-bit Libraries too).
Si vous obtenez une sortie comme la figure 4, vous devez interrompre cette étape et passer à l'étape suivante 1.4.
Activez la prise en charge multi-Arch en tapant:
$ Sudo dpkg --add-architecture i386
$ Sudo apt-get update
Il commence à télécharger la mise à jour et à s'exécuter. Après cela, vous donnez la commande suivante:
$ Sudo apt-get dist-upgrade
Vérifiez maintenant la prise en charge d'i386 en tapant ce qui suit et vous devriez obtenir une sortie comme la figure 4:
$ dpkg --print-foreign-architectures
1.4. Installez les packages de dépendance requis pour l'installation d'Oracle.
Exécutez les commandes suivantes pour installer les packages dépendants:
$ Sudo apt-get update
$ Sudo apt-get upgrade
$ Sudo apt-get install build-essential libaio1 libaio-dev rpm rpm-common ndctl
1.5. Créer des liens symboliques.
Créez les liens logiciels requis afin que l'installation puisse trouver les fichiers dont elle a besoin aux endroits qu'elle attend d'eux:
$ Sudo mkdir -p /usr/lib64
$ Sudo ln -s /usr/bin/rpm /bin/
$ Sudo ln -s /usr/bin/awk /bin/
$ Sudo ln -s /usr/bin/basename /bin/
$ Sudo ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/
$ Sudo ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/
$ Sudo ln -s /usr/lib/x86_64-linux-gnu/libndctl.so.6.10.1 /usr/lib64/libndctl.so
$ Sudo ln -s /usr/lib/x86_64-linux-gnu/libnuma.so.1.0.0 /usr/lib64/libnuma.so
Découvrez à qui /bin/sh
Pointe:
$ ls -l /bin/sh
Figure-5: '/bin/sh' points towards 'dash' Shell
Si /bin/sh
Pointe vers dash
Shell (référez-vous à la figure 5 ci-dessus), alors vous êtes bon! Maintenant, vous passez cette étape et passez à l'étape suivante 1.6.
Figure-6: /bin/sh points towards 'bash' Shell
S'il s'agit de bash
Shell, comme illustré à la figure 6, créez les liens symboliques suivants:
$ Sudo ln -s /usr/lib/x86_64-linux-gnu/crti.o /usr/lib64/
$ Sudo ln -s /usr/lib/x86_64-linux-gnu/crtn.o /usr/lib64/
$ Sudo ln -s /usr/lib/x86_64-linux-gnu/crt1.o /usr/lib64/
1.6. Configurez les paramètres du noyau avec /etc/sysctl.conf
:
Pour configurer les paramètres du noyau, suivez simplement la procédure ci-dessous:
$ Sudo cp /etc/sysctl.conf /etc/sysctl.conf.back
$ Sudo vi /etc/sysctl.conf
Copiez et collez le contenu ci-dessous dans le fichier.
# ------------------------------------------------
# kernel parameter configuration for 18c installation
# 1. Configure kernel shared memory segment
# Calculate shmmax and shmall based on your Computer system RAM (physical memory).
# shmmax = (half the size of RAM in bytes) = (16 GB / 2) * 1024*1024*1024 = 8589934592 bytes
# (or) = (one quarter of RAM in bytes) = 4294967296 bytes
# shmall = shmmax/pagesize = 8589934592 / 4096 = 2097152 pages
# 2. Configure kernel semaphore parameters which are semmsl, semmns, semopm and semmni respectively.
# kernel.sem = semmsl semmns semopm semmni = 250 32000 100 128
#
# to display all kernel parameters, issue this command: sysctl -a
# to display current kernel parameters, issue this command: sysctl -p
# -------------------------------------------------------
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.shmmax = 8589934592
kernel.sem = 250 32000 100 128
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.ip_local_port_range = 9000 65500
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
Enregistrez et quittez l'éditeur vi.
Exécutez la commande suivante pour afficher les paramètres actuels du noyau.
$ Sudo sysctl -p
Figure-7: The list of Kernel Parameters configured in "/etc/sysctl.conf" file.
1.7. Configurer les limites du shell pour l'utilisateur Oracle
Historiquement, les limites de ressources pour les processus sont définies dans /etc/security/limits.conf
. Ce fichier est lu au moment de la connexion pour les utilisateurs qui se connectent avec PAM (via le fichier pam_limits.so
). Cependant, les services système démarrés via systemd
n'utilisent pas PAM pour la connexion, les limites de /etc/security/limits.conf
Sont donc ignorées.
Créez une connexion GUI et ouvrez un terminal avec Ctrl+Alt+T
Et exécutez la commande suivante:
$ ulimit -n -s -u -l
Figure-8: Limits for a GUI login with empty '/etc/systemsd/user.conf' file.
Effectuez une connexion non GUI à l'aide de la commande su <username>
, Puis exécutez la commande ulimit
:
$ su krishna
$ ulimit -n -s -u -l
Figure-9: Limits for a non-GUI login with empty '/etc/security/limits.conf' file.
1.7.1. Configurer les paramètres de limites pour les connexions GUI avec le fichier /etc/systemd/user.conf
:
Pour configurer les paramètres de limites system.conf
, Suivez simplement la procédure ci-dessous:
$ Sudo cp /etc/systemd/system.conf /etc/systemd/system.conf.back
$ Sudo vi /etc/systemd/system.conf
Copiez et collez les lignes ci-dessous dans le fichier.
DefaultLimitNOFILE=65535
DefaultLimitNPROC=65535
Enregistrez et quittez l'éditeur vi
.
Pour configurer les paramètres de limites dans user.conf
, Suivez simplement la procédure ci-dessous:
$ Sudo cp /etc/systemd/user.conf /etc/systemd/user.conf.back
$ Sudo vi /etc/systemd/user.conf
Copiez et collez les lignes ci-dessous dans le fichier.
DefaultLimitNOFILE=65000
DefaultLimitNPROC=65000
Enregistrez et quittez l'éditeur vi
.
Redémarrez l'ordinateur afin d'effectuer les modifications.
Observation : lorsque j'ai tenté de modifier le paramètre DefaultLimitSTACK en différentes valeurs dans les deux '/etc/systemd/system.conf' et '/etc/systemd/user.conf', le système a gelé ou s'est écrasé au redémarrage. Bien que j'ai réussi à restaurer le système la plupart du temps, mais à deux reprises, j'ai dû réinstaller le système d'exploitation Ubuntu à partir de zéro et c'était vraiment une période difficile!
Créez une connexion GUI et ouvrez un terminal avec Ctrl+Alt+T
Et exécutez la commande suivante:
$ ulimit -n -s -u -l
Figure-10: Limits for a GUI login with parameters configured in '/etc/systemsd/user.conf' file.
Effectuez une connexion non GUI à l'aide de la commande su <username>
, Puis exécutez la commande ulimit
:
$ su krishna
$ ulimit -n -s -u -l
Figure-11: Limits for a non-GUI login with empty '/etc/security/limits.conf' file.
1.7.2. Configurez les paramètres de limites pour les connexions non GUI avec le fichier /etc/security/limits.conf
:
Pour configurer les paramètres de limites dans limits.conf
, Suivez simplement la procédure ci-dessous:
$ Sudo cp /etc/security/limits.conf /etc/security/limits.conf.back
$ Sudo vi /etc/security/limits.conf
Copiez et collez le contenu ci-dessous dans le fichier.
#-------------------------------------------------------------------------------------------------
# Shell limits for users of Oracle 18c
# [domain] is either username or group or the wildcard *, for default entry or
# the wildcard %, can be also used with %group syntax, for maxlogin limit
# [type] is either soft (enforcing soft limits) or hard (enforcing hard limits)
# [item] is among core, data, fsize, memlock, nofile, rss, stack, cpu, nproc, as,
# maxlogin, maxsyslogins, priority, locks, sigpending, msgqueue, Nice, rtprio
#[domain][type] [item] [value]
#-------------------------------------------------------------------------------------------------
krishna soft nofile 60000
krishna hard nofile 65535
krishna soft nproc 60000
krishna hard nproc 65535
krishna soft stack 30000
krishna hard stack 32768
krishna soft memlock 3000000
krishna hard memlock 3145728
Enregistrez et quittez l'éditeur vi
.
Redémarrez l'ordinateur afin d'effectuer les modifications. Créez une connexion GUI et ouvrez un terminal avec Ctrl+Alt+T
Et exécutez la commande suivante:
$ ulimit -n -s -u -l
Figure-12: Limits for a GUI login with parameters configured in '/etc/systemsd/user.conf' file.
Effectuez une connexion non GUI à l'aide de la commande su <username>
, Puis exécutez la commande ulimit
:
$ su krishna
$ ulimit -n -s -u -l
Figure-13: Limits for a non-GUI login with parameters configured in '/etc/security/limits.conf' file.
Utilisez l'éditeur vi et éditez /etc/security/limits.conf
Afin de changer "krishna"
En "Oracle"
Car le nom d'utilisateur krishna
a été utilisé pour générer des captures d'écran et expliquer les concepts. Voici les paramètres souhaités pour l'installation d'Oracle:
Oracle soft nofile 60000
Oracle hard nofile 65535
Oracle soft nproc 60000
Oracle hard nproc 65535
Oracle soft stack 30000
Oracle hard stack 32768
Oracle soft memlock 3000000
Oracle hard memlock 3145728
1.7.3. Comment afficher les limites d'un processus utilisateur?
Pour afficher les limites d'un processus utilisateur, il vous suffit de "cat"
Le fichier de limites comme ceci:
$ Sudo cat /proc/PID/limits
Où PID
peut être trouvé en utilisant la commande ps
.
$ ps -a | grep -v tty2 | grep gnome-Shell
Figure-14: PID for gnome-Shell.
$ Sudo cat /proc/1202/limits
Figure-15: Soft limits for gnome-Shell (marked in red).
MaxStackSize
est 8 192 Ko (8388608% 1024), MaxProcess
est 63 077, MaxOpenFile
est 1 024 et MaxLockedMemory
est 16 384 Ko (16777216% 1024). Comparez ces valeurs avec la figure 11.
$ ps -a | grep -v tty2 | grep bash
Figure-16: PID for 'bash'.
$ Sudo cat /proc/2697/limits
Figure-17: Soft limits for 'bash' (marked in red).
MaxStackSize
est de 30 000 Ko (30720000% 1024), MaxProcess
est de 60 000, MaxOpenFile
est de 60 000 et MaxLockedMemory
est de 3 000 000 Ko (3072000000% 1024). Comparez ces valeurs avec la figure 13.
1.7.4. Ajoutez pam_limits à votre configuration PAM (modules d'authentification enfichables).
/etc/security/limits.conf
Permet de définir des limites de ressources pour les utilisateurs connectés via PAM. C'est un moyen utile d'empêcher, par exemple, les fourches explosives d'utiliser toutes les ressources du système. Puisque /etc/security/limits.conf
Est lu par pam_limits.so
, Vous devez vérifier que ce module est activé dans les fichiers: login, common-session, common-session-noninteractive, su
. Effectuez des sauvegardes avant d'apporter des modifications:
$ Sudo cp /etc/pam.d/login /etc/pam.d/login.back
$ Sudo cp /etc/pam.d/common-session /etc/pam.d/common-session.back
$ Sudo cp /etc/pam.d/common-session-noninteractive /etc/pam.d/common-session-noninteractive.back
$ Sudo cp /etc/pam.d/su /etc/pam.d/su.back
Exécutez les commandes suivantes:
$ echo 'session required pam_limits.so' | Sudo tee -a /etc/pam.d/login
$ echo 'session required pam_limits.so' | Sudo tee -a /etc/pam.d/common-session
$ echo 'session required pam_limits.so' | Sudo tee -a /etc/pam.d/common-session-noninteractive
$ echo 'session required pam_limits.so' | Sudo tee -a /etc/pam.d/su
Remarque : Consultez le fichier /var/log/auth.log
Pour toute erreur liée aux limites.
1.8. Configurez Linux sécurisé. Pour vérifier que l'ordinateur a configuré pour secured linux
, Tapez la commande:
$ sestatus
Figure-18: Output confirms that secured linux is not installed which is good.
Si vous obtenez une sortie comme ci-dessus Figure-18, alors vous êtes bon! Maintenant, vous passez cette étape et passez à l'étape suivante-1.9.
Si vous aviez installé le package policycoreutils
et si vous obtenez une sortie comme dans la figure 19 ci-dessous, alors vous êtes bon aussi! Vous interrompez cette étape et passez à l'étape suivante-1.9.
$ Sudo sestatus
Figure-19: Output of 'sestatus' command.
Comme vous avez déjà configuré Linux sécurisé, changez donc l'indicateur SELINUX
en permissif en éditant le fichier /etc/selinux/config
:
$ Sudo cp /etc/selinux/config /etc/selinux/config.back
$ Sudo vi /etc/selinux/config
Maintenant, définissez le drapeau SELINUX
sur permissive
:
SELINUX=permissive
Enregistrez et quittez l'éditeur vi
.
Pour confirmer votre modification, exécutez la commande suivante:
$ Sudo sestatus
Remarque : Étant donné que mon ordinateur n'était pas configuré pour secure linux
, Je n'ai pas pu produire de capture d'écran pour la commande ci-dessus!
1.9. Désactivez les pages immenses transparentes.
Transparent Huge Pages (THP) est un système de gestion de mémoire Linux qui réduit la surcharge des recherches TLB (Translation Lookaside Buffer) sur les machines avec de grandes quantités de mémoire en utilisant des pages mémoire plus grandes.
Cependant, les charges de travail de base de données fonctionnent souvent mal avec THP, car elles ont tendance à avoir des modèles d'accès mémoire plutôt que contigus. La recommandation générale pour MySQL
, MongoDB
, Oracle
, etc. est de désactiver THP sur les machines Linux pour garantir les meilleures performances.
Vous pouvez vérifier si THP est activé ou non en exécutant:
$ cat /sys/kernel/mm/transparent_hugepage/enabled
Figure-20: The output shows THP 'enabled' is set to default value '[madvise]' in this computer at present.
$ cat /sys/kernel/mm/transparent_hugepage/defrag
Figure-21: The output shows THP 'defrag' is set to default value '[madvise]' in this computer at present.
Si la figure 20 et la figure 21 affichent une sortie comme [never]
, Alors THP n'est ni activé ni en cours d'exécution.
Comment désactiver THP pendant toute la session en cours?
Maintenant, lancez les commandes suivantes:
$ su -
# echo never > /sys/kernel/mm/transparent_hugepage/enabled
# exit
$ cat /sys/kernel/mm/transparent_hugepage/enabled
Figure-22: The output shows THP enabled is stopped from this computer as indicated by the value '[never]'.
$ su -
# echo never > /sys/kernel/mm/transparent_hugepage/defrag
# exit
$ cat /sys/kernel/mm/transparent_hugepage/defrag
Figure-23: The output shows THP 'defrag' is stopped from this computer as indicated by the value '[never]'.
Comment désactiver THP de manière persistante et permanente pour toujours?
Cependant, une fois le système redémarré, il reviendra à sa valeur par défaut. Pour rendre le paramètre persistant sur Ubuntu 18.04, vous pouvez désactiver THP au démarrage du système en créant un fichier d'unité systemd
:
$ Sudo vi /etc/systemd/system/disable-thp.service
Copiez et collez ce qui suit dans le fichier /etc/systemd/system/disable-thp.service
:
# ---------------------------------------------------
# Disable THP in Ubuntu 18.04:
# ---------------------------------------------------
[Unit]
Description=Disable Transparent Huge Pages (THP)
[Service]
Type=simple
ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag"
[Install]
WantedBy=multi-user.target
Pour activer et exécuter le fichier /etc/systemd/system/disable-thp.service
Au démarrage, tapez les commandes suivantes:
$ Sudo systemctl daemon-reload
$ Sudo systemctl start disable-thp
$ Sudo systemctl enable disable-thp
Figure-24: The THP disable service is enabled to start up at boot time.
$ Sudo systemctl status disable-thp
Figure-25: The THP disable service has started successfully.
Maintenant, pour vérifier que THP est désactivé définitivement, tapez la commande suivante:
$ cat /sys/kernel/mm/transparent_hugepage/enabled
Figure-26: The output shows THP 'enabled' is turned off persistently as indicated by the value '[never]'.
$ cat /sys/kernel/mm/transparent_hugepage/defrag
Figure-27: The output shows THP 'defrag' is turned off persistently as indicated by the value '[never]'.
1.10.1. Utilisez la commande suivante pour déterminer la taille physique RAM sur le serveur:
$ grep MemTotal /proc/meminfo
Figure-28: Abundant Physical RAM is available (16 GB).
Remarque : Si la taille du physique RAM installé dans le système est inférieure à la taille requise (2 Go) , vous devez alors installer plus de mémoire avant de continuer.
1.10.2. Déterminez la taille de l'espace d'échange configuré:
$ grep SwapTotal /proc/meminfo
Figure-29: Abundant Memory is available for swap partition (16 GB).
Remarque : Si la taille de la mémoire d'échange dans le système est inférieure à la taille requise (voir le tableau ci-dessous qui est recommended by Oracle
), Alors vous devez configurer plus de mémoire avant de continuer.
RAM Swap Space
Between 1 GB and 2 GB 1.5 times the size of RAM
Between 2 GB and 16 GB Equal to the size of RAM
More than 16 GB 16 GB
1.10.3. Déterminez la taille de l'espace /tmp
Configuré:
$ df -h /tmp
Figure-30: Abundant Memory is available for '/tmp' partition (16 GB).
Remarque : Si la taille de la mémoire /tmp
Dans le système est inférieure à la taille requise (400 Mo), remplissez l'une des Etapes suivantes:
/tmp
Pour répondre à l'espace disque requis.TMP
et TMPDIR
dans le répertoire que vous souhaitez utiliser au lieu de /tmp
.1.10.4. Déterminez la quantité d'espace libre RAM et espace d'échange de disque sur le système:
$ free -h
Figure-31: A glance of Free RAM (physical) and swap (disk space) available on the system.
1.10.5. Déterminez si l'architecture du système peut exécuter le logiciel:
Vérifiez que l'architecture du processeur correspond à la version du logiciel Oracle à installer. Par exemple, vous devriez voir ce qui suit pour un système de bits x86-64
.
$ uname -m
Figure-32: The output shows that the computer system has 64-bit architecture.
Si vous ne voyez pas la sortie attendue, vous ne pouvez pas installer le logiciel sur ce système
1.10.6. Exemple de table de partition pour un SSD de 120 Go adapté à l'installation Oracle:
J'ai un SSD de 120 Go sur lequel Ubuntu a été installé. Voici mes détails de partition:
Sl.No: Partition File System Device Allocated Size Partition Type
1 efi FAT32 /dev/sda1 0.5 GB Primary
2 swap Swap area /dev/sda2 16 GB Primary
3 / ext4 with journaling /dev/sda3 6 GB Primary
4 /usr ext4 with journaling /dev/sda4 16 GB Primary
5 /opt ext4 with journaling /dev/sda5 44 GB Primary
6 /tmp ext2 /dev/sda6 16 GB Primary
7 /var ext4 with journaling /dev/sda7 8 GB Primary
8 /home ext4 with journaling /dev/sda8 13.5 GB Primary
J'ai organisé cette configuration de partition en particulier avec Oracle 18c (Enterprise Edition) à l'esprit
1.10.7. Vérifiez que la mémoire partagée (/dev/shm
) Est montée correctement avec une taille suffisante:
Exécutez la commande suivante pour vérifier la disponibilité de la mémoire partagée et sa taille totale:
$ df -h /dev/shm
Figure-33: The tmpfs filesystem mounted on '/dev/shm' and has 7.8 GB of total shared memory.
Pour réduire la limite de 7,8 Go à 7,0 Go, exécutez la commande suivante:
$ Sudo mount -o remount,size=7G /dev/shm
$ df -h /dev/shm
Figure-34: The '/dev/shm' shared memory size has changed from 7.8 GB to 7 GB.
Pour limiter définitivement toute modification de la taille de /dev/shm
Et pour vous assurer que le système de fichiers en mémoire est monté au redémarrage du système, placez cette entrée dans le fichier /etc/fstab
Comme suit:
Faites d'abord une sauvegarde:
$ Sudo cp /etc/fstab /etc/fstab.back
Modifiez le paramètre de taille à 8 Go:
$ echo '# To restrict any modification on the size of /dev/shm permanently' | Sudo tee -a /etc/fstab
$ echo '# To ensure that the in-memory file system is mounted when the system restarts' | Sudo tee -a /etc/fstab
$ echo 'tmpfs /dev/shm tmpfs defaults,size=8G 0 0' | Sudo tee -a /etc/fstab
$ grep tmpfs /etc/fstab
Figure-35: Entry of 'tmpfs' filesystem in '/etc/fstab' file mounted on '/dev/shm' with 8 GB shared memory.
Afin d'effectuer nos modifications effectuées sur /etc/fstab
Remontez immédiatement /dev/shm
:
$ Sudo mount -o remount /dev/shm
$ df -h /dev/shm
Figure-36: The '/dev/shm' shared memory size is 8 GB.
1.11.1. Configurez le fichier /etc/hosts
.
Pour connaître le contenu du fichier /etc/hosts
, Exécutez cette commande:
$ cat /etc/hosts
Figure-37: Contents of /etc/hosts file.
Le contenu de la capture d'écran de la figure 37 est reproduit ci-dessous, afin que tous ceux qui en ont besoin puissent copier et coller.
# <IP-address> <fully-qualified-machine-name> <machine-name>
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain
::1 localhost localhost.localdomain localhost6 localhost6.localdomain
Eh bien, l'ordre de résolution des noms est en fait défini dans /etc/nsswitch.conf
, Et vous devriez voir une entrée comme celle-ci:
hosts: files dns
Tapez la commande suivante pour voir l'enregistrement réel correspondant aux hôtes:
$ cat /etc/nsswitch.conf | grep hosts:
Figure-38: Hosts record in '/etc/nsswich.conf' where 'files' precedes dns in order which is good.
avertissement : si le fichier /etc/hosts
n'est pas configuré correctement, le programme d'installation Oracle échouera à un moment donné!
1.11.2. Configurez le fichier /etc/resolv.conf
.
Pour afficher les interfaces réseau disponibles sur le système, exécutez la commande suivante:
$ ip link show
Figure-39: The WiFi network adapter wlp5s0 is active, up and running.
Le fichier de configuration réseau netplan/.yaml
Doit être vérifié pour les détails de configuration. Pour afficher le contenu du fichier, exécutez la commande suivante:
$ cat /etc/netplan/01-network-manager-all.yaml
Figure-40: Network Manager file '01-network-manager-all.yaml' is not configured.
Découvrez si /etc/resolv.conf
Est un static file
Ou symlink
par la commande suivante:
$ ls -l /etc/resolv.conf
Figure-41: File '/etc/resolv.conf' is a symlink pointing to stub file 'stub-resolv.conf'.
Affichez le contenu de /etc/resolv.conf
Par la commande: cat /etc/resolv.conf
Figure-42: The contents of symlink '/etc/resolv.conf' having 127.0.0.53 as nameserver.
Le DNS indiqué par /etc/resolv.conf
Est 127.0.0.53
Mais pas le serveur de noms par défaut configuré pour DHCP. Exécutez la commande suivante pour trouver le serveur DNS par défaut:
$ systemd-resolve --status wlp5s0
Figure-43: The default DNS server for WiFi network adapter is 192.168.43.1.
Affichez le contenu de /run/systemd/resolve/resolv.conf
, Par la commande:
$ cat /run/systemd/resolve/resolv.conf
Figure-44: The contents of '/run/systemd/resolve/resolv.conf' indicating default nameserver. Compare with figure-43
A partir de la figure 44, vous pouvez observer que /run/systemd/resolve/resolv.conf
Est celui qui porte vraiment le serveur de noms par défaut 192.168.43.1.
Exécutez la commande suivante pour modifier le lien symbolique /etc/resolv.conf
Pour pointer le serveur DNS par défaut 192.168.43.1
Au lieu de 127.0.0.53
.
$ Sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
$ ls -l /etc/resolv.conf
Figure-45: File /etc/resolv.conf is a symlink pointing to default nameserver which is good.
Après avoir configuré sysmlink comme illustré à la figure-45, vous devez vous assurer que votre Wi-Fi est connecté, opérationnel et en exécutant la commande suivante:
$ nmcli device
Figure-45-a: Wi-Fi network interface adapter 'wlp5s0' is connected, up and running.
1.12. Désactivez le pare-feu Linux.
Si le pare-feu Linux est activé, vous devrez le désactiver, procédez comme suit:
$ Sudo ufw disable
$ Sudo ufw status
Figure-46: Disable Firewall before Oracle installation.
Remarque : N'oubliez pas d'activer le pare-feu une fois l'installation terminée à l'aide de la commande: $ Sudo ufw enable
La partie I se termine ici et partie II de la session de réponse commencera, qui traite de:
1) Create Oracle User, and Groups.
2) Creation of Oracle Mount, Base and Home directories.
3) Tips for Oracle account creation to download installable image file.
4) Extraction of image file.
5) Manipulation and altering of make files required for building binaries on Ubuntu Linux platform.
La partie III de la session de réponse commence maintenant.
runInstaller
. 3.1. Répertoire de nettoyage /tmp
: Exécutez la commande suivante pour nettoyer le répertoire /tmp
Comme première étape avant le début de l'installation:
$ cd /tmp
$ Sudo rm -rf *
3.2. Commencer l'installation:
Exécutez la commande runInstaller
à partir du répertoire de base Oracle uniquement. N'utilisez pas la commande runInstaller
qui réside à $Oracle_HOME/oui/bin/
Ou à tout autre emplacement pour installer Oracle Database, Oracle Database Client, or Oracle Grid Infrastructure
.
Dans le répertoire de base Oracle, exécutez la commande runInstaller
pour démarrer l'assistant de configuration de la base de données Oracle.
$ cd /Oracle18c/app/Oracle/product/18.0.0/dbhome_1
$ ./runInstaller
Figure-64: Execute 'runInstaller' from '/Oracle18c/app/Oracle/product/18.0.0/dbhome_1/' directory.
Figure-65: Launching Oracle Database 18c Installer.
Figure-66: Hit button Yes and go ahead with installation.
Figure-67: Select 'Set up Software Only' option and press Next.
Figure-68: Select 'Single instance database installation' option and press Next.
Figure-69: Select 'Enterprise edition' option and press Next.
Figure-70: Accept the default 'Intallation Location' and press Next.
Figure-71: Accept the default Oracle Inventor directory/Oracle18c/app/oralInventory and hit Next.
Figure-72: Select Operating System Groups and press Next.
Figure-73: This is Summary screen and Click button 'Save Response File' to take a copy of 'db.rsp' file.
Figure-74: Double-click "Documents" folder and then save a copy of 'db.rsp' file by clicking "Save" button.
Veuillez enregistrer le fichier de réponses db.rsp
Dans le répertoire ~/Documents
. C'est pour votre référence.
Figure-75: Now click Install button on the Summary Screen to proceed further.
Figure-76: Now Install Product is under progress…...
Figure-77: Execute both the scripts one after another with "root" login.
Ouvrez un 2e terminal en tapant Ctrl+AlT+T
. Connectez-vous en ligne de commande en tant qu'utilisateur root en tapant su –
:
$ su -
Copiez le chemin complet du premier script orainstRoot.sh
Et collez-le sur le terminal (commande préfixe avec ". "
)
# . /Oracle18c/app/oraInventory/orainstRoot.sh
Figure-78: Execution of first script orainstRoot.sh with "root" login.
Maintenant, copiez le chemin complet du deuxième script root.sh
Et collez-le sur le terminal (commande préfixe avec ". "
) Et appuyez sur <CR>
.
# . /Oracle18c/app/Oracle/product/18.0.0/dbhome_1/root.sh
Pendant l'exécution de ce script, il vous sera demandé "Enter the full pathname of the local bin directory: /usr/local/bin:"
. Vous acceptez simplement ce chemin "default bin directory"
En appuyant sur la touche <return>
.
Il y aura une autre question posée par la suite, "Do you want to setup Oracle Trace File Analyzer (TFA) now ? yes [no] : "
pour laquelle vous tapez "y"
Et l'installez.
Figure-79: Execution of second script root.sh with "root" login.
Une fois l'exécution des deux scripts terminée avec la connexion "root"
, Vous devez revenir à l'installateur et appuyer sur le bouton OK
pour poursuivre l'installation (voir capture d'écran ci-dessous figure-80).
Figure-80: After the execution of scripts hit OK button and proceed further.
Figure-81: Click Close button to finish Database software Installation.
Figure-82: Congratulations! You have successfully installed database software using runInstaller interactively!!
Ouvrez un terminal en appuyant sur Ctrl+Alt+T
Et tapez la commande suivante:
$ cp /Oracle18c/app/Oracle/product/18.0.0/dbhome_1/network/install/netca_typ.rsp ~/Documents/.
Tapez la commande cat netca_typ.rsp
Pour répertorier le contenu du fichier netca_typ.rsp
:
$ cat ~/Documents/netca_typ.rsp
Figure-83: The contents of typical 'netca_typ.rsp' capable of generating 'listener.ora' and 'sqlnet.ora'
Le fichier de réponses est bien que capable de créer listener.ora
Et sqlnet.ora
Mais pas tnsnames.ora
. Alors, essayons netca_typ.rsp
De transformer le type "custom"
Afin de générer un alias TNS!
Prenez d'abord une copie de netca_typ.rsp
Vers netca.rsp
Puis lancez des commandes par la suite:
$ cp ~/Documents/netca_typ.rsp ~/Documents/netca.rsp
$ sed -i 's/TYPICAL/CUSTOM/' ~/Documents/netca.rsp
$ sed -i 's/typical/custom/' ~/Documents/netca.rsp
À l'aide de l'éditeur vi
, copiez et ajoutez le contenu suivant à netca.rsp
:
#---------------------------------------------------------
# Instructions to create tnsnames.ora having TNS alias list
#----------------------------------------------------------
NSN_NUMBER=1
NSN_NAMES={"orcl"}
NSN_SERVICE={"orcl"}
NSN_PROTOCOLS={"TCP;UBUNTU-H170N-WIFI;1521"}
Avertissement : N'oubliez pas de remplacer UBUNTU-H170N-WIFI
Par votre Computer Hostname
.
Note-1: Pour imprimer votre computer hostname
, Exécutez cette commande: $ hostname
Note-2: Pour imprimer votre computer FQDN
, Exécutez cette commande: $ hostname -f
Ou $ hostname -A
Enregistrez et quittez l'éditeur vi
.
Le contenu de wised up netca.rsp
Qui est maintenant capable de générer tnsnames.ora
Est illustré ci-dessous:
$ cat ~/Documents/netca.rsp
Figure-84: The wised up 'netca.rsp' now generates not only 'listener.ora' and 'sqlnet.ora' but also 'tnsnames.ora'.
Exécutez l'outil d'aide à la configuration du réseau netca
:
$ /Oracle18c/app/Oracle/product/18.0.0/dbhome_1/bin/netca -silent -responseFile ~/Documents/netca.rsp
Figure-85: NETCA has configured Listener as well as Net Services successfully executed in silent mode.
Vérifiez l'état de l'écouteur en tapant ces commandes:
$ export Oracle_HOME=/Oracle18c/app/Oracle/product/18.0.0/dbhome_1
$ /Oracle18c/app/Oracle/product/18.0.0/dbhome_1/bin/lsnrctl status
Figure-86: Output of 'lsnrctl status' command.
Le Trace Level
Est défini off
comme le montre la figure 86 ci-dessus. Les valeurs autorisées pour le niveau de trace sont off
, user
, admin
et support
. Utilisez l'éditeur vi
et copiez et collez le contenu ci-dessous dans listener.ora
.
$ cd /Oracle18c/app/Oracle/product/18.0.0/dbhome_1/network/admin
$ vi listener.ora
#---------------------------------------------------------------------
# To prevent "Warning: Subscription for node down event still pending"
#---------------------------------------------------------------------
SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER=off
#-------------------------------------------------------------------------------
# Permitted values for trace level are "off", "user", "admin" and "support".
# OFF (equivalent to 0) provides no tracing.
# USER (equivalent to 4) traces to identify user-induced error conditions.
# ADMIN (equivalent to 6) traces to identify installation-specific problems.
# SUPPORT (equivalent to 16) provides trace information for troubleshooting
# information for support.
#--------------------------------------------------------------------------------
DIAG_ADR_ENABLED_LISTENER=off
TRACE_TIMESTAMP_LISTENER=true
TRACE_LEVEL_LISTENER=support
TRACE_DIRECTORY_LISTENER=/tmp
TRACE_FILE_LISTENER=listener.trc
LOG_DIRECTORY_LISTENER=/tmp
LOG_FILE_LISTENER=listener.log
Enregistrez et quittez l'éditeur vi
.
Exécutez les commandes suivantes pour afficher le contenu du fichier listener.ora
:
$ cd /Oracle18c/app/Oracle/product/18.0.0/dbhome_1/network/admin
$ cat listener.ora
Figure-87: 'listener.ora' contains the server-side network configuration parameters.
Utilisez vi
éditeur et ouvrez sqlnet.ora
Et copiez et collez le contenu ci-dessous dans le fichier:
$ cd /Oracle18c/app/Oracle/product/18.0.0/dbhome_1/network/admin
$ vi sqlnet.ora
#----------------------------------------
# set trace and log parameters for client
#----------------------------------------
DIAG_ADR_ENABLED=off
TRACE_UNIQUE_CLIENT=off
TRACE_TIMESTAMP_CLIENT=true
TRACE_FILELEN_CLIENT=100
TRACE_LEVEL_CLIENT=support
TRACE_DIRECTORY_CLIENT=/tmp
TRACE_FILE_CLIENT=sqlnet_client.trc
LOG_DIRECTORY_CLIENT=/tmp
LOG_FILE_CLIENT=sqlnet_client.log
#----------------------------------------
# set trace and log parameters for server
#----------------------------------------
TRACE_TIMESTAMP_SERVER=true
TRACE_FILELEN_SERVER=100
TRACE_LEVEL_SERVER=support
TRACE_DIRECTORY_SERVER=/tmp
TRACE_FILE_SERVER=sqlnet_server.trc
LOG_DIRECTORY_SERVER=/tmp
LOG_FILE_SERVER=sqlnet_server.log
#----------------------------------------
# set TNSPING Diagnostic Parameters
#----------------------------------------
TNSPING.TRACE_LEVEL=support
TNSPING.TRACE_DIRECTORY=/tmp
Enregistrez et quittez l'éditeur vi
.
Exécutez les commandes suivantes pour afficher le contenu du fichier sqlnet.ora
:
$ cd /Oracle18c/app/Oracle/product/18.0.0/dbhome_1/network/admin
$ cat sqlnet.ora
Figure-88: 'sqlnet.ora' is a profile configuration file that contain parameters used by both client and server.
Names.directory_path: Ce paramètre spécifie l'ordre des méthodes de dénomination utilisées lorsqu'un client tente une connexion à une base de données. Les valeurs possibles incluent: LDAP
, TNSNAMES
, HOSTNAME
, ONAMES
et EZCONNECT
.
Exécutez les commandes suivantes pour afficher le contenu du fichier tnsnames.ora
:
$ cd /Oracle18c/app/Oracle/product/18.0.0/dbhome_1/network/admin
$ cat tnsnames.ora
Figure-89: 'tnsnames.ora' file contains alias list.
Pour effectuer les modifications effectuées sur listener.ora
Et sqlnet.ora
, Rechargez listener
par la commande:
$ /Oracle18c/app/Oracle/product/18.0.0/dbhome_1/bin/lsnrctl reload
$ /Oracle18c/app/Oracle/product/18.0.0/dbhome_1/bin/lsnrctl status
Figure-90: Listener Parameters are set up successfully (compare with figure-86).
Voici la fin de Partie III et la prochaine Partie IV se compose de:
1) Generate database scripts by DBCA.
2) Create Orcale 18c database by running scripts.
La partie IV de la session de réponse commence maintenant.
4.1. Exécutez DBCA:
Ouvrez un terminal en appuyant sur Ctrl+Alt+T
Et exécutez l'outil d'aide à la configuration de la base de données dbca
:
$ /Oracle18c/app/Oracle/product/18.0.0/dbhome_1/bin/dbca
Figure-91: Run database configuration assistance tool 'dbca'
Figure-93: Select 'Create a database operation' and press 'Next'.
Figure-94: Select 'Advanced configuration' mode and press 'Next'.
Figure-95: Select 'Deployment type' and press 'Next'.
Figure-96: Enter 'Global database name', 'SID', 'PDB name' then click 'Next' button.
Figure-97: Select storage option "Use template file for database storage attributes" and click 'Next'.
Figure-98: Select Fast Recovery Option "Specify Fast Recovery Area" and click 'Next'
Figure-99: Choose listener to register database and click 'Next'.
Figure-100: Configure Database Vault and Label Security and click 'Next'.
Figure-101: Choose Memory option " Use Automatic Shared Memory Management (ASMM)" and configure "SGA" and "PGA" shared memory size and then hit menu 'Sizing'.
Figure-102: Specify "Processes" Number then hit menu "Character Sets".
Figure-103: Select "Unicode character" set and hit menu "Connection mode"
Figure-104: Select Dedicated server mode and hit "Sample Schemas"
Figure-105: Mark checkbox to "add sample schemas to the database" and then hit "Next".
Figure-106: Select "Configure Enterprise Manager (EM) database express " and specify port. Click 'Next'
Figure-107: Specify passwords for SYS, SYSTEM, PDBADMIN separately or select "Use the same passwords for all accounts". Click 'Next'.
Figure-108: Uncheck "Create database" checkbox to avoid creation of a database and check "Generate database creation scripts" checkbox. Click "Next" button.
Figure-109: Click "Save Response File " button.
Figure-110: Double-click "Documents" folder and then save a copy of dbca.rsp file by clicking "Save" button.
Enregistrez le fichier de réponses dbca.rsp
Dans le répertoire ~/Documents
. Ce fichier rsp
sera nécessaire ultérieurement.
Figure-111: After saving "dbca.rsp" file, click "Finish" button.
Figure-112: Finish database script generation by clicking "Close" button.
DBCA
: Ouvrez un terminal en appuyant sur Ctrl+Alt+T
Et exécutez le script Shell orcl.sh
Qui vous invitera à saisir les mots de passe des utilisateurs SYS
et SYSTEM
et vous choisissez des mots de passe durs assez pour être en sécurité.
Scripts path is: {Oracle_BASE}/admin/{DB_UNIQUE_NAME}/scripts
$ cd /Oracle18c/app/Oracle/admin/orcl/scripts
$ . orcl.sh | tee ~/Documents/create_database_scripts.log
Ouvrez maintenant le fichier journal create_database_scripts.log
À l'aide de l'éditeur vi
:
$ vi ~/Documents/create_database_scripts.log
Vous verrez l'erreur "ORA-12547: TNS:lost contact"
Comme le montre la figure 113 ci-dessous: changements Figure-113: "Error: ORA-12547: TNS:lost contact".
Maintenant, nous devons découvrir qui a causé ce problème.
Le script Shell orcl.sh
A appelé le script orcl.sql
À partir du début de l'action réelle. orcl.sql
A appelé un ensemble d'autres scripts sql
de manière séquentielle. Mettons des instructions de trace autour du premier script sql CloneRmanRestore.sql
Appelé par oracl.sql
Illustré dans la figure 114 ci-dessous:
Figure-114: Trace statements in 'orcl.sql' file around 'CloneRmanRestore.sql' at the point of calling.
Si vous exécutez à nouveau orcl.sh
, L'état d'exécution au point de trace est illustré ci-dessous Figure-115:
Figure-115: "Error: ORA-12547: TNS:lost contact" appears soon after entering into 'CloneRmanRestore.sql'.
Donc, ouvrez le fichier CloneRmanRestore.sql
Et placez des instructions de trace autour de l'instruction CONNECT
qui est la very first one upon entry
Comme le montre la figure-116:
Figure-116: Trace statements in 'CloneRmanRestore.sql' file around 'CONNECT' Statement.
Lorsque vous exécutez à nouveau le script Shell orcl.sh
, Au moment où l'état d'exécution entre dans le fichier CloneRmanRestore.sql
, L'erreur se produit comme indiqué dans la figure-117 ci-dessous:
Figure-117: Trace statements around 'CONNECT' prove that error occurred while executing 'CONNECT' statement.
Il est bon de connaître le point of origination
D'erreur et c'est l'instruction CONNECT
SQL qui a provoqué l'erreur. Il est maintenant temps de nettoyer le failed installation
Et de refaire l'installation jusqu'au point d'invocation de orcl.sh
. Alors, passons à l'étape suivante [ section 4.3 ] ci-dessous.
4.3. Nettoyer le système après une tentative d'installation échouée.
Avant de réinstaller, le système doit d'abord être nettoyé. Ouvrez un terminal en appuyant sur Ctrl+Alt+T
Et lancez les commandes suivantes:
$ su -
# rm -f /etc/oraInst.loc
# rm -f /etc/oratab
# cd /Oracle18c
# rm -rf *
# cd /opt/Oracle
# rm -rf *
# cd /opt
# rm -rf ORCLfmap
# cd /tmp
# rm -rf *
# exit
Maintenant redémarrez l'ordinateur puis passez à l'étape suivante [ section-4.4 ] pour réinstaller Oracle.
4.4.1. Extraction du fichier image Oracle db_home.Zip
.
Après avoir nettoyé le système, essayons de réinstaller. Suivez la procédure ci-dessous:
$ mkdir -p /Oracle18c/app/Oracle/product/18.0.0/dbhome_1
$ unzip /mnt/ShareMe/'Software(downloaded)'/'MySQL & Oracle'/'Oracle 18.c LINUX.X64_180000_db_home.Zip' -d /Oracle18c/app/Oracle/product/18.0.0/dbhome_1/
$ chmod -R 775 /Oracle18c
Rappelons que dans la section [ - 2.2.10 ], le fichier omkfix.sh
A été créé et enregistré dans le répertoire ~/scripts/
, Maintenant exécutez le script:
$ . ~/scripts/omkfix.sh
4.4.2. Installez le logiciel de base de données.
Pour installer le logiciel de base de données, suivez [ section 3.2 ] de la figure 64 à la figure 82.
4.4.3. Installez Listener.
Retournez à [ section-3.3 ], terminez Installation de LISTENER et retournez de retour immédiatement ici.
Pour vérifier que l'écouteur est actif, exécutez cette commande: $ ps -ef | grep tnslsnr
Figure-118: 'Listener' is alive and active in the background.
4.4.4. Générez des scripts pour créer une base de données.
Pour générer les scripts nécessaires à l'installation de la base de données, exécutez dbca
de manière interactive avec dbca.rsp
(Reportez-vous à figure-110
Qui montre que le fichier de réponse dbca.rsp
A été enregistré dans ~/Documents
dossier que nous allons utiliser maintenant!):
$ /Oracle18c/app/Oracle/product/18.0.0/dbhome_1/bin/dbca -responseFile /home/Oracle/Documents/dbca.rsp
Répétez les instructions dans [ Section 4.1 ] à figure-92
Jusqu'à figure-112
Afin de générer des scripts pour la création de la base de données.
Voici la fin de Partie IV et la session finale Partie V commence à couvrir "Dépannage et post-installation" .
La partie finale et finale de la partie V de la session de réponses commence maintenant.
5.1. Créer un fichier de mots de passe.
Maintenant, créez le fichier de mot de passe situé dans "$Oracle_HOME/dbs"
Dont le nom doit être résolu comme suit:
Nom de fichier du mot de passe Formule : orapw
+ Oracle_SID
= orapw
+ orcl
= orapworcl
.
Exécutez la commande orapwd
pour créer et ajouter l'utilisateur SYS
dans le fichier de mots de passe 'orapworcl'
Avec le mot de passe 'Oracle18c'
Comme indiqué ci-dessous:
$ /Oracle18c/app/Oracle/product/18.0.0/dbhome_1/bin/orapwd file=/Oracle18c/app/Oracle/product/18.0.0/dbhome_1/dbs/orapworcl password=Oracle18c ENTRIES=30 FORCE=Y IGNORECASE=Y format=12
5.2. Définissez Oracle Environment.
Pour définir l'environnement Oracle, créez un fichier ~/scripts/oenv.sh
Et copiez et collez le contenu indiqué dans cette section:
$ vi ~/scripts/oenv.sh
#!/bin/sh
#--------------------------------------------------------------------
# Oracle Environment Variables Settings
#--------------------------------------------------------------------
export Oracle_BASE=/Oracle18c/app/Oracle
export Oracle_HOME=$Oracle_BASE/product/18.0.0/dbhome_1
export PATH=/usr/sbin:/usr/local/bin:$PATH
export PATH=$Oracle_HOME/bin:$PATH
export LD_LIBRARY_PATH=$Oracle_HOME/lib:/lib:/usr/lib:/usr/local/lib
export Oracle_LIBPATH=$Oracle_HOME/lib
export CLASSPATH=$Oracle_HOME/jlib:$Oracle_HOME/rdbms/jlib:$CLASSPATH
export Oracle_HOSTNAME=$HOSTNAME
export ORA_INVENTORY=/Oracle18c/app/oraInventory
export DATA_DIR=$Oracle_BASE/oradata
export TNS_ADMIN=$Oracle_HOME/network/admin
export ADR_HOME=$Oracle_BASE/diag
#--------------------------------------------------------------------
export Oracle_SID=orcl
export Oracle_UNQNAME=orcl
export PDB_NAME=pdb
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
#--------------------------------------------------------------------
export TMP=/tmp; export TMPDIR=$TMP; export TEMP=$TMP
#--------------------------------------------------------------------
Modifiez l'autorisation du fichier:
$ chmod +x ~/scripts/oenv.sh
Ajoutez ce qui suit dans ~/.bashrc
Par cette commande:
$ echo '# Environment settings for Oracle ' | tee -a ~/.bashrc
$ echo '. ~/scripts/oenv.sh' | tee -a ~/.bashrc
Maintenant, redémarrez l'ordinateur et revenez ici pour continuer.
5.3. Créez des répertoires.
Ouvrez l'éditeur vi
et copiez et collez le contenu suivant:
$ vi ~/scripts/ocdir.sh
#!/bin/sh
umask 0027
mkdir -p /Oracle18c/app/Oracle
mkdir -p /Oracle18c/app/Oracle/admin/orcl/adump
mkdir -p /Oracle18c/app/Oracle/admin/orcl/dpdump
mkdir -p /Oracle18c/app/Oracle/admin/orcl/pfile
mkdir -p /Oracle18c/app/Oracle/audit
mkdir -p /Oracle18c/app/Oracle/cfgtoollogs/dbca/orcl
mkdir -p /Oracle18c/app/Oracle/fast_recovery_area/ORCL
mkdir -p /Oracle18c/app/Oracle/oradata/ORCL
mkdir -p /Oracle18c/app/Oracle/oradata/ORCL/pdb
mkdir -p /Oracle18c/app/Oracle/oradata/ORCL/pdbseed
mkdir -p /Oracle18c/app/Oracle/product/18.0.0/dbhome_1/dbs
Modifiez l'autorisation du fichier:
$ chmod +x ~/scripts/ocdir.sh
Exécutez le fichier de script ocdir.sh
:
$ . ~/scripts/ocdir.sh
5.4. Vérifiez le statut listener
.
Assurez-vous que l'écouteur est en place et écoute en arrière-plan avec la commande suivante:
$ ss -elpunt | grep -E "^Net|tnslsnr"
Figure-119: Oracle listener is up and running.
Si l'écouteur n'est pas en cours d'exécution, démarrez-le par la commande suivante:
$ lsnrctl start LISTENER
5.5. Signification de l'erreur ORA-12547
.
Comprenons d'abord "Que signifie ORA-12547
". Découvrez la signification de l'erreur ORA-12547
En exécutant Oracle binaire oerr
qui génère une description préenregistrée.
$ cd $Oracle_HOME/bin
$ ./oerr ORA 12547
Figure-120: The Meaning of error 'ORA-12547' displayed by Oracle binary utility 'oerr'.
La description de l'erreur ORA-12547
Par l'utilitaire Oracle oerr
, semble peu étrange. Pour faire simple, ORA-12547
Indique que le canal de communication a été interrompu. Il est le plus souvent jeté parce que l'autre extrémité du processus a disparu de façon inattendue. Cette erreur ORA-12547
Peut résulter de diverses causes. Nous allons voir un par un.
5.6. Paramètres de privilège pour Oracle
binaire
Le fichier binaire Oracle
ne doit pas seulement avoir le privilège 6751
Mais également la taille du fichier non-zero
, Comme le montre la figure 121 ci-dessous:
$ cd $Oracle_HOME/bin
$ ls -l Oracle
Figure-121: Oracle binary has '6751' privileges set and 'non-zero' files size which are good.
Si un privilège incorrect est défini, exécutez la commande suivante:
$ chmod 6751 Oracle
Si le fichier Oracle affiche zero file size
, Exécutez la commande suivante pour reconstruire:
$ cd $Oracle_HOME/bin
$ ./relink all
5.7. Taille de fichier non nulle de config.o
Binaire:
Le fichier objet config.o
Doit avoir une taille de fichier non nulle. Pour vérifier, émettez les commandes suivantes:
$ cd $Oracle_HOME/rdbms/lib
$ ls -l config.o
Figure-122: The screen displays that 'object.o' file has non-zero file size which is good.
S'il y a zero file size
, Exécutez la commande suivante pour reconstruire:
$ mv config.o config.o.bad
$ cd $Oracle_HOME/bin
$ ./relink all
5.8. Paramètres Oracle Base et Home dans le fichier orabasetab
:
Affichez le contenu du fichier pour la vérification des paramètres Oracle Base
et Home
.
$ cd $Oracle_HOME/install
$ cat orabasetab
Figure-123: Display of content of 'orabasetab' file showing the settings of Oracle 'Base' and 'Home' which are good.
Si des paramètres incomplets ou incorrects sont trouvés, modifiez le fichier $Oracle_HOME/install/orabasetab
À l'aide de l'éditeur vi
et corrigez les valeurs Base
et Home
.
5.9. Paramètres d'Oracle Base:
Exécutez le binaire orabase
pour vous assurer que le répertoire de base Oracle est correctement défini.
$ cd $Oracle_HOME/bin
$ ./orabase
Figure-124: Oracle Base directory setting is shown by binary 'orabase' which is good.
5.10. Paramètres de privilège pour le répertoire /proc
:
Assurez-vous que les privilèges corrects sont définis dans le répertoire /proc
. Exécutez la commande suivante:
$ ls -l /
Figure-125: The correct privilege settings 555 for /proc directory.
S'il y a de mauvais paramètres de privilège, corrigez-les manuellement en suivant la commande:
$ cd /
$ Sudo chmod 555 proc
5.11. Paramètres de privilège pour le répertoire /dev/null
:
Assurez-vous que les privilèges corrects sont définis dans le répertoire /dev/null
Qui doit être 0666
. Exécutez la commande suivante:
$ ls -l /
Figure-126: The correct privilege settings '666' for '/dev/null' directory.
S'il y a de mauvais paramètres de privilège, corrigez-les manuellement en suivant la commande:
$ cd /
$ Sudo chmod 666 /dev/null
5.12. Paramètres de sous-système liés aux binaires Oracle dans le fichier /ect/fstab
:
La structure de chaque entrée du fichier /etc/fstab
Se compose principalement des 6 champs suivants:
[Device] [Mount point] [Files System Type] [options] [Backup operations] [File System check order]
Le logiciel Oracle a été installé dans le système de fichiers sous le point de montage /opt
. Recherchez l'enregistrement dans le fichier /etc/fstab
Correspondant au point de montage /opt
Et inspectez le 4ème champ qui est [options]
. Si ce champ contient "nosuid"
, Remplacez-le par "suid"
.
Exécutez la commande suivante pour localiser l'entrée correspondant au point de montage /opt
:
$ cat /etc/fstab | grep /opt
Figure-127: The 4th field '[options]' contains "defaults" corresponding to '/opt' file systems which is good.
Le 4ème champ [options]
A la valeur "defaults"
Qui est un shortcut
et dont l'expansion est:
"rw,suid,dev,exec,auto,nouser,async"
Ainsi, la présence de "defaults"
Ne pose aucun problème. En l'absence de "defaults"
, S'il y a explicitement "nosuid"
, Modifiez-le manuellement en "suid"
Dans le fichier /etc/fstab
En utilisant vi
éditeur. Après la modification, redémarrez simplement votre système.
5.13. Désactivez la variable d'environnement EXTSHM
.
Comme Oracle ne prend pas en charge Extended Shared Memory
, La variable d'environnement EXTSHM
doit être désactivée. Exécutez la commande suivante:
$ env | grep EXTSHM
Figure-128: The output shows that the Environment variable 'EXTSHM' is undefined which is good.
Si la variable EXTSHM
est définie, alors unset
avec la commande suivante:
$ unset EXTSHM
5.14. Paramètres ulimit insuffisants pour la pile:
Reportez-vous à [section 1-7] " Configurer les limites du shell pour l'utilisateur Oracle " pour augmenter les limites de pile.
5.15. Simulation de l'erreur "ORA-12547: TNS:lost contact"
En utilisant sqlplus
binaire:
Il a été établi qu'une erreur ORA-12547
S'est produite lors de la tentative de création de la base de données Oracle 18c en exécutant des scripts générés à partir de DBCA [ reportez-vous à la section 4.2 et à la figure 113 ]. Nous avons découvert que la cause première de cette erreur était l'instruction CONNECT
. Donc, reproduisons cette erreur à nouveau en appelant l'instruction CONNECT
directement à partir du binaire sqlplus
.
Exécutez la commande sqlplus
comme indiqué ci-dessous:
$ $Oracle_HOME/bin/sqlplus /nolog
Émettez une instruction CONNECT
sur SQL
Invitez comme suit:
SQL> connect sys/Oracle18c as sysdba;
Figure-129: Simulation of "ORA-12547: TNS:lost contact" error by directly invoking 'sqlplus' binary.
Il est maintenant établi que l'erreur peut être recréée en exécutant sqlplus
binaire. En l'absence de code source, nous devons attaquer le problème avec toutes les armes qui restent dans notre arsenal. Dans un premier temps, essayons de générer des informations de trace décrivant la séquence d'événements se déroulant dans sqlplus
binaire.
5.16. Exécutez la commande strace
pour générer les informations de trace nécessaires pour creuser davantage:
Afin de générer le fichier de trace nécessaire pour une enquête plus approfondie sur l'instruction CONNECT
, utilisons la commande strace
avec sqlplus
comme indiqué ci-dessous:
$ strace -f -o /tmp/strace.log $Oracle_HOME/bin/sqlplus /nolog
Émettez une instruction CONNECT
sur SQL
Invitez comme suit:
SQL> connect sys/Oracle18c as sysdba;
Figure-130: Use 'strace' command to investigate into 'CONNECT' statement invoked from 'sqlplus' binary.
Maintenant, utilisez gedit
et ouvrez le fichier /tmp/strace.log
. Après le traçage du fichier entier, la zone à problème a été identifiée comme indiqué dans la figure 131 ci-dessous: Figure-131: "core dump" is found recorded in the 'strace.log' file.
Avant de poursuivre l'analyse de "core dump"
, Vérifions si le fichier core
a été généré dans le default directory
Avec les commandes suivantes:
$ pwd
$ ls
Figure-132: The output confirms that no 'core' file was generated in '/home/Oracle' directory.
Découvrez si le noyau est activé ou non avec la commande suivante:
$ ulimit -c
Figure-133: Output shows that 'core' is not enabled.
Pour activer le noyau, exécutez la commande suivante:
$ ulimit -c unlimited
Figure-134: Enable core file generation.
Assurez-vous que le noyau est activé par la commande suivante:
$ ulimit -c
Figure-135: Ouput shows that 'core' file generation is successfully enabled.
Encore une fois, exécutez la commande strace
comme indiqué au début de cette section 5.16 et vérifiez que le fichier core
a été généré avec succès:
$ pwd
$ ls
Figure-136: Output shows that 'core' file is generated successfully
Maintenant, exécutez le débogueur gdb
comme suit:
$ gdb -c core
Figure-137: Undefined Symbol in 'libpython3.6m.so.1.0' while invoking debugger 'gdb'.
Pour résoudre symbol lookup error
, Exécutez la commande suivante pour inspecter les dépendances de gdb
:
$ ldd /usr/bin/gdb
Figure-138: Output shows that only shared object 'libexpat.so.1' has been loaded wrongly from '$Oracle_HOME/lib'.
De la sortie about de la figure 138 ci-dessus, on peut facilement déduire que le problème est lié à la variable d'environnement LD_LIBRARY_PATH
.
Tout d'abord, exécutez la commande suivante pour localiser le chemin correct de libexpat.so.1
:
$ locate libexpat.so.1
Figure-139: The correct library path for 'libexpat.so.1' is '/lib/x86_64-linux-gnu/'
Déterminez la valeur actuelle de la variable d'environnement LD_LIBRARY_PATH
:
$ echo $LD_LIBRARY_PATH
Figure-140: '$Oracle_HOME/lib' appears as the first member in the 'value' of environment variable 'LD_LIBRARY_PATH'
Comme $Oracle_HOME/lib
Semble être le premier membre de LD_LIBRARY_PATH
, La bibliothèque de dépendances libexpat.so.1
A été chargée à partir de $Oracle_HOME/lib
Au lieu de /lib/x86_64-linux-gnu
. Ce LD_LIBRARY_PATH
Doit être désactivé jusqu'à ce que l'analyse du vidage de mémoire soit terminée. Plus tard, cette variable d'environnement LD_LIBRARY_PATH
Devrait être restaurée à son état d'origine.
Modifiez le fichier ~/scripts/oenv.sh
(Reportez-vous à la section 5.2) et commentez la ligne contenant LD_LIBRARY_PATH
, Afin que cette variable soit automatiquement désactivée après le redémarrage.
Vérifiez que la ligne est correctement commentée, avec la commande suivante:
$ cat ~/scripts/oenv.sh | grep LD_LIBRARY_PATH
Figure-141: The comment symbol "#" appears in front of line containing 'LD_LIBRARY_PATH'.
Redémarrez le système.
Découvrez que la valeur de LD_LIBRARY_PATH
Qu'elle soit vide ou non avec la commande suivante:
$ echo $LD_LIBRARY_PATH
Figure-142: Output shows that 'LD_LIBRARY_PATH' is empty, thus properly unset which is good.
Émettez à nouveau la commande suivante pour inspecter la liste de dépendances de gdb
afin de vous assurer que libexpat.so.1
Est chargé à partir du bon chemin:
$ ldd /usr/bin/gdb
Figure-143: Output shows that 'libexpat.so.1' is loaded correctly from '/lib/x86_64-linux-gnu'.
Maintenant, exécutez le débogueur gdb
et vérifiez qu'il fonctionne correctement:
$ gdb -c core
Figure-144: Debugger 'gdb' is found to be working perfectly.
Exécutez la commande bt
à l'invite gdb
, comme indiqué ci-dessous:
(gdb) bt
Figure-145: The screen shows the output of 'bt' command and observe that the result is too poor to analyze.
Le résultat de la commande bt
était trop médiocre et nous need more information
Pour analyse. Essayons another method
Avec la commande suivante:
$ gdb --core=core --exec=/Oracle18c/app/Oracle/product/18.0.0/dbhome_1/bin/Oracle
Exécutez la commande bt
sur gdb
Invite:
(gdb) bt
Figure-146: The result produced by the above command is more promising than in figure-145.
La fonction tzset()
définit les informations de conversion de temps utilisées par localtime()
et les fonctions associées. De plus, localtime()
n'est pas thread-safe car il renvoie un pointeur (struct tm *)
Vers une structure de données statique (voir l'en-tête <time.h>
Pour plus de détails) qui contient le résultat. Revoyons à nouveau le /tmp/strace.log
: Figure-147: The file "/etc/localtime" was the last one accessed before crash (core dump).
Le fichier "/etc/localtime"
Était le dernier consulté avant le crash (core dump). Du début jusqu'au vidage de mémoire, ce fichier "/etc/localtime"
A été consulté deux fois. Cela montre une condition de blocage car localtime()
est entrée récursivement (pour une deuxième fois) en raison de la gestion d'un certain signal et localtime()
n'est pas réentrant ou thread-safe, donc il bloque sur un fermer à clé.
Nous pouvons conclure que Oracle kernel
Plante dans diverses fonctions libc
(Standard Library for C Programming Language
), Par ex. localtime().
Qu'est-ce que le noyau Oracle?
Sur Ubuntu linux, chaque processus client Oracle tel que sqlplus or Toad
, Se connecte à tnslsnr
, qui fork()'s
puis exec()'s
un binaire "$Oracle_HOME/bin/Oracle"
, appelé Oracle kernel program
. Ce binaire est également connu sous le nom de Oracle Server Process
. Reportez-vous à figure-121
Dans [ section-5.6 ].
Montrons l'appel système execve
appelant Oracle
binaire enregistré par la commande strace
dans /tmp/strace.log
.
Figure-148: The Oracle Kernel binary "Oracle" invoked by "execve" system call.
C'est donc le Oracle kernel program
Qui était à l'origine de core dump
Et pour surmonter ce problème, il est nécessaire de supprimer les stubs libc*
Puis de reconstruire le binaire du noyau Oracle $Oracle_HOME/bin/Oracle
à nouveau.
Pour accomplir cette tâche, émettez les commandes suivantes:
$ cd $Oracle_HOME/lib/stubs
$ ls -l libc*
$ rm libc*
$ cd $Oracle_HOME/bin
$ ./relink all
Figure-149: Rebuild Oracle kernel program "$Oracle_HOME/bin/Oracle" afresh by issuing "./relink all" command and observe the resulting log file.
Après la reconstruction, inspectez son fichier journal $ORCALE_HOME/install/relink_2019-02-26_08-27.log
Pour vous assurer que toutes les reconstructions ont réussi.
Exécutez à nouveau la commande strace
et vérifions que notre Arch-méchant "ORA-12547: TNS:lost contact"
Persiste toujours!
$ strace -f -o /tmp/strace.log $Oracle_HOME/bin/sqlplus /nolog
Exécutez l'instruction CONNECT
à l'invite SQL comme suit:
SQL> connect sys/Oracle18c as sysdba;
Figure-150: Our Arch-villain "ORA-12547: TNS:lost contact" has vanished at last and replaced by "an idle instance".
Bingo! Notre Arch-méchant "ORA-12547: TNS:lost contact"
A enfin disparu!
L'instruction connect
a été exécutée avec succès et un idle instance
A également été généré.
5.17. Réexécutez les scripts générés à partir de DBCA
pour créer la base de données Oracle 18c:
Pour afficher la liste des scripts requis pour créer la base de données, exécutez ces commandes:
$ cd /Oracle18c/app/Oracle/admin/orcl/scripts
$ ls -l *.sql
Figure-151: List of scripts generated by 'DBCA' required to create Oracle 18c database.
Assurez-vous que listener
est déjà opérationnel avec la commande suivante:
$ ss -elpunt | grep -E "^Net|tnslsnr" | column -t
Figure-152: Oracle listener is running and listening on port 1521.
En référence à [voir la section 4.2 et la figure 113], essayons à nouveau de créer la base de données Oracle 18c en exécutant des scripts générés à partir de DBCA
et espérons que la base de données sera créée avec succès cette fois!
$ cd /Oracle18c/app/Oracle/admin/orcl/scripts
$ . orcl.sh | tee ~/Documents/create_database_scripts.log
Figure-153: Creation of Oracle 18c database has successfully begun! Notice the appearance of 'idle instance' inside redbox.
Voyons la capture d'écran de la fin de la création de la base de données ci-dessous: Figure-154: Creation of Oracle 18c database has come to end successfully!
Voyons le Services supported by the Listener
Avec la commande suivante:
$ lsnrctl status
Figure-155: Services supported by 'listener'.
Vérifions Oracle Version
Avec la commande suivante:
$ sqlplus / as sysdba
SQL> select instance_name, version from v$instance;
Figure-156: Display of Oracle Version.
Laissez-nous afficher Oracle Banner
Avec la commande suivante:
$ sqlplus / as sysdba
SQL> select banner from v$version;
Figure-157: Display of Oracle Banner.
6.1. Configurez le fichier /etc/oratab
.
Ajoutez le fichier "/etc/oratab"
En définissant l'indicateur de redémarrage de chaque instance sur 'Y'
.
$ echo 'orcl:/Oracle18c/app/Oracle/product/18.0.0/dbhome_1:Y' | Sudo tee -a /etc/oratab
Figure-158: Append "/etc/oratab" file with restart flag.
Affichez le contenu du fichier "/etc/oratab"
Avec la commande suivante:
$ cat /etc/oratab
Figure-159: Content of "/etc/oratab" file.
6.2. Démarrez PDB
avec l'instance de base de données.
Les variables d'environnement DATA_DIR
Et PDB_NAME
Nécessaires à la configuration de PDB
sont déjà exportées via ~/scripts/oenv.sh
. Exécutez la commande suivante pour vérifier:
$ env | egrep 'DATA_DIR=|PDB_NAME='
Figure-160: Environnment variables 'PDB_NAME' and 'DATA_DIR' are already set.
Ensuite, assurez-vous que l'instance de base de données est opérationnelle.
Si ce n'est pas le cas, appelez le fichier de script suivant pour l'exécuter:
$ . ~/scripts/ora_start.sh
Remarque : pour connaître le script ora_start.sh
, Reportez-vous à la section [ 6.5 ]
Activez les fichiers gérés Oracle (OMF) et assurez-vous que la PDB démarre au démarrage de l'instance:
$ sqlplus / as sysdba <<EOF
alter system set db_create_file_dest='${DATA_DIR}';
alter pluggable database ${PDB_NAME} save state;
exit;
EOF
Figure-161: Pluggable database will start along with database instance.
6.3. Restaurez LD_LIBRARY_PATH
À sa valeur d'origine.
Rappelez-vous que LD_LIBRARY_PATH
N'était pas défini (reportez-vous aux figures-137 et 138) dans ~/scripts/oenv.sh
. Maintenant, nous devons le restaurer en supprimant la comment # symbol
Dans la ligne contenant la chaîne LD_LIBRARY_PATH
À l'aide de n'importe quel éditeur. Pour vérifier que la modification est effectuée, exécutez la commande suivante:
$ cat ~/scripts/oenv.sh | grep LD_LIBRARY_PATH
Figure-162: Environnment variables 'LD_LIBRARY_PATH' is restored to its original value by removing comment '#' symbol (compare with figure-140).
6.4. Activez le pare-feu.
Dans section-1.12 , le pare-feu était désactivé, ce qui était une condition préalable. Maintenant, il peut être restauré. Pour activer le pare-feu, exécutez la commande suivante:
$ Sudo ufw enable
Figure-163: Firewall successfully enabled.
Pour vérifier l'état du pare-feu, exécutez la commande suivante:
$ Sudo ufw status
Figure-164: Firewall status is active
6.5. Démarrer/arrêter des scripts pour la base de données.
Il est important de rappeler que les variables d'environnement Oracle ont déjà été définies à l'aide du fichier ~/scripts/oenv.sh
Et sont ajoutées dans le fichier ~/.bashrc
Pour être exécutées lors de la connexion. Reportez-vous à la section-5.2.
Créez deux scripts ora_start.sh
Et ora_stop.sh
Respectivement qui peuvent être appelés comme le service startup/shutdown
.
Maintenant, créez ora_start.sh
À l'aide de l'éditeur vi
.
$ vi ~/scripts/ora_start.sh
Copiez et collez le contenu ci-dessous dans le fichier.
#!/bin/sh
lsnrctl start
dbstart $Oracle_HOME
Enregistrez et quittez l'éditeur vi.
Maintenant, créez ora_stop.sh
À l'aide de l'éditeur vi
.
$ vi ~/scripts/ora_stop.sh
Copiez et collez le contenu ci-dessous dans le fichier.
#!/bin/sh
lsnrctl stop
dbshut $Oracle_HOME
Enregistrez et quittez l'éditeur vi
.
chown -R Oracle:oinstall ~/scripts
chmod +x ~/scripts/ora_start.sh
chmod +x ~/scripts/ora_stop.sh
Après avoir édité le /etc/oratab
(Reportez-vous à la section 6.1), vous devriez pouvoir start/stop
La base de données avec les scripts suivants exécutés après vous être connecté au système en tant qu'utilisateur Oracle.
Pour démarrer Oracle Database Service, exécutez le script ora_start.sh
:
$ . ~/scripts/ora_start.sh
Figure-165: Run script 'ora_start.sh' to start database instance
Pour arrêter Oracle Database Service, exécutez le script ora_stop.sh
:
$ . ~/scripts/ora_stop.sh
Figure-166: Run script ora_stop.sh to shut down database instance
6.6. Créez une liste d'alias pour Oracle.
Créez une liste d'alias adaptés à Oracle dans ~/scripts/oalias.sh
Comme suit:
$ vi ~/scripts/oalias.sh
Ajoutez ce qui suit dans le fichier ~/scripts/oalias.sh
En utilisant la technique du copier-coller:
#----------------------------------------
# alias list of useful commands for Oracle
#----------------------------------------
alias o='cd /Oracle18c'
alias op='cd /opt'
alias oo='cd /opt/Oracle'
alias ob='cd /Oracle18c/app/Oracle'
alias oi='cd /Oracle18c/app/oraInventory'
alias od='cd /Oracle18c/app/Oracle/oraData'
alias oh='cd /Oracle18c/app/Oracle/product/18.0.0/dbhome_1'
alias obin='cd /Oracle18c/app/Oracle/product/18.0.0/dbhome_1/bin'
alias olib='cd /Oracle18c/app/Oracle/product/18.0.0/dbhome_1/lib'
alias odbs='cd /Oracle18c/app/Oracle/product/18.0.0/dbhome_1/dbs'
alias olog='cd /Oracle18c/app/Oracle/cfgtoollogs'
alias odlog='cd /Oracle18c/app/Oracle/cfgtoollogs/dbca'
alias otfa='cd /Oracle18c/app/Oracle/tfa'
alias otfab='cd /Oracle18c/app/Oracle/tfa/bin'
alias os='cd /Oracle18c/app/Oracle/admin/orcl/scripts'
alias oad='cd /Oracle18c/app/Oracle/admin'
alias osid='cd /Oracle18c/app/Oracle/admin/orcl'
alias otns='cd /Oracle18c/app/Oracle/product/18.0.0/dbhome_1/network/admin'
Enregistrez et quittez l'éditeur vi
.
Modifier l'autorisation de fichier par la commande chmod
:
$ chmod +x ~/scripts/oalias.sh
Ensuite, exécutez les commandes suivantes pour ajouter la chaîne ~/scripts/oalias.sh
Dans le fichier ~/.bashrc
:
$ echo '#--------------------------------------------------------' | tee -a ~/.bashrc
$ echo '# alias list of useful commands for Oracle' | tee -a ~/.bashrc
$ echo '#--------------------------------------------------------' | tee -a ~/.bashrc
$ echo '. ~/scripts/oalias.sh' | tee -a ~/.bashrc
Fermez maintenant votre terminal actuel et ouvrez un nouveau terminal avec Ctrl+Alt+T
Et lancez la commande suivante:
$ alias
Figure-167: Very useful alias list for Oracle.
Vous verrez le list of aliases
Pour Oracle affiché à l'écran.
La jubilation et la joie étaient non seulement dans l'installation réussie d'Oracle-18c (Enterprise Edition) sur Ubuntu 18.04 mais aussi dans le " apprivoisement " de Oracle Software
Pour coexister avec tous les autres logiciels installés sous la partition /opt
(refer figure-57)
!
Ceci termine l'installation d'Oracle 18c (Enterprise Edition)
Sur Ubuntu 18.04! Profitez d'Oracle 18c (Enterprise Edition)
!!
Commençons par Partie II de la session de réponse.
2.1. Utilisateur et groupes.
2.1.1. Créer des groupes Oracle.
Création du groupe d'inventaire oinstall
.
$ Sudo groupadd -g 54321 oinstall
Création du groupe OSDBA dba
.
$ Sudo groupadd -g 54322 dba
Autres groupes : vous pouvez créer les groupes suivants en fonction de vos besoins, sinon, sautez-les tous.
$ Sudo groupadd -g 54323 oper
$ Sudo groupadd -g 54324 backupdba
$ Sudo groupadd -g 54325 dgdba
$ Sudo groupadd -g 54326 kmdba
$ Sudo groupadd -g 54327 asmdba
$ Sudo groupadd -g 54328 asmoper
$ Sudo groupadd -g 54329 asmadmin
$ Sudo groupadd -g 54330 racdba
2.1.2. Créer le propriétaire/utilisateur du logiciel Oracle Oracle
.
$ Sudo useradd -u 54321 -m -s /bin/bash -g oinstall -G dba Oracle
In this command:
• -u option specifies the numerical value of user’s ID.
• -m option specifies to create a home for Oracle user: /home/Oracle.
• -s option specifies the Shell associated with login which is /bin/bash.
• -g option specifies the primary group oinstall.
• -G option specifies the secondary groups dba.
Si vous n'aviez pas créé " d'autres groupes " [section-2.1.1], alors vous sautez ceci.
Sinon, vous les ajoutez à l'utilisateur Oracle
:
$ Sudo usermod -a -G oper,backupdba,dgdba,kmdba,asmdba,asmoper,asmadmin,racdba Oracle
Définissez le mot de passe de l'utilisateur Oracle
:
$ Sudo passwd Oracle
Assurez-vous que l'utilisateur Oracle
et les groupes associés sont créés comme prévu:
$ id Oracle
change Figure-47: User Oracle and its associated groups.
Assurez-vous que le groupe principal d'utilisateurs Oracle
est oinstall
:
$ id -gn Oracle
Figure-48: User Oracle primary group is 'oinstall'.
2.1.3. Ajouter l'utilisateur Oracle dans le groupe sudoers:
Pour inclure Oracle
utilisateur avec le groupe sudoers Sudo
, exécutez la commande suivante:
$ Sudo usermod -a -G Sudo Oracle
Afin de vous assurer que l'utilisateur Oracle
est associé au groupe Sudo
, tapez la commande:
$ id Oracle
Figure -49: User 'Oracle' is also with group 'Sudo'.
2.1.4. Vérifiez que l'utilisateur nobody
existe:
$ id nobody
Figure-50: Ouput shows that user 'nobody' does exist already.
Si l'utilisateur nobody
n'existe pas, entrez la commande suivante pour le créer:
$ Sudo useradd nobody
2.2. Répertoires logiciels requis pour l'installation d'Oracle.
2.2.1. Point de montage Oracle.
Oracle 18.c sera installé sur /opt/Oracle
Qui deviendra automatiquement le point de montage pour l'installation d'Oracle. Mais le problème est de donner à Oracle
la propriété de l'utilisateur pour l'ensemble du répertoire /opt/Oracle
, Ce qui n'est pas acceptable car le répertoire /opt
A déjà hébergé de nombreux autres logiciels (voir figure 51 ci-dessous) . J'ai créé cette partition /opt
Avec l'intention de loger autant de progiciels indépendants que possible! Je ne veux pas dédier l'intégralité de la partition /opt
Exclusivement à l'installation de la base de données Oracle. Figure-51: Notice that partition '/opt' contains many important software packages which have already been installed.
Afin d'atteindre notre objectif, imaginons une astuce . Supposons le répertoire /opt/Oracle
, comme si un périphérique et montons ce périphérique sur /Oracle18c
comme point de montage. Maintenant, nous pouvons attribuer à l'utilisateur Oracle
la propriété de ce point de montage /Oracle18c
Et, par conséquent, nous évitons de nous mêler de cet appareil /opt/Oracle
Directement, sans aucun mal!
Maintenant, créez un point de montage /Oracle18c
À partir de /
Avec la commande suivante:
$ Sudo mkdir /Oracle18c
$ ls -l /
Figure-52: Command 'ls -l /' shows that the mount point '/Oracle18c' has 'root:root' ownership.
Créez un dossier Oracle
sous le répertoire /opt
Avec la commande suivante:
$ Sudo mkdir /opt/Oracle
$ ls -l /opt
Figure-53: Directory 'Oracle' under '/opt' has 'root:root' ownership.
De la figure 53 ci-dessus, notez que le dossier /opt/Oracle
A la propriété de root:root
.
Pour apporter des modifications dans /etc/fstab
, Exécutez les commandes suivantes:
$ Sudo cp /etc/fstab /etc/fstab.back
$ echo '# Oracle 18.c installation mount point' | Sudo tee -a /etc/fstab
$ echo '/opt/Oracle /Oracle18c none bind' | Sudo tee -a /etc/fstab
Assurez-vous que /etc/fstab
, L'entrée de point de montage /Oracle18c
Est correctement définie avec la commande suivante:
$ grep /opt/Oracle /etc/fstab
Figure-54: Directory '/opt/Oracle' is mounted "as if a file system" on '/Oracle18c' mount point.
Afin d'effectuer nos modifications effectuées sur /etc/fstab
, Émettez la commande suivante:
$ Sudo mount -a
Pour changer la propriété du point de montage /Oracle18c
De root:root
En Oracle:oinstall
, Exécutez cette commande:
$ Sudo chown -R Oracle:oinstall /Oracle18c
$ ls -l /
Figure-55: The ownership of '/Oracle18c' has changed from 'root:root' to 'Oracle:oinstall'.
Ainsi, nous avons réussi à monter /Oracle18c
Sans compromettre la propriété de /opt
Qui reste toujours à root:root
Intact! Bien sûr, c'est exactement ce que nous voulions! Pour vérifier ce fait, lancez la commande suivante:
$ ls -l /
Figure-56: The ownership of '/opt' partition still remains at 'root:root' untouched!
D'un autre côté, la propriété du dossier Oracle
sous le répertoire /opt
Est automatiquement passée de root:root
À Oracle:oinstall
Après le chargement des modifications de /etc/fstab
. Pour vérifier ce fait, exécutez la commande suivante:
$ ls -l /opt
Figure-57: The ownership of 'Oracle' folder under '/opt' partition has changed automatically from 'root:root' to 'Oracle:oinstall', after loading '/etc/fstab' using 'mount -a' command.
Il suffit de comparer la figure 57 ci-dessus avec la figure 53.
Maintenant, l'installation d'Oracle est confinée et restreinte dans le sous-répertoire /opt/Oracle
Et nous avons interdit à Oracle de prendre la totalité de la partition /opt
, Conquérant ainsi Oracle carrément! L'astuce que nous avons conçue contre Oracle a vraiment fonctionné!
Nous avons non seulement protégé les programmes déjà installés dans la partition /opt
(Voir figure 51), mais nous avons également laissé la place à une future installation de nouveaux progiciels aussi longtemps que l'espace de stockage le permet. Le logiciel Oracle est maintenant obligé d'exister pour en faire partie, sans aucun privilège spécial sur les autres progiciels du répertoire /opt
.
2.2.2. Répertoire de base Oracle
Les directives Optimal Flexible Architecture (OFA)
d'Oracle vous recommandent d'utiliser un chemin d'accès similaire au suivant pour le répertoire de base Oracle: /mount_point/app/Oracle_sw_owner
Connectez-vous au système en tant qu'utilisateur Oracle
ou utilisez cette commande:
$ su - Oracle
Créez le répertoire de base Oracle ( n'utilisez pas Sudo ) avec la commande suivante:
$ mkdir -p /Oracle18c/app/Oracle
$ exit
2.2.3. Répertoire Oracle Inventary
Le répertoire Oracle Inventory oraInventory
stocke un inventaire de tous les logiciels installés sur le système. Il est requis et partagé par toutes les installations de logiciels Oracle sur un seul système. La première fois que vous installez le logiciel Oracle sur un système, Oracle Universal Installer
Vous invite à spécifier le chemin d'accès à ce répertoire. Oracle vous recommande de choisir le chemin suivant: Oracle_base/oraInventory
Remarque-1: Oracle Universal Installer
Crée le répertoire que vous spécifiez et définit automatiquement le propriétaire, le groupe et les autorisations appropriés. You do not need to create it
.
Remarque-2: Si vous effectuez une installation de base de données Oracle et que vous définissez $Oracle_BASE
Pour l'utilisateur Oracle sur le chemin /Oracle18c/app/Oracle
avant l'installation et accordez 755
des autorisations à Oracle pour ce chemin, puis Oracle Universal Installer (runInstaller) crée le répertoire Oracle Inventory un niveau au-dessus de $Oracle_BASE
dans le chemin Oracle_BASE/../oraInventory
, le chemin Oracle Inventory est donc /Oracle18c/app/oraInventory
(voir figure-71)
Attention: Toutes les installations de logiciels Oracle dépendent de ce répertoire. Assurez-vous de le sauvegarder régulièrement. Ne supprimez ce répertoire que si vous avez complètement supprimé tous les logiciels Oracle du système.
2.2.4. Oracle Home Directory
Le répertoire de base Oracle est le répertoire dans lequel vous choisissez d'installer le logiciel pour un produit Oracle particulier. Vous devez installer différents produits Oracle ou différentes versions du même produit Oracle dans des répertoires de base Oracle distincts. Lorsque vous exécutez Oracle Universal Installer
, Il vous invite à spécifier le chemin d'accès à ce répertoire, ainsi qu'un nom qui l'identifie. Le répertoire que vous spécifiez doit être un sous-répertoire du répertoire de base Oracle. Oracle vous recommande de spécifier un chemin d'accès similaire au suivant pour le répertoire de base Oracle: Oracle_base/product/18.0.0/dbhome_1
Connectez-vous au système en tant qu'utilisateur Oracle ou utilisez cette commande:$ su - Oracle
Créez le répertoire de base Oracle comme suit:
$ mkdir -p /Oracle18c/app/Oracle/product/18.0.0/dbhome_1
$ Sudo chown -R Oracle:oinstall /Oracle18c
2.2.5. Redémarrer le système:
Redémarrez le système, puis connectez-vous à votre ordinateur en tant qu'utilisateur Oracle
.
2.2.6. Configurez les paramètres umask
et DISPLAY
.
Assurez-vous que umask
et DISPLAY
sont définis correctement en émettant ces commandes:
$ umask
Figure-58: Set umask 022.
$ echo $DISPLAY
Figure-59: Set DISPLAY=:0.
Si les paramètres umask
et DISPLAY
sont déjà définis correctement, comme illustré sur les figures 58 et 59 respectivement, alors vous êtes bon! Vous passez à l'étape suivante 2.2.7 pour créer votre compte Oracle.
Si les paramètres ci-dessus ne sont pas définis correctement, exécutez les commandes suivantes:
$ echo "umask 022" >> ~/.bash_profile
$ echo "export DISPLAY=:0" >> ~/.bash_profile
Redémarrez l'ordinateur, puis connectez-vous à l'ordinateur en tant qu'utilisateur Oracle
.
2.2.7. Créez votre compte Oracle.
Pour télécharger les fichiers d'image d'installation d'Oracle Database db_home.Zip
, Vous devez d'abord vous inscrire auprès d'Oracle Corporation et obtenir un username
et password
. Si vous n'avez pas de compte, vous feriez mieux de vous inscrire dès maintenant en utilisant ce lien: Créer un compte OracleFigure-60: Create your Oracle Account
Vous devez fournir ces username
et password
chaque fois que vous téléchargez à partir du site Web Oracle.
2.2.8. Téléchargez le fichier image db_home.Zip
.
Pour télécharger db_home.Zip
À partir du site Web Oracle, utilisez le lien suivant: Télécharger l'image OracleFigure-61: Select Accept License Agreement and then download Image file db_home.Zip.
2.2.9. Extraction du fichier image db_home.Zip
.
Pour extraire db_home.Zip
(Supposons que vous l'avez téléchargé et stocké dans le dossier ~/Downloads
) Dans le répertoire de base Oracle , émettez la commande suivante:
$ unzip ~/Downloads/'Oracle 18.c LINUX.X64_180000_db_home.Zip' -d /Oracle18c/app/Oracle/product/18.0.0/dbhome_1/
Si vous aviez téléchargé et stocké db_home.Zip
Dans une clé USB, puis pour extraire db_home.Zip
De la clé USB dans le répertoire d'origine Oracle Home , émettez la commande suivante:
$ unzip /media/krishna/SANTACRUZ/'Oracle 18.c LINUX.X64_180000_db_home.Zip' -d /Oracle18c/app/Oracle/product/18.0.0/dbhome_1/
where
'SANTACRUZ' is name of my pendrive, so replace it with your pendrive's name.
'krishna' is the username on this desktop, so replace it with your own username.
Mon système est un bureau dual-booted
Avec un SSD de 250 Go (Windows-10 installation
), Un autre SSD de 120 Go (Ubuntu 18.04 installation
) Et 1 TB hard disque avec trois partitions NTFS montées sur Ubuntu en tant que CodeWrite (read-only)
, ShareMe (read-only)
et Warehouse (read-write)
respectivement. Donc, ceci 1 TB le disque dur est partageable entre Windows-10 et Ubuntu 18.04. Toutes les copies des téléchargements installables non seulement pour Windows-10 mais aussi pour Ubuntu 18.04 sont conservées sous ShareMe
. Cette disposition permet de préserver l'espace de stockage sur les deux SSD! Pour décompresser, j'émets la commande suivante depuis mon bureau:
$ unzip /mnt/ShareMe/'Software(downloaded)'/'MySQL & Oracle'/'Oracle 18.c LINUX.X64_180000_db_home.Zip' -d /Oracle18c/app/Oracle/product/18.0.0/dbhome_1/
Remarque : Oracle recommande que le chemin du répertoire de base Oracle que vous créez soit conforme aux recommandations Oracle Optimal Flexible Architecture (OFA)
. Décompressez également les fichiers image d'installation uniquement dans ce répertoire de base Oracle que vous avez créé.
Ensuite, définissez l'autorisation de fichier appropriée au point de montage /Oracle18c
À l'aide de la commande chmod
:
$ chmod -R 775 /Oracle18c
Figure-62: Permission for '/Oracle18c' directory and its descendents is set to 775
Exécutez cette commande pour vérifier l'espace de stockage de /opt
Après avoir terminé le processus d'extraction:
$ df -h /opt
Figure-63: The storage space consumed by extraction process was around 9.3 GB (compare with Figure-1).
2.2.10. Alter Loader/Linker Flags dans makefiles
adapté à la plate-forme Ubuntu Linux.
La manipulation et la modification des fichiers make, en particulier flags
, est nécessaire pour construire avec succès des binaires sur la plate-forme Ubuntu Linux. Si des erreurs lancées dynamiquement lors de la construction (pendant database software installation process
Initiée de manière interactive par runInstaller
) rendront votre vie misérable, c'est quand même à cent pour cent assuré qu'il y aura une construction propre et agréable!
Créez un fichier de script omkfix.sh
À l'aide de l'éditeur vi
et ajoutez ce qui suit:
$ mkdir -p ~/scripts
$ vi ~/scripts/omkfix.sh
Copiez et collez le contenu ci-dessous dans le fichier.
#!/bin/sh
# Change the path below to point to your installation
export Oracle_HOME=/Oracle18c/app/Oracle/product/18.0.0/dbhome_1
# make changes in orld script
sed -i 's/exec gcc "\$@"/exec gcc -no-pie "\$@"/' $Oracle_HOME/bin/orald
# Take backup before committing changes
cp $Oracle_HOME/rdbms/lib/ins_rdbms.mk $Oracle_HOME/rdbms/lib/ins_rdbms.mk.back
cp $Oracle_HOME/rdbms/lib/env_rdbms.mk $Oracle_HOME/rdbms/lib/env_rdbms.mk.back
cp $Oracle_HOME/network/lib/env_network.mk $Oracle_HOME/network/lib/env_network.mk.back
cp $Oracle_HOME/srvm/lib/env_srvm.mk $Oracle_HOME/srvm/lib/env_srvm.mk.back
cp $Oracle_HOME/crs/lib/env_has.mk $Oracle_HOME/crs/lib/env_has.mk.back
cp $Oracle_HOME/odbc/lib/env_odbc.mk $Oracle_HOME/odbc/lib/env_odbc.mk.back
cp $Oracle_HOME/precomp/lib/env_precomp.mk $Oracle_HOME/precomp/lib/env_precomp.mk.back
cp $Oracle_HOME/ldap/lib/env_ldap.mk $Oracle_HOME/ldap/lib/env_ldap.mk.back
cp $Oracle_HOME/ord/im/lib/env_ordim.mk $Oracle_HOME/ord/im/lib/env_ordim.mk.back
cp $Oracle_HOME/ctx/lib/env_ctx.mk $Oracle_HOME/ctx/lib/env_ctx.mk.back
cp $Oracle_HOME/plsql/lib/env_plsql.mk $Oracle_HOME/plsql/lib/env_plsql.mk.back
cp $Oracle_HOME/sqlplus/lib/env_sqlplus.mk $Oracle_HOME/sqlplus/lib/env_sqlplus.mk.back
cp $Oracle_HOME/bin/genorasdksh $Oracle_HOME/bin/genorasdksh.back
#
# make changes changes in .mk files
#
sed -i 's/\$(ORAPWD_LINKLINE)/\$(ORAPWD_LINKLINE) -lnnz18/' $Oracle_HOME/rdbms/lib/ins_rdbms.mk
sed -i 's/\$(HSOTS_LINKLINE)/\$(HSOTS_LINKLINE) -lagtsh/' $Oracle_HOME/rdbms/lib/ins_rdbms.mk
sed -i 's/\$(EXTPROC_LINKLINE)/\$(EXTPROC_LINKLINE) -lagtsh/' $Oracle_HOME/rdbms/lib/ins_rdbms.mk
sed -i 's/\$(OPT) \$(HSOTSMAI)/\$(OPT) -Wl,--no-as-needed \$(HSOTSMAI)/' $Oracle_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(OPT) \$(HSDEPMAI)/\$(OPT) -Wl,--no-as-needed \$(HSDEPMAI)/' $Oracle_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(OPT) \$(EXTPMAI)/\$(OPT) -Wl,--no-as-needed \$(EXTPMAI)/' $Oracle_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(SPOBJS) \$(LLIBDMEXT)/\$(SPOBJS) -Wl,--no-as-needed \$(LLIBDMEXT)/' $Oracle_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SSKRMED)/\$(S0MAIN) -Wl,--no-as-needed \$(SSKRMED)/' $Oracle_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SSBBDED)/\$(S0MAIN) -Wl,--no-as-needed \$(SSBBDED)/' $Oracle_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SSKRSED)/\$(S0MAIN) -Wl,--no-as-needed \$(SSKRSED)/' $Oracle_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SKRNPT)/\$(S0MAIN) -Wl,--no-as-needed \$(SKRNPT)/' $Oracle_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SSTRCED)/\$(S0MAIN) -Wl,--no-as-needed \$(SSTRCED)/' $Oracle_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SSTNTED)/\$(S0MAIN) -Wl,--no-as-needed \$(SSTNTED)/' $Oracle_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SSKFEDED)/\$(S0MAIN) -Wl,--no-as-needed \$(SSKFEDED)/' $Oracle_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SSKFODED)/\$(S0MAIN) -Wl,--no-as-needed \$(SSKFODED)/' $Oracle_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SSKFNDGED)/\$(S0MAIN) -Wl,--no-as-needed \$(SSKFNDGED)/' $Oracle_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SSKFMUED)/\$(S0MAIN) -Wl,--no-as-needed \$(SSKFMUED)/' $Oracle_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SSKFSAGED)/\$(S0MAIN) -Wl,--no-as-needed \$(SSKFSAGED)/' $Oracle_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(DBGVCI)/\$(S0MAIN) -Wl,--no-as-needed \$(DBGVCI)/' $Oracle_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(DBGUCI)/\$(S0MAIN) -Wl,--no-as-needed \$(DBGUCI)/' $Oracle_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SSKECED)/\$(S0MAIN) -Wl,--no-as-needed \$(SSKECED)/' $Oracle_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/^\(Oracle_LINKLINE.*\$(Oracle_LINKER)\) \($(PL_FLAGS)\)/\1 -Wl,--no-as-needed \2/g' $Oracle_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/^\(TNSLSNR_LINKLINE.*\$(TNSLSNR_OFILES)\) \(\$(LINKTTLIBS)\)/\1 -Wl,--no-as-needed \2/g' $Oracle_HOME/network/lib/env_network.mk
sed -i 's/\$LD \$1G/$LD -Wl,--no-as-needed \$LD_RUNTIME/' $Oracle_HOME/bin/genorasdksh
sed -i 's/\$(GETCRSHOME_OBJ1) \$(OCRLIBS_DEFAULT)/\$(GETCRSHOME_OBJ1) -Wl,--no-as-needed \$(OCRLIBS_DEFAULT)/' $Oracle_HOME/srvm/lib/env_srvm.mk
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $Oracle_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $Oracle_HOME/crs/lib/env_has.mk;
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $Oracle_HOME/odbc/lib/env_odbc.mk
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $Oracle_HOME/precomp/lib/env_precomp.mk
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $Oracle_HOME/srvm/lib/env_srvm.mk;
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $Oracle_HOME/network/lib/env_network.mk
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $Oracle_HOME/ldap/lib/env_ldap.mk
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $Oracle_HOME/ord/im/lib/env_ordim.mk
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $Oracle_HOME/ctx/lib/env_ctx.mk
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $Oracle_HOME/plsql/lib/env_plsql.mk
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $Oracle_HOME/sqlplus/lib/env_sqlplus.mk
Enregistrez et quittez l'éditeur vi
.
Lors de l'exécution de ce script, Oracle_HOME
Sera exporté en tant que première ligne du script afin que le répertoire d'installation de l'ensemble du script soit correctement pointé. Exécutez maintenant le script omkfix.sh
:
$ chmod +x ~/scripts/omkfix.sh
$ . ~/scripts/omkfix.sh
Ceci est la fin de Partie II de l'installation et la prochaine Partie III commencera par la suite qui se compose de:
1) Installation of database software by runInstaller interactively.
2) Installation of Listener silently using response file 'rsp'.
Lors de ma tentative d'installation d'Oracle 18c (Enterprise Edition) sur Ubuntu 18.04, j'ai rencontré des obstacles à chaque étape. Vous devez continuer à résoudre chaque obstacle tel qu'il apparaît et avancer. Si vous n'avez pas de ténacité, vous abandonnerez!
Comme cette procédure d'installation pour Oracle 18c (Enterprise Edition) sur Ubuntu 18.04 est si longue, composée de 167 captures d'écran avec des instructions très détaillées (88 pages of Microsoft Word document containing both instructions and screenshots
). Il m'a fallu plus de 2 mois de travail continu pour l'installer et goûter le succès!
J'hésite à vider tout le contenu de cette session de réponses en une seule fois. Je suis sûr que cela créera de la confusion et ne servira peut-être pas le but recherché.
Mon intention est que ce matériel atteigne et profite à tous les lecteurs qui en ont besoin!
Ce que je propose est de diviser le matériel entier en 5 sessions de réponses (parties) et de les publier l'une après l'autre comme suit:
1. Partie-I : Pré-installation.
Oracle
, la configuration de Linux sécurisé et la désactivation du THP (Transparent Huge Pages) ./etc/hosts
fichier et /etc/resolv.conf
fichier et désactiver le pare-feu.2. Partie II : Création d'utilisateurs et de groupes Oracle.
db_home.Zip
à partir du site Web d'Oracle.particularly linker/loader flags suitable for Ubuntu Linux platform
) qui sont nécessaires pour créer dynamiquement des fichiers binaires pendant le processus d'installation du logiciel de base de données effectué par runInstaller
(Oracle Universal Installer) dans la Partie-III.3. Partie III : Installation du logiciel de base de données et du programme d'écoute
runInstaller
de manière interactive.netca_typ.rsp
est capable de générer listener.ora
et sqlnet.ora
fichiers uniquement mais pas tnsnames.ora
. Donc ntca_typ.rsp
est optimisé avec des instructions supplémentaires pour produire tnsnames.ora
automatiquement avec les deux autres fichiers.listener.ora
Le fichier est modifié pour définir les paramètres de configuration de trace et de journal. De même sqlnet.ora
Le fichier est également modifié pour définir les paramètres de configuration de trace et de journal non seulement côté client mais aussi côté serveur.4. Partie IV : Génération de scripts de base de données par DBCA et création de base de données à l'aide de scripts.
sql files
) en utilisant DBCA
et crée une base de données en exécutant les scripts manually
.automatically
en utilisant DBCA
de manière interactive ou silencieuse, les erreurs DBCA
lancées pendant la phase de création vous rendront perplexe et ne vous offriront pratiquement aucun indice pour les résoudre!manually
ouvre une opportunité de déboguer les erreurs parce que vous avez sql
scripts en main vous offrant un moyen de localiser le point of origination of error
et creuser plus loin.5. Partie-V : Dépannage et post-installation.
Version
et Banner
à l'aide de sqlplus
sont présentés comme preuve d'une installation réussie.start/stop
Scripts shell, configurez /etc/oratab
, configurer PDB pour démarrer avec l'instance de base de données, activer le pare-feu, restaurer LD_LIBRARY_PATH
et création d'une liste Oracle alias
utile.