Oracle筆記(一)

一、數據庫語言部分
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虛擬機

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章