Global_name and db domain in Oracle
- 1. YouConnect ToSALES.US.EXAMPLE.COMAndQuery the GLOBAL_NAMEDataDictionaryView ToDetermineCurrent DatabaseGlobal name:
- CONNECTSYSTEM@Sales.Us.Example.Com
- SELECT * FROMGLOBAL_NAME;
- GLOBAL_NAME
- ----------------------------------------------------------------------------
- SALES.US.EXAMPLE.COM
- 2. You query the V $ PARAMETERView ToDetermineCurrentSettingForThe DB_DOMAIN initialization parameter:
- SELECTNAME, VALUE FROMV $ PARAMETERWHERENAME= 'Db _ domain';
- NAMEVALUE
- --------------------
- Db_domain US.EXAMPLE.COM
- 3. YouThen CreateADatabaseLinkToADatabaseCalled hq, Using OnlyA partially-Specified global name:
- CREATE DATABASELINK hqUSING 'Sales';
- TheDatabaseExpands the globalDatabaseNameForThis linkByAppending the domain partOfThe globalDatabaseNameOfThe localDatabase ToThe nameOfTheDatabaseSpecifiedInThe link.
- 4. You query USER_DB_LINKSToDetermine which domain nameDatabaseUsesToResolve the partially specified globalDatabaseName:
- SELECTDB_LINKFROMUSER_DB_LINKS;
- DB_LINK
- ------------------
- HQ.US.EXAMPLE.COM
- This result indicates that the domain partOfThe globalDatabaseNameOfThe localDatabase IsUs.Example.Com.TheDatabaseUses this domainInResolving partialDatabaseLink names whenDatabaseLinkIsCreated.
- 5. Because you have already ed word that the salesDatabaseWill moveToJapan,YouRenameThe salesDatabase ToSales.Jp.Example.Com:
- ALTER DATABASE RENAMEGLOBAL_NAMETOSales.Jp.Example.Com;
- SELECT * FROMGLOBAL_NAME;
- GLOBAL_NAME
- ----------------------------------------------------------------------------
- SALES.JP.EXAMPLE.COM
- 6. You query V $ PARAMETER againAndDiscover thatValue OfDB_DOMAINIs NotChanged,Although you renamed the domain partOfThe globalDatabaseName:
- SELECTNAME, VALUE FROMV $ PARAMETER
- WHERENAME= 'Db _ domain';
- NAMEVALUE
- --------------------
- Db_domain US.EXAMPLE.COM
- This result indicates thatValue OfThe DB_DOMAIN initialization parameterIsIndependentOfTheALTER DATABASE RENAMEGLOBAL_NAME statement.TheALTER DATABASEStatement determines the domainOfThe globalDatabaseName, NotThe DB_DOMAIN initialization parameter(Although itIsGood practiceTo AlterDB_DOMAINToReflect the new domain name).
- 7. YouCreateAnotherDatabaseLinkTo DatabaseSupply, And ThenQuery USER_DB_LINKSToSee howDatabaseResolves the domain partOfThe globalDatabaseNameOfSupply:
- CREATE DATABASELINK supplyUSING 'Suply';
- SELECTDB_LINKFROMUSER_DB_LINKS;
- DB_LINK
- ------------------
- HQ.US.EXAMPLE.COM
- SUPPLY.JP.EXAMPLE.COM
- This result indicates thatDatabaseResolves the partially specified link nameBy UsingThe domain jp.Example.Com.This domainIsUsed when the linkIsCreated because itIsThe domain partOfThe globalDatabaseNameOfThe localDatabase.TheDatabaseDoesNotUse the DB_DOMAIN initialization parameter setting when resolving the partial link name.
- 8. YouThenReceive word that your previous information was faulty:Sales will beInThe ASIA.JP.EXAMPLE.COM domain, NotThe JP.EXAMPLE.COM domain.Consequently,YouRenameThe globalDatabaseNameAsFollows:
- ALTER DATABASE RENAMEGLOBAL_NAMETOSales.Asia.Jp.Example.Com;
- SELECT * FROMGLOBAL_NAME;
- GLOBAL_NAME
- ----------------------------------------------------------------------------
- SALES.ASIA.JP.EXAMPLE.COM
- You query V $ PARAMETERToAgainCheckThe settingForThe parameter DB_DOMAIN:
- SELECTNAME, VALUE FROMV $ PARAMETER
- WHERENAME= 'Db _ domain';
- NAMEVALUE
- ---------------------
- Db_domain US.EXAMPLE.COM
- The result indicates that the domain settingInThe parameterFile IsThe sameAsIt was before you issued eitherOfTheALTER DATABASE RENAMEStatements.
- 9. Finally,YouCreateA linkToThe warehouseDatabase AndAgain query USER_DB_LINKSToDetermine howDatabaseResolves the partially-Specified global name:
- CREATE DATABASELINK warehouseUSING 'Warehouse';
- SELECTDB_LINKFROMUSER_DB_LINKS;
- DB_LINK
- ------------------
- HQ.US.EXAMPLE.COM
- SUPPLY.JP.EXAMPLE.COM
- WAREHOUSE.ASIA.JP.EXAMPLE.COM
- Again,You see thatDatabaseUses the domain partOfThe globalDatabaseNameOfThe localDatabase ToExpand the partial link name during link creation.
Therefore, alter database rename global_name to xx does not affect the db_domain parameter, but uses global_name instead of db_domain when creating the db link.