Oracle在SID,数据库名称,数据库域,全局数据库名称,服务名称,服务别名和实例名称之间的区别

有人可以向我解释什么是SID,数据库名称,数据库域,全局数据库名称,服务名称,服务别名和实例名称在Oracle中的区别?

感谢迈克尔

    SID =标识数据库实例(数据库名称+实例编号)。 所以如果你的数据库名是somedb,你的实例号是3,那么你的SID是somedb3。

    数据库名称=数据库的名称(数据库可以共享b / t多个实例)

    数据库域=通常与您的公司域(somecompany.com)相同

    全局数据库名称=数据库名称+数据库域(somedb.somecompany.com)

    服务名称=一个或多个实例的“连接器”。 在RAC环境中创build附加服务名称通常很有用,因为可以修改该服务以将特定的SID用作主要或次要连接,或根本不使用某些SID。

    服务别名=服务名称的别名(就像CNAME等)。 说你让你的服务名称有意义的dba,但也许有点深奥。 创build一个服务别名并将其命名为对用户有意义的内容。

    实例名称=与SID相同

    您描述SID的方式只是RACconfiguration中的DEFAULT行为。 SID(== instance_name)就是:你的实例的名字。

    我总是这样看待:一个实例,是RDBMS软件的一个实例。 一个实例MOUNTS一个控制文件,(alter database mount)在这个控制文件中写入数据文件的位置。 数据文件的收集(好的,和控制文件)==数据库。

    数据库具有名称,db_name和(可选)域(db_domain) – > global global_db_name。 现在想象你正在复制(DataGuard)你的数据库。 你想保持DB_name一样,对吧? (我的意思是:数据明智的,这是同一个数据库)但是,那么如何确定你的数据库的两个“版本”? input'DB_UNIQUE_NAME'…是的,它变得困惑…

    我个人的做法是在DataGuard设置中将实例命名为db_unique_name,并在RAC设置中使用RAC名称(db_name + Instance_Number)。 然后,我编写的db_unique_names通常就像db_name + 1个字母后缀(MYDBa MYDBb等)

    干杯,保罗

    SID是实例。 最好避免使用“数据库实例”这个词,只是实例。

    “SID =标识数据库实例(数据库名称+实例编号)”是错误的。 “一个实例,是RDBMS软件的一个实例”是错误的。 卸载或安装的DBMS只是DBMS。

    应该避免使用“数据库域=通常与您的公司域相同”。 我遇到了使用域的问题,而不使用域时问题就消失了。

    “全球数据库名称=数据库名称+数据库域”也是错误的。 全局数据库名称是服务名称。 就这么简单。

    “SID =标识数据库实例(数据库名+实例号),所以如果你的数据库名是somedb,你的实例号是3,那么你的SID是somedb3。 是错的。 没有这样的身份或名称的连锁。

    我build议你参考

    Knowledge Xpert for Oracle Administration > Oracle Architecture > Oracle instance, files and processes 

    如果你有安装蟾蜍,甚至试用版本。

    它完整​​地描述了整个画面。