1. 準備工作:
(1)瞭解ORACLE數據庫的體系結構。
先討論兩個基本但重要的與磁盤和內存相關的概念:數據庫和實例
數據庫:在ORACLE中數據庫指的是用來存儲信息的物理文件。有三種類型的物理文件:
- 數據文件:促使我們讓數據庫引擎開始工作的所有數據。
- 控制文件:數據庫引擎所使用的關於其它數據的元數據。
- 重做日誌文件:用來記錄所有對數據的更改,用於備份和恢復。
實例:如果不存在與數據庫進行交互的內存結構和進程,數據庫文件本身是無用。ORACLE將實例定義爲內存結構和一些後臺進程,用於從數據庫中獲取數據。一個實例有兩個主要內存結構:
- 系統全局區(SGA),也叫共享全局區,將各種進程共享的信息存儲在內存中。
- 程序全局區(PGA),也叫私有全局區,包含某個特殊進程的信息。
SGA還包括:
- 數據庫緩衝區高速緩存:緩存從數據文件中讀取的信息。
- 數據字典高速緩存:緩存元數據信息。
- 庫高速緩存:緩存最近使用的SQL和PL/SQL語句
PGA用來給排序空間,變量,數組和遊標信息分配內存。實例也包含了協作完成各種所需功能的多個後臺進程。這些進程包括數據庫寫進程,負責將更改寫入數據庫的進程,對各個進程進行監督的進程,用戶進程失敗後負責進行清除的進程等等。
(2)瞭解ORACLE數據庫的邏輯結構。
(3)安裝ORACLE數據庫,數據庫名稱爲ORCL。
(4)打開命令窗口,設置窗口的寬度和高度,以及緩衝區的寬度和高度,保存。
(5)爲了節省資源,開始 -> 運行 - services.msc,將所有與ORACLE相關的服務設置爲手動啓動方式。
2. 登錄:
(1)啓動計算機,採用批處理方式啓動ORACLE服務。批處理文件爲start.bat。start後爲服務名稱。停止服務爲stop.bat。
rem - @echo off disable the display of the following commands
net start "OracleOraHome90TNSListener"
net start "OracleServiceORCL"
exit
net stop "OracleOraHome90TNSListener"
pause
net stop "OracleServiceORCL"
exit
(2)以非登錄方式打開SQL*PLUS:sqlplus /nolog
(3)登錄到數據庫:conn system/manger as sysdba 或 connect / as sysdba
3. 設置:
(1)爲了使輸出漂亮一點,設置行寬:set linesize 300;
4. 參數學習:
(1)查看SGA:show sga;
(2)參數查看:show parameter;
瞭解shared_pool_size, java_pool_size, large_pool_size。改變共享池大小:alter system set shared_pool_size = 40M;但Java池和大池的大小不能修改。
瞭解db_cache_size, db_block_size, log_buffer。改變數據緩衝區大小:alter system set db_cache_size = 30M;
5. 創建表空間和查看錶空間和數據文件:
方法一:
(1)創建永久表空間和臨時表空間:
datafile 'D:\oracle\oradata\mis.dbf'
size 32M;
create temporary tablespace MIS_TMP
tempfile 'D:\oracle\oradata\mis_tmp.dbf'
size 32M;
(2)查看數據庫中的所有表空間:select tablespace_name from dba_tablespaces; 調整表dba_tablespaces中的列tablespace_name的寬度:col tablespace_name format a20; 再次select * from dba_tablespaces; 查看所有表空間。
(3)查看數據文件:select file_name from dba_data_files;
(4)刪除表空間及對應的數據文件:drop tablespace mis including contents and datafiles; 使用此命令,mis空間的內容及相關的操作系統文件mis.dbf都將被刪除。命令drop tablespace mis including contents不會刪除操作系統文件mis.dbf。
方法二:利用OMF(Oracle-Managed File)
目的:能利用以下語句成功創建表空間
datafile
size 10m;
(1)用show parameter db_create_file_dest;查看該參數的value是否爲空,如果爲空進行設置。
(2)設置參數db_create_file_dest中的value: alter session set db_create_file_dest = 'D:\oracle\';
(3)執行上述語句,成功創建表空間omf,對應的數據文件位於D:\oracle\目錄下,名稱爲ORA_OMF_4FJJ5F00.DBF
(4)改變db_create_file_dest的值:alter session set db_create_file_dest = 'D:\';再刪除表空間omf。
(5)使用命令:drop tablespace omf; 刪除表空間內容和相關的操作系統文件。其效果與方法一中的drop tablespace mis including contents and datafiles是一樣的。儘管db_create_file_dest的值改變了,但不影響對先前創建的表空間進行刪除。
(6)恢復空值:alter session set db_create_file_dest = ' ';
6. 如何給數據庫分配更多的空間:
方法一:給某個表空間增加數據文件
在ORACLE 10g中可以用以下命令刪除一個表空間中的某個數據文件,若要刪除System表空間中的DATA3.ORA,可用:
alter tablespace system drop datafile ‘DATA3.ORA’;
方法二:增加新的表空間
方法三:增加某個數據文件的大小
7. 對數據文件的操作:
1、重新設置數據文件的大小:alter database datafile 'D:\oracle\oradata\mis01.dbf' resize 10m;
2、將數據文件移到磁盤的其它位置:
(1) shutdown immediate;
(2) startup mount;
(3) 將原文件拷貝到新文件:copy 'd:\oracle\oradata\mis01.dbf' 'd:\oracle\mis01.dbf'
(4) alter database rename file 'd:\oracle\oradata\mis01.dbf' to 'd:\oracle\mis01.dbf';
(5) alter database open;
(6) 刪除磁盤上的舊文件d:\oracle\oradata\mis01.dbf
(6) 用select * from dba_dataK_files;查看。
3、設置數據文件的大小是否可擴展:
關閉可擴展性:alter database datafile 'D:\oracle\oradata\mis01.dbf' autoextend off;
打開可擴展性:alter database datafile 'D:\oracle\oradata\mis01.dbf' autoextend on maxsize unlimited;