Principal Performance Engineering, Database, SQL, PLSQL and Fusion Middleware Learnings
15 years 3 months + of experience in database administration, performance engineering and software cost optimization. Expert in architecture of large scale product, service features in product developments and several POCs executions. Specialty in Database administration, Database Performance, SQL, PLSQL, Shell, Simple solutions for Designing Performance engineering solutions, actively working on Software Cost Optimization in CLOUD. Always ready for new challenges with simple solutions
Thursday, January 7, 2016
How to create service name in oracle database or Add service name to single instance database
Service name can be different from database name or instance name (also know as SID). Default service name is created with same as database name. Service name is like an alias that allow us to connect the db, it can be recorded in tnsnames.ora file or may not be recorded in tnsnames.ora file, it depends what connection method we use to connect.
we can create more than one service name for single database. The way we create service name in single instance db is different from RAC. the method below shown is for single instance db.
Let me explain why did we required to do the below. Most people may wonder why we do have more than 8 character size service name or instance name. Oracle may not recommends but does not stop from creating instance_name with more than 8 character length string. We have a db with more than 8 character length and users want to connect db with 8 character length string with no db downtime, hence we did the below.. and it works.
In real production systems, we use service names as it allows to manage resources, workloads more effectively.
*real strings are changed*
Oracle Database — Service name
service name is an identifier of a database service.
A database can be presented as multiple services and
A service can be implemented as multiple database instances.
The service name is specified by the SERVICE_NAMES initialization parameter.
The sid, the global database name and the service name are different but often one refer to an other in article.
Articles Related
SID or Service Name
If the destination service is:
Recommended Pages
Oracle Database — Connect Descriptor (TNS Connect String)
Oracle Database — Connect Descriptor (TNS Connect String) About The Connect Descriptor (known also as TNS Connect String) is a type of connect identifier. It defines the parameters that need the Ora «.
Oracle Database — Database Service
Oracle Database — Database Service About An Oracle database is represented to clients as a service. A database can have one or more services associated with it. When an instance starts, it register «.
Oracle Database — Easy Connect Method with host, port and service name (EZCONNECT)
Oracle Database — Easy Connect Method with host, port and service name (EZCONNECT) About The easy connect method is one of the naming method to get all the data needed to identified the location of «.
Oracle Database — Global Database Name (GLOBAL_NAME)
Oracle Database — Global Database Name (GLOBAL_NAME) About The Oracle Database (11g) software identifies a database by its global database name. A global database name consists of the database name «.
Oracle Database — Configuration of the Listener (listener.ora)
A listener is configured with one or more listening protocol addresses, information supported services, and parameters that control its run-time behavior. The listener configuration is stored in the c «.
Oracle Database — Connect Identifier
A connect idenfier is the part of the connect string when a users initiate a connection to designate the service to which they want to connect to. The connect identifier is : a connect descriptor. o «.
Oracle Database — How to retrieve the connect descriptor parameters? (host, port, service name and SID)
When you need to install, configure a new software, you need to give a connect descriptor in order to connect to a database. The connect descriptor contains parameters such as hostname, port,service n «.
Oracle Database — Listener
When an database instance starts, it registers itself with a listener using one or more service names. When a client program or database connects to a listener, it requests a connection to a service. «.
Oracle Database — SERVICE_NAMES parameter
The service name is specified by the SERVICE_NAMES initialization parameter. If you do not specify a service name for a database, the service name will default to the database's global name: a na «.
Русские Блоги
Db_name, service_names, instance_name, oracle_sid, global_dbname в ORACLE
В Oracle есть много параметров, связанных с именами, которые иногда могут сбивать с толку.Какова функция этого параметра и в чем разница между ними?
Давайте сначала посмотрим, какие параметры связаны с именем
В файле параметров есть db_name, instance_name, service_names, db_unique_name
В переменной окружения есть oracle_sid
В listener.ora есть sid_name, global_dbname (в случае статической регистрации)
В tnsnames.ora есть service_name, sid
Каковы их значения, давайте познакомимся с ними по порядку:
db_name:
Уникальный идентификатор базы данных (база данных Oracle). Этого представления достаточно для одной базы данных, но для распространения
Для базы данных имя каждой базы данных может быть одинаковым. Db_domian решает эту проблему, так что идентичность базы данных определяется двумя параметрами db_name и db_domain. Подобно управлению именами компьютеров в Интернете, база данных представлена db_name.db_domain, а имя базы данных называется global_name. db_name может состоять только из букв / цифр, «_», «#», «$» и не более 8 символов.

DB_UNIQUE_NAME:
В отличие от db_name, он используется для указания глобального уникального имени базы данных.Например, физическая резервная база данных в DG имеет те же db_name и db_domain, что и основная база данных. Для различения необходимо использовать db_unique_name. Можно установить 30 символов, без учета регистра, состоящих из букв / цифр, ‘_’, ‘#’, ‘$’. DB_UNQUIE_NAME повлияет на Service_names, а также повлияет на service_name во время динамического мониторинга.
instance_name:
Уникальный идентификатор экземпляра, например среда RAC, при наличии нескольких экземпляров используйте имя_экземпляра, чтобы различать каждый экземпляр. Он используется для установки instance_name, зарегистрированного в динамическом мониторе.Если вы используете SID-соединение в tnsnames.ora, вам необходимо ему соответствовать.
Перед изменением параметра экземпляра, как показано на рисунке ниже
После изменения параметра instance_name:
Сравнение двух изображений показывает, что instance_name играет роль указания имени при регистрации монитора.
Кроме того, некоторые динамические представления производительности, содержащие столбец instance_name или inst_name, выводятся из переменной среды ORACLE_SID (а не этого параметра).
service_names:
Используется для установки имени службы, зарегистрированной в слушателе. Соответственно, если вы используете SERVICE_NAME для подключения к tnsnames.ora, вам необходимо соответствовать ему.
Перед изменением service_names, service_names согласуется с отслеживаемой службой:
После изменения service_names в мониторинг добавляется заданное имя службы:
Вы также можете подключиться к базе данных, используя только что установленное имя службы:

oracle_sid:
Идентификатор экземпляра существует в форме переменной среды и используется для соответствия сегменту разделяемой памяти. Экземпляр Oracle состоит из SGA и группы фоновых процессов. Для создания и запуска экземпляра требуется файл параметров, а имя файла параметров определяется ORACLE_SID. оф. Для файла инициализации имя файла по умолчанию — init <ORACLE_SID> .ora, для файла spfile имя файла по умолчанию — spfile <ORACLE_SID> .ora. Устанавливая разные значения ORACLE_SID, вы можете запускать разные экземпляры базы данных с разными файлами параметров по умолчанию.
Иными словами, ORACLE_SID определяет имя экземпляра локально запущенного экземпляра базы данных. Пока существует соответствующий init <ORACLE_SID> .ora или spfile <ORACLE_SID> .ora, его можно запустить, или он может быть запущен, указав pfile при запуске, если параметр Другие параметры, установленные в файле, могут запускать базу данных.
В нормальных условиях ORACLE_SID = test, запустите базу данных, как показано на рисунке ниже, и сгенерированный процесс идентифицируется тестом.
Закройте базу данных, измените ORACLE_SID = mydb, вы также можете запустить базу данных, но вам нужно вручную указать файл параметров, сгенерированный процесс идентифицируется mydb.
Даже если процессы связаны с mydb, имя базы данных и конфигурация мониторинга все еще тестируются.

Также изменились instance_name и inst_name в соответствующем динамическом представлении производительности:
Чем SID отличается от имени службы в Oracle tnsnames.ora
Зачем мне два из них? Когда я должен использовать тот или иной?
4 ответа
Вкратце: SID = уникальное имя ваша БД, ServiceName = используемый псевдоним при подключении
Не строго верно. SID = уникальное имя INSTANCE (например, процесс оракула, запущенный на машине). Oracle рассматривает «базу данных» как файлы.
Имя службы = псевдоним для INSTANCE (или многих экземпляров). Основная цель этого заключается в том, что если вы используете кластер, клиент может сказать «подключить меня к SALES.acme.com», администратор базы данных может «на лету» изменить количество экземпляров, доступных для запросов SALES.acme.com, или даже переместить SALES.acme.com в совершенно другую базу данных без необходимости изменения каких-либо параметров клиентом.
В чем разница между Oracle SID и Oracle SERVICE NAMES. Один config ищет ИМЯ СЕРВИСА и то следующий ищет SID! какой происходит?!
Oracle SID — это уникальное имя, которое уникально идентифицирует ваш экземпляр/база данных, где в качестве службы имя — это псевдоним TNS, который вы даете когда вы дистанционно подключаетесь к своему базы данных, и это имя службы записанный в файле Tnsnames.ora на вашем клиентов, и он может быть таким же, как SID и вы также можете дать ему имя, которое вы хотите.
SERVICE_NAME — новая функция из oracle 8i, в базе данных может зарегистрировать себя слушателем. Если база данных регистрируется слушателем таким образом, вы можете использовать Параметр SERVICE_NAME в tnsnames.ora в противном случае — используйте SID в tnsnames.ora.
Также, если у вас есть OPS (RAC), вы будете имеют разные SERVICE_NAME для каждого экземпляр.
SERVICE_NAMES указывает один или несколько имена службы базы данных для который этот экземпляр подключается. Ты можешь указать имена нескольких служб в чтобы различать разные использует одну и ту же базу данных. Для Пример:
SERVICE_NAMES = sales.acme.com, widgetsales.acme.com
Вы также можете использовать имена служб для идентифицировать одну услугу, которая доступный из двух разных баз данных через использование репликации.
На параллельном сервере Oracle окружающей среды, вы должны установить это параметр для каждого экземпляра.
Короче: SID = уникальное имя вашего экземпляра DB, ServiceName = псевдоним, используемый при подключении
Я знаю, что это древний, но когда речь идет о тонких инструментах, использованиях, пользователях или симптомах re: sid и присвоении сервисов, вы можете добавить немного сгибания в записи tnsnames:
Я просто подумал, что оставлю это здесь, так как это слегка относится к этому вопросу и может быть полезно при попытке переплетаться с некоторыми менее ясными особенностями сетей ораков.