• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 在RedHat 6.0上安裝Oracle 8i(全攻略)

    發表于:2007-07-02來源:作者:點擊數: 標簽:
    -------------------------------------------------------------------------------- 目前,網上已有不少較少Oracle 8i在Linux(RedHat 6.0)上的安裝指南,但在實際運用中還是會遇到各種各樣的問題,這其中的是,一則指南本身不完全,還有就是Oracle本身也

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

    目前,網上已有不少較少Oracle 8i在Linux(RedHat 6.0)上的安裝指南,但在實際運用中還是會遇到各種各樣的問題,這其中的是,一則指南本身不完全,還有就是Oracle本身也有一定的問題。本文是我找到的最完整的一個安裝指南,其他的FAQ很具實用價值,故將此文整理出來供大家參考。

    本文只介紹Oracle 8i企業版(815ship.tgz)。

    如果你還有問題,請到Oracle 技術網絡和deja.com提問或查找答案。


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

    1. 準備安裝
    1.1 獲得Java運行時刻環境(JRE)
    1.2 重新配置并編譯你的內核
    1.3 建立Linux用戶組和帳號
    1.4 設置環境變量
    2. 安裝
    2.1 運行Oracle通用安裝程序
    2.2 安裝所有Oracle選件
    2.3 不要用數據庫助手創造數據庫
    2.4 使用Oracle 8i補丁
    3. 創建一個數據庫
    3.1 運行數據庫助手
    3.2 使用定制/專用服務器模式
    3.3 保存到腳本
    3.4 運行腳本
    3.5 擴大你的重做日志文件
    3.6 修改你的init.ora文件
    3.7 不使用數據庫助手創造一個數據庫
    4. 數據庫創建的后期過程
    4.1 自動啟動和關閉數據庫
    4.2 安裝SQL*Plus聯機幫助
    5. 配置Net8
    5.1 Net8助手的限制
    5.2 建立一個監聽器
    5.3 為本地命名方法配置Net8
    5.4 配置SQLNET.ORA
    5.5 使用本地命名方法測試Net8連接
    5.6 為主機命名方法配置Net8
    5.7 使用主機命名方法測試Net8連接
    5.8 建立Oracle命名服務器
    5.9 使用Oracle命名方法測試Net8連接
    5.10 為IIOP連接配置監聽器
    5.11 自動啟動和關閉監聽器
    5.12 自動啟動和關閉Oracle命名服務器
    6. 常見問題
    Oracle 通用安裝程序
    我不能運行Oracle通用安裝程序。我怎么辦?
    Oracle 通用安裝程序提示我為OSDBA和OSOPER指定Linux用戶組。你也被這樣提出過嗎?
    數據庫助手
    有這么辦法不使用數據庫助手就能創造一個數據庫嗎?
    我得到“can"t find class java/lang/Thread”的一個錯誤消息
    我得到一條警告消息"JNLS Exception:oracle.ntp.jnls.JNLSException Unable to find any National Character Sets. Please check your Oracle installation."。
    當保存到腳本時,我得到錯誤消息"Unable to create database. DBCA-00047: Unable to create destination directories."。
    我應該選擇“典型”還是“定制”安裝?
    我在創建數據庫時得到一條“ ORA-01012 :Not logged in”。
    盡管我使用了專用服務器過程,仍然得到“ ORA-01012 :Not logged in”。
    我得到一條“ORA-01034 :ORACLE not available”。
    創造一個數據庫花了很長的時間。
    使用補丁
    在使用8.1.5.0.1補丁以后,svrmgrl和sqlplus仍然報告8.1.5.0.0。
    在使用8.1.5.0.2補丁以后,當運行svrmgrl時,我得到一條“ORA-12545 Connect failed because target host or object does not exist”。
    其他
    在我的pmon跟蹤文件中有一條:“OER 536879337 in Load Indicator : Error Code = 570716328 !”
    在我的警告記錄文件和pmon蹤跡文件中,我得到很多“Load Indicator not Supported by OS!”。
    我得到“ORA-00601 cleanup lock conflict”并且Oracle因中度負載的EJB顧客而死掉。
    有人在一個2.3版內核上使用Oracle8i嗎?
    7. 資源鏈接
    補丁和支持文檔的重要鏈接

    1. 準備安裝
    1.1 獲得Java運行時刻環境(JRE)
    本文中所指的Java運行時刻環境意味著JRE 1.1.6v5,而不是JDK。從Blackdown下載,要得到glibc版本而不是libc版本。在你喜歡的任何目錄下安裝它,但是確保建立一個名為/usr/local/jre的符號連接到你安裝了JRE的目錄,并且其安裝目錄可被以后創建的Linux帳號oracle讀取和執行。

    如果你使用JDK而不是JRE,通用安裝程序將在以后抱怨Oracle不能找到Java類java.lang.Thread。其原因是:

    JRE使用rt.jar作為包含Java庫的文件,而JDK使用classes.zip。
    Oracle通用安裝程序是一個Java應用程序,它被編碼成使用rt.jar而不是classes.zip作為它的java 的CLASSPATH部分。
    因此,你仍然可以通過創建一個名為rt.jar的符號連接連接到classes.zip而繼續使用JDK。

    如果你有興趣使用IBM的JDK 1.1.8,要注意IBM的實現僅僅支持原生線程,并且不支持-green標志。Oracle 8i安裝腳本使用原生和green線程。

    注意:你不需要設定CLASSPATH環境變量。如果你已經安裝其他版本的java,在你運行安裝程序時,刪除CLASSPATH的設置(unset),而在你使用安裝程序時,再把它設置回來。這點在使用netasst和dbassist時也是一樣。

    1.2 重新配置并編譯你的內核
    很多用戶已經報告不為Oracle8i重新配置內核而成功。當心!下列文字摘自Oracle8i Linux文檔(原文):

    Oracle8i Administrator"s Reference Release 8.1.5 for Intel Linux (A74957-01)
    Chapter 1 - Administering Oracle8i
    Controlling the System Global Area
    Size Limits of the SGA
    The maximum size of a single shared memory region is specified by the Linux parameter SHMMAX. For example, if SHMMAX is 512 KB and the SGA is 2048 KB, the SGA requires four segments.

    If the size of the SGA exceeds the maximum size of a shared memory segment (SHMMAX), Oracle8i attempts to attach more contiguous segments to fulfill the requested SGA size. SHMSEG is the maximum number of segments that can be attached by a process. To attach the segments at contiguous addresses, SHMMAX must be set to its maximum value on systems where its size is limited.

    Note: Intimate Shared Memory (ISM) may cause problems when SHMMAX is smaller than the database SGA size.


    1.3 設置Linux用戶組和帳號
    你需要創建Linux用戶組dba和oinstall。

    創建Linux帳號oracle有一個問題。Oracle8i Linux文檔在oracle賬號應該屬于哪個Linux用戶組上自相矛盾??匆豢聪旅嬲設racle8i Linux安裝指南的文字,它說Linux oracle帳號應該屬于oinstall組:

    Oracle8i Installation Guide Release 8.1.5 for Intel Linux (A74958-0)
    Chaper 2 - Setting the Environment
    Setup Task to Perform as the root User
    Create a Linux Aclearcase/" target="_blank" >ccount to Own Oracle Software
    The oracle account is the Linux account that owns the Oracle8i software after installation. You must run the OUI from this account. On Intel-Linux, use the operating system administration utility useradd to create an oracle account with the following properties:

    Login Name Any name, but this document refers to it as the oracle account.
    Default GID Corresponding to the oinstall group.


    而另一方面,Oracle8i Linux管理指南說Linux oracle帳號應該屬于dba組:

    Oracle8i Administrator"s Reference Release 8.1.5 for Intel Linux (A74957-01)
    Chapter 1 - Administering Oracle8i
    Managing Special Accounts and Groups (Table 1-8)
    The oracle software owner is the only required member of the dba group. You can add the root user, or any other Linux user, to the dba group. Members of this group have access to SQL*Plus specially privileged functions. If your account is not a member of the dba group, you must enter a password in order to connect as INTERNAL or gain access to the other administrative functions of SQL*Plus. The default group ID is dba.

    那么Linux oracle到底應該屬于哪個Linux用戶組?我的建議是dba。甚至對Oracle 8.0.5,oracle帳號已經是dba組的一個成員了。

    你將oracle分配到dba還是oinstall組,在安裝過程上有差別:

    如果oracle是dba的一個成員,通用安裝程序將提示你運行腳本 Oracle/tmp/OraInstall/oraInstroot.sh。這個腳本將改變$ORACLE_BASE/oraInventory的組屬主為oinstall。
    而如果oracle是oinstall的一個成員,通用安裝程序將“抱怨”或提示你Oracle帳號OSDBA和OSOPER的Linux組,但是不提醒你要運行上述的腳本。
    1.4 設置環境變量
    設置所有所需的環境變量,例如在安裝指南中指明的ORACLE_BASE、ORACLE_HOME、ORACLE_SID和LD_LIBRARY_PATH。我也將$ORACLE_HOME/bin加到PATH中。

    注意:你不需要設定CLASSPATH環境變量。如果你已經安裝其他版本的java,在你運行安裝程序時,刪除CLASSPATH的設置(unset),而在你使用安裝程序時,再把它設置回來。這點在使用netasst和dbassist時也是一樣。

    如果你僅有128MB的物理內存,并且你在網絡上有另外一臺Linux機器,你可能想要運行Oracle通用安裝程序但在另外一臺Linux機器上顯示,以便你不需要在你安裝Oracle8i的機器上運行X。通過設置DISPLAY環境變量到正在運行X的主機名或IP地址(另一臺Linux機器)做到,還有X使用的屏幕號。

    例如,如果我正在安裝Oracle8i的IP地址是 192.168.0.1,并且運行X的另一臺Linux機器是192.168.0.2, 從主機192.168.0.1設置DISPLAY環境變量,如下:

    export DISPLAY=192.168.0.2:0.0

    在192.168.0.1上運行的任何X應用程序將其輸出送到192.168.0.2。然而,X服務器必須允許除自己以外的主機的顯示請求。在192.168.0.2主機上,做:

    xhost +192.168.0.1

    如果你設置了NLS_LANG環境變量,保證它被設置為一個合適/正確的值。見盡管我使用了專用服務器過程,仍然得到“ ORA-01012 :Not logged in”。

    2. 安裝
    2.1 運用 Oracle 通用安裝程序
    如果你只有一臺至少196MB的Linux機器,那么你可以安全地在同一臺機器上運行X并安裝Oracle 8i。如果你僅有128MB,安裝可能很慢。

    如果你有2臺Linux機器,一個為Oracle8i,另一個運行X,從運行X的主機telnet到安裝Oracle 8i的主機,并以oracle登錄。通過進入CDROM(或下載版本的解壓目錄)并運行腳本./runInstaller運行Oracle通用安裝程序。當應用程序遠程運行時,顯示應該出現在X上。如果不是,見前一章。

    RedHat 6.1的用戶有運行安裝程序本身的問題,例如:

    Error in CreateOUIProcess(): -1 : Bad Address

    對此,這里是其他一些人的一些建議:

    如果你使用GNOME,獲得enlightenment-0.15.5-37.i386.rpm或更高。
    使用KDE。
    進入install/linux目錄,并運行runInst.sh。
    在你看到第一個對話后繼續下一個對話,你將被提醒運行腳本/tmp/OraInstall/oraInstroot.sh。這個腳本將改變$ORACLE_BASE/oraInventory的組屬主為oinstall。如果從來沒有這樣提醒你,要么是你以前已經安裝了Oracle8i(只裝附加部件)或oracle帳號不是dba的一個成員,改變oracle的用戶組為dba。

    如果Oracle通用安裝程序突然死了,問題可能是內存太小。嘗試做下列操作:

    增大你的交換區
    當使用install/linux/runInst.sh時,增加由Java使用的堆大小,通過將傳遞給jre的參數從-mx64mb改為-mx100mb。
    2.2 安裝所有Oracle選件
    你可以選擇安裝或不安裝的Oracle選件是Time Series Option、Visual Retrieval Information Option、Spatial Option、和interMedia Option。其他Oracle 選件例如JServer、Parallel Option、和Partitioning Options被缺省安裝。

    當你到了選件要安裝的對話時,不管你是否想使用Oracle選件,安裝Oracle所有選件。Oracle選件將不被使用,直到你決定在一個數據庫中使用他們。

    安裝所有Oracle選件的原因是由于$ORACLE_HOME/bin/relink腳本的一個bug。這個腳本在每次升級后或Oracle8i打補丁后都要運行。然而,似乎腳本假定所有的庫文件,包括哪些Oracle自帶的選件,都存在。如果它不能找到甚至一個庫文件,重新鏈接就失敗。

    如果你碰巧使用了原來的8.1.5.0.1補丁并且注意了sqlplus或svrmgrl仍然報告是8.1.5.0.0,這是因為,是由于丟失庫文件而導致重新鏈接失敗。在我第一次安裝時,我取消了我能取消的所有Oracle選件。在使用補丁以后,錯誤記錄(如果你做了一個)將顯示出:

    /usr/bin/ld: Cannot open -lordsdo8: No such file or directory

    當你不安裝Oracle選件而使用8.1.5.0.2補丁,情況是更糟糕。你甚至不能運行svrmgrl:

    ORA-12545 Connect failed because target host or object does not exist.

    2.3 不要用數據庫助手創建數據庫
    在安裝完成后,Oracle數據庫助手將運行。注意,即使你在以前的提示你是否要用數據庫助手創建一個數據庫的一個對話框回答“No”,它仍將運行。

    當你運行數據庫助手時,你將得到一條錯誤消息:

    JNLS Exception:oracle.ntp.jnls.JNLSException Unable to find anyNational Character Sets.
    Please check your Oracle installation.
    只要忽略這條消息并且繼續。當你被提示創建、修改或刪除一個數據庫時,就取消,并且完全退出Oracle通用安裝程序。我們需要首先使用補丁。

    以下是從8i補丁的常見問題有關上面錯誤消息的文字:


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

    6. Just before the DB Assistant is launched, a dialog is displayed withthe warning:"JNLS Exception:
    oracle.ntp.jnls.JNLSException Unable to find any National Character Sets. Please check your Oracle
    installation."

    This is a known problem (884001). Ignore the warning

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

    2.4 使用 Oracle8i 補丁
    從Oracle Technology Network獲得最新的補丁。目前,最新的補丁是8.1.5.0.2。8.1.5.0.2 補丁是一個累積的補丁。它包括8.1.5.0.1 補丁。運行補丁并通過檢查/tmp/81501.log和/tmp/81502.log查看任何錯誤。檢查是否在這些腳本中有重新連接失敗。用grep找詞“fail”。如果重新連接失敗,有可能是沒有安裝Oracle所有選件。見“安裝所有Oracle選件”。

    3. 創建一個數據庫
    3.1 運行數據庫助手
    既然你使用了最新的補丁,你現在已經準備好創建你的數據庫了。運行dbassist。你將得到這樣一條錯誤消息:

    JNLS Exception:oracle.ntp.jnls.JNLSException Unable to find anyNational Character Sets.
    Please check your Oracle installation.
    只要忽略這條消息并且繼續。這是摘自8i補丁的常見問題關于上面錯誤消息的文字:


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

    6. Just before the DB Assistant is launched, a dialog is displayed withthe
    warning:"JNLS Exception: oracle.ntp.jnls.JNLSException Unable to find any National
    Character Sets. Please check your Oracle installation." This is a known problem
    (884001). Ignore the warning

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

    實際上,你不必使用數據庫助手創建一個數據庫。你可以得到頁腳本來做它。詳見item number 9 on the 8i patch FAQ。然而,這個文件假定你使用數據庫助手。

    3.2 使用定制安裝/專用服務器模式
    當提示在Typical(典型)與Custom(定制)之間選擇時,選擇定制,同樣,當提示在Dedicated Server Mode(專用服務器模式)和Shared Server Mode(共享服務器模式)之間選擇時,選擇專用服務器模式。如果你需要一個使用共享服務器模式(MTS)的數據庫,你可以一開始創建一個使用專用服務器模式的數據庫并在以后改變為共享服務器模式或MTS。如果你堅持創建一個使用共享服務器模式的數據庫,一旦被啟動,你可能得到這個錯誤:

    ORA-01012: Not logged in

    其原因在下面介紹,下文摘自Oracle8i Concept 文檔(沒包含在Oracle8i EE Linux CD,但是包含在Oracle8i EE NT CD!):

    Oracle8i Concepts Release 8.1.5
    A67781-01
    Chapter 8
    Restricted Operations of the Multi-Threaded Server
    Certain administrative activities cannot be performed while connected to a dispatcher process, including shutting down or starting an instance and media recovery. An error message is issued if you attempt to perform these activities while connected to a dispatcher process.

    These activities are typically performed when connected with administrator privileges. When you want to connect with administrator privileges in a system configured with multi-threaded servers, you must state in your connect string that you want to use a dedicated server process (SRVR=DEDICATED) instead of a dispatcher process.


    使用專用服務器的另一個原因,至少目前,是當創建一個實例(instance)時,使用BEQ協議,因為還沒有設置任何監聽器,至少沒在一開始的安裝時設置。BEQ協議是唯一一個不要求監聽器正在運行的協議,并且只能用在Oracle正在運行的同一臺機器上。還有,BEQ協議總是使用一個專用服務器,絕不是一個多線程服務器(MTS)。這是摘自Oracle8i Administration Reference for Linux的文字:

    Oracle8i Administrator"s Reference Release 8.1.5 for Intel Linux
    A74957-01
    Chapter 5
    The BEQ Protocol
    The BEQ protocol is both a communications mechanism and a process-spawning mechanism. If a service name is not specified, either directly by the user on the command line or the login screen or indirectly through an environment variable such as TWO_TASK, then the BEQ protocol is used. In which case, a dedicated server will always be used, and the multi-threaded server is never used. This dedicated server is started automatically by the BEQ protocol, which waits for the server process to start and attach to an existing SGA. If the startup of the server process is successful, the BEQ protocol then provides inter-process communication through UNIX.

    An important feature of the BEQ protocol is that no network listener is required for its operation, since the protocol is linked into the client tools and directly starts its own server process with no outside interaction. However, the BEQ protocol can only be used when the client program and Oracle8i reside on the same machine. The BEQ protocol is always installed and always linked to all client tools and to the Oracle8i Server.


    如果上述仍然不能讓你工作,它可能是NLS_LANG環境變量設置不當的問題。見盡管我使用了專用服務器過程,仍然得到“ ORA-01012 :Not logged in”。

    3.3 保存到腳本
    當提示你是否要創建一個數據庫,或保存到腳本中并在以后運行腳本時,選擇保存到腳本。這將幫助你理解背后發生了什么并幫助你在數據庫創建期間診斷任何問題。

    3.4 運行腳本
    腳本將在$ORACLE_HOME/install中找到。你僅需運行一個腳本,因為它以正確的順序調用所有其他單獨的腳本。我建議你分別運行每個腳本。

    當你運行第一個腳本時,名為SIDrun.sh,它將啟動實例并創建SYSTEM數據文件和表空間、控制文件和重做(redo)日志文件。運行其他腳本,名為SIDrun1.sh和SIDrun2.sh。

    3.5 擴大你的重做日志文件
    如果你接受缺省的512K的重做日志文件大小和2個重做日志組,你會注意到在$ORACLE_BASE/admin/SID/bdump警告日志文件中找到這樣的消息:

    Thread 1 cannot allocate new log, sequence 4
    Checkpoint not complete

    第一行的最后數字是變化的。這是因為重做日志文件尺寸太小。在這種情況下,再增加2個稍大些的(如4MB)重做日志記載組,刪除并重建前2個日志組使得所有的日志文件組有4MB的大小。

    如果你對重做日志組沒有足夠大的尺寸,腳本SIDjava.sh,它在Oracle8i中初始化Java,可能不能完成并且失敗。如果你有較小的退回(rollback)片段,會發生同樣的事情。

    現在運行其他腳本,按照主腳本提供的順序所指出的那樣。當你運行腳本SIDjava.sh時,即如果你選擇了JServer選件在數據庫中創建,注意它可能花很長時間。罪魁禍首就是SQL語句create或REPLACE JAVA SYSTEM。

    3.6 修改你的init.ora文件
    由數據庫助手生成的init.ora文件沒有指明要使用的退回片段。這已經被指出來了,因為實例的初始啟動還沒有生成退回片段,除了在SYSTEM中的片段。

    因此你需要修改你的位于$ORACLE_BASE/admin/pfile中的init.ora文件并且為ROLLBACK_SEGMENTS提供值。

    3.7 不用數據庫助手創建一個數據庫
    有一種方法不必使用dbassist創建一個數據庫。進入$ORACLE_HOME/rdbms/install/create目錄,并閱讀讀README文件。另一個參考是8i Patch FAQ的第9條。

    以下是我使用在$ORACLE_HOME/rdbms/install/create下提供的腳本創建another數據庫的步驟。在這種情形下,SID將稱作8idb:

    為了與以前創建數據庫的管理文件的目錄一致,我創建了如下目錄:
    cd $ORACLE_BASE/admin
    mkdir 8idb
    mkdir 8idb/pfile
    mkdir 8idb/bdump
    mkdir 8idb/cdump
    mkdir 8idb/udump
    mkdir 8idb/create
    mkdir 8idb/exp
    mkdir 8idb/adhoc
    mkdir 8idb/arch

    當然,你將不需要所有這些目錄。你至少需要pfile、bdump、cdump和udump。

    拷貝文件$ORACLE_HOME/rdbms/install/create/init.ora到目錄$ORACLE_BASE/admin/8idb/pfile,并且我給文件起名為init8idb.ora。你可以保留init.ora名字。
    然后建立下列符號連接:
    ln -s $ORACLE_BASE/admin/8idb/pfile/init8idb.ora $ORACLE_HOME/dbs/init8idb.ora


    連接的名字很重要,因為它應該在以后匹配/etc/oratab中的ORACLE_SID入口。在$ORACLE_HOME/bin中的腳本dbstart和dbshut讀入在/etc/oratab中的每個入口,為每個入口獲得ORACLE_SID,并尋找$ORACLE_HOME/dbs相應的參數文件, 這里參數文件的名字必須是initSID.ora。

    現在修改$ORACLE_BASE/admin/8idb/pfile/init8idb.ora文件。我特別修改了下列入口:
    以下,我命名新的數據庫為我打算的SID:
    db_name = 8idb
    instance_name = 8idb
    service_names = 8idb.company.com.au

    對于控制文件,我指定了控制文件的完整路徑和名字。這些文件將在數據庫創建期間生成:
    control_files = ("/home/oracle/app/oracle/oradata/8idb/control01.ctl",
    "/home/oracle/app/oracle/oradata/8idb/control02.ctl")


    對于共享池的尺寸,我修改shared_pool_size與其他數據庫一樣。我能記得dbassist說過類似于“you need at least 50mb for shared_pool_size with the JServer option”的東西。
    shared_pool_size = 52428800


    既然我們將在以后增加重做日志文件的數量和大小,我決定現在而非以后增加緩沖區。
    log_buffer = 327680


    退回片段仍然是離線的,因為數據庫還沒有被創建,所以這些還不存在。因此我給下列入口加上注釋:
    # rollback_segments =( r01 , r02 , r03 , r04 )


    指明你想在哪兒倒出文件。這里我做了下列設置:
    background_dump_dest = /home/oracle/app/oracle/admin/8idb/bdump
    core_dump_dest = /home/oracle/app/oracle/admin/8idb/cdump
    user_dump_dest = /home/oracle/app/oracle/admin/8idb/udump


    因為我不使用Advanced Replication Option(高級復制選件),我注釋了下列入口:
    #job_queue_processes = 0
    #job_queue_interval = 60
    #distributed_transactions = 10
    #open_links = 4

    我禁用了到8i數據庫的IIOP連接的分派器(dispatcher)以便我們在警告文件和pmon跟蹤文件中不會得到“Load Indicator not supported by OS”的消息。也要注意,在我的參數文件中沒有任何mts入口。因此,這里被創建的數據庫使用專用服務器進程。
    #mts_dispatchers = "(PROTOCOL=TCP)(PRE=oracle.aurora.server.SGiopServer)"
    #mts_servers = 1

    最后,按README文件的說明,我改變compatible入口。然而,注意,dbassist僅允許值8.1.0。也許是dbassist另一個bug?
    compatible = "8.1.5"

    現在我創建立了目錄/掛載點,在那里我想要存儲數據文件。當然,遵循OFA,下列僅僅是一個例子。
    mkdir $ORACLE_BASE/oradata/8idb


    現在我從$ORACLE_HOME/rdbms/install/create拷貝腳本cdrb1.sh, cdrb2.sh,和cdrb3.sh到$ORACLE_HOME/install并分別命名他們為8idbcrdb1.sh, 8idbcrdb2.sh,和8idbcrdb3.sh:
    cp -vf $ORACLE_HOME/rdbms/install/create/crdb1.sh $ORACLE_HOME/install/"$ORACLE_SID"crdb1.sh
    cp -vf $ORACLE_HOME/rdbms/install/create/crdb2.sh $ORACLE_HOME/install/"$ORACLE_SID"crdb2.sh
    cp -vf $ORACLE_HOME/rdbms/install/create/crdb3.sh $ORACLE_HOME/install/"$ORACLE_SID"crdb3.sh


    確保你至少對于bash加雙引號與$ORACLE_SID。

    改變目錄到$ORACLE_HOME/install。然后我編輯第一個腳本SIDcrdb1.sh(在這里8idbcrdb1.sh),顯示如下:
    修改ORACLE_SID匹配我想要的SID:
    ORACLE_SID=8idb


    修改口令文件的名字指明我想要的SID:
    $ORACLE_HOME/bin/orapwd file=$ORACLE_HOME/dbs/orapw8idb password=change_on_install


    修改starpup命令指明要使用的參數文件的地點。我們可以指明實際的參數文件而不是到參數文件的一個符號 連接:
    startup nomount pfile = $ORACLE_HOME/dbs/init8idb.ora


    改變在CREATE DATABASE命令中的數據庫名以匹配在參數文件指明示的那個:
    CREATE DATABASE "8idb"


    再回到CREATE DATABASE命令,改變SYSTEM數據文件的地點和大小位于我們先前創建了的目錄下:
    DATAFILE "$ORACLE_BASE/oradata/8idb/system01.dbf" SIZE 80M


    改變CREATE DATABASE命令中重做日志文件的地點并增加其大?。?
    logfile "$ORACLE_BASE/oradata/8idb/redo01.log" SIZE 4096K,
    "$ORACLE_BASE/oradata/8idb/redo02.log" SIZE 4096K;

    現在運行腳本SIDcdrb1.sh。如果你得到消息:
    ORA-12162: TNS:service name is incorrectly specified

    那么你沒有為ORACLE_SID指定有效的值。這發生了保留ORACLE_SID的值$1時,它假定從命令行獲得參數,而我沒指定一個參數。

    如果由于一些原因,數據庫的創建失敗了,你不光是只是重新運行腳本,是你將還要刪除先前被創建了的口令文件。否則,你將得到:

    OPW-00005: File with same name exists - please delete or rename

    在我的情況中,我不僅刪除了先前的口令文件,我也刪除了文件$ORACLE_HOME/dbs/lkSID。這個文件似乎在你創建數據庫時創建,實際上它只是一個文本文件:"DO NOT DELETE THIS FILE!"

    你可能碰到的其他錯誤如下:

    ORA-01501: CREATE DATABASE failed
    ORA-00200: controlfile could not be created
    ORA-00202: controlfile: "/home/oracle/app/oracle/oradata/8idb/dbs/control02.ctl"
    ORA-27040: skgfrcre: create error, unable to create file
    Linux Error: 2: No such file or directory

    錯誤是顯然的,因為我為第二個控制文件指定了一個不存在的目錄。

    編輯第二個腳本SIDcrdb2.sh(8idbcrdb2.sh):
    修改ORACLE_SID匹配我想要的SID:
    ORACLE_SID=8idb


    我搜索所有$ORACLE_HOME/dbs的出現并且用$ORACLE_BASE/oradata/8idb替代了它們。因為我在同一個目錄下存儲他們。另外,遵循你的OFA地點,因此你可以最終為每個數據文件獲得不同的掛載點。當然, 絕對確保你指定的路徑存在(沒有錯別字!)或數據文件將不被創建,并且特別地你必須使再次運行腳本的一部分創建數據文件或借助svrmgrl創建他們。
    現在運行第二個腳本SIDcrdb2.sh(8idbcrdb2.sh)。只要你正確指定了所有的路徑,并且你正確地指定了你的ORACLE_SID,你應該沒有任何問題。
    現在,你可能想要增加更多的重做日志文件,否則你將在警告日志文件中得到類似于以下的消息:
    Thread 1 cannot allocate new log, sequence 79
    Checkpoint not complete

    為此我運行了svrmgrl,以internal連接了并再創建了2個重做日志組,如下顯示:

    SQL> alter database
    2 add logfile group 3 ("/home/oracle/app/oracle/oradata/8idb/redo03.log") size 4096K
    3 /

    Statement Processed.

    SQL> alter database
    2 add logfile group 4 ("/home/oracle/app/oracle/oradata/8idb/redo04.log") size 4096k
    3 /

    Statement Processed.

    你可能想要通過在括號內增加另一個文件名,并且每個重做日志文件的文件名由一個逗號分開,且每個重做日志文件的文件名包圍在他們自己的引號內,可讓每個日志文件組有超過一個的成員。

    編輯第3個腳本SIDcrdb3.sh(8idbcrdb3.sh)。我在這里做的所有改變是值ORACLE_SID。
    運行第3個腳本。應該沒有問題。
    在繼續安裝Oracle的一些或所有選件前,你可能想要檢查系SYSTEM表空間最大范圍。通過sqlplus以system/manager登錄并且做:
    SQL> set linesize 1000
    SQL> SELECT tablespace_name "TABLESPACE",
    2 initial_extent "INITIAL_EXT",
    3 next_extent "NEXT_EXT",
    4 min_extents "MIN_EXT",
    5 max_extents "MAX_EXT",
    6 pct_increase
    7 FROM sys.dba_tablespaces
    8 /

    TABLESPACE INITIAL_EXT NEXT_EXT MIN_EXT MAX_EXT PCT_INCREASE
    ------------------------------ ----------- ---------- ---------- ---------- ------------
    SYSTEM 10240 10240 1 121 50
    OEM_REPOSITORY 131072 131072 1 2147483645 0
    RBS 131072 131072 2 2147483645 0
    TEMP 262144 262144 1 2147483645 0
    USERS 51200 51200 1 2147483645 0
    INDX 51200 51200 1 2147483645 0

    6 rows selected.

    SYSTEM表空間的缺省MAXEXTENTS是121,它確實不夠,特別是當我們增加Oracle選件時。如果我們不增加它,我們將得到類似于“unable to extend ... in tablespace SYSTEM”的錯誤消息。因此我做了:

    SQL> alter tablespace system
    2 default storage
    3 (pctincrease 0 maxextents unlimited)
    4 /

    Tablespace altered.

    現在再運行上面的查詢。這次,SYSTEM表空間的MAX_EXT應該是一個大數字。

    退出sqlplus并且返回到shell?,F在選擇你的數據庫想要哪個Oracle選件。如果Oracle選件要求執行超過一個的腳本,保證你以在$ORACLE_HOME/rdbms/install/create/ README文件中說明的正確的順序執行這些腳本。
    確定改變每個腳本中的ORACLE_SID值。如果你加入InterMedia選件,保證你在drsys.sh腳本中為DRSYS數據文件指定了正確且有效的一條路徑。

    最后, 編輯你的initSID.ora文件并刪除和rollback_segments入口的注釋,以便在你關閉并且重啟數據庫時,將使用創建的退回片段。
    記住,我們這里創建的數據庫使用8idb作為ORACLE_SID,并且在后文中引用的數據庫假定為ORACLE_SIDO為ORCL。

    4. 數據庫創建的后期過程
    4.1自動化數據庫啟動和關閉
    自動化數據庫的啟動和關閉是簡單的。即使你不想要數據庫自動地啟動,你應該總是自動化數據庫的關閉以防止破壞你的數據庫。有關的步驟是:

    su成為root。
    用一行ORACLE_SID:ORACLE_HOME:{Y|N}形式修改/etc/oratab,用來自你的環境變量的值代替ORACLE_SID和 ORACLE_HOME。該行類似這樣:
    ORCL:/home/oracle/app/oracle/product/8.1.5:Y


    在行末尾的Y將表明你是否想要數據庫自動地啟動和關閉。

    在/etc/rc.d/init.d里創建一個腳本,起名為oracle8i,并把下面的代碼放進去,它是在"Oracle8i Linux Installation Guide"提供的腳本基礎上的一個修改版本。注意在該指南中的腳本由一個bug,阻止它關掉Oracle8i數據庫。這在下面解釋。
    #!/bin/sh
    # Set ORA_HOME to be equivalent to the ORACLE_HOME
    # from which you wish to execute dbstart and
    # dbshut
    # set ORA_OWNER to the user id of the owner of the
    # Oracle database in ORA_HOME

    ORA_HOME=/home/oracle/app/oracle/product/8.1.5
    ORA_OWNER=oracle

    case "$1" in
    "start")


    # Start the Oracle databases:
    # The following command assumes that the oracle login will not prompt the

    # user for any values
    echo -n "Starting Oracle8i: "
    su - $ORA_OWNER -c $ORA_HOME/bin/dbstart
    touch /var/lock/subsys/oracle8i
    echo
    ;;

    "stop")

    # Stop the Oracle databases:
    # The following command assumes that the oracle login will not prompt the

    # user for any values
    echo -n "Shutting down Oracle8i: "
    su - $ORA_OWNER -c $ORA_HOME/bin/dbshut
    rm -f /var/lock/subsys/oracle8i
    echo
    ;;

    "restart")

    # Restart the Oracle databases:
    echo -n "Retarting Oracle8i: "
    $0 stop
    $0 start
    echo
    ;;

    *)
    echo "Usage: oracle8i { start | stop | restart }"
    exit 1

    esac
    exit 0

    確保用你的ORACLE_HOME環境變量值代替ORA_HOME的值。關于該修改的腳本有幾點要注意的是:

    上述修改的腳本在/var/lock/subsys下創建立一個文件以指出系統或進程正在運行,而缺省腳本不做這個。作為一個背景進程,腳本/etc/rc.d/rc,在殺死過程時,將對以一個K開始的運行級別(runlevel)執行所有腳本,并且它也通過檢查在/var/lock/subsys下的一個文件(文件名類似)的存在與否來檢查子系統是否正在運行。因此,如果你使用缺省腳本,它將不關閉Oracle8i 數據庫,因為這個文件在/var/lock/subsys下不存在。對RedHat 6.0是這樣。我不能肯定RedHat 6.1或其他Linux分發的/etc/rc.d/rc腳本是否相同。
    作為上述的結論,如果你為上面的腳本起名不是oracle8i,修改所有的行:
    touch /var/lock/subsys/oracle8i
    rm /var/lock/subsys/oracle8i

    并且用腳本名代替oracle8i。例如,如果你命名腳本為dbora,你應該有:

    touch /var/lock/subsys/dbora
    rm /var/lock/subsys/dbora

    測試腳本確實在工作。試試:
    ./oracle8i stop
    ./oracle8i start
    ./oracle8i restart
    ./oracle8i invalid-parameter

    創建到你剛剛創建的自動化數據庫關閉的腳本的一個連接。Runlevel 0是HALT ,而runlevel 6是REBOOT。 我的情況是:
    ln -s /etc/rc.d/init.d/oracle8i /etc/rc.d/rc0.d/K10oracle8i
    ln -s /etc/rc.d/init.d/oracle8i /etc/rc.d/rc6.d/K10oracle8i


    無論何時系統把它的runlevel改變到0或6,腳本將過獲得執行,這就是當你分別發出/sbin/shutdown - h now和/sbin/shutdown - r now時所發生的。

    另外,可以創建到你創建的自動化數據庫啟動腳本的一個連接。我為RedHat 6.0選擇的缺省運行級別是runlevel 3。在我的情況中:
    ln -s /etc/rc.d/init.d/oracle8i /etc/rc.d/rc3.d/S99oracle8i


    4.2 安裝 SQL * Plus聯機幫助
    如果你還沒有SQL*Plus的幫助手段,你可以想要安裝它。這完全是可選的。通過運行SQL*Plus并且在SQL*Plus提示符下鍵入HELP來檢查你是否有了SQL*Plus的聯機幫助。要安裝聯機幫助:

    以oracle登錄到shell。
    鍵入export SYSTEM_PASS=system/manager(對Bash)定義環境變量SYSTEM_PASS。
    執行腳本$ORACLE_HOME/bin/helpins。
    運行SQL*Plus并在SQL*Plus提示符下鍵入HELP。

    5. 配置Net8
    在本節中,將解釋如何安裝并且配置一個Net8監聽器和Oracle命名服務者。你不必要求使用Oracle命名服務器。Oracle提供若干方法解析網絡服務名字。對于完全的討論,見從 Oracle技術網絡站點的Oracle Net8 管理員指南。

    5.1 Net8助手的局限
    你可能經歷了Net8助手的問題。我所碰到的導致netasst崩潰的情形是在做下列的任何操作:

    測試一個網絡服務名字。
    查找Oracle命名服務器。
    創建Oracle命名服務器。
    上述的結果是,不能為Oracle命名服務器的敏感操作(例如START、STOP和RELOAD)設置一個Oracle命名服務器加密的口令

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>