一、連接Oracle
1、Oracle建立連接的過程
無論是通過sqlplus命令連接還是第三方工具遠程連接到Oracle,都需要建立客戶端與服務端之間的連接。Oracle Net Service組件就是為了用于建立連接的,這個組件在安裝Oracle時已經安裝。
1)在服務器端有一個listener監聽器,監聽著來自客戶端的連接請求
2)在客戶端輸入用戶名、口令、網絡服務名以發送連接請求
3)客戶端查看本地的tnsnames.ora文件,將網絡服務名映射為包含Oracle服務器地址監聽端口和全局數據庫名的連接描述符
4)客戶端根據描述符定位監聽器,并通過網絡將連接信息發送給監聽器
5)監聽器查詢監聽配置文件listener.ora,找出將要連接到的服務器
6)客戶端和服務器端開始通信
2、配置監聽器的三種方式
1)netca
2)netmgr
3)手動修改配置文件$ORACLE_HOME/network/admin/listener.ora。
然后執行lsnrctl start listener1啟動該監聽器
3、監聽啟動和數據庫實例啟動的順序
1)建議先啟動監聽器,再啟動數據庫實例。
2)如果選擇先啟動實例,再啟動監聽器則需要等待一段時間。或者修改listener.ora文件
4、客戶端OraClient Lite上的配置
修改$/oracle/product/11.2/client_lite/network/admin/tnsnames.ora文件
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(port = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = orcl)
)
)
注意HOST處填寫Oracle數據庫的主機名。
二、控制文件管理
1、控制文件在啟動時的作用
1)記錄了數據庫的名稱、創建時間
2)記錄了數據文件的名稱、位置、聯機、脫機狀態
3)包含重做日志文件的名稱、位置、歸檔信息
4)所有的表空間信息、當前的日志序號、最近檢查點信息
2、查看控制文件信息
select name from v$controlfile;或者
select name,value from v$parameter where name=’control_files’;
3、查看控制文件內容,利用數據字典v$controlfile_record_section查看
select type,record_size,records_total,records_used from v$controlfile_reco
rd_section;
4、存儲多重控制文件
1)進入數據庫
alter system set
control_files=’/opt/oracle/oradata/orcl/control01.ctl’,
’/opt/oracle/oradata/orcl/control02.ctl’,
’/opt/oracle/oradata/orcl/control03.ctl’,
scope=spfile;
2)關閉數據庫
shutdown immediate
3)將原本存在control01.ctl復制,生成control02.ctl和control03.ctl(注意路徑應當預配置相同)
4)再次啟動實例
startup
5、恢復控制文件
假如控制文件control01.ctl和control02.ctl損壞了,這時候可以通過control03.ctl恢復數據庫。
alter system set control_files=’/opt/oracle/oradata/orcl/control03.ctl’ scope=spfile;
三、重做日志文件管理
1、起因:重做日志文件也成為聯機重做日志文件,其作用是為了數據恢復。為了提高寫數據的效率,并不是一有數據變化,就立即把數據寫入到數據文件中。頻繁的寫入到讀取磁盤的數據文件會使得系統效率變差,所以要等到數據緩沖區達到一定數據量的時候才進行寫入。但是這種情況面臨著一個問題,就是當數據還在緩沖區,沒有寫入到數據文件中時,服務器發生宕機,那么緩沖區的數據將會丟失。
解決:重做日志文件將發生變化的數據首先保存起來。
2、重做日志文件結構:
規定至少存在兩個重做日志文件組,每個組中有一個或者多個日志組成員。當一個重做日志文件組寫滿日志以后會寫到另一個組,循環使用日志文件組。
3、查看重做日志成員信息
select group#,sequence#,bytes,members,archived,status from v$log;或者
select group#,status,type,member from v$logfile;
4、創建重做日志文件組
首先在root用戶下:
mkdir -p /backup/orcl/log/
使用oracle用戶登陸oracle:
alter database add logfile group 4
(‘/opt/oracle/oradata/orcl/redo04a.log’,
/backup/orcl/log/redo04a.log’) size 10m;
刪除日志文件組
alter database drop logfile group 4;
四、歸檔日志文件
1、Oracle數據庫運行方式分為歸檔和非歸檔方式。顧名思義,在非歸檔模式下,日志成員切換會直接覆蓋以前的重做日志文件;歸檔模式則會將這部分重做日志文件進行歸檔后再切換。但是歸檔模式會對數據庫運行帶來一定的性能問題,默認情況下,Oracle采用非歸檔模式
2、配置歸檔日志
1)查詢當前歸檔模式
archive log list;
2)關閉數據庫實例到mount狀態
shutdown immediate;
startup mount;
3)設置歸檔模式
alter database archivelog;
五、數據字典
1、數據字典的含義:數據字典是Oracle存儲關鍵信息的表和視圖的集合。Oracle進程在sys用戶模式中維護這些表和視圖,也就是說數據字典的所有者為sys,這些字典數據存放于system表空間中。數據字典在安裝Oracle時已經默認安裝,沒有數據字典Oracle無法正常工作
2、數據字典由數據字典表和數據字典視圖組成。數據字典表的數據是Oracle系統存放的系統數據,為了方便區分,數據字典表名稱采用’$’結尾;Oracle對這些數據字典表都分別建立了用戶視圖,方便查詢。
1)數據字典視圖
·靜態數據字典視圖:主要分為USER*、ALL和DBA_。
·常用的靜態數據字典視圖
user_tables :當前用戶下的所有表的信息
user_indexes :當前用戶下的所有索引
user_views :當前用戶下的所有視圖
user_objects :當前用戶下的數據庫對象(包括表、視圖、觸發器、索引、存儲過程等)
user_users :當前用戶的信息
all_objects :當前用戶可以訪問的所有表、過程等
2)動態數據字典視圖--“v$視圖”
這些動態數據字典視圖會不斷的更新變化,動態的顯示當前數據庫的活動,動態數據字典視圖的信息都來自于內存和控制文件。
常用舉例:
·select from v$fixed_table where name like ‘v$log%’;用于查詢和日志文件相關的信息·select group#,members,archived,status from v$log;查詢日志組信息·select from v$logfile;
查詢重做日志文件信息