日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle 强制 断开,ORA-01092: ORACLE 例程终止 强行断开连接

發布時間:2023/12/2 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle 强制 断开,ORA-01092: ORACLE 例程终止 强行断开连接 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天測試部門的人叫我過去,說是數據庫當了,起不來了。

我過去看了看情況,做了如下操作

SQL> shutdown immediate

數據庫已經關閉。

已經卸載數據庫。

Oracle 例程已經關閉。

SQL> startup

ORACLE 例程已經啟動。

Total System Global Area 135338868 bytes

Fixed Size          453492 bytes

Variable Size       109051904 bytes

Database Buffers      25165824 bytes

Redo Buffers         667648 bytes

數據庫裝載完畢。

ORA-01092: ORACLE 例程終止。強行斷開連接

表面上看不出問題,我查看alert_oracas.log文件

SYS auditing is disabled

Starting up ORACLE RDBMS Version: 9.2.0.1.0.

System parameters with non-default values:

processes        = 150

timed_statistics     = TRUE

shared_pool_size     = 50331648

large_pool_size     = 8388608

Java_pool_size      = 33554432

control_files      = f:oracleoradataoracasCONTROL01.CTL, f:oracleoradataoracasCONTROL02.CTL, f:oracleoradataoracasCONTROL03.CTL

db_block_size      = 8192

db_cache_size      = 25165824

compatible        = 9.2.0.0.0

db_file_multiblock_read_count= 16

fast_start_mttr_target  = 300

undo_management     = AUTO

undo_tablespace     = UNDOSTB1

undo_retention      = 10800

remote_login_passwordfile= EXCLUSIVE

db_domain        =

instance_name      = oracas

dispatchers       = (PROTOCOL=TCP) (SERVICE=oracasXDB)

job_queue_processes   = 10

hash_join_enabled    = TRUE

background_dump_dest   = f:oracleadminoracasbdump

user_dump_dest      = f:oracleadminoracasudump

core_dump_dest      = f:oracleadminoracascdump

sort_area_size      = 524288

db_name         = oracas

open_cursors       = 300

star_transformation_enabled= FALSE

query_rewrite_enabled  = FALSE

pga_aggregate_target   = 19922944

aq_tm_processes     = 1

PMON started with pid=2

DBW0 started with pid=3

LGWR started with pid=4

CKPT started with pid=5

SMON started with pid=6

RECO started with pid=7

CJQ0 started with pid=8

QMN0 started with pid=9

Mon Apr 18 17:30:25 2005

starting up 1 shared server(s) ...

starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'...

Mon Apr 18 17:30:26 2005

ALTER DATABASE  MOUNT

Mon Apr 18 17:30:30 2005

Successful mount of redo thread 1, with mount id 2424210674.

Mon Apr 18 17:30:30 2005

Database mounted in Exclusive Mode.

Completed: ALTER DATABASE  MOUNT

Mon Apr 18 17:30:30 2005

ALTER DATABASE OPEN

Mon Apr 18 17:30:32 2005

Thread 1 opened at log sequence 105

Current log# 2 seq# 105 mem# 0: F:ORACLEORADATAORACASREDO02.LOG

Successful open of redo thread 1.

Mon Apr 18 17:30:32 2005

SMON: enabling cache recovery

Mon Apr 18 17:30:34 2005

Errors in file f:oracleadminoracasudumporacas_ora_3404.trc:

ORA-30012: 撤消表空間 'UNDOSTB1' 不存在或類型不正確

Mon Apr 18 17:30:34 2005

Error 30012 happened during db open, shutting down database

USER: terminating instance due to error 30012

Mon Apr 18 17:30:35 2005

Errors in file f:oracleadminoracasbdumporacas_smon_996.trc:

ORA-30012: undo tablespace '' does not exist or of wrong type

Mon Apr 18 17:30:35 2005

Errors in file f:oracleadminoracasbdumporacas_pmon_3500.trc:

ORA-30012: undo tablespace '' does not exist or of wrong type

Instance terminated by USER, pid = 3404

ORA-1092 signalled during: ALTER DATABASE OPEN...

于是我查看了以下信息來確認undo表空間的問題

SQL> conn sys/sys@oracas as sysdba

已連接到空閑例程。

SQL> startup mount

ORACLE 例程已經啟動。

Total System Global Area 135338868 bytes

Fixed Size          453492 bytes

Variable Size       109051904 bytes

Database Buffers      25165824 bytes

Redo Buffers         667648 bytes

數據庫裝載完畢。

SQL> select name from v\$datafile;

NAME

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

F:ORACLEORADATAORACASSYSTEM01.DBF

F:ORACLEORADATAORACASUNDOTBS01.DBF

F:ORACLEORADATAORACASCWMLITE01.DBF

F:ORACLEORADATAORACASDRSYS01.DBF

F:ORACLEORADATAORACASEXAMPLE01.DBF

F:ORACLEORADATAORACASINDX01.DBF

F:ORACLEORADATAORACASODM01.DBF

F:ORACLEORADATAORACASTOOLS01.DBF

F:ORACLEORADATAORACASUSERS01.DBF

F:ORACLEORADATAORACASXDB01.DBF

D:ORADATAORACASTSCAS11.DBF

E:ORADATAORACASTFCAS12.DBF

D:ORADATAORACASTSCAS21.DBF

E:ORADATAORACASTFCAS22.DBF

D:ORADATAORACASTSCAS31.DBF

E:ORADATAORACASTFCAS32.DBF

D:ORADATAORACASTSCAS41.DBF

E:ORADATAORACASTFCAS42.DBF

D:ORADATAORACASTSCASINDX1.DBF

E:ORADATAORACASTSCASINDX2.DBF

D:ORADATAORACASTFCAS13.DBF

D:ORADATAORACASTFCAS14.DBF

D:ORADATAORACASTFCAS23.DBF

D:ORADATAORACASTFCAS24.DBF

E:ORADATAORACASTSCASINDX12.DBF

E:ORADATAORACASTSCASINDX13.DBF

E:ORADATAORACASTSCASINDX24.DBF

E:ORADATAORACASTSCASINDX25.DBF

C:SNAPSHOT01.DBF

C:TSCAS1.DBF

已選擇30行。

SQL> show parameter undo

NAME                 TYPE    VALUE

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

undo_management           string   AUTO

undo_retention            integer   10800

undo_suppress_errors         boolean   FALSE

undo_tablespace           string   UNDOSTB1

SQL> select name from v\$tablespace;

NAME

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

CWMLITE

DRSYS

EXAMPLE

INDX

ODM

SYSTEM

TOOLS

UNDOTBS1

USERS

XDB

TEMP

TSCAS1

TSCAS2

TSCAS3

TSCAS4

TSCASINDX1

TSCASINDX2

SNAPSHOT_TS

已選擇18行。

當時沒有自己看問題,就以為是undo文件損壞了,決定重建。

注意:后來才發現這里以后的操作是饒了一個解決問題的彎路。

由于不open沒有辦法重新創建undo 表空間,所以決定先用系統默認的undo表空間來啟動,然后重建undo

表空間,具體操作如下:

SQL> create pfile from spfile;

文件已創建。

修改pfile文件

#*.undo_management='AUTO'

#*.undo_tablespace='UNDOSTB1'

undo_management=manual

undo_tablespace='system'

關閉數據庫,并且從目錄F:oracleora92database下去掉SPFILEORACAS.ORA文件

重新啟動

SQL> shutdown immediate

ORA-01109: 數據庫未打開

已經卸載數據庫。

ORACLE 例程已經關閉。

SQL> startup mount

ORACLE 例程已經啟動。

Total System Global Area 135338868 bytes

Fixed Size          453492 bytes

Variable Size       109051904 bytes

Database Buffers      25165824 bytes

Redo Buffers         667648 bytes

數據庫裝載完畢。

SQL> alter database open;

數據庫已更改。

查看表空間信息

SQL> show parameter undo

NAME                 TYPE    VALUE

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

undo_management           string   MANUAL

undo_retention            integer   10800

undo_suppress_errors         boolean   FALSE

undo_tablespace           string   system

SQL> select name from v\$tablespace;

NAME

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

CWMLITE

DRSYS

EXAMPLE

INDX

ODM

SYSTEM

TOOLS

UNDOTBS1

USERS

XDB

TEMP

TSCAS1

TSCAS2

TSCAS3

TSCAS4

TSCASINDX1

TSCASINDX2

SNAPSHOT_TS

并且打開圖形界面查看,這時候才發現undo表空間的名字是UNDOTBS1

其實早就能發現的,大家以后分析問題一定不要太快下結論,要自己分析。。。

于是做以下操作改變undo 表空間的名字

SQL> create spfile from pfile;

文件已創建。

SQL> shutdown immediate

數據庫已經關閉。

已經卸載數據庫。

ORACLE 例程已經關閉。

SQL> startup

ORACLE 例程已經啟動。

Total System Global Area 135338868 bytes

Fixed Size          453492 bytes

Variable Size       109051904 bytes

Database Buffers      25165824 bytes

Redo Buffers         667648 bytes

數據庫裝載完畢。

數據庫已經打開。

SQL> show parameter undo

NAME                 TYPE    VALUE

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

undo_management           string   MANUAL

undo_retention            integer   10800

undo_suppress_errors         boolean   FALSE

undo_tablespace           string   system

SQL> alter database set undo_management=auto;

alter database set undo_management=auto

*

ERROR 位于第 1 行:

ORA-02231: 缺少或無效的 ALTER DATABASE 選項

SQL> alter database set undo_management=auto scope=spfile;

alter database set undo_management=auto scope=spfile

*

ERROR 位于第 1 行:

ORA-02231: 缺少或無效的 ALTER DATABASE 選項

SQL> alter system set undo_management=auto scope=spfile;

系統已更改。

SQL> alter system set undo_tablespace='undotbs1' scope=spfile;

重啟驗證:

SQL> shutdown immediate

數據庫已經關閉。

已經卸載數據庫。

ORACLE 例程已經關閉。

SQL> startup

ORACLE 例程已經啟動。

Total System Global Area 135338868 bytes

Fixed Size          453492 bytes

Variable Size       109051904 bytes

Database Buffers      25165824 bytes

Redo Buffers         667648 bytes

數據庫裝載完畢。

數據庫已經打開。

SQL> create fpile from spfile;

create fpile from spfile

*

ERROR 位于第 1 行:

ORA-00901: 無效 CREATE 命令

SQL> create pfile from spfile;

文件已創建。

SQL> show parameter undo

NAME                 TYPE    VALUE

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

undo_management           string   AUTO

undo_retention            integer   10800

undo_suppress_errors         boolean   FALSE

undo_tablespace           string   undotbs1

發現已經好使了

教訓總結:其實只要一開始分析下v\$tablespace就能發現是undo表空間的名字錯了,很快就能解決的。

不過我上面這種方法可以用于undo表空間文件corrupt的情況:)? vnc server配置

1。使用root用戶啟動系統的vncserver服務;

#service vncserver start

2。然后切換到登陸用戶下面,我這里假設要使用oracle系統帳戶進行遠程登陸

#su - oracle

3。使用oracle用戶輸入以下命令:

\$vncserver

如果是第一次運行,則系統會出現提示信息,提示你輸入密碼,這是通過終端進行登陸時需要輸入的;

另外,還有一個數字信息,這個也是需要在終端登陸時輸入的,即冒號后面跟著的一個數字,如:1? ,:2等等,需要記住;

4。在windows客戶端使用vncviewer,輸入如下:xxx.xxx.xxx.xxx:1 或者xxx.xxx.xxx.xxx:2等,后面的數字需要和服務器端的對應才行;xxx是你服務器的ip地址了;

[linux as 5]軟件要求

其他所需程序包的版本(或更高版本):

gcc-2.96-124

make-3.79

binutils-2.11

openmotif-2.1.30-11

glibc-2.2.4-31

要查看系統上安裝了這些程序包的哪些版本,運行以下命令:

rpm -q gcc make binutils openmotif glibc setarchp4198954_21_linux.zip 在運行 runInstaller 之前打.

rpm -ivh compat-oracle-rhel4-1.0-5.i386.rpm???? (p4198954_21_linux.zip)

(不打PATH也可以)

安裝 libaio-0.3.102-1.i386.rpm 和libaio-devel0.3.102-1.i386.rpm

在Red Hat Enterprise Linux 介質的第三張 CD

以 root 用戶身份運行以下命令:

rpm -ivh /mnt/cdrom/RedHat/RPMS/ libaio-0.3.102-1.i386.rpm創建數據庫安裝的準備工作:

1,創建user/group;

groupadd dba

groupadd oinstall

useradd oracle -g oinstall -G dba

passwd oracle

如果nobody用戶不存在(id nobody命令查看),則創建:

useradd nobody2,建立oracle安裝文件夾(sample);

mkdir -p /opt/oracle/10.2.0.1 /opt/oracle/oradata /opt/oracle/archivelog

chown -R oracle.oinstall? /opt/oracle

chmod 755 -R /opt/oracle2, 配置環境變量;

要使用 Oracle 產品,應該或必須設置幾個環境變量。

如果您在同一服務器上安裝了多個 Oracle 產品或數據庫,則 ORACLE_HOME、ORACLE_SID 和 PATH 變量可能會更改。

ORACLE_BASE 變量不應更改,并可以在需要時在您的登錄配置文件中設置它。Oracle 提供了一個稱作 oraenv 的實用程序來設置其他變量。

對于數據庫服務器,建議設置以下環境變量:

使用root用戶:

vi /home/oracle/.bash_profile

以下是配置文件的內容

ORACLE_BASE=/opt/oracle

ORACLE_HOME=/opt/oracle/10.2.0.1

ORACLE_SID=ge01

PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH

TNS_ADMIN=\$ORACLE_HOME/network/admin

NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

LANG=AMERICAN_AMERICA.ZHS16GBK

export PATH ORACLE_BASE ORACLE_HOME ORACLE_SID? TNS_ADMIN NLS_LANG LANG4, 設置系統參數;

Oracle 數據庫 10g 需要以下所示的內核參數設置。

一般情況下可以設置最大共享內存為物理內存的一半,如果物理內存是 2G,則可以設置最大共享內存為 1073741824,

如上;如物理內存是 1G,則可以設置最大共享內存為 512 * 1024 * 1024 = 536870912;以此類推。在redhat上最大共享內存不建議超過

4*1024*1024*1024-1=4294967295切換到root用戶:

su root

修改vi /etc/sysctl.conf, 添加:

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.shmall = 2097152

kernel.sem = 250 32000 100 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

net.core.rmem_default=262144

net.core.rmem_max=262144

net.core.wmem_default=262144

net.core.wmem_max=262144修改后運行"/sbin/sysctl -p"命令使得內核改變立即生效;B) 設置oracle對文件的要求:

編輯文件:vi /etc/security/limits.conf 加入以下語句:

oracle?????????? soft??? nproc?????????? 2047

oracle?????????? hard??? nproc?????????? 16384

oracle?????????? soft??? nofile????????? 1024

oracle?????????? hard??? nofile????????? 65536編輯文件:vi /etc/pam.d/login 加入以下語句(可能應該加在最后一條規則之前):session??? required???? /lib/security/pam_limits.so設置oraInst.loc文件:

[root@enterprice64 ~]#vi /etc/oraInst.loc

inventory_loc=/opt/oracle/oraInventory

inst_group=oinstall

[root@enterprice64 ~]#chown oracle.oinstall /etc/oraInst.loc

確保/etc/oraInst.loc中包含上面的信息,且Oracle包含訪問權限。5.解壓縮Oracle10G的安裝文件 :

使用Oracle用戶登陸:

su - oracle

在/home/oracle 上傳和解壓縮10201_database_linux32.zip:

unzip 10201_database_linux326.開始安裝oracleL i n u x 命令行環境下安裝(也可以在圖形界面下安裝)使用Oracle用戶登陸:

su - oracle

根據希望安裝的數據庫版本類型選擇Silent安裝模式的response_file文件的類似,比如:enterprise.rsp、standard.rsp還是custom.rsp。

這里選擇enterpise.rsp類型,安裝盤中的database/response目錄下對應的response文件拷貝出來,根據文件里面的提示對輸入值進行修改。

比如這個例子中對如下的參數進行設置:

UNIX_GROUP_NAME="oinstall"

FROM_LOCATION="/home/oracle/database/stage/products.xml"

ORACLE_BASE="/opt/oracle"

ORACLE_HOME="/opt/oracle/10.2.0.1"

ORACLE_HOME_NAME="OraDbHome1"

SHOW_INSTALL_PROGRESS_PAGE= true

SHOW_END_OF_INSTALL_MSGS= true

COMPONENT_LANGUAGES={"zh_CN"}

s_nameForDBAGrp= "dba"

s_nameForOPERGrp="dba"

INSTALL_TYPE="EE"

n_configurationOption=3

RESTART_SYSTEM=false

RESTART_REMOTE_SYSTEM=false注意,所有的字符串需要放在雙引號中,注意大小寫。數字和布爾變量直接寫就可以。

由于這里沒有選擇建立數據庫而只安裝軟件,因此沒有設置數據庫相關的配置參數。[oracle@enterprice64 data]\$ chmod 700 enterprise.rsp

面可以開始SILENT安裝了:

注意,響應文件需要使用絕對路徑。

cd /home/oracle/database

[oracle@enterprice64 database]\$ ./runInstaller -silent -responseFile /home/oracle/enterprise.rsp用root執行如下腳本:

/opt/oracle/10.2.0.1/oraInventory/orainstRoot.sh

/opt/oracle/10.2.0.1/root.sh

不過這里Oracle存在一個bug,在root.sh腳本中,自動將OUI_SILENT參數設置為TRUE,而后的檢查中,

如果發現這個值為TRUE,那么這個腳本運行會自動退出了。這里需要手工將其修改為false,

最后使用root執行一下\$ORACLE_HOME/root.sh腳本就可以了。根據提示按 Enter 就可以了。

這樣就在字符下成功安裝了。通過SILENT模式安裝數據庫之后,下面繼續使用SILENT模式進行數據庫的建立,

仍然是拷貝安裝目錄下的/home/oracle/database/response/dbca.rsp到安裝目錄,并進行編譯,

根據數據庫建立方式的不同編輯不同的數據庫庫選項。

比如在本次安裝過程中設置了下列參數:

RESPONSEFILE_VERSION = "10.0.0"

OPERATION_TYPE = "createDatabase"

GDBNAME = "ge01"

SID = "ge01"

TEMPLATENAME = "New_Database.dbt"

SYSPASSWORD = "georacle"

SYSTEMPASSWORD = "georacle"

DATAFILEDESTINATION ="/opt/oracle/oradata/"

RECOVERYAREADESTINATION="/opt/oracle/flash_recovery_area"

STORAGETYPE=FS

CHARACTERSET = "ZHS16GBK"

MEMORYPERCENTAGE = "40"

SCRIPTDESTINATION ="/opt/oracle/admin/ora10g/scripts"

EMCONFIGURATION=”LOCAL”

SYSMANPASSWORD = "georacle"

DBSNMPPASSWORD = "georacle"其中最后1項不是必須的,這個的目的是在建立數據庫的同時生成腳本。

下面就可以開始SILENT模式的數據庫創建了:

[oracle@enterprice64 database]\$ dbca -silent -responseFile /home/oracle/dbca.rsp

用root執行如下腳本:

/opt/oracle/10.2.0.1/oraInventory/orainstRoot.sh最后可以利用netca來SILENT方式設置網絡部分,同樣的方法設置netca.rsp:

RESPONSEFILE_VERSION="11.1"

CREATE_TYPE= "CUSTOM"

SHOW_GUI=false

LOG_FILE=""/opt/oracle/10.2.0.1/network/tools/log/netca.log""

INSTALLED_COMPONENTS={"server","net8","javavm"}

INSTALL_TYPE=""typical""

LISTENER_NUMBER=1

LISTENER_NAMES={"LISTENER"}

LISTENER_PROTOCOLS={"TCP;1521"}

LISTENER_START=""LISTENER""

NAMING_METHODS={"TNSNAMES","ONAMES","HOSTNAME"}

設置的參數包括上面的部分,然后就可以使用netca啟動silent配置:

[oracle@enterprice64 database]\$ netca /silent /responsefile? /home/oracle/netca.rsp----------------------------------------------------------------靜默卸載Oracle數據庫ge01

dbca -silent -deleteDatabase -sourceDB??? [-sysDBAUserName???? -sysDBAPassword ]

例如:dbca -silent -deleteDatabase -sourceDB ge01 -sysDBAUserName sys -sysDBAPassword georacle靜默卸載Oracle數據庫軟件

執行以下命令靜默卸載Oracle數據庫軟件

\$./runInstaller -silent -deinstall -removeallfiles -removeAllPatches "REMOVE_HOMES={\$ORACLE_HOME}" -responseFile ~/enterprise.rsp---------------------------------------------------------------------------------------(一)圖形界面開始安裝:

1.以oracle用戶登錄X-WINDOWS系統,進行Oracle的安裝(遠程安裝需打開XDM):[ linux 5}

export DISPLAY=

cd /opt/database (或者你解壓縮安裝程序包的目錄)

./runInstaller 或者./runInstaller?? -ignoreSysPrereqs

過一會兒就會出現Oracle的X安裝界面注意:

1、選擇advance install

2、數據庫home設置為/opt/oracle/10.2.0.1

3、數據庫全局名稱設置為ge01

4、數據庫字符集選Simplified Chinese ZHS16GBK2.其他用默認設置!

注意:安裝過程中會提示以root用戶登陸執行一些腳本 ,執行后再按“ok”按鈕繼續安裝。3、登陸并啟動數據庫的操作。

su - oracle

[oracle@oracle oracle]\$ lsnrctl start

[oracle@oracle oracle]\$ sqlplus /nolog

SQL*Plus: Release 9.2.0.0 - Production on Sat Mar 12 22:58:53 2005

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

SQL> connect / as sysdba

Connected.

SQL> startup; 啟動數據庫

ORACLE instance started.

Total System Global Area 236000356 bytes

Fixed Size 451684 bytes

Variable Size 201326592 bytes

Database Buffers 33554432 bytes

Redo Buffers 667648 bytes

Database mounted.

Database opened.SQL> shutdown immediate ;關閉數據庫 (OR "dbshut" command)

Database closed.

Database dismounted.

ORACLE instance shut down.4, dbstart腳本修改

數據庫創建完成后,修改vi /etc/oratab,把ge01:/opt/oracle/10.2.0.1:N那一行最后的N改成Y,

修改vi /opt/oracle/10.2.0.1/bin/dbstart中ORACLE_HOME_LISTNER=/opt/oracle/10.2.0.1

然后執行dbstart啟動數據庫數據庫可能無法啟動,報告Can’t find init file …的錯誤,需要復制一個初始化文件:

cp /opt/oracle/admin/ge01/pfile/init.ora.* /opt/oracle/10.2.0.1/dbs/initge01.ora

重新執行dbstart就可以了。可以執行dbshut 停止ORACLEvi /etc/rc.local 加入下面一行 起動ORACLE ON system boot

su - oracle -c "lsnrctl start"

su - oracle -c "dbstart"5. 為了root方便管理,可以寫一個啟動腳本

vi /etc/init.d/ora10g

#!/bin/bash

#

# chkconfig: 2345 91 19

# description: starts the oracle listener and instancestatus() {

pid=`ps -ef | grep ora_pmon | grep -v grep | awk '{print \$8}'`

if [ "X\$pid" = "X" ]

then

echo "oracle10g is not running."

exit 1

else

echo "oracle10g is running."

exit 0

fi

}case "\$1" in

start)

#startup the listener and instance

echo -n "oracle begin to startup: "

su - oracle -c "lsnrctl start"

su - oracle -c dbstart

echo "oracle10g started"

;;

stop)

# stop listener, apache and database

echo -n "oracle begin to shutdown:"

su - oracle -c "lsnrctl stop"

su - oracle -c dbshut

echo "oracle10g shutdowned"

;;

reload|restart)

\$0 stop

\$0 start

;;

'status')

status

;;

*)

echo "Usage: ora10g [start|stop|reload|restart]"

exit 1

esac

exit 0存為ora10g后,然后

chmod a+x /etc/init.d/ora10g

即可在以后以root身份運行/etc/rc.d/init.d/ora10g start |stop 來管oracle的啟動和停止了。

如果要將這個腳本加入到系統中使其可開機運行,那么要運行以下命令:

chkconfig --level 35 ora10g on

6, 關于數據庫刪除重新安裝的問題:

1 . 去除 /usr/local/bin 目錄 下的 coraenv dbhome oraenv

2 . 去除 /etc/oratab , /etc/oracle

3 . 去掉安裝 目錄 /opt/oracle 目錄下的 product admin oradata oralnventor 目錄 。

# userdel -r oracle

# groupdel dba oinstall

rm -rf /tmp/ora*

rm -rf /opt/oracle/*

rm -rf /opt/ORCLfmap

rm -f /etc/ora*

rm -f /usr/local/bin/oraenv

rm -f /usr/local/bin/coraenv

rm -f /usr/local/bin/dbhome7.修改Oracle10g數據庫字符集

SQL> connect sys/oracle as sysdba

SQL> startup mount

SQL> alter session set sql_trace=true;Session altered.SQL> alter system enable restricted session;System altered.SQL> alter system set job_queue_processes=0;System altered.SQL> alter system set aq_tm_processes=0;System altered.SQL> alter database open;Database altered.SQL> set linesize 120;

SQL> alter database character set zhs16gbk;

alter database character set zhs16gbk

*

ERROR at line 1:

ORA-12712: new character set must be a superset of old character setSQL> ALTER DATABASE character set INTERNAL_USE zhs16gbk; # 使用INTERNAL_USE可以跳過超集的檢查,ALTER DATABASE character set INTERNAL_USEDatabase altered.SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> STARTUP

SQL> select name,value\$ from props\$ where name like '%NLS%';NLS_CHARACTERSET

ZHS16GBK8. oracle database異機備份腳本

su - oracle

mkdir /home/oracle/dbbackup(1)vi /home/oracle/dbbackup/bachupdb.sh

#!/bin/bash

#As oracle user, chmod 744 /home/oracle/dbbackup/DBbackuprecover.sh

#crontab -e 35 1 * * * /home/oracle/dbbackup/DBbackuprecover.sh >/dev/null 2>&1

#@tip: modify local database's home directory

#@tip is remote database ip addressexport ORACLE_HOME=/opt/oracle/10.2.0.1

export PATH=\$ORACLE_HOME/bin:\$PATH:

export NLS_LANG=AMERICAN_AMERICA.zhs16gbk

export LANG=AMERICAN_AMERICA.ZHS16GBK

export ORACLE_SID=ge01dmpfile=gedb_`date +%F`.dmp

logfile=gedb_`date +%F`.log

restoredblog=restoredb_`date +%F`.log

WORK_DIR=~/dbbackupcd \$WORK_DIR

exp USERID=gedb/gegedb@/ge01 file=\$dmpfile log=\$logfile? owner=gedb

if [ 0 -eq "\$?" ]

then

sqlplus / as sysdba @user.sql

imp USERID=gedb/gegedb file=\$dmpfile log=./\$restoredblog fromuser=gedb? touser=gedb

find? ./*.dmp -type f -mtime +7 -exec rm {} ;

find? ./*.log -type f -mtime +30 -exec rm {} ;

exit 0

else

echo "backup error,quit!" > \$logfile

exit 1

fi

#@tip ip地址修改為要備份的oracle的主機地址

exp USERID=gedb/gedb@10.248.1.5/ge01 file=\$dmpfile log=\$logfile? owner=gedb direct=y(2)更改腳本權限:

chown oracle.oinstall backupdb.sh

chmod 744 backupdb.sh

(3)以oracle user role

crontab -e

35 2 * * * /home/oracle/dbbackup/backupdb.sh9. restore oracle backup

(1) 先創建gedb用戶和授權:

su - oracle

sqlplus / as sysdba @createUser.sql

(2)imp USERID=gedb/gegedb file=110.dmp fromuser=gedb touser=gedb

如果要第二次IMP操作要先刪除用戶gedb,再新建用戶gedb,這樣imp才不會出錯.

DROP USER gedb CASCADE;

CREATE USER gedb? IDENTIFIED BY gegedb;

GRANT UNLIMITED TABLESPACE TO gedb;

GRANT CONNECT TO gedb;

GRANT RESOURCE TO gedb;

GRANT DBA TO gedb;

10. oracle優化SQL> alter system set "_kgl_large_heap_warning_threshold"=8388608 scope=spfile ; (ONLY FOR 10.2.0.1.0 )

SQL> shutdown immediate

SQL> startup11.BUG FIX(1)10g EM亂碼之快速解決

[oracle@danaly ~]\$ cd \$ORACLE_HOME/jdk/jre/lib

[oracle@danaly lib]\$ ls font*zh_CN*

font.properties.zh_CN.Redhat font.properties.zh_CN.Redhat2.1

font.properties.zh_CN.Sun font.properties.zh_CN_UTF8.Sun[oracle@danaly lib]\$ cd \$ORACLE_HOME/jre/1.4.2/lib/

[oracle@danaly lib]\$ ls font*zh_CN*

font.properties.zh_CN.Redhat font.properties.zh_CN.Redhat2.1

font.properties.zh_CN.Sun font.properties.zh_CN_UTF8.Sun我們只要用合適的中文字符集文件替換缺省文件即可,我選擇使用font.properties.zh_CN.Redhat來替換缺省字體定義文件:[oracle@danaly lib]\$ cp font.properties.zh_CN.Redhat font.properties替換之后需要清理一下Cache,重啟EM即可.Cache路徑通常位于:\$ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zhs清除所有gif文件即可.然后重新啟動EM(2)10201上一個嚴重的BUG

環境 10201,AIX53

但據ORACLE解釋,在任何操作系統版本都有此問題。現象:監聽器啟動后,隔一段時間(長短不定),就會出現無法

連接: 若是用10201版本的SQLPLUS,則會出現 NO LISTENER。

9207 版本的SQLPLUS,則會出現:沒反應,HANG住。原因:10201 版本上的一個BUG:4518443。其會自動創建一個子

監聽器,當出現此情況時,監聽器將會掛起。

/opt/oracle/product/10g/network/log/listener.log有如下語句:

WARNING: Subscription for node down event still pending檢查是否真因為此BUG造成此現象:

\$ ps -ef | grep tnslsnr

ora10g 8909 1 0 Sep 15 ? 902:44 /u05/10GHOME/DBHOME/bin/tnslsnr sales -inherit

ora10g 22685 8909 0 14:19:23 ? 0:00 /u05/10GHOME/DBHOME/bin/tnslsnr sales –inherit

正常情況只有一個監聽器,而此BUG則會出現兩個監聽器。解決方法:

打補丁4518443

或者在listener.ora 文件里加入:

SUBSCRIBE_FOR_NODE_DOWN_EVENT_=OFF

其中, 是數據庫的監聽器的名稱。如:

默認情況下,監聽器名為:LISTENER 。則語句就是:

SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER=OFF

同時:

cd \$ORACLE_HOME/opmn/conf

mv ons.config ons.config.orig

重啟監聽程序:

lsnrctl stop

lncrctl start

總結

以上是生活随笔為你收集整理的oracle 强制 断开,ORA-01092: ORACLE 例程终止 强行断开连接的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。