找了一個會運維的幫忙在本機的虛擬機中安裝了一個oralce ,他幫忙把防火牆都關了(root下,chkconfig iptables off,而後重啓系統)。還有亞木倉庫都給裝好了。linux
安裝教程網上都有,我就不贅述了。這裏主要記錄一下安裝完成後的一些附屬配置:sql
1、字符集的配置數據庫
linux環境下修改oracle的字符集服務器
ORACLE修改數據庫的字符集編碼爲UTF-8方法session
數據庫oracle parameters database character systemoracle
一、查看數據庫字符集運維
數據庫服務器字符集select * from nls_database_parameters,其來源於props$,是表示數據庫的字符集。網站
客戶端字符集環境select * from nls_instance_parameters,其來源於v$parameter,表示客戶端的字符集的設置,多是參數文件。編碼
環境變量或者是註冊表會 話字符集環境 select * from nls_session_parameters,其來源於v$nls_parameters,表示會話本身的設置,多是會話的環境變量或者是alter session完成,若是會話沒有特殊的設置,將與nls_instance_parameters一致。.net
客戶端的字符集要求與服務器一致,才能正確顯示數據庫的非Ascii字符。
若是多個設置存在的時候,alter session>環境變量>註冊表>參數文件字符集要求一致,可是語言設置卻能夠不一樣,語言設置建議用英文。如字符集是zhs16gbk,則nls_lang能夠是American_America.zhs16gbk。
二、修改Oracle的字符集,以下例把字符集GB2312修改成UTF-8步驟:1.在SQL*PLUS 中,以DBA登陸conn 用戶名 as sysdba2.執行轉換語句:
SHUTDOWN IMMEDIATE;
STARTUP MOUNT EXCLUSIVE;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;ALTER DATABASE NATIONAL CHARACTER SET UTF8;
SHUTDOWN immediate;
startup;
注意:若是沒有大對象,在使用過程當中進行語言轉換沒有什麼影響,(切記設定的字符集必須是ORACLE支持,否則不能start)
按上面的作法就能夠,可是可能會出現‘ORA-12717: Cannot ALTER DATABASE NATIONAL CHARACTER SET whenNCLOB data exists’ 這樣的提示信息
要解決這個問題有兩種方法:
一個是,利用INTERNAL_USE 關鍵字修改區域設置,還有一個是利用re-create,可是re-create有點複雜,
因此請用internal_use:
SHUTDOWN IMMEDIATE;
STARTUP MOUNT EXCLUSIVE;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8;
SHUTDOWN immediate;
startup;
若是按上面的作法作,National charset的區域設置就沒有問題 。
2、oralce的啓動:
一、以dba的身份登陸
sqlplus / as sysdba;
二、啓動服務
startup
命令的解釋
startup參數
不帶參數,啓動數據庫實例並打開數據庫,以便用戶使用數據庫,在多數狀況下,使用這種方式!
nomount,只啓動數據庫實例,但不打開數據庫,在你但願建立一個新的數據庫時使用,或者在你須要這樣的時候使用!
mount,在進行數據庫改名的時候採用。這個時候數據庫就打開並可使用了!
三、關閉服務
shutdown
命令的解釋
shutdown的參數
Normal 須要等待全部的用戶斷開鏈接
Immediate 等待用戶完成當前的語句
Transactional 等待用戶完成當前的事務
Abort 不作任何等待,直接關閉數據庫
normal須要在全部鏈接用戶斷開後才執行關閉數據庫任務,因此有的時候看起來好象命令沒有運行同樣!在執行這個命令後不容許新的鏈接
immediate在用戶執行完正在執行的語句後就斷開用戶鏈接,並不容許新用戶鏈接。
transactional 在擁護執行完當前事物後斷開鏈接,並不容許新的用戶鏈接數據庫。
abort 執行強行斷開鏈接並直接關閉數據庫。
四、若是啓動完成,僅僅是吧數據庫打開了,服務和監聽尚未啓動,因此
這一步就是啓動服務和監聽;
(1)exit 退出sql模式,
(2)lsnrctl start 啓動數據庫服務和監聽程序;
3、oracle的服務都起來了。怎麼宿主機上鍊接呢?我使用的是pl/sql
一、去oracle官方網站下載instantclient-basic-win32-10.2.0.3-20061115.zip,解壓到E盤。打開解壓的文件夾,
新建目錄network,在network下面再建子目錄admin,把oracle配置文件tnsnames.ora放入admin文件夾中(即目錄結構爲:E:\instantclient_10_2\network\admin\tnsnames.ora)。
二、tnsnames.ora最好是到linux下的oracle主目錄中拷貝。
[root@localhost ~]# locate tns 三、拷貝過來的tnsnames.ora要打開把HOST一項改爲虛擬機中linux系統的IP地址。 這點很重要。 instantclient設置完以後,只要在配置一下PL/SQL developer便可。 四、啓動PL/SQL developer以後,打開tools下的preferences對話框, 在connection項裏面把 Oracle Home設置成E:\instantclient_10_2 OCI Library設置成E:\instantclient_10_2\oci.dll。重啓登錄。 等於說PL/SQL developer鏈接遠程的數據庫用到的IP地址, 數據庫名等配置信息都存放在tnsnames.ora中。