Γιατί χρειάζομαι δύο από αυτά; Πότε πρέπει να χρησιμοποιήσω το ένα ή το άλλο;
@DAC
Εν συντομία: SID = το μοναδικό όνομα του της ΒΔ σας, ServiceName = το ψευδώνυμο που χρησιμοποιείται κατά τη σύνδεση.
Δεν είναι απολύτως αληθές.. SID = μοναδικό όνομα του INSTANCE (π.χ. της διεργασίας oracle που εκτελείται στο μηχάνημα). Η Oracle θεωρεί ότι η "βάση δεδομένων" είναι τα αρχεία.
Service Name = ψευδώνυμο για ένα INSTANCE (ή πολλά instances). Ο κύριος σκοπός αυτού είναι εάν εκτελείτε ένα cluster, ο πελάτης μπορεί να πει "connect me to SALES.acme.com", ο DBA μπορεί να αλλάξει on the fly τον αριθμό των instances που είναι διαθέσιμα στα αιτήματα του SALES.acme.com, ή ακόμα και να μετακινήσει το SALES.acme.com σε μια εντελώς διαφορετική βάση δεδομένων χωρίς ο πελάτης να χρειάζεται να αλλάξει οποιαδήποτε ρύθμιση.
Παρακαλώ δείτε: http://www.sap-img.com/oracle-database/finding-oracle-sid-of-a-database.htm
Ποια είναι η διαφορά μεταξύ Oracle
SIDs και Oracle SERVICE NAMES. Ένα εργαλείο διαμόρφωσης αναζητά το ΟΝΟΜΑ ΥΠΗΡΕΣΙΑΣ και τότε το επόμενο ψάχνει για SIDs! Τι είναι; Τι συμβαίνει; >, Το SID της Oracle είναι το μοναδικό όνομα που προσδιορίζει μοναδικά το instance/database όπου ως Service name είναι το ψευδώνυμο TNS που δίνετε όταν συνδέεστε εξ αποστάσεως στο βάση δεδομένων και αυτό το όνομα υπηρεσίας είναι καταγράφεται στο αρχείο Tnsnames.ora στο αρχείο σας πελάτες και μπορεί να είναι το ίδιο με το SID και μπορείτε επίσης να του δώσετε οποιοδήποτε άλλο όνομα που θέλετε. >, Το SERVICE_NAME είναι το νέο χαρακτηριστικό από το oracle 8i και μετά στην οποία η βάση δεδομένων μπορεί να εγγραφεί με τον ακροατή. Εάν η βάση δεδομένων είναι εγγεγραμμένη στον ακροατή με αυτόν τον τρόπο, τότε μπορείτε να χρησιμοποιήσετε την παράμετρο SERVICE_NAME στο tnsnames.ora διαφορετικά - χρησιμοποιήστε το SID στο tnsnames.ora. >, Επίσης, αν έχετε OPS (RAC) θα θα έχετε διαφορετικό SERVICE_NAME για κάθε instance. >, Το SERVICE_NAMES καθορίζει ένα ή περισσότερα ονόματα για την υπηρεσία βάσης δεδομένων που στην οποία συνδέεται αυτή η περίπτωση. Μπορείτε να καθορίσετε πολλαπλά ονόματα υπηρεσιών στην προκειμένου να διακρίνετε μεταξύ διαφορετικών χρήσεις της ίδιας βάσης δεδομένων. Για το παράδειγμα: >, SERVICE_NAMES = sales.acme.com, widgetsales.acme.com >, Μπορείτε επίσης να χρησιμοποιήσετε ονόματα υπηρεσιών για να προσδιορίσετε μια μεμονωμένη υπηρεσία που είναι διαθέσιμη από δύο διαφορετικές βάσεις δεδομένων μέσω της χρήσης της αντιγραφής. >, Σε έναν παράλληλο διακομιστή Oracle περιβάλλον, πρέπει να ορίσετε αυτό το παράμετρος για κάθε περίπτωση.
Εν συντομία: SID = το μοναδικό όνομα της παρουσίας της DB σας, ServiceName = το ψευδώνυμο που χρησιμοποιείται κατά τη σύνδεση
Σύμφωνα με το Γλωσσάριο της Oracle :
Το SID είναι ένα μοναδικό όνομα για μια περίπτωση βάσης δεδομένων Oracle. ---> Για να αλλάξετε μεταξύ βάσεων δεδομένων Oracle, οι χρήστες πρέπει να καθορίσουν το επιθυμητό SID <---. Το SID περιλαμβάνεται στα τμήματα CONNECT DATA των περιγραφών σύνδεσης σε ένα αρχείο TNSNAMES.ORA και στον ορισμό του ακροατή δικτύου στο αρχείο LISTENER.ORA. Επίσης γνωστό ως System ID. Όνομα υπηρεσίας Oracle μπορεί να είναι οτιδήποτε περιγραφικό όπως "MyOracleServiceORCL". Στα Windows, Μπορείτε να εκτελέσετε το Όνομα υπηρεσίας σας ως υπηρεσία στο πλαίσιο των υπηρεσιών των Windows.
Θα πρέπει να χρησιμοποιήσετε το SID στο TNSNAMES.ORA ως καλύτερη προσέγγιση.