iSQL*PLUS介紹
iSQL*PLUS是從ORACLE 9i開始提供的新功能,是SQL*PLUS的Web形式(ORACLE 11g已經不支援)。是基於三層結構設計的。其client、middle、server可以位於同一台機器上也可以位於不同的機器。iSqlPlus不需要單獨安裝,通過isqlplus,使用者可以不需要安裝任何ORACLE用戶端,就能夠通過瀏覽器方式的使用SQL*PLUS進行資料操作與資料庫管理。普通的資料庫使用者可以直接通過isqlplus的網址http://ip:port/isqlplus登陸,進入該網址後會直接進入資料庫使用者登陸介面,使用資料庫中的普通使用者即可登陸;但如果是DBA使用者登陸isqlpus,則需要首先配置iSQL*PLUS DBA的使用者和口令,然後輸入網址http://ip:port/isqlplus/dba,進入該網址後首先會彈出一個登陸框,要求先輸入iSQL*Plus DBA的使用者和密碼,注意這裡不是資料庫使用者,而是iSQL*PLUS應用伺服器要求的使用者和密碼,然後才能出現iSQL*PLUS登陸介面,此時可以輸入sys或者system使用者,登陸資料庫進行管理。要以DBA身份登陸isqlplus,必須先配置好oc4j使用者。採用xml設定檔認證的方式。該設定檔位於$ORACLE_HOME/oc4j/j2ee/isqlplus/application-deployments/isqlplus/config但是該設定檔中的密碼是加密過的,所以我們不能手動修改該檔案,而是通過JAZN(Java AuthoriZatioN)來配置。JAZN是ORACLE提供的一個JASS(Java Authentication and Authorization Service)工具.
如何進入JAZN命令環境?
1.進入到目錄$ORACLE_HOME/oc4j/j2ee/isqlplus/application-deployments/isqlplus/下,如下所示:
[oracle@DB-Server isqlplus]$ pwd
/database/product/dbhome_1/oc4j/j2ee/isqlplus/application-deployments/isqlplus
[oracle@DB-Server isqlplus]$ ls
application.log config isqlplus orion-application.xml
2.確保JAVA_HOME環境變數指向了正確的jdk(需要1.4以上)路徑,可以使用ORACLE內建的jdk,位於$ORACLE_HOME/jdk
3.執行以下命令
[oracle@DB-Server isqlplus]$ $ORACLE_HOME/jdk/bin/java -Djava.security.properties=$ORACLE_HOME/oc4j/j2ee/home/config/jazn.security.props -jar $ORACLE_HOME/oc4j/j2ee/home/jazn.jar -user "iSQL*Plus DBA/admin" -password welcome -shell
其中realm=iSQL*Plus DBA,user=admin,這些可以從xml設定檔中看到,admin的預設密碼是welcome,但是admin使用者預設沒有webDba許可權,不能直接用於登陸isqlplus。通過JAZN,可以完成以下任務
1:建立使用者kerry 密碼設定為etl123!@#
JAZN:> adduser "iSQL*Plus DBA" kerry etl123!@#
2:列出使用者
查看這個組的使用者
JAZN:> listusers "iSQL*Plus DBA"
admin
kerry
JAZN:> listusers
iSQL*Plus DBA/admin
iSQL*Plus DBA/kerry
3.授予使用者kerry DBA的許可權
JAZN:> grantrole webDba "iSQL*Plus DBA" kerry
4.撤銷使用者kerry DBA的許可權
JAZN:> revokerole webDba "iSQL*Plus DBA" kerry
5.查看角色
JAZN:> listroles
iSQL*Plus DBA/webDba
iSQL*Plus DBA/admin
6.刪除使用者
JAZN:> remuser "iSQL*Plus DBA" kerry
7.修改使用者密碼
JAZN:> setpasswd "iSQL*Plus DBA" kerry etl123!@# 123456
8.退出JAZN命令環境
JAZN:> exit
上面我們建立了一個使用者kerry,密碼為etl123!@#,並且已經授予webDba許可權。接下來重新啟動isqlplus應用伺服器isqlplusctl stop、isqlplusctl start
再進入網址http://ip:5560/isqlplus/dba,在彈出的對話方塊中輸入kerry和etl123!@#,就可以進入到資料庫登陸介面了,選擇以sysdba或sysoper身份登陸了。
啟動iSQL*PLUS
如果登入isqlplus頁面打不開(報錯): http://ip:5560/isqlplus/,首先檢查isqlplus服務啟動沒有,然後檢查一下連接埠
[oracle@DB-Server ~]$ isqlplusctl start
iSQL*Plus 10.2.0.1.0
Copyright (c) 2003, 2005, Oracle. All rights reserved.
getnameinfo failed
getnameinfo failed
Starting iSQL*Plus ...
iSQL*Plus started.
[oracle@DB-Server ~]$ netstat -an | grep 5560
tcp 0 0 0.0.0.0:5560 0.0.0.0:* LISTEN
停止iSQL*PLUS
[oracle@DB-Server ~]$ isqlplusctl stop
iSQL*Plus 10.2.0.1.0
Copyright (c) 2003, 2005, Oracle. All rights reserved.
getnameinfo failed
getnameinfo failed
iSQL*Plus instance on port 5560 is not running ...
日誌資訊
iSQL*PLUS使用的是Log4j,如下所示:
[oracle@DB-Server isqlplus]$ cd $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/isqlplus/isqlplus/WEB-INF/classes
[oracle@DB-Server classes]$ ls
log4j.properties oracle
[oracle@DB-Server classes]$ more log4j.properties
# Log4j configuration file.
# Set root logger level and its only appender to A1.
#log4j.rootLogger=ALL, A1
#log4j.rootLogger=DEBUG, A1
#log4j.rootLogger=INFO, A1
#log4j.rootLogger=WARN, A1
#log4j.rootLogger=ERROR, A1
log4j.rootLogger=FATAL, A1
#log4j.rootLogger=OFF, A1
# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender
# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{ISO8601} %-5.5p [%t] %-20.20c{2} - %m%n
# R is a rolling log file appender
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=isqlplus.log
log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{ISO8601} %-5.5p [%t] %-20.20c{2} - %m%n
[oracle@DB-Server classes]$
在ORACLE 10g的$oracle_home/oc4j/j2ee/isqlplus/log目錄下,你可以看到如下一些日誌:
記錄檔位於$ORACLE_HOME/oc4j/j2ee/isqlplus/application-deployments/isqlplus/application.log
[oracle@DB-Server WEB-INF]$ cd $ORACLE_HOME/oc4j/j2ee/isqlplus/application-deployments/isqlplus
[oracle@DB-Server isqlplus]$ ls
application.log config isqlplus orion-application.xml
[oracle@DB-Server isqlplus]$ more application.log
12/04/22 13:31:07 Started
12/04/22 13:31:09 isqlplus: jsp: init
12/04/22 13:31:09 isqlplus: config: init
12/04/22 13:31:09 isqlplus: uix: init
12/04/22 13:31:09 isqlplus: 9.0.4.1.0 Started
12/04/22 14:07:13 isqlplus: config: destroy
12/04/22 14:07:13 isqlplus: 9.0.4.1.0 Stopped
12/04/22 14:07:13 Stopped (JVM termination)
12/09/27 17:23:21 Started
12/09/27 17:23:29 isqlplus: jsp: init
12/09/27 17:23:30 isqlplus: config: init
12/09/27 17:23:31 isqlplus: uix: init
12/09/27 17:23:31 isqlplus: 9.0.4.1.0 Started
協助的日誌記錄在:
$ORACLE_HOME/oc4j/j2ee/isqlplus/application-deployments/isqlplushelp/application.log
[oracle@DB-Server log]$ ls
global-application.log http-web-access.log rmi.log server.log
[oracle@DB-Server log]$ more rmi.log
12/04/22 13:31:07 9.0.4.1.0 Started
12/04/22 14:07:13 9.0.4.1.0 Stopped (JVM termination)
12/09/27 17:23:19 9.0.4.1.0 Started
12/11/08 17:43:38 9.0.4.1.0 Started
12/11/08 17:54:01 9.0.4.1.0 Stopped (Shutdown executed by jazn.com/admin from 127.0.0.1 (localhost), 2)
12/11/08 17:55:42 9.0.4.1.0 Started
[oracle@DB-Server log]$ more server.log
12/04/22 13:31:07 9.0.4.1.0 Started
12/04/22 13:31:07 9.0.4.1.0 Started
12/04/22 14:07:13 9.0.4.1.0 Stopped (JVM termination)
12/09/27 17:23:19 9.0.4.1.0 Started
12/09/27 17:23:21 9.0.4.1.0 Started
12/11/08 17:43:37 9.0.4.1.0 Started
12/11/08 17:43:38 Forced or abrupt (crash etc) server shutdown detected, starting recovery process...
12/11/08 17:43:38 Recovery completed, 0 connections committed and 0 rolled back...
12/11/08 17:43:38 9.0.4.1.0 Started
12/11/08 17:54:01 9.0.4.1.0 Stopped (Shutdown executed by jazn.com/admin from 127.0.0.1 (localhost), 2)
12/11/08 17:55:42 9.0.4.1.0 Started
12/11/08 17:55:42 9.0.4.1.0 Started
[oracle@DB-Server log]$ more http-web-access.log
172.20.61.185 - - [27/Sep/2012:17:24:39 +0800] "GET /isqlplus/ HTTP/1.1" 200 9154
172.20.61.185 - - [27/Sep/2012:17:24:39 +0800] "GET /isqlplus/cabo/styles/cache/blaf-A0-zh_CN-ie-windows.css HTTP/1
.1" 200 13850
172.20.61.185 - - [27/Sep/2012:17:24:39 +0800] "GET /isqlplus/cabo/images/cache/c-ghss.gif HTTP/1.1" 200 97
172.20.61.185 - - [27/Sep/2012:17:24:39 +0800] "GET /isqlplus/images/logo.gif HTTP/1.1" 200 7361
172.20.61.185 - - [27/Sep/2012:17:24:39 +0800] "GET /isqlplus/cabo/images/t.gif HTTP/1.1" 200 85
172.20.61.185 - - [27/Sep/2012:17:24:39 +0800] "GET /isqlplus/images/help.gif HTTP/1.1" 200 288
172.20.61.185 - - [27/Sep/2012:17:24:40 +0800] "GET /isqlplus/cabo/jsLibs/MarlinCoreA4.js HTTP/1.1" 200 26036
172.20.61.185 - - [27/Sep/2012:17:24:40 +0800] "GET /isqlplus/cabo/images/cache/c-ghsc.gif HTTP/1.1" 200 72
172.20.61.185 - - [27/Sep/2012:17:24:40 +0800] "GET /isqlplus/cabo/images/cache/c-ghe.gif HTTP/1.1" 200 85
172.20.61.185 - - [27/Sep/2012:17:24:40 +0800] "GET /isqlplus/cabo/images/cache/c-ghse.gif HTTP/1.1" 200 219
172.20.61.185 - - [27/Sep/2012:17:24:40 +0800] "GET /isqlplus/cabo/images/cache/c-ghc.gif HTTP/1.1" 200 133
172.20.61.185 - - [27/Sep/2012:17:24:40 +0800] "GET /isqlplus/cabo/images/cache/zhs/b-login.gif HTTP/1.1" 200 715
172.20.61.185 - - [27/Sep/2012:17:24:40 +0800] "GET /isqlplus/cabo/images/cache/c-skir.gif HTTP/1.1" 200 66
172.20.61.185 - - [27/Sep/2012:17:24:43 +0800] "GET /favicon.ico HTTP/1.1" 404 135
172.20.61.185 - - [27/Sep/2012:17:24:52 +0800] "POST /isqlplus/login.uix HTTP/1.1" 200 11618
172.20.61.185 - - [27/Sep/2012:17:24:52 +0800] "GET /isqlplus/cabo/images/t.gif HTTP/1.1" 304 0
172.20.61.185 - - [27/Sep/2012:17:24:52 +0800] "GET /isqlplus/images/logo.gif HTTP/1.1" 304 0
172.20.61.185 - - [27/Sep/2012:17:24:52 +0800] "GET /isqlplus/cabo/jsLibs/MarlinCoreA4.js HTTP/1.1" 304 0
172.20.61.185 - - [27/Sep/2012:17:24:52 +0800] "GET /isqlplus/images/logout.gif HTTP/1.1" 200 360
172.20.61.185 - - [27/Sep/2012:17:24:52 +0800] "GET /isqlplus/cabo/styles/cache/blaf-A0-zh_CN-ie-windows.css HTTP/1
.1" 304 0
172.20.61.185 - - [27/Sep/2012:17:24:52 +0800] "GET /isqlplus/cabo/images/cache/c-ghss.gif HTTP/1.1" 304 0
172.20.61.185 - - [27/Sep/2012:17:24:52 +0800] "GET /isqlplus/cabo/images/cache/zhs/tb-56-0.gif HTTP/1.1" 200 971
172.20.61.185 - - [27/Sep/2012:17:24:52 +0800] "GET /isqlplus/images/help.gif HTTP/1.1" 304 0
172.20.61.185 - - [27/Sep/2012:17:24:52 +0800] "GET /isqlplus/cabo/images/cache/c-ghsc.gif HTTP/1.1" 304 0
172.20.61.185 - - [27/Sep/2012:17:24:52 +0800] "GET /isqlplus/cabo/images/cache/c-ghc.gif HTTP/1.1" 304 0
172.20.61.185 - - [27/Sep/2012:17:24:52 +0800] "GET /isqlplus/cabo/images/cache/c-ghse.gif HTTP/1.1" 304 0
172.20.61.185 - - [27/Sep/2012:17:24:52 +0800] "GET /isqlplus/cabo/i
[oracle@DB-Server log]$ more global-application.log
12/04/22 13:31:07 Started
12/04/22 13:31:08 defaultWebApp: jsp: init
12/04/22 13:31:08 defaultWebApp: 9.0.4.1.0 Started
12/04/22 14:07:13 defaultWebApp: 9.0.4.1.0 Stopped
12/04/22 14:07:13 Stopped (JVM termination)
12/09/27 17:23:20 Started
12/09/27 17:23:27 defaultWebApp: jsp: init
12/09/27 17:23:27 defaultWebApp: 9.0.4.1.0 Started
12/11/08 17:43:38 Started
12/11/08 17:43:39 defaultWebApp: jsp: init
12/11/08 17:43:39 defaultWebApp: 9.0.4.1.0 Started
12/11/08 17:54:01 defaultWebApp: 9.0.4.1.0 Stopped
12/11/08 17:54:01 Stopped (Shutdown executed by jazn.com/admin from 127.0.0.1 (localhost), 2)
12/11/08 17:55:42 Started
12/11/08 17:55:43 defaultWebApp: jsp: init
12/11/08 17:55:43 defaultWebApp: 9.0.4.1.0 Started
配置問題
1:變更session的有效期間:
在$ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/isqlplus/isqlplus/WEB-INF下的web.xml檔案中。
設定:
<session-config>
<session-timeout>15</session-timeout>
</session-config>
為分鐘狀態。
2:限制登入
[oracle@DB-Server WEB-INF]$ vi web.xml
<?xml version = '1.0' encoding = 'windows-1252'?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>iSQL*Plus</display-name>
<description>iSQL*Plus Configuration File</description>
<servlet>
<servlet-name>config</servlet-name>
<servlet-class>oracle.sqlplus.iplus.core.Config</servlet-class>
<init-param>
<param-name>iSQLPlusAllowUserMarkup</param-name>
<param-value>none</param-value>
<description>Valid values are: none | all</description>
</init-param>
<init-param>
<param-name>iSQLPlusConnectIdList</param-name>
<param-value>wgods;bics;orcl</param-value>
<description>The database(s) to which iSQL*Plus users are restricted. The list should contain the Oracle SIDs or SERVICE NAMEs
, separated by a semicolon (;). If there are no entries, database access is not restricted through iSQL*Plus.</description>
</init-param>
其中的<param-value>代表$ORACLE_HOME/network/admin/tnsnames.ora中的名字,如果設定服務名後,只能從下拉框選擇。
如果<param-value>沒有設定值,那麼可以手動輸入SID。如下所示:
3:修改iSQL*PLUS連接埠
轉到$ORACLE_HOME/oc4j/j2ee/isqlplus/config下,編輯http-web-site.xml檔案
問題錦集
1:中文環境,按鈕字型出現亂碼。可以選址語言。切換到英文環境即可看到按鈕的字型
解決辦法:
[oracle@DB-Server zhs]$ cd $ORACLE_HOME/jdk/jre/lib
[oracle@DB-Server lib]$ ls
audio font.properties.ja.Redhat6.2 font.properties.zh_CN.Redhat2.1 images
charsets.jar font.properties.ja.Redhat7.2 font.properties.zh_CN.Sun jce.jar
cmm font.properties.ja.Redhat7.3 font.properties.zh_CN_UTF8.Sun jsse.jar
content-types.properties font.properties.ja.Redhat8.0 font.properties.zh_HK.Sun jvm.hprof.txt
ext font.properties.ja.Turbo font.properties.zh_HK_UTF8.Sun jvm.jcov.txt
flavormap.properties font.properties.ja.Turbo6.0 font.properties.zh_HK_UTF8.Sun2003 locale
font.properties font.properties.ko_KR.Sun font.properties.zh.Turbo logging.properties
font.properties_back font.properties.ko_KR_UTF8.Sun font.properties.zh_TW.Redhat plugin.jar
font.properties.ja font.properties.ko_KR_UTF8.Sun2003 font.properties.zh_TW.Redhat2.1 psfontj2d.properties
font.properties.ja_JP.Sun font.properties.ko.Redhat font.properties.zh_TW.Sun psfont.properties.ja
font.properties.ja_JP.Sun2003 font.properties.ko.Redhat2.1 font.properties.zh_TW_UTF8.Sun rt.jar
font.properties.ja_JP_UTF8.Sun font.properties.Redhat6.1 font.properties.zh_TW_UTF8.Sun2003 security
font.properties.ja_JP_UTF8.Sun2003 font.properties.Redhat8.0 fonts sunrsasign.jar
font.properties.ja.Redhat3 font.properties.SuSE8.0 i386 zi
font.properties.ja.Redhat6.1 font.properties.zh_CN.Redhat im
[oracle@DB-Server lib]$
備份font.properties
[oracle@DB-Server lib]$ cp font.properties font.properties_back
[oracle@DB-Server lib]$ cp font.properties.zh_CN.Redhat font.properties
查看font.properties檔案,確認檔案中指定的字型檔zysong.ttf在系統記憶體在。若不存在需要修改此檔案或安裝這個字型
[oracle@DB-Server lib]$ tail -10 font.properties
fontset.dialoginput.plain=\
-b&h-luxi mono-medium-r-normal--*-%d-*-*-m-*-iso8859-1,\
-isas-song ti-medium-r-normal--*-%d-*-*-c-*-gb2312.1980-0
fontset.default=\
-b&h-luxi sans-medium-r-normal--*-%d-*-*-p-*-iso8859-1,\
-isas-song ti-medium-r-normal--*-%d-*-*-c-*-gb2312.1980-0
filename.-misc-zysong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/zh_CN/TrueType/zysong.ttf
[oracle@DB-Server lib]$
轉到/usr/share/fonts目錄下,發現沒有zh_CN目錄,建立目錄zh_CN/TrueType,去網上下載字型zysong.ttf放在/usr/share/fonts/zh_CN/TrueType目錄下。
然後
[oracle@DB-Server fonts]$ cd $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/isqlplus/isqlplus/cabo/images/cache/zhs/
[oracle@DB-Server zhs]$ ls
b-0dac.gif b-54.gif b-cancel.gif b-execute.gif b-login.gif b-save.gif tb-56-0.gif
b-0dac.imx b-54.imx b-cancel.imx b-execute.imx b-login.imx b-save.imx tb-56-0.imx
[oracle@DB-Server zhs]$ rm *
[oracle@DB-Server zhs]$ isqlplusctl stop
iSQL*Plus 10.2.0.1.0
Copyright (c) 2003, 2005, Oracle. All rights reserved.
getnameinfo failed
getnameinfo failed
Stopping iSQL*Plus ...
iSQL*Plus stopped.
[oracle@DB-Server zhs]$ isqlplusctl start
iSQL*Plus 10.2.0.1.0
Copyright (c) 2003, 2005, Oracle. All rights reserved.
getnameinfo failed
getnameinfo failed
Starting iSQL*Plus ...
iSQL*Plus started.
[oracle@DB-Server zhs]$
2:以DBA帳號登入時,如果不指定串連標識符,則會報如下錯誤:ORA-12154:TNS:could not resolve the connect identifier specified.