global database name and SID ---confused

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
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

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.
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.

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.
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

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
instance (SID) <-> database (datbase name)
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Oracle Database

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.