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