Skip to content

Gestion du tnsname.ora depuis le virtual host

PhilippeLeroux edited this page Mar 6, 2018 · 2 revisions

Table of Contents


Problème du cache DNS sur les desktops

Sur tumbleweed le ping d'une adresse de scan retournait toujours la même IP, avec LEAP plus de problème.

Tester si l'adresse de scan fonctionne avec ~/plescripts/test_scan.sh

Si elle ne fonctionne pas ajouter dans ~/plescripts/local.cfg la variable DISABLE_DNS_CACHE=yes. Les scripts comme lscrs ou sqld désactiveront le cache quand ils seront exécutés puis le réactiveront au plus vite.

Sql Developper

  • sqld lance SqlDevelopper
  • sqlc lance sqlcl

Par défaut le script appel :

  • $HOME/sqldeveloper/sqldeveloper.sh
  • $HOME/sqldeveloper/sqldeveloper/bin/sql (sqlcl)

Les emplacements peuvent être modifiée avec les variables :

  • SQLDEVELOPER_PATH
  • SQLCL_PATH

Si la variable TNS_ADMIN n'est pas définie elle sera alors positionnée par défaut sur le répertoire ~/plescripts/tnsadmin


Gestion du fichier tnsnames.ora

Deux scripts sont disponibles :

  • ~/plescripts/shell/tnssqldev.sh

    Si la variable TNS_ADMIN n'est pas définie, le répertoire ~/plescripts/tnsadmin sera crée.

    Ce base sur les fichiers de configuration, les alias seront donc adaptés à l'architecture (SINGLE, RAC ou Dataguard)

    Utilisation :

    • tnssqldev.sh -db=foo : création d'un alias TNS pour se connecter sur le CDB.
    • tnssqldev.sh -db=foo -pdb=pdb01 : création d'un alias TNS pour se connecter sur la PDB pdb01.
  • ~/plescripts/shell/gen_tns_alias.sh

    Utilisé par le premier script, affiche sur stdout la définition de l'alias.

Exemple d'utilisation du script tnssqldev.sh

[kangs<<undef>>sqldeveloper]$ tnssqldev.sh -db=foo -pdb=pdb01
# Configuration for foo exist : [ok]

# foo #1 nodes.

# Update /home/kangs/sqldeveloper/tnsnames.ora
#     alias   FOO_PDB01
#     service pdb01_oci
#     server  'srvfoo01 srvtchouri01'

09h23> ~/plescripts/db/delete_tns_alias.sh -tnsalias=FOO_PDB01
# Delete alias FOO_PDB01 between lines 100 & $
09h23> sed -i '100,$d' ~/sqldeveloper/tnsnames.ora

09h23> ~/plescripts/shell/gen_tns_alias.sh -service=pdb01_oci -server_list='srvfoo01 srvtchouri01' -alias_name=FOO_PDB01 >> ~/sqldeveloper/tnsnames.ora

09h23> sed -i 's/FOO_PDB01 =$/FOO_PDB01 = #tnssqldev.sh/' ~/sqldeveloper/tnsnames.ora

La base foo étant en dataguard avec la base tchouri 2 alias sont crées.

  • Le premier permet de se connecter sur la 'Primary' :
     FOO_PDB01 = #tnssqldev.sh
     	(DESCRIPTION =
     		(CONNECT_TIMEOUT= 4) (RETRY_COUNT=20)(RETRY_DELAY=3)
     		(FAILOVER=on)
     		(LOAD_BALANCE=off)
     		(ADDRESS_LIST=
     			(ADDRESS = (PROTOCOL = TCP) (HOST = srvfoo01) (PORT = 1521) )
     			(ADDRESS = (PROTOCOL = TCP) (HOST = srvfoo02) (PORT = 1521) )
     		)
     		(CONNECT_DATA =
     			(SERVER = DEDICATED)
     			(SERVICE_NAME = pdb01_java)
     		)
     	)
    
  • Le second permet de se connecter sur la 'Pysical' en lecture seule :
     FOO_PDB01_STBY = #tnssqldev.sh
     	(DESCRIPTION =
     		(CONNECT_TIMEOUT= 4) (RETRY_COUNT=20)(RETRY_DELAY=3)
     		(FAILOVER=on)
     		(LOAD_BALANCE=off)
     		(ADDRESS_LIST=
     			(ADDRESS = (PROTOCOL = TCP) (HOST = srvfoo01) (PORT = 1521) )
     			(ADDRESS = (PROTOCOL = TCP) (HOST = srvfoo02) (PORT = 1521) )
     		)
     		(CONNECT_DATA =
     			(SERVER = DEDICATED)
     			(SERVICE_NAME = pdb01_stby_java)
     		)
     	)
    

Pour un base en RAC l'adresse de scan est utilisée :

FOO_PDB01 = #tnssqldev.sh
	(DESCRIPTION =
		(ADDRESS =
			(PROTOCOL = TCP)
			(HOST = foo-scan)
			(PORT = 1521)
		)
		(CONNECT_DATA =
			(SERVER = DEDICATED)
			(SERVICE_NAME = pdb01_java)
		)
	)

Exécuter sqldeveloper sur les serveurs de base de données

  • sqldeveloper peut être lancé depuis le serveur, ajouter l'option -Y à la commande ssh.

  • sql aka sqlcl par contre ne fonctionne pas du tout :

     $ cd $ORACLE_HOME/sqldeveloper/sqlcl/bin
     $ ./sql sys/Oracle12@pdb01_java as sysdba
     java.lang.NullPointerException
     		at oracle.dbtools.raptor.console.clone.ConsoleKeys.isViEditMode(ConsoleKeys.java:39)
     		at oracle.dbtools.raptor.console.clone.ConsoleKeys.loadKeys(ConsoleKeys.java:132)
     		at oracle.dbtools.raptor.console.clone.ConsoleKeys.loadKeys(ConsoleKeys.java:74)
     		at oracle.dbtools.raptor.console.clone.ConsoleKeys.<init>(ConsoleKeys.java:35)
     		at oracle.dbtools.raptor.console.clone.DbtoolsConsoleReader.<init>(DbtoolsConsoleReader.java:263)
     		at oracle.dbtools.raptor.console.clone.DbtoolsConsoleReader.<init>(DbtoolsConsoleReader.java:236)
     		at oracle.dbtools.raptor.console.SQLPlusConsoleReader.<init>(SQLPlusConsoleReader.java:36)
     		at oracle.dbtools.raptor.scriptrunner.cmdline.SqlCli.startConsole(SqlCli.java:217)
     		at oracle.dbtools.raptor.scriptrunner.cmdline.SqlCli.<init>(SqlCli.java:201)
     		at oracle.dbtools.raptor.scriptrunner.cmdline.SqlCli.main(SqlCli.java:365)
    

Augmenter la taille de la font de sqldeveloper

  • Rechercher le fichier ide.properties

     $ find ~/.sqldeveloper/ -name "ide.properties"
     ~/.sqldeveloper/system4.1.3.20.78/o.sqldeveloper.12.2.0.20.78/ide.properties
     ~/.sqldeveloper/system4.2.0.17.089.1709/o.sqldeveloper.12.2.1.17.89.1709/ide.properties
    
  • Ouvrir le plus récent

    Modifier la ligne : Ide.FontSize

     [...]
     # To modify the font size for all look-and-feels in all locales, set
     # the Ide.FontSize property.  For example:
     #   Ide.FontSize=11
     #
     [...]
    

    Par

     [...]
     # To modify the font size for all look-and-feels in all locales, set
     # the Ide.FontSize property.  For example:
     Ide.FontSize=14
     #
     [...]
    

Premier lancement de sqldevelopper

  • Configuration du jdk
     $ cat ~/.sqldeveloper/4.2.0/product.conf
     [ ... ]
     # SetJavaHome /path/jdk
     SetJavaHome /usr/lib64/jvm/java-1.8.0-openjdk-1.8.0/jre
     SetSkipJ2SDKCheck true
     [ ... ]
    
Clone this wiki locally