oracle學習筆記(一)之邏輯結構和連接
1.oracle的邏輯數據結構
數據庫中的一組理想的邏輯對象稱為一個模式(schema)。
oracle數據庫對象——如表、索引和封裝的SQL代碼等——實際上都是邏輯實體。
把數據庫對象與各種模式區分開來易於方便管理並提高了安全性。
2.oracle的邏輯部件
數據塊(data_block):數據塊是oracle數據庫的存儲基礎,它由磁盤空間上的若幹字節組成。
區(extent):一個區是兩個或多個相鄰的數據塊,它是空間分配的單元。
段(segment):一個段是分配給一個邏輯結構(如一個表、一個索引或其他對象)的一組區。
表空間(tablespace):表空間是一組數據文件(一個或多個文件),通常由相關的段組成。數據文件包含表空間中的所有邏輯結構的數據,如表和索引的數據。
3.oracle的塊尺寸應該定義多大
必須確定oracle塊的大小並設置oracle初始化文件(init.ora文件)中的DB_BLOCK_SIZE參數,塊尺寸是處理oracle的更新、選擇、或插入數據事務的最小單位,當用戶從表中選擇數據時,選擇操作將從數據庫文件中以塊為單位“讀取”或提取數據。
在理想情況下,oracle塊尺寸應該為磁盤塊尺寸的倍數,否則在每個I/O中偉隻使用部分數據可能會浪費時間去讀寫全體磁盤塊。
如果將oracle塊尺寸定義為操作係統塊尺寸的倍數,會使性能提高5%。
如果行比較小且訪問和隨機,則選擇較小的塊尺寸。
如果行比較小且訪問主要是連續的(或者是隨機且連續的),或者如果有較大的行,則選擇較大的塊尺寸標準。
多個oracle數據塊尺寸:
DB_BLOCK_SIZE初始化參數決定Oracle數據庫的標準塊尺寸,其取值範圍可以從2KB~~32KB。Oracle總是依據標準塊尺寸創建係統表空間的,並且oracle可指定最多4個額外的非標準的塊尺寸。
在同一個數據庫中,可以定義2KB、4KB、8KB、16KB、32KB的塊尺寸。
如果選擇配置多個oracle塊尺寸,還必須配置SGA(係統全局區)的緩衝區高速緩存中相應的高速緩存,而SGA是oracle的內存配置。
多個數據塊尺寸主要應用於在具有不同數據庫塊尺寸的數據庫之間傳送表空間。
4. 數據塊的內部結構
所有的數據塊都可以分為2個主要部分:行數據部分和可用空間部分。
數據塊的行數據部分包括存儲在表或索引中的數據。
可用空間(free space)部分是oracle塊留下的空間,為的是給將要插入的新數據或是擴充已有行留出空間。
一、oracle連接知識
1.1數據庫的實例名:
a.oracle的實例由SGA和一組oracle進程組成。
b.oracleSID就是指的oracle實例。
c.數據庫的實例名是在初始化文件init.ora中作為instance_name給出
# First instance specific parameters
clustdb1.thread=1
clustdb1.instance_name=clustdb1
......
# Second instance specific parameters
clustdb2.thread=2
clustdb2.instance_name = clustdb2
1.2全局數據庫名
a.全局數據庫名唯一的標識一個oracle數據庫,其格式為:database_name.database_domain,如:
sales.us.acme.com,sales為數據庫名,us.acme.com為數據庫域。在同一個域中的數據庫不會有相同的數據庫名,所以每個數據庫名都是唯一的。
1.3數據庫服務名
a.對於客戶機,數據庫在邏輯上簡單地表現為一個服務。
b.在服務和數據庫之間存在一個多對多的關係。(這裏的數據庫指的是數據庫實例,服務指的是每個數據庫實例對應的服務)
c.我們用SERVICE_NAMES來指定數據庫的服務名。服務名參數值默認為全局數據庫名。
d.一個數據庫可由多個服務名來訪問。因為在一個數據庫內可以建立多個數據庫實例。
1.4數據庫連接描述符
a.連接到任何一台數據庫服務,必備的兩個信息:數據庫服務名和地址。
地址包含三個部分:連接使用的通信協議、主機名和端口號。
ADDRESS = (PROTOCOL =TCP)(HOST = 127.0.0.1)(PORT = 1521)
b.UNIX服務器上的端口號默認為1521或1526,WINDOWS上默認為1521.
c.任何主機上的數據庫具有唯一的服務名,所以一個oracle數據庫服務名和一個主機名將唯一地標識任何數據庫。
1.5連接標識符
連接標識符與連接描述符緊密關聯,可把連接描述符作為連接標識符,或者可簡單的映射一個數據庫服務名為一個連接描述符。
1.6連接串
使用連接串連接到數據庫,連接串包含用戶名/密碼組合及一個連接標識符。
TY_127.0.0.1 =連接串
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =127.0.0.1)(PORT = 1521))
協議 主機 端口號
)
(CONNECT_DATA=
(SERVICE_NAME) 全局數據庫名(默認為DB_NAME+DB_DOMAIN)
(SID = ty) 實例名
(SERVER = DEDICATED)
)
)
1.7建立連接
a.保證安裝了數據庫服務器且oracle實例正在運行
b.保證在客戶機上安裝了oracle客戶機軟件
c.確認數據庫服務器和客戶機運行在同一個網絡上,可以使用ping命令測試:
d.必須在服務器和客戶機上安裝TCP/IP協議。(會自動被安裝)
e.保證oracle監聽正在服務器上運行,並且正在合適的端口進行監聽連接請求。
f.配置客戶機以連接到數據庫。四種方法(本地命名、簡易連接命名、目錄命名和外部命名)
g.用SQL*PLUS或第三方工具連接到數據庫。
命令窗口:sqlplus system/tiger@orcl
1.8oracle客戶機的安裝
a.光盤安裝或者文件安裝
b.選擇Install/Deinstall Products選項卡,並單擊Next按鈕
c.…….
1.9監聽器和連接
Oracle監聽器是一個隻運行在服務器上的並監聽連接請求的服務。Oracle提供了lsnrctl程序來管理監聽器進程。
Oracle監聽器是一個隻運行在服務器上的並監聽連接請求的服務。Oracle提供了lsnrctl程序來管理監聽器進程
a.數據庫用監聽器記錄關於服務、實例及服務處理器的信息。
b.客戶機與監聽器進行初步的連接。
c.監聽器接收和驗證客戶機連接請求並把此請求交給數據庫服務的服務處理器。一旦交付了客戶機請求,監聽器在該連接中不再起作用。
--------------------------------------------------------------------
a.同一個服務器上可以運行多個監聽器服務,但是一般是在使用OracleRAC(Real Application Clusters)時才這樣做。
b.在麵對大量連接請求的時候,為了保證監聽器不失敗,需要配置一個監聽器的隊列,在listener.ora文件中配置
LISTENERSUPERBEE =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = www-1fa60e712fc)(PORT =1521)(QUEUESIZE=10))
)
)
c.為監聽器設置密碼:如果lsnrctl應用程序沒有設置密碼,任何進入操作係統的用戶都可以在命令提示符下輸入lsnrctl stop停止監聽和阻止客戶機的連接。
命令行下執行:
lsnrctl
set password
xxxxxxxx
change_password
...
...
...
save_config
配置完成後打開listener.ora文件可以看到增加了一條密碼項信息
注意:如果在配置過程中出現問題:顯示如下:
正在連接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-1fa60e712fc)(PORT=1521)
))
TNS-12545: 因目標主機或對象不存在, 連接失敗
TNS-12560: TNS: 協議適配器錯誤
TNS-00515: 因目標主機或對象不存在, 連接失敗
32-bit Windows Error: 1001: Unknown error
則證明listener.ora的主機配置和tnsname.ora配置的不一致,或者至少有一個地方配置錯誤,一般為listener.ora配置錯誤。
該監聽密碼隻針對於停止監聽有效。對啟動無效。
停止帶密碼的監聽:
$ lsnrctl stop
$ lsnrctl set password
PASSWORD: xxxx
$ stop
1.10oracle連接相關命令小筆記
1.在命令行窗口下連接oracle先執行setoracle_SID 查看當前的要連接的數據庫
通過set oracle_SID=xxxx更改所要連接的數據庫
執行sqlplusscott/tiger@SID進行連接---@SID不寫的話會默認連接剛才設置的
該命令也可以分開執行sqlplus---->會提示輸入用戶名----->會提示輸入密碼
這樣也是連接剛才設置的數據庫實例
2.在與數據庫建立連接前,要保證數據庫的客戶端和服務器在同一個網絡內
ping prod1
3.要查看oracle客戶機的版本:執行sqlplus
4.使用lsnrctlstatus查看監聽器的狀態----也可以使用OEM的Net Services Adminstration頁麵查看
5.如果對lsnrctl.ora文件做了更改,要使更改生效,可重啟監聽器或者重新加載監聽器lsnrctl reload
最後更新:2017-04-02 22:16:26