Next Previous Contents

4. Ρυθμίστε το SQL*Net του Server

Όλα αυτά τα αρχεία ρυθμίζουν το λογισμικό δικτύωσης της Oracle (SQL*Net, τώρα Net8 for Oracle8). Αυτά τα αρχεία θα πρέπει να έχουν ήδη δημιουργηθεί στο server στο $ORACLE_HOME/network/admin directory.

4.1 tnsnames.ora

Το αρχείο TNSNAMES.ORA αναγνωρίζει τις διαθέσιμες υπηρεσίες της μηχανής. Στο στιγμιότυπο (instance) μας θα περιγράψουμε όλες τις βάσεις δεδομένων που ο server έχει προσκολλημένες. Για κάθε ένα στιγμιότυπο της Βάσης Δεδομένων (database instance) του server σας, προσθέστε ένα τμήμα σαν το παρακάτω:


orcl.world =
  (DESCRIPTION =
    (ADDRESS_LIST =
        (ADDRESS =
          (COMMUNITY = tcp.world)
          (PROTOCOL = TCP)
          (Host = <INSERT HOST NAME OF SERVER HERE> )
          (Port = 1521)
        )
        (ADDRESS =
          (COMMUNITY = tcp.world)
          (PROTOCOL = TCP)
          (Host = <INSERT HOST NAME OF SERVER HERE> )
          (Port = 1526)
        )
    )
    (CONNECT_DATA = (SID = ORCL)
    )
  )

4.2 listener.ora

Το αρχείο listener.ora περιέχει τις περιγραφές των υπηρεσιών μας που άλλες μηχανές επιτρέπεται να συνδεθούν με αυτές, καθώς και οποιαδήποτε ρύθμιση που απαιτείται από τον listener του server.

Περιέχει τμήμα για το όνομα και τη διεύθυνση του listener, τις βάσεις δεδομένων που εξυπηρετούνται από τον listener, καθώς και παραμέτρους ρύθμισης.

Να ένα παράδειγμα:


# Name of listener and addresses to listen on
LISTENER =
        ( ADDRESS_LIST =
                (ADDRESS =
                        (PROTOCOL=tcp)
                        (HOST=<INSERT HOST>)
                        (PORT=1521)
                        (COMMUNITY=UK_SUP_TCPIP)
                )
                (ADDRESS =
                        (PROTOCOL=ipc)
                        (KEY=700)
                        (COMMUNITY=UK_SUP_TCPIP)
                )
        )

# List of services served by this listener
SID_LIST_LISTENER=
        (SID_LIST=
                (SID_DESC=
                        (SID_NAME=orcl)
                        (ORACLE_HOME=/home/oracle/7.3.3.0.0)
                )
        )

# Start of configuration parameters.
TRACE_LEVEL_LISTENER=OFF
TRACE_FILE_LISTENER = "listener"
LOG_FILE_LISTENER = "listener"
CONNECT_TIMEOUT_LISTENER = 10
STOP_LISTENER = YES
DBA_GROUP = dba

4.3 sqlnet.ora

Το αρχείο sqlnet.ora περιέχει ρυθμίσεις για έναν συγκεκριμένο κόμβο του δικτύου. Αυτό είναι ανεξάρτητο του αριθμού των βάσεων ή του αριθμού των listeners. Το πιο σημαντικό πράγμα στο αρχείο αυτό είναι η μεταβλητή ρυθμίσεων Dead Connection Timeout.

Η Dead connection timeout ελέγχει κάθε εισερχόμενη διεργασία (process) προς ένα στιγμιότυπο μιας βάσης δεδομένων και βεβαιώνει πως το μέρος του πελάτη (client) ανταποκρίνεται ακόμα. Αν ο πελάτης (ανεξαρτήτως τύπου) δεν ανταποκρίνεται τότε η Oracle server shadow process σκοτώνεται (kill).

Αυτό είναι πολύ χρήσιμο Εάν έχετε πολλούς πελάτες που κάνουν πρόσβαση στη βάση δεδομένων, ειδικά σε φάση ανάπτυξης όπου αυτοί οι πελάτες είναι πιθανό να αποτυγχάνουν να βγουν ομαλά (exit cleanly) από την Β.Δ. της Oracle.

Παρακάτω είναι ένα αντίγραφο του αρχείου μου sqlnet.ora για να χρησιμοποιήσετε:


TRACE_LEVEL_CLIENT = OFF
sqlnet.expire_time = 30         # The number of seconds between client checks.
names.default_domain = world
name.default_zone = world

4.4 Εκκίνηση και Τερματισμός των Listeners

Τώρα που οι ρυθμίσεις των listeners και του SQL*Net ολοκληρώθηκαν, μπορούμε να επιχειρήσουμε να συνδεθούμε στη βάση, χρησιμοποιώντας το λογισμικό δικτύωσης. (Πριν, συνδεόμασταν με απευθείας σύνδεση στη βάση, ενώ εδώ προσομοιώνουμε μια σύνδεση από μια απομακρυσμένη μηχανή πελάτη)

Για να αρχίσουμε τον listener με τις παραπάνω ρυθμίσεις:


$ lsnrctl

LSNRCTL for SCO System V/386: Version 2.3.3.0.0 - Production on 23-FEB-98 20:38:25

Copyright (c) Oracle Corporation 1994.  All rights reserved.

Welcome to LSNRCTL, type "help" for information.

LSNRCTL> start
Starting /home/oracle/7.3.3.0.0/bin/tnslsnr: please wait...

TNSLSNR for SCO System V/386: Version 2.3.3.0.0 - Production
System parameter file is /home/oracle/7.3.3.0.0/network/admin/listener.ora
Log messages written to /home/oracle/7.3.3.0.0/network/log/listener.log
Listening on: (ADDRESS=(PROTOCOL=tcp)(DEV=6)(HOST=192.168.1.1)(PORT=1521))
Listening on: (ADDRESS=(PROTOCOL=ipc)(DEV=10)(KEY=700))

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=magic.com)(PORT=1521)(COMMUNITY=UK_SUP_TCPIP))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for SCO System V/386: Version 2.3.3.0.0 - Production
Start Date                23-FEB-98 20:38:50
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  OFF
SNMP                      ON
Listener Parameter File   /home/oracle/7.3.3.0.0/network/admin/listener.ora
Listener Log File         /home/oracle/7.3.3.0.0/network/log/listener.log
Services Summary...
  orcl          has 1 service handler(s)
The command completed successfully
LSNRCTL> exit

Για να τερματίσουμε τους listeners:


$ lsnrctl

LSNRCTL for SCO System V/386: Version 2.3.3.0.0 - Production on 23-FEB-98 20:43:20

Copyright (c) Oracle Corporation 1994.  All rights reserved.

Welcome to LSNRCTL, type "help" for information.

LSNRCTL> stop
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=magic.com)(PORT=1521)(COMMUNITY=UK_SUP_TCPIP))
The command completed successfully
LSNRCTL> exit

Αν έχετε μια στήσει ένα DNS που δεν επιστρέφει τη διεύθυνση IP για το hostname που δηλώσατε, η έναρξη και ο τερματισμός του listener μπορεί να πάρει κάποια ώρα (2-3 λεπτά. εξαρτώμενο από την τιμή μεταβλητής του χρόνου λήξης του DNS). Αν αυτό συμβαίνει, μην ανησυχείτε, έχετε υπομονή.


Next Previous Contents