global database name and SID  ---confused

Posted on 2004-11-01
Last Modified: 2013-12-11
Hello I am a Bioinformatist trying to understand the rudiments of Oracle ....

I am starting off with installing Oracle on my personal machine (Red Hat Linux).As I am working through the installation I am trying to understand the difference between  global database name and SID (system identifier)...

I have tried through the documentation etc ..but I am more condused than what I started off ...

Could you please try to explain this ...(let me assure you that I tried my best to understand it myself but I could not ...)

===> What is the relation between the two ... global database name and SID (system identifier)...

===>I always thought SID refeered to a specific database name what is the point of creating before hand.

===> I understand that global database name is made of : database_name.database_domain format .But if we specify say a name like will the database be "global" will it not be specific to the database "sales"

==> for the example above what should/can  be the SID

I would appreciate it if you could explain by an example

Thanks so much
Question by:micro_learner
    LVL 4

    Expert Comment

    There is one-to-one relationship between this two. Global name and a sid can be changed separatly. You can start the same database with different SID. Also you can change Global DB name and run it with the same SID.
    LVL 1

    Assisted Solution

    Here is the main difference:

    The Oracle SID is the Local Database name on the server.  This is the database you connect to when you are on the server working with the database, and not using the net services at all.  The Global Database Name is the Name that the Listener listens for connections to.  The listener translates requests from the global database name to the SID.  

    Typically, when I name my databases, I #1 don't use a domain, and #2 make the Oracle SID and the Global Name the EXACT SAME.  It makes things less confusing, since you only have to remember one.  You will not be able to connect from anywhere other than localhost using the SID (If they're different).  To make it even MORE confusing, Oracle net configuration assistants and the TNSNames.ora files refer to the SID when they actually mean the global database name.  Tricky, isn't it?

    Here's a rundown of the layers:
    Oracle Driver Calls --(Oracle Client)-> TNS Service Name --(Oracle Net)-> Global Database Name --(Listener)-> SID

    Hope this helps.

    LVL 4

    Assisted Solution

    It work like -jer- said for backward compatability with SQL Net 2. For 8i and above you can use service_name (gives you ability to have muliple names for the same database). Connect descriptor contains destination service and network route information (8i and above it can be service_name or sid). The global database name is the default service name of the database. SID is not only used for networking. OS processes and memory segments are identified by SID. So, just like I said before, there is one-to-one relationship between this two. Global name and a sid can be changed separatly. You can start the same database with different SID. Also you can change Global DB name and run it with the same SID.
    LVL 5

    Accepted Solution

    SID (System Identifier)
    A SID (almost) uniquely identifies an instance. Actually, $ORACLE_HOME, $ORACLE_SID and $HOSTNAME identify an instance uniquely. The SID is 64 characters, or less; at least on Oracle 9i. The system identifier is included in the CONNECT_DATA parts of the connect descriptors in a tnsnames.ora file. The SID defaults to the database name.

    Global database name
    A database is uniquely identified by a global database name. Usually, a global database name has the form somename.domain. The global database name is the composit of db_domain and db_name.

    Database Name
    All mounted databases in a network must have a unique database name. This name is specified at the time of the creation of the database and burned into the control files. The name of the database must correspond to the db_name
    LVL 4

    Expert Comment

    instance (SID) <-> database (datbase name)

    Write Comment

    Please enter a first name

    Please enter a last name

    We will never share this with anyone.

    Featured Post

    Course: JavaScript Coding - Massive 12-Part Bundle

    Regardless of your programming skill level, you'll go from basics to advanced concepts in a vast array of JavaScript subjects including Sammy.js, Agility.js, Ember.js, Node.js, jQuery, AJAX, Extjs, AngularJS, Knockout.js, and JSON.

    Subquery in Oracle: Sub queries are one of advance queries in oracle. Types of advance queries: •      Sub Queries •      Hierarchical Queries •      Set Operators Sub queries are know as the query called from another query or another subquery. It can …
    Truncate is a DDL Command where as Delete is a DML Command. Both will delete data from table, but what is the difference between these below statements truncate table <table_name> ?? delete from <table_name> ?? The first command cannot be …
    This video shows how to copy a database user from one database to another user DBMS_METADATA.  It also shows how to copy a user's permissions and discusses password hash differences between Oracle 10g and 11g.
    This video shows how to recover a database from a user managed backup

    856 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    17 Experts available now in Live!

    Get 1:1 Help Now