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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352926.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

weblogic运行项目_在WebLogic 12c上运行RichFaces

weblogic运行项目我最初以为我可以在几个月前写这篇文章。 但是我最终被不一样的事情所淹没。 其中之一是,它无法像我在4.0版本中那样简单地启动RichFaces展示柜。 有了所有的JMS magic和不同的提供程序检查,这已经成为简单构建和部署它的挑战。 无论如何…

超详细在Ubuntu下安装JDK图文解析

我们选择的是jdk1.6.0_30版本。安装文件名为jdk-6u30-linux-i586.bin. 1、复制jdk到安装目录 (1)假设jdk安装文件在桌面,我们指定的安装目录是:/usr/local/java 。可是系统安装后在/usr/local下并没有java目录,这需要…

oracle 整个表空间迁移,oracle11g迁移表空间

表空间名为sbjc,要从D:\APP\ORACLE\ORADATA\TABLESPACE\SBJC.DBF 迁移到 F:\oracle\oradata\tablespace\SBJC.DBF。 扼要操作步骤: 第一步:登陆数据库 第二步:中止数据库 第三步:在open方式下启动数据库 第四步&#x…

Qt5使用QFtp,二次封装

1、需要的东西 ftp.cpp,ftp.h是二次封装的ftp类,放在工程下包含 QFtp和qftp.h放在D:\Qt5.7.1\5.7\msvc2013\include\QtNetwork; Qt5Ftp.lib和Qt5Ftpd.lib是编译生成的库,放在工程源文件下 2、包含库 #pragma comment(lib,"Qt5Ftpd.lib&q…

无参数泛型方法反模式

最近&#xff0c;有关Java泛型的一个非常有趣的问题发布到Stack Overflow和reddit上。 考虑以下方法&#xff1a; <X extends CharSequence> X getCharSequence() {return (X) "hello"; }尽管不安全的转换看起来有些古怪&#xff0c;并且您可能会猜这里有些问…

oracle数据库升级失败,Oracle 11.2.0.1 rac 升级失败后,数据库降级方案(flashback database)...

升级失败后&#xff0c;数据库降级方案(flashback database)环境&#xff1a;Oracle 11.2.0.1 rac on redhat 5.8Flashback database准备工作查看是否flashback database功能sysRACDB>select log_mode,open_mode,flashback_on fromv$database;LOG_MODEOPEN_MODE …

Ubuntu下安装Oracle11g(图文教程)

由于课程需要&#xff0c;要在Ubuntu下安装一个Oracle&#xff0c;之前都没有装过&#xff0c;所以想通过这篇博文记录一下 1.下载Oracle 11g 下载地址&#xff1a;http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index-092322.html 我选择下载的是…

class12_pack_grid_place 放置位置

其中的部分运行效果图&#xff08;程序见序号1&#xff09;&#xff1a; #!/usr/bin/env python# -*- coding:utf-8 -*-# ------------------------------------------------------------## 参考资料&#xff1a;# 用 python 和 tkinter 做简单的窗口视窗 - 网易云课堂# https:…

oracle强制执行计划,OBA技能2-Oracle执行计划顺序表连接

小仙我在学习索引执行行为的时候&#xff0c;有个疑惑&#xff1f;那就是索引是找到一个值就马上回表&#xff0c;然后再找下一个值&#xff0c;再回表。比如索引唯一扫描&#xff0c;索引范围扫描&#xff0c;索引全扫描&#xff0c;索引快速扫描。好像都是要回表。尤其是范围…

ubuntu中启动oracle数据库

前期准备&#xff1a;如果你还没有在ubuntu上安装oracle请先看我之前到日志http://blog.csdn.net/backtracker/article/details/66247181. $su oracle $ sqlplus /nolog 将出现如下连接数据库信息&#xff1a; SQL*Plus: Release 10.2.0.1.0 - Production on Fri Jul 8 10:1…

oracle 输出到页面,利用Xming 将Linux 图形界面输出到Windows上

Linux上安装Oracle 时需要图形界面, 但又不想在服务器上安装图形界面怎么办,这时候就需要用到Xming 这个神器了安装过程比较简单, 直接下一步下一步即可安装完成后先运行, Xlaunch注意:这个No Access Control的勾勾一定要勾上,否则 执行export到Windows主机上时会提示 No proto…

spring 事件模型_Spring–设计领域模型和服务层

spring 事件模型我们将为时间表管理构建应用程序。 因此&#xff0c;让我们首先考虑一些用例和实体。 让我用几个项目符号写它们&#xff1a; 任务由经理分配给员工。 一项任务可以分配给许多员工。 员工将他在某些任务上工作的小时数填充到系统中。 经理/员工查看时间表上的…

log4j/slf4j

log4j的使用 引入log4j.jar包<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version> </dependency> 配置log4j.propertieslog4j.rootLoggerINFO,Console,OneFile,errFile #输出到控制…

Ubuntu 12.04下安装Oracle Express 11gR2

Ubuntu 12.04下安装Oracle Express 11gR2 [我的笔记] 参考1&#xff1a;http://www.linuxidc.com/Linux/2012-09/71382.htm 参考2&#xff1a;http://zhjack.blog.163.com/blog/static/14314920137153331286/ 1、点击这里下载Oracle express的安装介质 Oracle Database Express…

选择的按钮:将ToggleButtons用作单选按钮

对于MQTT.fx&#xff0c;我想使用ToggleButtons例如选择MQTT消息或QoS级别的解码&#xff1a; 我发现在ToggleGroup的上下文中&#xff0c;ToggleButton在选择/取消选择方面的行为与RadioButtons不同&#xff1a;与RadioButtons不同&#xff0c;ToggleButtons仍可以设置为未选…

php调用image类提示不存在的字体,php – 无效的字体文件名(imagettfbox)

这个问题一直被问到,但是我找不到我问题的正确答案……作为一个小背景说明,在将类文件从/ application / lib / class移到/库之前,所有代码都运行良好/ class ……我试过玩GDFONTPATH,相对的,绝对路径有和没有文件扩展名无济于事.以下是我们迄今为止尝试的一些行&#xff1a;pu…

linux文件属性之用户和组基础知识

root :x :0 :0 :root :/root :/bin/bash 账号名称 &#xff1a;账号密码 &#xff1a;账号UID &#xff1a;账号组GID &#xff1a;用户说明 &#xff…

Oracle常用命令大全(经典收藏)

一、ORACLE的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户&#xff0c;如下 su - oracle a、启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup SVRMGR>quit b、关闭ORACLE系统 oracle>svrm…

oracle共享服务器模式的图,Oracle 11g笔记——专有服务器、共享服务器模式

专有服务器模式&#xff1a;适合批处理和大任务的应用共享服务器模式&#xff1a;适合有大量并发用户的应用共享服务器模式&#xff0c;处理过程&#xff1a;1、调度进程(Dispatcher)接受多个客户端(用户进程)的连接请求&#xff0c;并把这些请求放到一个公共队列中。2、空闲的…

基于django rest framework的mock server实践

网上找了一下mock server的实现&#xff0c;发现python的基本都是基于flask来实现的&#xff0c;因最近在学django&#xff0c;就尝试用drf实现了下&#xff1a; A brief introduction of sui_mock sui mock server is an attempt that aim at dealing some issues of the thir…