簡體   English   中英

Oracle數據庫如何僅通過ORACLE_HOME和ORACLE_SID知道全局數據庫名稱和數據庫文件的位置?

[英]How does Oracle database know the global database name and the location of database files merely from ORACLE_HOME and ORACLE_SID?

Oracle數據庫如何僅從ORACLE_HOME和ORACLE_SID知道全局數據庫名稱?

我的ORACLE_SIDfoosid ,我的數據庫名稱是foogdn 實際上,全局數據庫名稱是foogdn.example.com 在下面的shell和sqlplus會話中對此進行了演示。

$ export ORACLE_SID=foosid
$ export ORACLE_HOME=/home/ora/app/ora/product/12.1.0/dbhome_1
$ "$ORACLE_HOME/bin/sqlplus" / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Tue Aug 2 12:20:19 2016

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area  419430400 bytes
Fixed Size          2925120 bytes
Variable Size         285216192 bytes
Database Buffers      125829120 bytes
Redo Buffers            5459968 bytes
Database mounted.
Database opened.
SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT
SQL> select * from global_name;

GLOBAL_NAME
--------------------------------------------------------------------------------
FOOGDN.EXAMPLE.COM

SQL> select name from v$controlfile;

NAME
--------------------------------------------------------------------------------
/home/ora/app/ora/oradata/foogdn/control01.ctl
/home/ora/app/ora/fast_recovery_area/foogdn/control02.ctl

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/home/ora/app/ora/oradata/foogdn/system01.dbf
/home/ora/app/ora/oradata/foogdn/sysaux01.dbf
/home/ora/app/ora/oradata/foogdn/undotbs01.dbf
/home/ora/app/ora/oradata/foogdn/pdbseed/system01.dbf
/home/ora/app/ora/oradata/foogdn/users01.dbf
/home/ora/app/ora/oradata/foogdn/pdbseed/sysaux01.dbf
/home/ora/app/ora/oradata/foogdn/pdborcl/system01.dbf
/home/ora/app/ora/oradata/foogdn/pdborcl/sysaux01.dbf
/home/ora/app/ora/oradata/foogdn/pdborcl/pdborcl_users01.dbf

9 rows selected.

SQL> 

兩個問題:

  1. 數據庫是怎么計算出的GLOBAL_NAMEORACLE_SID=foosidfoogdn.example.com 我提供的唯一線索是ORACLE_SIDORACLE_HOME ,然后啟動了數據庫。 然后,數據庫似乎已經自行確定全局數據庫名稱為foogdn.example.com。 它是怎么做到的? 它在哪里存儲ORACLE_SIDGLOBAL_NAME的映射?
  2. 數據倉庫如何確定數據庫文件的位置? 此信息存儲在哪里?

Example.com (數據庫的邏輯位置)是db_domain參數的值。 foogdn是數據庫的名稱-值db_name參數。 db_namedb_doman值組成了全局數據庫名稱。 db_domaindb_name都存儲在spfile<SID>.ora和/或init[<SID>].ora文件中,或同時存儲在其中。 此外,數據庫名稱與DBID一起存儲在控制文件中以及每個數據文件的標題中。

基本結構是:

您指定oracle SID(系統標識符),該文件用於查找初始化參數文件,無論它是服務器參數文件( spfile<sid>.ora )還是文本初始化參數文件init<sid>.ora IPF(初始化參數文件)中的CONTROL_FILES參數指向控制文件的位置,該文​​件包含有關數據,重做日志和其他文件位置的信息。

了解更多

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM