| 導購 | 订阅 | 在线投稿
分享
 
 
當前位置: 王朝網路 >> oracle >> 講解Oracle數據庫10g疑難問題的解決方法
 

講解Oracle數據庫10g疑難問題的解決方法

2008-08-15 05:14:55  編輯來源:互聯網  简体版  手機版  評論  字體: ||
 
 
  一、怎樣配置EM使其支持SSL 協議

  10G EM 中的OMS, DBConsole,Agent 都支持SSL 協議.

  具體操作:

  ◆1. 如果沒有環境變量ORACLE_SID,請先配置,或者直接敲入set ORACLE_SID=xxx (UNIX環境下請根據不同的shell類型使用不同的語法:setenv, export...)

  ◆2. 鍵入 emctl secure ,可以看到全部的選項:

  secure oms

  [] [-reset]

  secure agent

  secure em

  secure dbconsole

  []

  secure setpwd

  secure status [oms url]

  secure lock | unlock

  ◆3. 以配置oms爲例

  ◆3.1 先停掉所有與oms相關的 服務(opmnctl stopall)

  ◆3.2 敲入: emctl secure oms,會讓你輸入registration password,然後系統會産生相關的證書文件, 如果一切順利的話,系統會有提示配置成功的信息

  ◆3.3 重新啓動服務(opmnctl startall)

  缺省情況下,7777和4889這兩個端口是可用的, 配置成secure 模式後,4888端口是支持SSL協議的. 從$EM_HOME\sysman\config目錄下的emoms.properties文件中可以看到配置信息.

  ◆3.4 檢測oms是否已經運行在https協議下

  emctl secure status oms url

  注意: URL 要輸入完整,

  例如: https://myserver:4888/em/upload/

  ◆4. Agent, DBconsole的配置基本類似.

  ◆5. 啓動浏覽器運行時,IE會彈出一個安裝安全證書的窗口,按"確認".

  二、出現了問題,怎樣解決

  以DB Control爲例, 大致的步驟是這樣的:

  ◆1. emctl status dbconsole 查看db control 的狀態

  ◆2.去 $ORACLE_HOME\hostname_sid\sysman\log目錄下查看相關日志(emoms.log,emagent.log等)

  ◆3. 檢查配置文件 emd.properties,emoms.properties

  目錄: $ORACLE_HOME\hostname_sid\sysman\config

  ◆4. 確保監聽器工作正常: lsnrctl status

  ◆5. 10G EM 使用的是配置文件中定義的連接串,而不是直接訪問tnsnames.ora .

  目錄: $ORACLE_HOME\hostname_sid\sysman\config

  文件: emoms.properties.

  參數: oracle.sysman.eml.mntr.emdRepConnectDescriptor

  三、修改了監聽端口, 怎樣保證 DB Control 正常運行

  ◆1. 修改 listener.ora 和tnsnames.ora 這兩個文件:

  tnsnames.ora 中需要加入:

  listener_1 =

  (ADDRESS = (PROTOCOL = TCP)

  (HOST = xxxx)(PORT = 新的端口))

  然後啓動數據庫:

  SQL> show parameter local_listener ;

  SQL> alter system set local_listener='listener_1' scope=spfile;

  重啓數據庫使得修改生效

  ◆2. 修改 $ORACLE_HOME\hostname_sid\sysman\config

  下的emoms.properties文件:

  oracle.sysman.eml.mntr.emdRepPort=新的端口

  oracle.sysman.eml.mntr.emdRepConnectDescriptor=(DESCRIPTION\=(ADDRESS_LIST\=(ADDRESS\=(PROTOCOL\=TCP)(HOST\=xxx)(PORT\=新的端口)))(CONNECT_DATA\=(SERVICE_NAME\=xxx)))

  ◆3. 最後,還要修改 $ORACLE_HOME\hostname_sid\sysman\emd

  下的targets.xml:

  ◆4. 重新啓動監聽器和dbconsole 服務.

  ◆5. 如果嫌上面的操作麻煩,可以用emca這個命令行工具:

  emca -h 查看所有可用的命令

  emca -r 跳過資料檔案庫的創建.

  四、怎樣修改 DB Control 的服務端口

  缺省情況下, DB Control 的端口是5500, 可以參考下面的說明更改端口。

  如果用戶想改變oms端口,必須改變以下三個文件,然後重啓db control以使得改變生效:

  ◆1.編輯$ORACLE_HOME/_/sysman/config/emoms.properties並改變以下參數:

  oracle.sysman.emSDK.svlt.ConsoleServerPort

  oracle.sysman.emSDK.svlt.ConsoleServerHTTPSPort

  ◆2.編輯$ORACLE_HOME/_/sysman/config/emd.properties並改變以下參數:

  REPOSITORY_URL

  emdWalletSrcUrl

  ◆3.編輯$ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole__/config/http-web-site.xml並改變以下參數:

  web-site port

  注:請在修改前備份。

  ◆五、如何使用"Automatic SGA Management"

  Automatic SGA Management 是 10G 引入的新特性之一,將初始化參數文件中與內存管理密切有關的幾個參數抽取出來,交由數據庫去自行管理(由新增加的參數SGA_TARGET來管理),在一定程序上能減輕DBA的負擔.

  至于參數的合理性,還需要結合AWR Report 去驗證.

  SGA_TARGET = db_cache_size + db_nk_cache_size(n=2,4,...)

  + db_keep_cache_size + db_recycle_cache_size +

  shared_pool_size + java_pool_size + large_pool_size + xxxx

  xxx: 是一個保留值,從目前的實驗來看,基本是4M

  步驟:

  ◆1.

  alter system set sga_target=300m scope=both

  create pfile from spfile;

  shutdown immediate;

  修改init.ora 文件,將這些參數的值設成0:

  db_cache_size, shared_pool_size, java_pool_size,large_pool_size

  ◆2. 啓動SQLPLUS,以新的pfile文件啓動數據庫

  SQL> startup pfile='....'

  讓我們來看看調整的結果:

  SQL> select name, block_size, current_size from v$buffer_pool;

  name block_size current_size

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

  KEEP 8192 204

  SQL> Select pool, sum(bytes)/1024/1024 as "M bytes" from v$SGASTAT

  group by pool;

  pool M bytes

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

  java pool 4

  large pool 4

  shared pool 84

  205.002403

  205.002403=buffer cache + log buffer + fixed sga + all others ...

  改動java pool的值

  SQL> alter system set java_pool_size=20M;

  SQL> select name, block_size, current_size,prev_size from v$buffer_pool;

  name block_size current_size prev_size

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

  KEEP 8192 188 204

  SQL> Select pool, sum(bytes)/1024/1024 as "M bytes" from v$SGASTAT

  group by pool;

  pool M bytes

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

  java pool 20

  large pool 4

  shared pool 84

  189.002403

  可以看出, db_cache_size的值已經被自動調小了.

  再把java pool 的值改回去

  SQL> alter system set java_pool_size=8M;

  SQL> select name, block_size, current_size,prev_size from v$buffer_pool;

  name block_size current_size prev_size

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

  KEEP 8192 188 204

  SQL> select name, block_size, current_size,prev_size from v$buffer_pool;

  pool M bytes

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

  java pool 20

  large pool 4

  shared pool 84

  189.002403

  這一次, db_cache_size的值沒有變化 , JAVA_POOL_SIZE的值也沒有變化

  修改large pool的值爲16M

  SQL> alter system set large_pool_size=16M;

  System altered.

  SQL> select name,block_size,current_size,prev_size from v$buffer_pool;

  NAME BLOCK_SIZE CURRENT_SIZE PREV_SIZE

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

  DEFAULT 8192 176 188

  SQL> Select pool, sum(bytes)/1024/1024 as "M bytes" from v$sgastat group by pool;

  POOL M bytes

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

  java pool 20

  large pool 16

  shared pool 84

  177.002403

  這次,db_cache_size和large_pool_size的值都變了

  同樣,調大shared_pool_size後, db_cache_size會自動減小.

  雖然db_nk_cache_size的值不會隨著workload 的改變而自動調整, 我們還是可以看看手工改動db_nk_block_size 的情況

  SQL> alter system set db_2k_cache_size=4m;

  System altered.

  SQL> select name,block_size,current_size,prev_size from v$buffer_pool;

  NAME BLOCK_SIZE CURRENT_SIZE PREV_SIZE

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

  DEFAULT 8192 172 176

  DEFAULT 2048 4 0

  SQL> alter system set db_2k_cache_size=0;

  System altered.

  SQL> select name,block_size,current_size,prev_size from v$buffer_pool;

  NAME BLOCK_SIZE CURRENT_SIZE PREV_SIZE

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

  DEFAULT 8192 176 172

  SQL> alter system set db_2k_cache_size=8m;

  System altered.

  SQL> select name,block_size,current_size,prev_size from v$buffer_pool;

  NAME BLOCK_SIZE CURRENT_SIZE PREV_SIZE

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

  DEFAULT 8192 168 176

  DEFAULT 2048 8 0

  結論: 手工調整db_nk_cache_size確實會影響原有的參數.

  最後說一點: SGA_TARGET參數與SGA_MAX_SIZE參數有密切關聯,基本的原則就是前者的值不能大于後者的值.

  總結:設置了SGA_TARGET參數後,數據庫會在這個範圍內自行調整;但許多情況下, 怎樣合理地設置這個參數仍是DBA需要考慮的問題, 他們需要結合AWR Report等輔助的工具來分析.( 當然,我們可以根據Advisor的曆史信息而確定一個比較合理的值)。

  

  一、亂碼問題

  Redhat RHEL AS3 下安裝 Oracle DB 10g 中文亂碼問題

  不少兄弟反映在rhel3下安裝oracle10g時出現亂碼, 其實在安裝和使用時出現亂碼的地方有多個, 可以分爲三類:

  1. 安裝時的亂碼

  2. 一些應用程序的亂碼, 比如 dbca, netca

  3. 一些基于oc4j的web應用的亂碼, 比如 isqlplus, em

  造成這些問題的原因都是一個, 就是這些程序都使用jdk, 相應的jdk(或jre) 使用的字體配置文件 font.properties 中的字體和操作系統的字體或者字體配置文件不匹配. 解決的辦法是把兩者改成一致.

  ◆1. 下載, 解包 ship.db.cpio.gz, 生成目錄 Disk1

  ◆2. cd Disk1/stage/Components/oracle.swd.jre/1.4.2.0.0/1/DataFiles/

  unzip all_except_bin.jar(這時生成一個 jre 的目錄)

  cd jre/1.4.2/lib/

  mv font.properties font.properties.bak

  cp font.properties.zh_CN.Redhat8.0 font.properties

  cd ../../../

  zip -r all_except_bin.jar.new jre/

  mv all_except_bin.jar.new all_except_bin.jar

  (其實就是把 font.properties 文件換掉. 這樣安裝時漢字顯示就沒有問題了)

  ◆3. 如法炮制, 把Disk1/stage/Components/oracle.jdk/1.4.2.0.0/1/DataFiles/sol_bin.1.1.jar文件裏面的font.properties 文件換掉, 創建數據庫和執行網絡配置時的亂碼就沒有了. isqlplus 和em 的亂碼也解決了。

  用IE登錄Linux服務器上的em出現的亂碼

  不知道大家有沒有注意到,EM顯示的中文翻譯很是糟糕,up/down 動不動就翻譯成「向上」「向下」,讓人哭笑不得.很多朋友都說,幹脆給顯示英文算了,可是怎麽顯示呢?

  好了,現在我們有一種辦法很容易的解決這個問題:

  打開你的IE浏覽器,選擇'工具"-->Internet選項-->常規

  選擇「語言」,默認只有「中文」,選擇「添加」,加入英語(美國),調整順序,把」英語(美國)「放到最上面

  OK ,確定。

  打開你的 http://yoururl:5500/em

  問題解決了。

  二、10g如何更改歸檔模式

  ◆1. 對于初始化文件,只需要修改log_archive_dest_n 這個參數.n=1,2,3,....10, Oracle 缺省會使用log_archive_dest_10這個參數來使用flash recovery area裏面存放的歸檔日志文件,大小由參數db_recovery_file_dest_size來決定.

  修改:

  log_archive_dest_1="location=c:\oracle\10g\...\archivelog quota_size=2G"

  ...

  如果歸檔使用flash recovery area, 上面的參數不需要指定任何值,Oracle 會自動使用db_recovery_file_dest這個參數所指定的路徑。

  ◆2. 啓動sqlplus:

  startup mount pfile='....'

  alter database archivelog;

  (如果啓用flashback, alter database flashback on)

  alter database open;

  archive log list(查看是否運行在歸檔模式)

  (如果前面的log_archive_dest_n沒有設置,則會顯示USE_DB_RECOVERY_FILE_DEST)

  ◆3. 怎樣變成noarchivelog 模式

  步驟基本同上。

  三、用dblink在10G中做create table ..as select * from ..varchar2()的column寬度變成3倍

  問題描述:例如:varchar2(255)==>varchar(765)

  測試:

  ◆1. 環境: 兩台機器都裝的10G的數據庫

  ◆2. 測試步驟和結果:

  SQL> conn test1/test1@db10G_server1

  SQL> create database link link_server2

  connect to test1 identified by test1

  using 'db10G_server2'

  SQL> conn test1/test1@db10G_server2

  SQL> create table test1_t1 as select * from all_objects

  where rownum<=3000;

  SQL> desc test1_t1;

  Name Null? Type

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

  OWNER VARCHAR2(30)

  OBJECT_NAME VARCHAR2(30)

  SUBOBJECT_NAME VARCHAR2(30)

  OBJECT_ID NUMBER

  DATA_OBJECT_ID NUMBER

  OBJECT_TYPE VARCHAR2(19)

  CREATED DATE

  LAST_DDL_TIME DATE

  TIMESTAMP VARCHAR2(19)

  STATUS VARCHAR2(7)

  TEMPORARY VARCHAR2(1)

  GENERATED VARCHAR2(1)

  SECONDARY VARCHAR2(1)

  SQL> conn test1/test1@db10G_server1

  SQL> create table test1_linkt1 as

  select * from test1_t1@link_server2;

  SQL> desc test1_linkt1

  Name Null? Type

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

  OWNER VARCHAR2(60)

  OBJECT_NAME VARCHAR2(60)

  SUBOBJECT_NAME VARCHAR2(60)

  OBJECT_ID NUMBER

  DATA_OBJECT_ID NUMBER

  OBJECT_TYPE VARCHAR2(38)

  CREATED DATE

  LAST_DDL_TIME DATE

  TIMESTAMP VARCHAR2(38)

  STATUS VARCHAR2(14)

  TEMPORARY VARCHAR2(2)

  GENERATED VARCHAR2(2)

  SECONDARY VARCHAR2(2)

  表結構一樣,但是列的長度確實變了, 通過dblink創建的表的varchar2列的長度是原表的兩倍

  再來看看字符集

  ◆1.Server1上的數據庫字符集

  SQL> column value format A20

  SQL> select value from nls_database_parameters where parameter='NLS_CHARACTERSET';

  value

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

  ZHS16GBK

  ◆2. Server2上的數據庫字符集

  SQL> conn test1/test1@db10G_server2

  SQL> column value format A20

  SQL> select value from nls_database_parameters where parameter='NLS_CHARACTERSET';

  value

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

  AL32UTF8

  四、在10g不支持的Linux發行版上安裝10g的解決方法

  正常安裝的10g只支持Red Hat Enterprise Linux 2.1 and 3, and on UnitedLinux 1.0。如果是其它的版本,比如fedora,rh9等,10g將會說不支持,而不允許安裝,解決方法如下:

  ◆1.運行runInstaller -ignoreSysPrereqs,這樣會跳過檢查

  ◆2.修改/etc/redhat-release文件,讓10g認爲自己處于支持的操作系統中,運行下面的命令即可

  su - root

  cp /etc/redhat-release /etc/redhat-release.backup

  cat > /etc/redhat-release << EOF

  Red Hat Enterprise Linux AS release 3 (Taroon)

  EOF

  安裝完畢,再將那個文件還原:

  su - root

  cp /etc/redhat-release.backup /etc/redhat-release

  ◆3.同樣的思路,我們可以去修改Oracle 的install/oraparam.ini文件:

  [Certified Versions]

  Linux=redhat-2.1,UnitedLinux-1.0,redhat-3

  把這個屏蔽掉,或者是添加新的內容:

  [Certified Versions]

  Linux=redhat-2.1,UnitedLinux-1.0,redhat-3

  [Linux-redhat-2.1-optional]

  TEMP_SPACE=80

  SWAP_SPACE=150

  MIN_DISPLAY_COLORS=256

  [UnitedLinux-1.0-optional]

  TEMP_SPACE=80

  SWAP_SPACE=150

  MIN_DISPLAY_COLORS=256

  [Linux-redhat-3.0-optional]

  TEMP_SPACE=80

  SWAP_SPACE=150

  MIN_DISPLAY_COLORS=256

  對這個地方定制一下就可以了。

  注:有興趣的朋友不妨測試一下,其實在這個地方可以定制很多東西的,但是不推薦在正式的應用中這麽做。
 
 
 
上一篇《教你輕松解決Oracle數據庫的服務啓動問題》
下一篇《Oracle/JSP技術涉及日期和時間問題的處理》
 
 
 
日版寵物情人插曲《Winding Road》歌詞

日版寵物情人2017的插曲,很帶節奏感,日語的,女生唱的。 最後聽見是在第8集的時候女主手割傷了,然後男主用嘴幫她吸了一下,插曲就出來了。 歌手:Def...

兄弟共妻,我成了他們夜裏的美食

老鍾家的兩個兒子很特別,就是跟其他的人不太一樣,魔一般的執著。兄弟倆都到了要結婚的年齡了,不管自家老爹怎麽磨破嘴皮子,兄弟倆說不娶就不娶,老父母爲兄弟兩操碎了心...

如何磨出破洞牛仔褲?牛仔褲怎麽剪破洞?

把牛仔褲磨出有線的破洞 1、具體工具就是磨腳石,下面墊一個硬物,然後用磨腳石一直磨一直磨,到把那塊磨薄了,用手撕開就好了。出來的洞啊很自然的。需要貓須的話調幾...

我就是掃描下圖得到了敬業福和愛國福

先來看下敬業福和愛國福 今年春節,支付寶再次推出了“五福紅包”活動,表示要“把欠大家的敬業福都還給大家”。 今天該活動正式啓動,和去年一樣,需要收集“五福”...

冰箱異味産生的原因和臭味去除的方法

有時候我們打開冰箱就會聞到一股異味,冰箱裏的這種異味是因爲一些物質發出的氣味的混合體,聞起來讓人惡心。 産生這些異味的主要原因有以下幾點。 1、很多人有這種習...

《極品家丁》1-31集大結局分集劇情介紹

簡介 《極品家丁》講述了現代白領林晚榮無意回到古代金陵,並追隨蕭二小姐化名“林三”進入蕭府,不料卻陰差陽錯上演了一出低級家丁拼搏上位的“林三升職記”。...

李溪芮《極品家丁》片尾曲《你就是我最愛的寶寶》歌詞

你就是我最愛的寶寶 - 李溪芮 (電視劇《極品家丁》片尾曲) 作詞:常馨內 作曲:常馨內 你的眉 又鬼馬的挑 你的嘴 又壞壞的笑 上一秒吵鬧 下...

烏梅的功效與作用以及烏梅的食用禁忌有哪些?

烏梅,又稱春梅,中醫認爲,烏梅味酸,性溫,無毒,具有安心、除熱、下氣、祛痰、止渴調中、殺蟲的功效,治肢體痛、肺痨病。烏梅泡水喝能治傷寒煩熱、止吐瀉,與幹姜一起制...

什麽是脂肪粒?如何消除臉部脂肪粒?

什麽是脂肪粒 在我們的臉上總會長一個個像脂肪的小顆粒,弄也弄不掉,而且顔色還是白白的。它既不是粉刺也不是其他的任何痘痘,它就是脂肪粒。 脂肪粒雖然也是由油脂...

網絡安全治理:國家安全保障的主要方向是打擊犯罪,而不是處置和懲罰受害者

來源:中國青年報 新的攻擊方法不斷湧現,黑客幾乎永遠占據網絡攻擊的上風,我們不可能通過技術手段杜絕網絡攻擊。國家安全保障的主要方向是打擊犯罪,而不是處置和懲罰...

 
 
 
一、怎樣配置EM使其支持SSL 協議 10G EM 中的OMS, DBConsole,Agent 都支持SSL 協議. 具體操作: ◆1. 如果沒有環境變量ORACLE_SID,請先配置,或者直接敲入set ORACLE_SID=xxx (UNIX環境下請根據不同的shell類型使用不同的語法:setenv, export...) ◆2. 鍵入 emctl secure ,可以看到全部的選項: secure oms [] [-reset] secure agent secure em secure dbconsole [] secure setpwd secure status [oms url] secure lock | unlock ◆3. 以配置oms爲例 ◆3.1 先停掉所有與oms相關的 服務(opmnctl stopall) ◆3.2 敲入: emctl secure oms,會讓你輸入registration password,然後系統會産生相關的證書文件, 如果一切順利的話,系統會有提示配置成功的信息 ◆3.3 重新啓動服務(opmnctl startall) 缺省情況下,7777和4889這兩個端口是可用的, 配置成secure 模式後,4888端口是支持SSL協議的. 從$EM_HOME\sysman\config目錄下的emoms.properties文件中可以看到配置信息. ◆3.4 檢測oms是否已經運行在https協議下 emctl secure status oms url 注意: URL 要輸入完整, 例如: [url=https://myserver:4888/em/upload/]https://myserver:4888/em/upload/[/url] ◆4. Agent, DBconsole的配置基本類似. ◆5. 啓動浏覽器運行時,IE會彈出一個安裝安全證書的窗口,按"確認". 二、出現了問題,怎樣解決 以DB Control爲例, 大致的步驟是這樣的: ◆1. emctl status dbconsole 查看db control 的狀態 ◆2.去 $ORACLE_HOME\hostname_sid\sysman\log目錄下查看相關日志(emoms.log,emagent.log等) ◆3. 檢查配置文件 emd.properties,emoms.properties 目錄: $ORACLE_HOME\hostname_sid\sysman\config ◆4. 確保監聽器工作正常: lsnrctl status ◆5. 10G EM 使用的是配置文件中定義的連接串,而不是直接訪問tnsnames.ora . 目錄: $ORACLE_HOME\hostname_sid\sysman\config 文件: emoms.properties. 參數: oracle.sysman.eml.mntr.emdRepConnectDescriptor 三、修改了監聽端口, 怎樣保證 DB Control 正常運行 ◆1. 修改 listener.ora 和tnsnames.ora 這兩個文件: tnsnames.ora 中需要加入: listener_1 = (ADDRESS = (PROTOCOL = TCP) (HOST = xxxx)(PORT = 新的端口)) 然後啓動數據庫: SQL> show parameter local_listener ; SQL> alter system set local_listener='listener_1' scope=spfile; 重啓數據庫使得修改生效 ◆2. 修改 $ORACLE_HOME\hostname_sid\sysman\config 下的emoms.properties文件: oracle.sysman.eml.mntr.emdRepPort=新的端口 oracle.sysman.eml.mntr.emdRepConnectDescriptor=(DESCRIPTION\=(ADDRESS_LIST\=(ADDRESS\=(PROTOCOL\=TCP)(HOST\=xxx)(PORT\=新的端口)))(CONNECT_DATA\=(SERVICE_NAME\=xxx))) ◆3. 最後,還要修改 $ORACLE_HOME\hostname_sid\sysman\emd 下的targets.xml: ◆4. 重新啓動監聽器和dbconsole 服務. ◆5. 如果嫌上面的操作麻煩,可以用emca這個命令行工具: emca -h 查看所有可用的命令 emca -r 跳過資料檔案庫的創建. 四、怎樣修改 DB Control 的服務端口 缺省情況下, DB Control 的端口是5500, 可以參考下面的說明更改端口。 如果用戶想改變oms端口,必須改變以下三個文件,然後重啓db control以使得改變生效: ◆1.編輯$ORACLE_HOME/_/sysman/config/emoms.properties並改變以下參數: oracle.sysman.emSDK.svlt.ConsoleServerPort oracle.sysman.emSDK.svlt.ConsoleServerHTTPSPort ◆2.編輯$ORACLE_HOME/_/sysman/config/emd.properties並改變以下參數: REPOSITORY_URL emdWalletSrcUrl ◆3.編輯$ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole__/config/http-web-site.xml並改變以下參數: web-site port 注:請在修改前備份。 ◆五、如何使用"Automatic SGA Management" Automatic SGA Management 是 10G 引入的新特性之一,將初始化參數文件中與內存管理密切有關的幾個參數抽取出來,交由數據庫去自行管理(由新增加的參數SGA_TARGET來管理),在一定程序上能減輕DBA的負擔. 至于參數的合理性,還需要結合AWR Report 去驗證. SGA_TARGET = db_cache_size + db_nk_cache_size(n=2,4,...) + db_keep_cache_size + db_recycle_cache_size + shared_pool_size + java_pool_size + large_pool_size + xxxx xxx: 是一個保留值,從目前的實驗來看,基本是4M 步驟: ◆1. alter system set sga_target=300m scope=both create pfile from spfile; shutdown immediate; 修改init.ora 文件,將這些參數的值設成0: db_cache_size, shared_pool_size, java_pool_size,large_pool_size ◆2. 啓動SQLPLUS,以新的pfile文件啓動數據庫 SQL> startup pfile='....' 讓我們來看看調整的結果: SQL> select name, block_size, current_size from v$buffer_pool; name block_size current_size ------------------------------------------------------------- KEEP 8192 204 SQL> Select pool, sum(bytes)/1024/1024 as "M bytes" from v$SGASTAT group by pool; pool M bytes ------------------------------------------------- java pool 4 large pool 4 shared pool 84 205.002403 205.002403=buffer cache + log buffer + fixed sga + all others ... 改動java pool的值 SQL> alter system set java_pool_size=20M; SQL> select name, block_size, current_size,prev_size from v$buffer_pool; name block_size current_size prev_size ---------------------------------------------------------------------------------------------- KEEP 8192 188 204 SQL> Select pool, sum(bytes)/1024/1024 as "M bytes" from v$SGASTAT group by pool; pool M bytes ------------------------------------------------- java pool 20 large pool 4 shared pool 84 189.002403 可以看出, db_cache_size的值已經被自動調小了. 再把java pool 的值改回去 SQL> alter system set java_pool_size=8M; SQL> select name, block_size, current_size,prev_size from v$buffer_pool; name block_size current_size prev_size ----------------------------------------------------------------------------------- KEEP 8192 188 204 SQL> select name, block_size, current_size,prev_size from v$buffer_pool; pool M bytes ------------------------------------------------- java pool 20 large pool 4 shared pool 84 189.002403 這一次, db_cache_size的值沒有變化 , JAVA_POOL_SIZE的值也沒有變化 修改large pool的值爲16M SQL> alter system set large_pool_size=16M; System altered. SQL> select name,block_size,current_size,prev_size from v$buffer_pool; NAME BLOCK_SIZE CURRENT_SIZE PREV_SIZE -------------------- ---------- ------------ --------- DEFAULT 8192 176 188 SQL> Select pool, sum(bytes)/1024/1024 as "M bytes" from v$sgastat group by pool; POOL M bytes ------------ ---------- java pool 20 large pool 16 shared pool 84 177.002403 這次,db_cache_size和large_pool_size的值都變了 同樣,調大shared_pool_size後, db_cache_size會自動減小. 雖然db_nk_cache_size的值不會隨著workload 的改變而自動調整, 我們還是可以看看手工改動db_nk_block_size 的情況 SQL> alter system set db_2k_cache_size=4m; System altered. SQL> select name,block_size,current_size,prev_size from v$buffer_pool; NAME BLOCK_SIZE CURRENT_SIZE PREV_SIZE ---------------- ----------------- ------------ ---------- DEFAULT 8192 172 176 DEFAULT 2048 4 0 SQL> alter system set db_2k_cache_size=0; System altered. SQL> select name,block_size,current_size,prev_size from v$buffer_pool; NAME BLOCK_SIZE CURRENT_SIZE PREV_SIZE ----------------- ---------------- ------------------ -------------- DEFAULT 8192 176 172 SQL> alter system set db_2k_cache_size=8m; System altered. SQL> select name,block_size,current_size,prev_size from v$buffer_pool; NAME BLOCK_SIZE CURRENT_SIZE PREV_SIZE -------------------- ---------- ------------ ---------- DEFAULT 8192 168 176 DEFAULT 2048 8 0 結論: 手工調整db_nk_cache_size確實會影響原有的參數. 最後說一點: SGA_TARGET參數與SGA_MAX_SIZE參數有密切關聯,基本的原則就是前者的值不能大于後者的值. 總結:設置了SGA_TARGET參數後,數據庫會在這個範圍內自行調整;但許多情況下, 怎樣合理地設置這個參數仍是DBA需要考慮的問題, 他們需要結合AWR Report等輔助的工具來分析.( 當然,我們可以根據Advisor的曆史信息而確定一個比較合理的值)。 一、亂碼問題 Redhat RHEL AS3 下安裝 Oracle DB 10g 中文亂碼問題 不少兄弟反映在rhel3下安裝oracle10g時出現亂碼, 其實在安裝和使用時出現亂碼的地方有多個, 可以分爲三類: 1. 安裝時的亂碼 2. 一些應用程序的亂碼, 比如 dbca, netca 3. 一些基于oc4j的web應用的亂碼, 比如 isqlplus, em 造成這些問題的原因都是一個, 就是這些程序都使用jdk, 相應的jdk(或jre) 使用的字體配置文件 font.properties 中的字體和操作系統的字體或者字體配置文件不匹配. 解決的辦法是把兩者改成一致. ◆1. 下載, 解包 ship.db.cpio.gz, 生成目錄 Disk1 ◆2. cd Disk1/stage/Components/oracle.swd.jre/1.4.2.0.0/1/DataFiles/ unzip all_except_bin.jar (這時生成一個 jre 的目錄) cd jre/1.4.2/lib/ mv font.properties font.properties.bak cp font.properties.zh_CN.Redhat8.0 font.properties cd ../../../ zip -r all_except_bin.jar.new jre/ mv all_except_bin.jar.new all_except_bin.jar (其實就是把 font.properties 文件換掉. 這樣安裝時漢字顯示就沒有問題了) ◆3. 如法炮制, 把Disk1/stage/Components/oracle.jdk/1.4.2.0.0/1/DataFiles/sol_bin.1.1.jar文件裏面的font.properties 文件換掉, 創建數據庫和執行網絡配置時的亂碼就沒有了. isqlplus 和em 的亂碼也解決了。 用IE登錄Linux服務器上的em出現的亂碼 不知道大家有沒有注意到,EM顯示的中文翻譯很是糟糕,up/down 動不動就翻譯成「向上」「向下」,讓人哭笑不得.很多朋友都說,幹脆給顯示英文算了,可是怎麽顯示呢? 好了,現在我們有一種辦法很容易的解決這個問題: 打開你的IE浏覽器,選擇'工具"-->Internet選項-->常規 選擇「語言」,默認只有「中文」,選擇「添加」,加入英語(美國),調整順序,把」英語(美國)「放到最上面 OK ,確定。 打開你的 [url=http://yoururl:5500/em]http://yoururl:5500/em[/url] 問題解決了。 二、10g如何更改歸檔模式 ◆1. 對于初始化文件,只需要修改log_archive_dest_n 這個參數.n=1,2,3,....10, Oracle 缺省會使用log_archive_dest_10這個參數來使用flash recovery area裏面存放的歸檔日志文件,大小由參數db_recovery_file_dest_size來決定. 修改: log_archive_dest_1="location=c:\oracle\10g\...\archivelog quota_size=2G" ... 如果歸檔使用flash recovery area, 上面的參數不需要指定任何值,Oracle 會自動使用db_recovery_file_dest這個參數所指定的路徑。 ◆2. 啓動sqlplus: startup mount pfile='....' alter database archivelog; (如果啓用flashback, alter database flashback on) alter database open; archive log list(查看是否運行在歸檔模式) (如果前面的log_archive_dest_n沒有設置,則會顯示USE_DB_RECOVERY_FILE_DEST) ◆3. 怎樣變成noarchivelog 模式 步驟基本同上。 三、用dblink在10G中做create table ..as select * from ..varchar2()的column寬度變成3倍 問題描述:例如:varchar2(255)==>varchar(765) 測試: ◆1. 環境: 兩台機器都裝的10G的數據庫 ◆2. 測試步驟和結果: SQL> conn [url=mailto:test1/test1@db10G_server1]test1/test1@db10G_server1[/url] SQL> create database link link_server2 connect to test1 identified by test1 using 'db10G_server2' SQL> conn [url=mailto:test1/test1@db10G_server2]test1/test1@db10G_server2[/url] SQL> create table test1_t1 as select * from all_objects where rownum<=3000; SQL> desc test1_t1; Name Null? Type --------------------------------------------------------------- OWNER VARCHAR2(30) OBJECT_NAME VARCHAR2(30) SUBOBJECT_NAME VARCHAR2(30) OBJECT_ID NUMBER DATA_OBJECT_ID NUMBER OBJECT_TYPE VARCHAR2(19) CREATED DATE LAST_DDL_TIME DATE TIMESTAMP VARCHAR2(19) STATUS VARCHAR2(7) TEMPORARY VARCHAR2(1) GENERATED VARCHAR2(1) SECONDARY VARCHAR2(1) SQL> conn [url=mailto:test1/test1@db10G_server1]test1/test1@db10G_server1[/url] SQL> create table test1_linkt1 as select * from [url=mailto:test1_t1@link_server2]test1_t1@link_server2[/url]; SQL> desc test1_linkt1 Name Null? Type ----------------------------------------- -------- ---------------- OWNER VARCHAR2(60) OBJECT_NAME VARCHAR2(60) SUBOBJECT_NAME VARCHAR2(60) OBJECT_ID NUMBER DATA_OBJECT_ID NUMBER OBJECT_TYPE VARCHAR2(38) CREATED DATE LAST_DDL_TIME DATE TIMESTAMP VARCHAR2(38) STATUS VARCHAR2(14) TEMPORARY VARCHAR2(2) GENERATED VARCHAR2(2) SECONDARY VARCHAR2(2) 表結構一樣,但是列的長度確實變了, 通過dblink創建的表的varchar2列的長度是原表的兩倍 再來看看字符集 ◆1.Server1上的數據庫字符集 SQL> column value format A20 SQL> select value from nls_database_parameters where parameter='NLS_CHARACTERSET'; value -------------- ZHS16GBK ◆2. Server2上的數據庫字符集 SQL> conn [url=mailto:test1/test1@db10G_server2]test1/test1@db10G_server2[/url] SQL> column value format A20 SQL> select value from nls_database_parameters where parameter='NLS_CHARACTERSET'; value -------------- AL32UTF8 四、在10g不支持的Linux發行版上安裝10g的解決方法 正常安裝的10g只支持Red Hat Enterprise Linux 2.1 and 3, and on UnitedLinux 1.0。如果是其它的版本,比如fedora,rh9等,10g將會說不支持,而不允許安裝,解決方法如下: ◆1.運行runInstaller -ignoreSysPrereqs,這樣會跳過檢查 ◆2.修改/etc/redhat-release文件,讓10g認爲自己處于支持的操作系統中,運行下面的命令即可 su - root cp /etc/redhat-release /etc/redhat-release.backup cat > /etc/redhat-release << EOF Red Hat Enterprise Linux AS release 3 (Taroon) EOF 安裝完畢,再將那個文件還原: su - root cp /etc/redhat-release.backup /etc/redhat-release ◆3.同樣的思路,我們可以去修改Oracle 的install/oraparam.ini文件: [Certified Versions] Linux=redhat-2.1,UnitedLinux-1.0,redhat-3 把這個屏蔽掉,或者是添加新的內容: [Certified Versions] Linux=redhat-2.1,UnitedLinux-1.0,redhat-3 [Linux-redhat-2.1-optional] TEMP_SPACE=80 SWAP_SPACE=150 MIN_DISPLAY_COLORS=256 [UnitedLinux-1.0-optional] TEMP_SPACE=80 SWAP_SPACE=150 MIN_DISPLAY_COLORS=256 [Linux-redhat-3.0-optional] TEMP_SPACE=80 SWAP_SPACE=150 MIN_DISPLAY_COLORS=256 對這個地方定制一下就可以了。 注:有興趣的朋友不妨測試一下,其實在這個地方可以定制很多東西的,但是不推薦在正式的應用中這麽做。
󰈣󰈤
 
 
 
  免責聲明:本文僅代表作者個人觀點,與王朝網路無關。王朝網路登載此文出於傳遞更多信息之目的,並不意味著贊同其觀點或證實其描述,其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,並請自行核實相關內容。
 
 
最漂亮的香港幼稚園老師
萬裏挑一的氣質型白領
神舟筆記本優雅美女
花蕾般的少女
台風下的香港
小東江晨曲
江西--婺源--三清山
沙漠的情趣
 
>>返回首頁<<
 熱帖排行
 
 
王朝网络微信公众号
微信扫码关注本站公众号 wangchaonetcn
 
© 2005- 王朝網路 版權所有