ORACLE知識點總結

 

1、ORACEL經常使用操做linux

一、解鎖帳戶:ALTER USER username ACCOUNT UNLOCK;sql

二、查看數據庫字符集:SELECT USERENV ('language') FROM DUAL; 數據庫

三、建立表空間:create tablespace cdj_userpace1 datafile '/usr/oracle/oradata/cdj/userpace1.dbf' size 500M;windows

四、建立數據庫用戶:create user 用戶名 identified by 密碼 default tablespace 表空間;服務器

五、給用戶受權:grant connect,resource to 用戶名;網絡

六、刪除數據庫用戶:drop user 用戶名 cascade;    // 加上cascade能夠將用戶建立的東西所有一塊兒刪除session

七、完整啓動數據庫三連:lsnrctl start;  sqlplus / as sysdba;  startup;  數據結構

八、完整關閉數據庫三連:sqlplus / as sysdba;  shutdown;  lsnrctl stop;架構

九、查看鏈接當前數據庫的應用:select a.osuser,a.process,a.machine,a.port,a.program,a.sql_hash_value,a.sql_id from v$session a where a.username='數據庫用戶';oracle

------------------------

一、時間類型操做

select to_char(current_timestamp,'yyyy-mm-dd hh24:mi:ss.ff6') from dual;

select to_timestamp('2012-02-03 10:29:46.453234','yyyy-mm-dd hh24:mi:ss.ff6') from dual;

select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss.ff6') from dual;

select cast(sysdate as timestamp) from dual;

select to_date(to_char(add_months(sysdate,-2)+1,'yyyy-mm-dd'),'yyyy-mm-dd') from dual ; --上月第一天

select next_day(sysdate, '星期五')  from dual;--下個週五

select next_day(sysdate, 6) from dual;--下個週五, 週日爲1

select LAST_DAY(sysdate) from dual;--當月最後一天

select add_months(sysdate,1) last_month,add_months(sysdate,12) last_year from dual;--下一月,下一年

 

2、數據庫名、數據庫實例名、數據庫域名、全局數據庫名、數據庫服務名的區別和聯繫

一、數據庫名就是一個數據庫的標識,就像人的身份證號同樣。若是一臺機器上裝了多個數據庫,那麼每個數據庫都有一個數據庫名。
數據庫名是在安裝數據庫、建立新的數據庫、建立數據庫控制文件、修改數據結構、備份與恢復數據庫時都須要使用到的。

查詢當前數據庫名 

方法一:select name from v$database; 

方法二:show parameter db 

方法三:查看參數文件。   
二、數據庫實例名是用於和操做系統進行聯繫的標識,就是說數據庫和操做系統之間交互用的是數據庫實例名。

數據庫名和實例名能夠相同也能夠不一樣。 
在通常狀況下,數據庫名和實例名是一對一的關係,但若是在oracle並行服務器架構(即oracle實時應用集羣)中,數據庫名和實例名是一對多的關係。
查詢當前數據庫實例名 
方法一:select instance_name from v$instance; 

方法二:show parameter instance 

方法三:在參數文件中查詢。   
數據庫實例名與ORACLE_SID 
雖然二者都表是oracle實例,但二者是有區別的。instance_name是oracle數據庫參數。而ORACLE_SID是操做系統的環境變量。ORACLD_SID用於與操做系統交互,也就是說,從操做系統的角度訪問實例名,必須經過ORACLE_SID。且ORACLE_SID必須與instance_name的值一致,不然,你將會收到一個錯誤。 

三、數據庫域名,在分佈工數據庫系統中,不一樣版本的數據庫服務器之間,不論運行的操做系統是unix或是windows,各服務器之間均可以經過數據庫鏈路進行遠程複製,數據庫域名主要用於oracle分佈式環境中的複製。舉例說明如: 

全國交通運政系統的分佈式數據庫,其中: 福建節點:fj.jtyz 福建廈門節點:xm.fj.jtyz 江西:jx.jtyz 江西上饒:sr.jx.jtyz 這就是數據庫域名。 
數據庫域名在存在於參數文件中,他的參數是db_domain.   
查詢數據庫域名 
方法一:select value from v$parameter where name = 'db_domain'; 

方法二:show parameter domain 方法三:在參數文件中查詢。   

四、全局數據庫名=數據庫名+數據庫域名,如前述福建節點的全局數據庫名是:oradb.fj.jtyz 

五、數據庫服務名,從oracle9i版本開始,引入了一個新的參數,即數據庫服務名。參數名是SERVICE_NAME。數據庫與客戶端的鏈接字符串使用數據庫服務名。以前用的是ORACLE_SID,即數據庫實例名。數據庫服務名能夠與數據庫實例名一致,也能夠不一致。能夠配置多個服務名鏈接同一個數據庫,至關因而給實例名起了多個「別名」給不一樣的客戶端程序使用。

查詢數據庫服務名 

方法一:select value from v$parameter where name = 'service_name'; 

方法二:show parameter service_name 

方法三:在參數文件中查詢。  

綜上所述,爲了便於記憶,能夠理解爲,數據庫名/全局數據庫名是數據庫系統內部的稱呼,數據庫實例名是介紹給操做系統認識的,數據庫服務名是介紹給操做系統上的客戶程序認識的。

各個名字在主要配置文件中的使用舉例以下:

 listener.ora文件配置

SID_LIST_LISTENER =    //配置文件中必需要要有SID_LIST_LISTENER,不然啓動監聽時會提示監聽程序不支持服務。
  (SID_LIST =
    (SID_DESC=
      (GLOBAL_DBNAME = 全局數據庫名)
      (ORACLE_HOME =ORACLE_HOME環境變量設置的位置)
      (SID_NAME = 數據庫實例名)
    )
  )

監聽名稱 =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = IP地址)(PORT = 端口))
    )
  )

 

tnsnames.ora文件配置

數據庫服務名 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ip地址)(PORT = 端口))    //注意:這裏的IP地址若是寫成192.168.*.*等局域網IP時,必須聯網,sqlplus才能正常鏈接數據庫。 若無網絡,必須寫成127.0.0.1
    )
    (CONNECT_DATA =
      (SERVICE_NAME = 數據庫服務名)
    )
  )

兩個配置文件都是放在$ORACLE_HOME\network\admin目錄下。

 

 3、使用sqlplus能夠用sysdba用戶無密碼登陸的緣由

命令:sqlplus / as sysdba  便可登錄dba權限的用戶,緣由在於${ORACLE_HOME}/network/admin/sqlnet.ora中設置了「以操做系統認證」的方式登錄數據庫。即當前的系統用戶位於dba的用戶組中,則能夠以這種方式登錄。 目前通常剛裝好的oracle數據庫都是這種認證方式。

SQLNET.AUTHENTICATION_SERVICES= (NTS)  // NTS表明操做系統認證,改爲none, 則表明改爲密碼認證

 

4、windows/linux下程序鏈接ORACLE須要的東西。

一、windows下:oci.h 和 oci.dll或oci.lib

二、unix/linux下:${ORACLE_HOME}/include下的頭文件,以及libclntsh.so和libnnz11.so

       oracle\include\nzerror.h  ......\.......\nzt.h  ......\.......\occi.h  ......\.......\occiAQ.h  ......\.......\occiCommon.h  ......\.......\occiControl.h  ......\.......\occiData.h  ......\.......\occiObjects.h  ......\.......\oci.h  ......\.......\oci1.h  ......\.......\oci8dp.h  ......\.......\ociap.h  ......\.......\ociapr.h  ......\.......\ocidef.h  ......\.......\ocidem.h  ......\.......\ocidfn.h  ......\.......\ociextp.h  ......\.......\ocikpr.h  ......\.......\ocixml.h  ......\.......\ocixmldb.h  ......\.......\ocixstream.h  ......\.......\odci.h  ......\.......\oratypes.h  ......\.......\ori.h  ......\.......\orid.h  ......\.......\orl.h  ......\.......\oro.h  ......\.......\ort.h  ......\.......\xa.h

相關文章
相關標籤/搜索