一、數據庫語言部分
1. SQL語言:關係數據庫的標準語言
2. PL/SQL:過程化語言Procedural Language
3. SQL*Plus:簡單的報表,操作系統接口
4. Oracle 8.01後出現:
(1) 數據分區技術:只適用8.01後的版本,數據分散存放,不要放在一個硬盤上,I/O性能好,安全性能好。
(2) 對象技術:存儲過程、函數、包、數據庫觸發器、動態SQL編程
(3) 數據庫權限管理
(4) 數據完整性約束(Data Integrity Constraints)
二、Oracle 數據庫核心,數據庫管理員DBA
數據庫的管理與日常維護
數據庫總體設計
數據庫存儲結構設計:物理結構、邏輯結構
/**************************************************************************************************
可以運行Oracle的操作系統:
UNIX:Sun Solaris, HP-UX, AIX, Compaq-Tru64, SCO-UNIX和Linux(運行在PC機上)
Windows NT/2000
P4機器上不能安裝Oracle,要想安裝需要對安裝文件進行修改或者下載補丁程序
在P4機器上安裝Oracle的方法(只限於Intel P4機器):
將Oracle的安裝光盤拷貝到硬盤上,然後將/stage/components/oracle.swp.jre/win32/bin/symcjit.dll 文件改名爲symcjit.org,然後再開始安裝。
***************************************************************************************************/
數據庫的備份與恢復
優化與性能調整
三、應用系統開發
四、應用服務器OAS
五、在Windows NT/2000下清除Oracle8i運行環境(重新安裝前的準備工作):
1. 刪除Oracle8i註冊表:
regedit.exe => HKLM => Software => ORACLE
2. 刪除Oracle8i服務:
regedit.exe => HKLM => System => CurrentControlset => Services => 以Oracle開頭的服務
3. 刪除Oracle8i事件日誌:
regedit.exe => HKLM => System => CurrentControlset => Services => Eventlog => Application => 以Oracle開始的事件
4. 刪除Windows NT/2000安裝磁盤/Program Files/Oracle目錄。
5. 刪除Oracle8i環境變量
控制面板 => 系統 => 高級 => 環境變量
(1) 刪除CLASSPATH
(2) 編輯PATH,將其中與Oracle有關係的路徑刪除。
6. 刪除Oracle8i菜單
7. 重新啓動Windows NT/2000,停止服務。
8. 刪除Oracle8i主目錄。
/*
IP: 75.64.16.X
Mask: 255.255.248.0
GateWay: 75.64.16.3
DNS: 75.64.16.3
*/
[七、Oracle 網絡配置]
/*
(1) 查詢數據庫名:
SQL> select name from v$database;
(2) 查詢數據庫實例名:
SQL> select instance_name from v$instance;
(3) 查詢數據庫服務名:
SQL> select value from v$parameter where name='service_names'; // (小寫)
(4) 查詢全局數據庫名(sys用戶):
SQL> select value$ from props$ where name='GLOBAL_DB_NAME'; // 字符串區分大小寫
*/
1. Oracle網絡驅動使用SQL*Net v2.0 連接
Oracle for Win98 -> SQL*Net Easy Configuration
2. Oracle 網絡驅動使用Net8 連接
3. Oracle 網絡驅動使用Net8i 連接
Oracle程序組-> Network Administration -> Net8 Assistant
[創建TNS連接過程]:
(1) 啓動Net8 Assistant
(2) 本地->服務命名
(3) 編輯->創建...
(4) 第一頁:網絡服務名:給要使用的網絡數據庫在本機指定一個Host String,自己定義。
(5) 第二頁:協議:TCP/IP(Internet協議)
(6) 第三頁:
主機名:輸入對方機器的IP地址或域名。
端口號:默認是1521,一般不需要修改。
(7) 第四頁:(Oracle8i)服務名:輸入網絡數據庫的服務名
(8) 第五頁:完成。
(9) 菜單:文件->保存網絡配置。
監視用戶會話:
SQL> select username, sid, serial#, machine from v$session;
刪除用戶會話:
SQL> alter system kill session 'sid,serail#';
/* 練習
sqlplus stud01/stud01
SQL> show user
SQL> select * from emp;
SQL> select * from dept;
*/
[ // 使用下面的方法可以重複執行上一條SQL語句(在SQL*Plus中)
SQL> l //小寫字母L,顯示上一條SQL語句
1* select username, sid, serial#, machine from v$session
SQL> / // 正斜槓:重複執行上一條SQL語句
SQL> set linesize 1000 //將SQL*Plus中顯示行寬設成1000個字符。
SQL> connect system/manager@orasjz // 在SQL*Plus中直接連接到另一臺機器上的數據庫,@字符後是另一臺機器的tnsname
]
4. 手工配置Oracle網絡連接:主要是配置"tnsnames.ora"文件。
A. 手工配置Oracle網絡連接配置文件:tnsnames.ora
(1) 在UNIX中:/u01/app/oracle/product/8.1.6/network/admin/tnsnames.ora
(2) 在Windows 98/NT/2000中:d:/oracle/ora81/network/admin/tnsnames.ora
B. 手工配置Oracle監聽進程配置文件:listener.ora
(1) 在UNIX中:/u01/app/oracle/product/8.1.6/network/admin/listener.ora
UNIX下啓動進程命令:
$ lsnrctl start // 啓動監聽進程
$ lsnrctl status // 顯示監聽進程狀態
$ lsnrctl stop // 停止監聽進程
(2) 在Windows 98/NT/2000中:d:/oracle/ora81/network/admin/listener.ora
啓動進程的命令與UNIX相同。
# LISTENER.ORA Network Configuration File: d:/Oracle/Ora81/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ORA54)(PORT = 1521))
//注意:上面一行的HOST必須是你的主機名,否則監聽會出問題,也可以使用你的機器的IP地址
)
)
(DESCRIPTION =
(PROTOCOL_STACK =
(PRESENTATION = GIOP)
(SESSION = RAW)
)
(ADDRESS = (PROTOCOL = TCP)(HOST = ORA54)(PORT = 2481))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = d:/Oracle/Ora81)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ora54)
(ORACLE_HOME = d:/Oracle/Ora81)
(SID_NAME = ora54) // 注意:ora54爲數據庫的SID名稱,不能更改,否則監聽出問題
)
)
5. 將主機字符串(Host String)寫入註冊表(簡化SQL*Plus的登錄)
regedit.exe -> HKLM -> Software -> Oracle -> home0
增加關鍵字: local(字符串),鍵值:主機字符串名。
/* 將下面的內容複製到一個.reg文件中,在Windows 2000中雙擊執行,即可實現增加或者修改local鍵值的作用
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0]
"local"="ora54"
*/
[SVRMGRL: Server Manager的使用方法]
D:/>svrmgrl
Oracle Server Manager Release 3.1.6.0.0 - Production
版權所有 (c) 1997,1999,Oracle Corporation。保留所有權利。
Oracle8i Enterprise Edition Release 8.1.6.0.0 - Production
With the Partitioning option
JServer Release 8.1.6.0.0 - Production
SVRMGR> connect internal //使用svrmgrl,進入後使用的第一個命令必須是這個命令。
口令: // 如果要求輸入口令,請輸入oracle
連接成功。
SVRMGR> select name from v$database; // 檢查當前使用的數據庫名
NAME
---------
ORA44
已選擇 1 行。
SVRMGR> shutdown immediate //關閉當前使用的數據庫
已關閉數據庫。
已卸下數據庫。
已關閉 ORACLE 實例。
SVRMGR> startup //啓動當前使用的數據庫,如果無效,請使用startup force
已啓動 ORACLE 實例。
系統全局區域合計有 24433932個字節
Fixed Size 70924個字節
Variable Size 7507968個字節
Database Buffers 16777216個字節
Redo Buffers 77824個字節
ORA-00205: ?????????????????????
SVRMGR>
[另一個啓動oracle數據庫的例子]
d:/> sqlplus internal/oracle
SQL> startup force //強行重新啓動數據庫。
[修改口令字]
SQL> grant connect to system identified by NewPassword; //如果用數字作口令,需要使用雙引號括起來
SQL> grant connect to sys identified by NewPassword;
SQL> alter user system identified by NewPassword;
SQL> alter user sys identified by NewPassword;
SQL>password //需要輸入原口令
// 注:以上修改口令的方法等價;sys與system用戶可以互相修改口令;如果sys與system用戶的口令都忘記了,使用如下方法:
D:/>svrmgrl
Oracle Server Manager Release 3.1.6.0.0 - Production
版權所有 (c) 1997,1999,Oracle Corporation。保留所有權利。
Oracle8i Enterprise Edition Release 8.1.6.0.0 - Production
With the Partitioning option
JServer Release 8.1.6.0.0 - Production
SVRMGR> connect internal/oracle
連接成功。
SVRMGR> grant connect to system identified by manager;
語句已處理。
SVRMGR> exit
服務器管理程序結束。
[2002.04.18]
//=========================================================================================================
八、Oracle 產品組成
查詢數據庫選件產品:
SQL> select * from v$option;
一般都是True, 如果是False, 可以雙擊激活。
/* cartridges (小產品的)插件,(大產品的)選件(options)*/
[SYS用戶是Oracle數據庫中權限最大的用戶。]
[SQL*Plus登錄方法]
1. c:/> sqlplus "/ as sysdba"
2. c:/> sqlplus internal
// 注意:以上兩種方法可以類似的使用於SQL*Plus的圖形登錄界面中
// 用這種登錄方法登錄進去,所使用的用戶均爲SYS。
[之所以會出現這種登錄方法,是因爲在NT的用戶組中存在一個ORA_DBA的本地組, 凡在此組中的用戶使用操作系統認證,即在此組中的用戶登錄數據庫時不需要密碼。]
[orapwd命令:修改internal用戶的口令字]
/* orapwd的命令行參數
D:/>orapwd
Usage: orapwd file=<fname> password=<password> entries=<users>
where
file - name of password file (mand),
password - password for SYS and INTERNAL (mand),
entries - maximum number of distinct DBA and OPERs (opt),
There are no spaces around the equal-to (=) character. */
修改internal口令字(internal默認口令爲oracle)認證方法(A B兩個步驟):
A. 修改Oracle登錄認證方法:
修改文件SQLNET.ORA文件。
SQLNET.AUTHENTICATION_SERVICES=(NTS) //將這一行前面加上#號註釋掉,即可將Oracle的認證方法由操作系統認證改爲Oracle認證
SQLNET.ORA文件的位置:
UNIX:/u01/app/oracle/product/8.1.6/network/admin/sqlnet.ora
Windows NT/2000: d:/oracle/ora81/network/admin/sqlnet.ora
B. 修改Internal口令字:
Windows NT/2000:
C:/>ORAPWD file=d:/oracle/ora81/database/pwdora8i.ora
password=YourPassword // YourPassword爲你要設置的密碼
entries=30
/* ORAPWD file=d:/oracle/ora81/database/pwdora54.ora password=qev entries=30 */
UNIX:
$ orapwd file=$ORACLE_HOME/dbs/orapwSID
password=YourPassword
entries=30
然後重新啓動Oracle服務(服務->OracleServiceHOSTNAME)。
/* 在執行上述命令之前,需要先將相應目錄的pwdora8i.ora(或orapwSID)文件刪除或者改名,因爲口令字文件不能重名。*/
[tkprof 跟蹤文件整理工具]
$ tkprof x.trc x.txt
Windows 2000/NT:
d:/oracle/admin/db_name/udump/*.trc
UNIX:/u01/app/oracle/amdin/db_name/udump/*.trc // */
九、Oracle數據分區技術:8.0以後開始使用
(一)LOB(Large Object)大對象類型數據:
1. BLOB:存儲二進制數據,如圖象、視頻、聲音等,用於代替Long raw類型(Oracle7.0以前的數據類型,今後不再支持)
2. CLOB:存儲大字符,如:個人簡歷,用於代替long字段。
3. NCLOB:其它民族語言的支持
(1) 數據庫字符集NLS:
Server端:NLS_CHARACTERSET: (如果爲以下的字符集,Oracle的數據庫可以用來存儲漢字)
ZHS16GBK(Oraclei8, Oracle8)
ZHS16CGB231280(Oracle7.3, 8, 8i)
此參數位置在數據字典中,查詢核心字符集(語言、日期、貨幣等):
SQL>select * from nls_database_parameters;
Client端:NLS_LANG=Simplified Chinese_CHINA.ZHS16GBK (如果沒有設置,默認是英文)
regedit.exe
UNIX Client中:
$ NLS_LANG="simplified chinese"_china.zhs16gbk
$ export NLS_LANG
//一般將上述環境變量放入.profile文件中。
/***********************************************插入內容********************************************************
(1) sys是一種用戶,internal是一種方式,用來啓動關閉數據庫,9.0以後不再使用internal,全部是sys。
(2) SQL>set com v7 //將8i版本暫時退回到7版
(3) SQL> alter system suspend; // 使用internal用戶執行,凍結數據
SQL> alter system resume; // 取消凍結,恢復正常
****************************************************************************************************************/
(2)Oracle數據庫核心字符集修改方法:
[*] 修改數據字典(使用SYS用戶):
SQL>update props$ set value$='ZHS16GBK' where name='NLS_CHARACTERSET';
SQL>commit;
然後重新啓動數據庫。
4. BFILE:外部文件存儲,將數據存儲在服務器硬盤
十、Oracle 8i 數據庫改變:
1. 網絡計算數據庫
2. 支持IFS(Internet File System)
3. 集成Java虛擬機