2009 年 11 月 03日, 星期二

虚拟机安装10g rac的几点备忘

一、重新安装CRS需要做的事
dd清除ocr和vote disk
dd if=/dev/zero of=/dev/sdb1 bs=1M count=256
dd if=/dev/zero of=/dev/sdc1 bs=1M count=256
dd if=/dev/zero of=/dev/sdd1 bs=1M count=256
dd if=/dev/zero of=/dev/sde1 bs=1M count=256
dd if=/dev/zero of=/dev/sdf1 bs=1M count=256

rm -rf /var/tmp/.oracle /tmp/.oracle /etc/oracle /etc/oraInst.loc
rm -rf /etc/init.d/init.cssd /etc/init.d/init.crs /etc/init.d/init.crsd /etc/init.d/init.evmd
rm -rf /etc/rc2.d/K96init.crs /etc/rc2.d/S96init.crs
rm -rf /etc/rc3.d/K96init.crs /etc/rc3.d/S96init.crs
rm -rf /etc/rc5.d/K96init.crs /etc/rc5.d/S96init.crs
rm -rf /opt/app/oracle/oraInventory/* /opt/crs/oracle/product/10.2.0/crs_1/*

chown -R oracle:oinstall /opt/crs
chown -R oracle:oinstall /opt/app/oracle
chown -R oracle:oinstall /dev/raw
chown -R oracle:oinstall /dev/sd[b-f]1

rm -f /etc/inittab.crs
cp /etc/inittab.no_crs /etc/inittab


二、VMware Linux安装RAC出现Failure at final check of Oracle CRS stack 10的解决
1、开通了root的ssh
2、/dev/sd[b-f]1在配置文件中加入了shared
scsi1:0.shared = "true"
scsi1:1.shared = "true"
scsi1:2.shared = "true"
scsi1:3.shared = "true"
scsi1:4.shared = "true"

三、dbca配置asm时报:ORA-27102 out of memory解决方法:
#cat /proc/sys/kernel/shmmax
0
sysctl -p =>kernel.shmmax = 60129542144
因为:在32位Linux中共享内存段最大不能超过4G。如果在32位系统上设置SHMMAX值大于或等于4294967296 bytes (4 * 1024 * 1024 * 1024 = 4GB),参数SHMMAX会变为0。也就是说在32位系统上SHMMAX不能超过4294967295(4G-1byte)。这是32位系统的限制,升级到64位系统能够规避此问题。
解决方法:修改/etc/sysctl.conf中的kernel.shmmax = 4294967295,sysctl -p后dbca正常。


四、重启后无法oracleasm listdisks/scandisks

现象:
[root@dbrac2 kernel]# /etc/init.d/oracleasm listdisks
[root@dbrac2 kernel]# /etc/init.d/oracleasm scandisks
Scanning system for ASM disks: [FAILED]
[root@dbrac2 kernel]# /etc/init.d/oracleasm createdisk VOL1 /dev/sdg1
Marking disk "/dev/sdg1" as an ASM disk: Error opening manager: No such file or directory
[FAILED]
解决方法:双机重新执行#/etc/init.d/oracleasm configure
再执行/etc/init.d/oracleasm listdisks(/scandisk)均OK。


五、asm需要的CSS服务起不来
现象:

ps -ef|grep css

一个/bin/sh /etc/init.d/init.cssd fatal

几个/bin/sh /etc/init.d/init.cssd startcheck

解决方法:重新执行/etc/init.d/oracleasm configure重新配置一遍即可。

六、重启后/dev/raw/raw[1-5]和/dev/sd[b-n]1的属主重新变为root:disk的解决

之前我一直采用的是在/etc/rc.d/rc.local中增加以下两行:

chown -R oracle:oinstall /dev/raw
chown -R oracle:oinstall /dev/sd[b-n]1
可以临时解决。永久解决的方法如下:

在/etc/udev/permissions.d/50-udev.permissions中:

1、修改一行:

raw/*:root:disk:0660 --> raw/*:oracle:oinstall:0660

2、在sd*:root:disk:0660后增加如下一行:

sd[b-n]1:oracl3:oinstall:0660

七、双机时间同步的解决方法

在1号机的/etc/rc.d/rc.local中增加一行:service ntpd restart

在2号机运行while true; do; sleep 1; ntpdate dbrac1(1号机主机名); done

八、创建磁盘组时报:无法使用连接服务dbrac2:1521:+ASM2将磁盘组装载到远程节点dbrac2。请确保监听程序在此节点上运行,并且ASM实例已注册到监听程序。收到以下错误:

Listener refused the connection with the following err:

ORA-12523,......

此时,可用磁盘组的“状态”栏均为“MOUNTED(1/2)”

dbrac1上:v$asm_diskgroup的state均为MOUNTED

export ORACLE_SID=+ASM1

SQL>select name,stat from v$asm_diskgroup;

dbrac2上:均为DISMOUNTED。

解决方法:

在lsnrctl status有问题的节点运行netca重新配置监听,可能要在两节点间来回多次配置,我有一次就配置了4次才两遍都OK。

然后再次装载,所有可用磁盘组“状态”均为“MOUNTED(2/2)”,即为OK。

九、crs_stat -t显示db和inst Target=ONLINE State=OFFLINE处理

虚拟机自动启动后,报

[oracle@dbrac1 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.dbrac.db application ONLINE OFFLINE
ora....c1.inst application ONLINE OFFLINE
ora....c2.inst application ONLINE OFFLINE
ora....SM1.asm application ONLINE ONLINE dbrac1
ora....C1.lsnr application ONLINE ONLINE dbrac1
ora.dbrac1.gsd application ONLINE ONLINE dbrac1
ora.dbrac1.ons application ONLINE ONLINE dbrac1
ora.dbrac1.vip application ONLINE ONLINE dbrac1
ora....SM2.asm application ONLINE ONLINE dbrac2
ora....C2.lsnr application ONLINE ONLINE dbrac2
ora.dbrac2.gsd application ONLINE ONLINE dbrac2
ora.dbrac2.ons application ONLINE ONLINE dbrac2
ora.dbrac2.vip application ONLINE ONLINE dbrac2


手工启动数据库报:

SQL> startup
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '+DGARC/dbrac/spfiledbrac.ora'
ORA-17503: ksfdopn:2 Failed to open file +DGARC/dbrac/spfiledbrac.ora
ORA-15077: could not locate ASM instance serving a required diskgroup

解决方法:
将两边+ASM1/2实例shutdown后再startup即可从srvctl启动数据库。

后来,重启+ASM实例也没用了,解决方法就是运行/etc/init.d/oracleasm configure,重新配置后能listdisks,再重启+ASM实例可mount diskgroup。

后来的后来,发现执行oracleasm enable时,也能liskdisks,但是重启后又失效了。只好暂时将/etc/init.d/oracleasm enable写在/etc/rc.d/rc.local,能够正常启动数据库和实例。可能是因为ASMLIB的问题。


zfnccn 发表于:2009.11.03 17:29 ::分类: ( 数据库 ) ::阅读:(175次) :: 评论 (0) :: 引用 (0)

2009 年 11 月 01日, 星期日

VMware Linux安装RAC出现Failure at final check of Oracle CRS stack 10的解决

困扰我好几天的“VMware Linux安装10g RAC出现Failure at final check of Oracle CRS stack 10”今晚总算得到了解决,先将解决方法说明如下,明天再逐一确认:

1、开通了root的ssh
2、/dev/sd[b-f]1(ocr和voting disk盘)在配置文件中加入了shared
scsi1:0.shared = "true"
scsi1:1.shared = "true"
scsi1:2.shared = "true"
scsi1:3.shared = "true"
scsi1:4.shared = "true"

第二天发现:仅开通root的ssh是不够的,必须shared=true才行。

附:干净清理CRS文件,重新安装(dd清除ocr和vote disk,并使用下面语句清理旧的crs配置文件)

dd if=/dev/zero of=/dev/sdb1 bs=1M count=256
dd if=/dev/zero of=/dev/sdc1 bs=1M count=256
dd if=/dev/zero of=/dev/sdd1 bs=1M count=256
dd if=/dev/zero of=/dev/sde1 bs=1M count=256
dd if=/dev/zero of=/dev/sdf1 bs=1M count=256

rm -rf /var/tmp/.oracle /tmp/.oracle /etc/oracle /etc/oraInst.loc
rm -rf /etc/init.d/init.cssd /etc/init.d/init.crs /etc/init.d/init.crsd /etc/init.d/init.evmd
rm -rf /etc/rc2.d/K96init.crs /etc/rc2.d/S96init.crs
rm -rf /etc/rc3.d/K96init.crs /etc/rc3.d/S96init.crs
rm -rf /etc/rc5.d/K96init.crs /etc/rc5.d/S96init.crs
rm -rf /opt/app/oracle/oraInventory/* /opt/crs/oracle/product/10.2.0/crs_1/*

chown -R oracle:oinstall /opt/crs
chown -R oracle:oinstall /opt/app/oracle
chown -R oracle:oinstall /dev/raw
chown -R oracle:oinstall /dev/sd[b-f]1

rm -f /etc/inittab.crs
cp /etc/inittab.no_crs /etc/inittab


zfnccn 发表于:2009.11.01 23:09 ::分类: ( 数据库 ) ::阅读:(85次) :: 评论 (0) :: 引用 (0)

2009 年 10 月 29日, 星期四

安装10g RAC时2号机登陆报“module is unknown”处理

在装10g RAC的时候,2号机登陆时,报module is unknown,主控台无法登陆,但是从1号机ssh可以登录,开启2号机的telnet服务后,从SecureCRT软件也能telnet。
查看双机dmesg,唯一的不同是2号机多了一行PM-Timer running at invalid rate: 86% of normal - aborting.
查看双机/var/log/secure文件,发现2号机多了如下信息:
Oct 29 08:44:50 dbrac2 login: PAM unable to dlopen(/lib/security/pam_ilimits.so)
Oct 29 08:44:50 dbrac2 login: PAM [dlerror: /lib/security/pam_ilimits.so: cannot open shared object file: No such file or directory]
Oct 29 08:44:50 dbrac2 login: PAM adding faulty module: /lib/security/pam_ilimits.so

想起来在系统参数配置时,双机都在/etc/pam.d/login增加了一行“session required pam_limits.so”,1号机增加的没问题,2号机发现写成了pam_ilimits.so,去掉字母i后,一切正常。


zfnccn 发表于:2009.10.29 10:44 ::分类: ( 操作系统 ) ::阅读:(93次) :: 评论 (0) :: 引用 (0)

2009 年 05 月 31日, 星期日

Oracle9i SET用法简介2

Oracle9i SET用法简介2

SET MARK[UP] HTML [ON|OFF] [HEAD text] [BODY text] [TABLE text] [ENTMAP {ON|OFF}][SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}]

输出HTML为文本,这是iSQL*Plus使用的输出。由于它可能破坏浏览器屏幕,谨慎使用生成无效的HTML输出选项。对于动态报表和保存在本地的报告,HEADBODY选项是有用的。

SET MARKUP仅仅指定SQL*Plus输出将会是HTML编码。你必须使用SET MARKUP HTML ON SPOOL ONSQL*PlusSPOOL命令来生成和命名一个spool文件,并且开始写HTML输出进这个文件。SET MARKUP有和SQLPLUS –MARKUP一样的选项和功能。

更多细节信息参考"MARKUP Options"。用例参考SET MARKUP

使用SHOW MARKUP命令来查看MARKUP选项状态。

举例

下面的脚本用SET MARKUP HTML命令来使得HTML输出为文本,这个文本被spool到一个指定的文件:


注意

为了可读性,SET MARKUP的举例使用连接符"-"和空格进行排版。命令选项用正常条目链接。


使用你喜欢的文本编辑器来输入必要的命令以设置HTML选项和查询你想要的报表。

SET MARKUP HTML ON SPOOL ON HEAD "<TITLE>SQL*Plus Report</title> -

STYLE TYPE='TEXT/CSS'><!--BODY {background: ffffc6} --></STYLE>"

SET ECHO OFF

SPOOL employee.htm">

SELECT FIRST_NAME, LAST_NAME, SALARY

FROM EMP_DETAILS_VIEW

WHERE SALARY>12000;

SPOOL OFF

SET MARKUP HTML OFF

SET ECHO ON

由于这个脚本包含SQL*Plus命令,不要试图从buffer中以/(斜线)运行它,因为它将会失败。在你的文本编辑器中保存脚本,并且使用START运行它:

START employee.sql

当写html输出文件employee.htm">/EM>,因为SET TERMOUT默认是ON,输出也会显示在屏幕上。你可以用你的网页浏览器查看这个spool文件employee.htm">/EM>。它应该显示一些像下面的东西:

SET NEWP[AGE] {1|n|NONE}

SET NEWPAGEiSQL*Plus中不支持

设置从每一页的顶部到顶部标题之间要打印的空白行数。0值放置一个进纸在每一页的开始(包括首页),并且在多数终端清除屏显。如果你设置NEWPAGENONESQL*Plus不会打印一个空白行,也不会在报表页之间进纸。

SET NULL text

设置在一个SQL SELECT命令的结果中null值表示的text文本。使用COLUMN命令的NULL字句来覆盖对一个给定的列的NULL变量的设置。

SET NUMF[ORMAT] format

设置显示数字的默认格式。输入一个数字格式为format。关于数字格式描述,参考本章COLUMN命令的FORMAT子句。

SET NUM[WIDTH] {10|n}

设置显示数字的默认宽度。关于数字格式描述,参考本章COLUMN命令的FORMAT子句。

SET PAGES[IZE] {24|n}

设置每一页的行数。你可以设置PAGESIZE0来禁止显示所有的标题、页分隔符、题头、初始的空行和其他格式化的信息。

SET PAU[SE] {ON|OFF|text}

SET PAUSEiSQL*Plus中不支持。

当你运行报表时允许你控制终端的滚动。ON使得SQL*Plus在输出报表的每一页都中止。你必须按回车键进入下一页。你输入的text指定text文本会在每次SQL*Plus中止时显示。如果你输入的是多个字,必须用单引号括起来。

你可以在PAUSE命令中嵌入终端依赖的退出序列。这些序列允许你生成反转的视频消息或者支持这样特征的终端的其他影响。

SET RECSEP {WR[APPED]|EA[CH]|OFF}

RECSEP通知SQL*Plus在何处对记录进行分隔。例如,如果你设置RECSEPWRAPPEDSQL*Plus仅仅在换行后打印一个记录分隔。如果你设置RECSEPEACHSQL*Plus在每一行后打印一个记录分隔。如果你设置RECSEPOFFSQL*Plus不会打印记录分隔。

SET RECSEPCHAR {_|c}

定义显示或打印分隔记录的字符。一个记录分隔符包含一行重复LINESIZE次的RECSEPCHAR(记录分隔符)。默认是一个空格。

SET SERVEROUT[PUT] {ON|OFF} [SIZE n] [FOR[MAT] {WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]}]

控制SQL*Plus中的存储过程或PL/SQL块是否显示输出(也就是DBMS_OUTPUT.PUTLINEOFF表示DBMS_OUTPUT.PUT_LINE禁止输出;ON表示显示输出。

SIZE设置在Oracle8iOracle9i数据库服务器中可以缓存的输出的字节数。n默认值是2000n的取值范围在20001000000

WRAPPED被启用,SQL*Plus在达到SET LINESIZE指定的行大小时会换行输出,需要的时候开始新的行。

WORD_WRAPPED被启用,在SET LINESIZE指定的行大小内,服务器输出的每一行都会换行。行被截断在字边界。SQL*Plus在每行会对齐调整,会跳过所有的行间插入的空格。

TRUNCATED被启用,服务器输出的每一行都会按照SET LINESIZE指定的行大小进行截断。

对于每一个FORMAT,每一个服务器输出行在一个新的输出行开始。

更多关于BMS_OUTPUT.PUT_LINE的信息,参考你的Oracle9i Application Developer's Guide - Fundamentals

举例

要在一个PL/SQL块中启用DBMS_OUTPUT.PUT_LINE输出文本显示,输入

SET SERVEROUTPUT ON

下面的例子显示了当你使用SET SERVEROUTPUT ON执行一个匿名过程时会发生什么:

BEGIN

DBMS_OUTPUT.PUT_LINE('Task is complete');

END;

/

Task is complete.

PL/SQL procedure successfully completed.

下面的例子显示当你使用SET SERVEROUTPUT ON创建一个触发器时会发生什么:

CREATE TRIGGER SERVER_TRIG BEFORE INSERT OR UPDATE -

OR DELETE

ON SERVER_TAB

BEGIN

DBMS_OUTPUT.PUT_LINE('Task is complete.');

END;

/

Trigger created.

INSERT INTO SERVER_TAB VALUES ('TEXT');

Task is complete.

1 row created.

要设置输出为WORD_WRAPPED,输入

SET SERVEROUTPUT ON FORMAT WORD_WRAPPED

SET LINESIZE 20

BEGIN

DBMS_OUTPUT.PUT_LINE('If there is nothing left to do');

DBMS_OUTPUT.PUT_LINE('shall we continue with plan B?');

END;

/

If there is nothing

left to do

shall we continue

with plan B?

要设置输出为TRUNCATED,输入

SET SERVEROUTPUT ON FORMAT TRUNCATED

SET LINESIZE 20

BEGIN

DBMS_OUTPUT.PUT_LINE('If there is nothing left to do');

DBMS_OUTPUT.PUT_LINE('shall we continue with plan B?');

END;

/

If there is nothing

shall we continue wi

SET SHIFT[INOUT] {VIS[IBLE]|INV[ISIBLE]}

SET SHIFTINOUTiSQL*Plus中不支持

允许显示转义字符的终端进行正确的对齐。SET SHIFTINOUT命令对于那些转义字符和数据一起显示的终端(比如IBM 3270终端)是有用的。你只能使用敏感的转义字符集(例如JA16DBCS)来设置这个命令。

使用VISIBLE来显示转义字符作为一个可见的字符(例如一个空格或冒号)。INVISIBLE则相反,不显示任何转义符。

举例

为了启用终端支持的转义字符显示,输入

SET SHIFTINOUT VISIBLE

SELECT LAST_NAME, JOB_ID FROM EMP_DETAILS_VIEW

WHERE SALARY > 12000;

LAST_NAME JOB_ID

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

:JJOO: :AABBCC:

:AA:abc :DDEE:e

这里的":" 等于可见的转义字符

大小表示多字节的字符

小写表示单字节的字符

SET SHOW[MODE] {ON|OFF}

SET SHOWMODEiSQL*Plus中不支持

当你使用SET改变设置时,控制SQL*Plus是否列出SQL*Plus系统变量的oldnew设置。ON会列出设置;OFF禁止列出。SHOWMODE ON和舍弃的SHOWMODE BOTH有一样的性能。

SET SQLBL[ANKLINES] {ON|OFF}

SET SQLBLANKLINESiSQL*Plus中不支持

控制SQL*PlusSQL命令或脚本中是否允许空行。ON解释空行和新行作为SQL命令或脚本的一部分。OFF是默认值,在SQL命令或脚本中不允许空行或新行。

输入BLOCKTERMINATOR不需要运行SQL命令就可以停止SQL命令的输入。输入SQLTERMINATOR字符来停止SQL命令的输入,并且运行这个SQL语句。

举例

为了在SQL语句中允许空白行,输入

SET SQLBLANKLINES ON

REM Using the SQLTERMINATOR (default is ";")

REM Could have used the BLOCKTERMINATOR (default is ".")

SELECT * FROM DUAL;

输出结果如下:

D

-

X

SET SQLC[ASE] {MIX[ED]|LO[WER]|UP[PER]}

仅在执行前转换SQL命令和PL/SQL块的大小写。SQL*Plus转换命令中的所有文本,包括加引号的文字和标示符。如果SQLCASEUPPER转换成大写,如果SQLCASELOWER转换成小写,如果SQLCASEMIXED什么也不改变。

SQLCASESQL缓存自身是不会改变的。

SET SQLCO[NTINUE] {> |text}

SET SQLCONTINUEiSQL*Plus中不支持

在你使用连接符(-)在另一行继续一个SQL*Plus命令后,设置SQL*Plus显示的字符序列作为提示。

举例

为了设置SQL*Plus命令继续提示为一个感叹号加一个空格,输入

SET SQLCONTINUE '! '

SQL*Plus将会如下提示继续:

TTITLE 'MONTHLY INCOME' -

! RIGHT SQL.PNO SKIP 2 -

! CENTER 'PC DIVISION'

默认的继续提示符是"> "

SET SQLN[UMBER] {ON|OFF}

SET SQLNUMBERiSQL*Plus中不支持

设置SQL命令或PL/SQL块的第二行和随后的行的提示。ON设置提示为行号。OFF设置提示为SQLPROMPT的值。

SET SQLPLUSCOMPAT[IBILITY] {x.y[.z]}

设置VARIABLE的状态或输出格式为版本指定的x.y[.z]x是版本号,y是发行版本号,z是更新版本号。例如,8.18.1.79.0.0。在最近的版本中,SQLPLUSCOMPATIBILITY可能会影响不同于VARIABLE的特征。

设置SQLPLUSCOMPATIBILITY的值低于9.0.0版本将会导致NCHARNVARCHAR2数据类型的VARIABLE定义还原为Oracle8i的状态,由此变量的大小按字节计算,或者字符依赖于被选的本地字符集。

默认的glogin.sql文件包含SET SQLPLUSCOMPAT 8.1.7。推荐加SET SQLPLUSCOMPAT 9.0.0到你的脚本来最大化和SQL*Plus未来版本的兼容性。

SET SQLPRE[FIX] {#|c}

SET SQLPREFIXiSQL*Plus中不支持

设置SQL*Plus的前缀符。当你正在输入一个SQL命令或者PL/SQL块时,你可以在一个分割的行上输入一个SQL*Plus命令,前缀加上SQL*Plus前缀符。SQL*Plus将会立即执行这个命令,不影响你正在输入的SQL命令或PL/SQL块。前缀符必须是一个不包含字符和数字的字符。

SET SQLP[ROMPT] {SQL>|text}

SET SQLPROMPTiSQL*Plus中不支持

设置SQL*Plus命令的提示符。

举例

你需要有Select Any Table的权限来成功运行下面例子的脚本。

为了改变你的SQL*Plus提示来显示你的用户名和SID,输入:

SET SQLPROMPT '&_CONNECT_IDENTIFIER > '

为了改变你的SQL*Plus提示来显示你的SID,输入

SET TERMOUT OFF

COLUMN X NEW_VALUE Y

SELECT RTRIM(INSTANCE, CHR(0)) X FROM V$THREAD;

SET SQLPROMPT '&Y SQL>'

SET TERMOUT ON

为了设置SQL*Plus命令提示来显示当前的用户,输入

SET TERMOUT OFF

COLUMN D22 NEW_VALUE VAR

SELECT USERNAME D22 FROM USER_USERS;

SET SQLPROMPT '&&VAR>'

SET TERMOUT ON

这些设置不是动态的。任何时候你改变实例,你需要重新设置它们,比如当你使用同一个连接命令登陆另一个实例。

SET SQLT[ERMINATOR] {;|c|ON|OFF}

设置用来结束和执行SQL命令的字符为c。它不能是一个数字与字母的字符,也不能是一个空格。OFF意味着SQL*Plus认为没有命令结束符号;你通过输入一个空行终止一个SQL命令。如果SQLBLANKLINES设置为ON,你必须使用BLOCKTERMINATOR来终止一个SQL命令。ON重设结束符号为默认的分号(;)

SET SUF[FIX] {SQL|text}

SET SUFFIXiSQL*Plus中不支持

设置脚本调用的SQL*Plus命令的默认的文件扩展名。SUFFIX不控制spool文件的扩展名。

举例

为了将默认的命令文件扩展名从默认的.SQL改为.UFI,输入

SET SUFFIX UFI

如果接着输入

GET EXAMPLE

SQL*Plus将会查找一个叫EXMPLE.UFI的文件代替EXAMPLE.SQL

SET TAB {ON|OFF}

SET TABiSQL*Plus中不支持

决定SQL*Plus如何在终端输出中规定空白的格式。OFF表示使用空格,ON表示使用TABTAB设置是每8个字符。是否默认为TAB依赖于系统。

SET TERM[OUT] {ON|OFF}

SET TERMOUTiSQL*Plus中不支持。

控制脚本执行的命令生成的输出显示。OFF表示禁止显示,这样你可以从脚本spool输出,而不会有屏显。ON表示显示输出。TERMOUT OFF不会影响来自你交互输入的命令的输出。

SET TI[ME] {ON|OFF}

SET TIMEiSQL*Plus中不支持。

控制当前时间的显示。ON表示在没一个SQL>提示符前显示当前时间。OFF禁止时间的显示。

SET TIMI[NG] {ON|OFF}

控制语句执行耗时统计的显示。ON表示显示每一个SQL命令或者PL/SQL块运行的耗时统计。OFF禁止显示每一个命令的耗时。查询关于SET TIMING ON显示的更多信息,参考为不同操作系统提供的Oracle installation and user's manual(s)。查阅TIMING命令以得到关于timing命令的更多信息。

SET TRIM[OUT] {ON|OFF}

SET TRIMOUTiSQL*Plus中不支持

决定SQL*Plus是否允许在每个显示行的行尾保留空格。ON表示在每行的行尾删除空格,特别是当你从一个慢的通信设备访问SQL*Plus时能提高性能。OFF表示允许SQL*Plus显示行尾的空格。TRIMOUT ON不会影响spool输出。

SET TRIMS[POOL] {ON|OFF}

SET TRIMSPOOLiSQL*Plus中不支持。

决定SQL*Plus是否允许每个spool行的行尾保留空格。ON表示在每行的行尾删除空格。OFF允许SQL*Plus包含行尾空格。TRIMSPOOL ON不会影响terminal输出。

SET UND[ERLINE] {-|c|ON|OFF}

设置用来对报告中的列标题进行下划线c注释的字符,c可能不是一个包含文字和数字的字符或者空白。ONOFF表明是否打开或关闭下划线。ON改变c的值回到默认的“-”。

SET VER[IFY] {ON|OFF}

在用值代替替换变量前后控制是否列出一个SQL语句或PL/SQL命令的文本。ON表示列出文本;OFF表示禁止列出。

SET WRA[P] {ON|OFF}

控制如果一个被选行对于行宽太长,是否截断被选行的显示。OFF表示截断被选行;ON表示允许被选行换行显示到下一行。

对于指定的列,使用COLUMN命令的WRAPPEDTRUNCATED子句来覆盖WRAP的设置。

 查看全文
zfnccn 发表于:2009.05.31 00:58 ::分类: ( 数据库 ) ::阅读:(800次) :: 评论 (0) :: 引用 (0)

2009 年 05 月 28日, 星期四

Oracle9i SET用法简介1

Oracle9i SET用法简介1

设置一个系统变量来改变你当前会话的SQL*Plus环境设置,比如:

  • 数据的显示宽度
  • 自定义的HTML格式
  • 启用或者禁用列标题的打印
  • 每页行长度

你也可以在iSQL*Plus中使用系统变量屏幕来设置系统变量。

SET 系统变量

系统变量和值都会显示在SET命令中。

用法

SQL*Plus维护系统变量(也称之为SET命令变量)来使你对一个SQL*Plus会话建立一个特定的环境。你可以使用SET命令改变这些系统变量,并使用SHOW命令列出它们的值。

SET ROLESET TRANSACTIONSQL命令(详情参考Oracle9i SQL Reference)。当后面不接TRANSACTIONROLE关键字时,SET默认是一个SQL*Plus命令。

SET APPI[NFO]{ON|OFF|text}

通过DBMS_APPLICATION_INFO包设置脚本的自动注册。它使得DBA能监控每个脚本的性能和资源使用情况。注册的名字显示在V$SESSIONV$SQLAREA视图中的MODULE字段。你可以使用DBMS_APPLICATION_INFO.READ_MODULE过程来获取注册的名字。

ON注册被@,@@START命令调用的脚本。OFF禁用脚本注册。替代的,text的当前值被注册。当没有脚本在运行或者当APPINFO设为OFF(这是默认设置)时,Text指定注册text。对于text,默认是“SQL*Plus”。如果你在text中输入多个字,你必须使用引号把它们括起来。Text的最大长度受DBMS_APPLICATION_INFO包的限制。

注册的名字有nn@xfilename的格式,其中nn是脚本的深度水平;当脚本名被截断时,x’<’,否则它是空的;filename是脚本名,可能会被截断成DBMS_APPLICATION_INFO包接口所允许的长度。


注意

为了使用这个特征,你必须可以访问DBMS_APPLICATION_INFO包。以SYS用户运行DBMSUTIL.SQL(这个名字可能根据你的操作系统不同而不同)来创建DBMS_APPLICATION_INFO包。DBMSUTIL.SQLOracle9i数据库服务器产品的一部分。


更多关于DBMS_APPLICATION_INFO包的信息,参考Oracle9i Database Performance Tuning Guide and Reference手册。

举例:

由于它的默认是SET OFF,为了显示APPINFO的设置,输入

SET APPINFO ON

SHOW APPINFO

APPINFO值为ON,并被设置给了”SQL*Plus”

为了改变默认的text值,输入

SET APPINFO 'This is SQL*Plus'

为了确信注册已经被替代,输入

VARIABLE MOD VARCHAR2(50)

VARIABLE ACT VARCHAR2(40)

EXECUTE DBMS_APPLICATION_INFO.READ_MODULE(:MOD, :ACT);

PL/SQL procedure successfully completed.

PRINT MOD

MOD

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

This is SQL*Plus

为了改变APPINFO回它的默认值,输入

SET APPI OFF

SET ARRAY[SIZE] {15|n}

设置SQL*Plus一次从数据库里获取的行数--称之为一个batch。取值范围从15000。取大值会增加获取多行的查询和子查询的效率,但是需要更多的内存。值大于100之后,性能变化不大。ARRAYSIZESQL*Plus操作的结果没有影响,出了增加效率。

SET AUTO[COMMIT]{ON|OFF|IMM[EDIATE]|n}

控制Oracle什么时候提交对数据库的挂起的改变。ON表示在数据库成功执行每一个INSERTUPDATEDELETE命令或者PL/SQL块之后提交对数据库的挂起的改变。OFF禁止自动提交,因而你必须手动提交改变(例如,使用SQL命令COMMIT)。IMMEDAITE方式的功能和ON选项一样。n表示在数据库成功执行nINSERTUPDATEDELETE命令或者PL/SQL块之后提交对数据库的挂起的改变。n必须大于0小于2,000,000,000。在成功执行nINSERTUPDATEDELETE命令或者PL/SQL块、commitrollbackSET AUTOCOMMIT命令之后,语句的计数器会重置为0


注意

对于这个特征,一个PL/SQL块被当做一个事物,不管包含多少个实际的SQL命令个数。


SET AUTOP[RINT] {ON|OFF}

设置绑定变量的自动打印。ONOFF控制SQL*Plus是否自动显示绑定变量(参考EXECUTE命令执行PL/SQL块)。更多关于现实绑定变量的信息,参考本章的PRINT命令。

SET AUTORECOVERY [ON|OFF]

ON表示在恢复期间, RECOVER命令自动应用所需的默认归档日志文件名。当AUTORECOVERY设置为ON时,不需要交互,需要提供的文件以特定的文件名存在于特定的目录。当AUTORECOVERY0N时所用用的文件名是由初始化参数LOG_ARCHIVE_DEST and LOG_ARCHIVE_FORMAT的值决定的。

iSQL*Plus中,你必须设置使用RECOVERY命令将AUTORECOVERY设置为ON。试图使用AUTORECOVERY OFF时将会报错:

SP2-0872 iSQL*Plus中必须使用SET AUTORECOVERY ON

OFF为默认值,要求你手工输入文件名,或者接受给定的默认文件名。关于数据库恢复的更多信息参考本章的RECOVER命令。

举例

为了设置恢复模式为AUTOMATIC,输入

SET AUTORECOVERY ON

RECOVER DATABASE

SET AUTOT[RACE] {ON|OFF|TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]

显示有关SQL DML语句(SELECTINSERTUPDATEDETETE)成功执行的报告。这个报告可能包含执行统计和查询执行路径。

OFF不会显示跟踪报告。ON显示跟踪报告。TRACEONLY显示跟踪报告,但即便要,也不打印查询数据。EXPLAIN通过执行一个EXPLAIN PLAN显示查询执行路径。STATISTICS显示SQL语句的统计信息。更多EXPLIAN PLAN信息参考Oracle9i SQL Reference手册。

使用ONTRACEONLY不带显式选项,默认为EXPLAN STATISTICS

TRACEONLY选项对于禁止大查询的查询数据可能是有用的。如果STATISTICS被指定,SQL*Plus仍然会从服务器获得查询数据,只不过这些数据不会被显示。

在一个语句成功完成后,AUTOTRACE报告会被打印。

Oracle9i Database Performance Tuning Guide and Reference手册有关于执行计划和统计信息的文档。

SQL*Plus生成一个STATISTICS报告时,又一个数据库连接会自动生成。当STATISTICS选项被设置成OFF或者你退出SQL*Plus时,这个连接关闭。

你的AUTOTRACE报告的格式会根据你连接和配置的服务器的版本不同而不同。

FIPS标志启用时,AUTOTRACE不可用。

更多AUTOTRACE信息参考"Tracing Statements"

SET BLO[CKTERMINATOR] {.|c|ON|OFF}

设置用来结束PL/SQL块的字符为c。它不能是一个包含文字与数字的字符,也不能是空白。为了执行这个块,你必须使用RUN或者/(斜线)命令。

OFF意味着SQL*Plus认为没有PL/SQL块结束符号。ON改变c的值回默认的句号(.),而不是最近使用的符号。

SET CMDS[EP] {;|c|ON|OFF}

将用来分割一行内输入的多个SQL*Plus命令的非字符与数字的字符设置成cONOFF控制你在一行内是否可以输入多个命令。ON自动地设置命令分隔符为分号(;)

举例

为了以TTITLE指定标题和以COLUMN格式化一列,两者在同一行,输入

SET CMDSEP +

TTITLE LEFT 'SALARIES' + COLUMN SALARY FORMAT $99,999

SELECT LAST_NAME, SALARY FROM EMP_DETAILS_VIEW

WHERE JOB_ID = 'SH_CLERK';

SALARIES

LAST_NAME SALARY

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

Taylor $3,200

Fleaur $3,100

Sullivan $2,500

Geoni $2,800

Sarchand $4,200

Bull $4,100

Dellinger $3,400

Cabrio $3,000

Chung $3,800

Dilly $3,600

Gates $2,900

Perkins $2,500

Bell $4,000

Everett $3,900

McCain $3,200

Jones $2,800

SALARIES

LAST_NAME SALARY

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

Walsh $3,100

Feeney $3,000

OConnell $2,600

Grant $2,600

20 rows selected.

SET COLSEP {_|text}

iSQL*Plus中,SET COLSEP决定了列的分隔符,这些分隔符作为标志显示在输出列的中间。HTML表输出是默认。为了生成预定格式的输出,你必须使用SET MARKUP HTML PREFORMAT ON命令设置PREFORMAT ON

设置text显示在被选的列之间。如果COLSEP变量包含多个空格或者标点符号,你必须用单引号括起来。Text的默认值是一个字符。

在多行的记录中,列分隔符不会显示在那些开始在不同的行的列之间。通过使用BREAK…SKIP n,列分隔符不会显示在空行,并且不会覆盖记录分隔符。更多信息参考SET RECSEP章节。

举例

为了将列分隔符设置成"|",输入

SET COLSEP '|'

SELECT LAST_NAME, JOB_ID, DEPARTMENT_ID

FROM EMP_DETAILS_VIEW

WHERE DEPARTMENT_ID = 20;

LAST_NAME |JOB_ID |DEPARTMENT_ID

-------------------------|----------|-------------

Hartstein |MK_MAN | 20

Fay |MK_REP | 20

SET COM[PATIBILITY]{V7|V8|NATIVE}

指定使用的Oracle SQL语法的版本。对于Oracle7,设置COMPATIBILITYV7Oracle8V8,以此类推。COMPATIBILITY总是默认为NATIVECOMPATIBILITY应该正确设置为与你所连的数据库SQL语法版本一致,否则你可能不能运行任何SQL命令。

举例

为了运行一个脚本,用Oracle7 SQL语法生成的SALARY.SQL,输入

SET COMPATIBILITY V7

START SALARY

在运行这个文件后,重新设COMPATIBILITYNATIVE以运行Oracle9i所生成的脚本:

SET COMPATIBILITY NATIVE

你也可以在脚本的开头增加SET COMPATIBILITY V7命令,在文件的结尾重设COMPATIBILITYNATIVE

SET CON[CAT] {.|c|ON|OFF}

SQL*Plus将解释下一个字符作为变量名的一部分时,设置用来终止一个替换变量引用的字符。当你接通CONNCAT时,SQL*Plus重设CONCAT值。

SET COPYC[OMMIT] {0|n}

COPY命令提交改变到数据库后,控制批量处理的数量。COPY提交行到目的数据库,每次它复制n行批量处理。取值范围为05000.你可以设置一个批量的值为ARRAYSIZE变量。如果你设置COPYCOMMIT0COPY仅仅在复制操作结束时执行提交。

SET COPYTYPECHECK {ON|OFF}

当使用COPY命令插入或追加到表时,设置禁止数据类型比较。这是为了便于复制到DB2,它要求CHAR型被复制成一个DB2 DATE型。

SET DEF[INE] {&|c|ON|OFF}

将作为前缀替换变量的字符设置为cONOFF控制是否SQL*Plus将会扫描替换变量的命令,并用它们的值进行替换。ON改变c的值回默认的‘&,而不是最近使用的字符。设置DEFINE0FF覆盖SCAN变量的设置。更多SCAN变量的信息,参考SET SCAN命令。

SET DESCRIBE [DEPTH {1|n|ALL}][LINENUM {ON|OFF}][INDENT {ON|OFF}]

设置你可以递归描述对象的水平深度。DEPTH子句有效范围从150。如果你SET DESCRIBE DEPTH ALL,深度将会被设置为50,这是允许的最大值。当一个对象包含多个对象类型时,你爷可以显示行数和缩进显示属性或列名。使用SET LINESIZE命令来控制数据显示的宽度。

更多关于描述对象的信息,参考本章前述的DESCRIBE

举例

为了描述EMP_DETAILS_VIEW视图到2级深度,并且当也要显示行数时缩进输出,首先,向下面这样描述视图:

DESCRIBE EMP_DETAILS_VIEW

Name Null? Type

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

EMPLOYEE_ID NOT NULL NUMBER(6)

JOB_ID NOT NULL VARCHAR2(10)

MANAGER_ID NUMBER(6)

DEPARTMENT_ID NUMBER(4)

LOCATION_ID NUMBER(4)

COUNTRY_ID CHAR(2)

FIRST_NAME VARCHAR2(20)

LAST_NAME NOT NULL VARCHAR2(25)

SALARY NUMBER(8,2)

COMMISSION_PCT NUMBER(2,2)

DEPARTMENT_NAME NOT NULL VARCHAR2(30)

JOB_TITLE NOT NULL VARCHAR2(35)

CITY NOT NULL VARCHAR2(30)

STATE_PROVINCE VARCHAR2(25)

COUNTRY_NAME VARCHAR2(40)

REGION_NAME VARCHAR2(25)

为了格式化EMP_DETAILS_VIEW以便输出显示缩进和行数,使用如下的SET DESCRIBE命令:

SET DESCRIBE DEPTH 2 LINENUM ON INDENT ON

为了显示上面的设置,输入

DESCRIBE EMP_DETAILS_VIEW

Name Null? Type

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

1 EMPLOYEE_ID NOT NULL NUMBER(6)

2 JOB_ID NOT NULL VARCHAR2(10)

3 MANAGER_ID NUMBER(6)

4 DEPARTMENT_ID NUMBER(4)

5 LOCATION_ID NUMBER(4)

6 COUNTRY_ID CHAR(2)

7 FIRST_NAME VARCHAR2(20)

8 LAST_NAME NOT NULL VARCHAR2(25)

9 SALARY NUMBER(8,2)

10 COMMISSION_PCT NUMBER(2,2)

11 DEPARTMENT_NAME NOT NULL VARCHAR2(30)

12 JOB_TITLE NOT NULL VARCHAR2(35)

13 CITY NOT NULL VARCHAR2(30)

14 STATE_PROVINCE VARCHAR2(25)

15 COUNTRY_NAME VARCHAR2(40)

16 REGION_NAME VARCHAR2(25)

SET ECHO {ON|OFF}

控制START命令是否列出一个脚本中的每一个被执行的命令。ON表示列出命令,OFF禁止列出。

SET EDITF[ILE] file_name[.ext]

SET EDITFILEiSQL*Plus中不支持

EDIT命令设置默认的文件名。更多关于EDIT命令的信息参考本章EDIT部分。

你可以包括一个路径和(/或)文件扩展。关于改变默认扩展的信息,参考SET领命的SUFFIX变量。这个默认的文件名和最大文件名长度是操作系统指定的。

SET EMB[EDDED] {ON|OFF}

控制每个报告从一页的什么地方开始。OFF强制每个报告在一个新页的顶部开始。ON允许一个报告在一页的任何地方开始。当你想一个报告接着上个运行的报告立即开始打印时,设置EMBEDDEDON

SET ESC[APE] {|c|ON|OFF}

定义作为转义字符的字符。OFF表示不定义转义字符。ON表示启用转义字符。ON会修改c的值回默认值“

你可以在代替字符(通过SET DEFINE设置)之前使用转义字符来指定SQL*Plus应该对待代替字符作为一个普通字符而不是要求变量替换。

举例

如果你定义了感叹号(!)为转义符,那么

SET ESCAPE !

ACCEPT v1 PROMPT 'Enter !&1:'

显示如下提示:

Enter &1:

为了将转义符设回默认值(反斜线),输入

SET ESCAPE ON

SET FEED[BACK] {6|n|ON|OFF}

当一个脚本选择至少n条记录时,显示返回的记录数。ONOFF表示是否打开或者关闭这个显示。打开feedback ON设置n1.feedback设置为0等同于设置它为OFF

SET FLAGGER {OFF|ENTRY |INTERMED[IATE]|FULL}

检查以确保SQL语句符合ANSI/IOS SQL92标准。如果任何非标准的结构发现,Oracle服务器将会作为错误标志它们,并且显示语法错误。这个SQL语言ALTER SESSION SET FLAGGER命令等价。

即使在你没有连上数据库时,你也可以执行SET FLAGGERFIPS标志将会一直影响SQL*Plus会话,直到SET FLAGGER OFF(ALTER SESSION SET FLAGGER=OFF)命令成功,或者你退出SQL*Plus

FIPS标志启用时,SQL*PlusCONNECTDISCONNECTALTER SESSION SET FLAGGER命令显示一个警告,即使它们是成功的。

SET FLU[SH] {ON|OFF}

SET FLUSHiSQL*Plus中不支持

控制什么时候将输出送到用户的显示设备。OFF表示允许主机操作系统缓存输出。ON表示禁用缓存。

仅仅当你运行一个没有交互的脚本时(也就是说,你的脚本运行结束前,你都不需要看到输出和/或者提示符)使用OFFFLUSH OFF的使用减少了I/O的处理数量,可以提升性能。

SET HEA[DING] {ON|OFF}

在报表中控制列标题的打印。ON表示在报表中打印列标题;OFF表示禁止列标题。

SET HEADING OFF命令不会影响显示的列宽,仅仅禁止列标题自身的打印。

举例

为了禁止在报表中显示列标题,输入

SET HEADING OFF

如果你接着运行一个SQL SELECT命令

SELECT LAST_NAME, SALARY

FROM EMP_DETAILS_VIEW

WHERE JOB_ID = 'AC_MGR';

输出结果如下:

Higgins 12000

为了重新显示列标题,输入

SET HEADING ON

SET HEADS[EP] {||c|ON|OFF}

定义用作标题分隔符的字符。标题分隔符不能是包括文字与数字的或者空白。你可以在COLUMN命令、在为了将一个列标题或题头分成多行的老的BTITLETTITLE表格中使用标题分隔符。ONOFF表示是否打开或关闭标题分隔符。当标题分隔符设置为OFF时,SQL*Plus像任何其它字符一样打印标题分隔符。ON修改c的值回默认值“|”。

SET INSTANCE [instance_path|LOCAL]

将你会话的默认实例修改为指定的实例路径。使用SET INSTANCE命令不会连上数据库。当没指定实例时,使用默认的实例。任何在SET INSTANCE使用前的命令都和默认的实例通信。

为了重新将实例设置成你操作系统的默认值,你既可以输入SET INSTANCE不加instance_path,也可以SET INSTANCE LOCAL。参考你的操作系统指定的Oracle文档查阅如何设置初始默认实例的描述。

注意,你只能在当前没有连接到任何一个实例时改变实例。也就是说,你必须首先确认你已经断开了当前的实例,然后设置或者修改这个实例,接着为了让新的设置生效,重连到一个实例。

这个命令只能在Oracle Net运行时发布。你可以使用任何有效的Oracle Net连接标示符作为指定的实例路径。参考你操作系统指定的Oracle文档查阅关于你的操作系统如何指定Oracle Net连接标示符的完整描述。

举例

为了默认实例为“PROD1”,输入

DISCONNECT

SET INSTANCE PROD1

为了将实例设回本地默认值,输入

SET INSTANCE local

为了改变这个实例,你必须断开任何实例的连接。

SET LIN[ESIZE] {80|n}

在开始一个新行之前,设置SQL*Plus一行的字符显示总数。它也可以控制在TTILEBTITILEREPHEADERREPFOOTER中居中或右对齐的文本的位置。改变linesize设置可以影响来自DESCRIBE命令输出文本的换行显示。DESCRIBE输出列典型地会分配给linesize的一定比例。减少或者增加linesize的大小可能会在你的显示中出现出乎预料的文本换行。你可以定义LINESIZE1到你的系统支持的最大值。查阅提供给你的操作系统的Oracle installation and user's manual(s)

SET LOBOF[FSET] {n|1}

设置获取和显示CLOBNCLOB数据的起始位置。

举例

为了将要获取的CLOB列的数据的起始位置设置成第22位,输入

SET LOBOFFSET 22

CLOB数据将会在你的屏幕上换行;SQL*Plus不会截断,直到第23个字符。

SET LOGSOURCE [pathname]

指定恢复时所需的归档日志的位置。默认值由Oracle初始化文件init.ora中的初始化参数LOG_ARCHIVE_DEST设置。不指定路径使用SET LOGSOURCE命令时从默认路径取文件。

举例

为了将日志文件恢复的默认路径设置为目录"/usr/oracle90/dbs/arch",输入

SET LOGSOURCE "/usr/oracle90/dbs/arch"

RECOVER DATABASE

SET LONG {80|n}

对于显示CLOBLONGNCLOBXML类型的值设置最大的宽度(用字节表示)。n的最大值是2GB

举例

为了设置显示和复制LONG值最大到500,输入

SET LONG 500

LONG数据将会屏显换行;SQL*Plus将会从第501个字节后截断。LONG的默认值是80字节。

SET LONGC[HUNKSIZE] {80|n}

设置SQL*Plus增量大小(按字节)来获取CLOBLONGNCLOBXML类型的值。

举例

为了在SQL*Plus中获取LONG值的增量大小设为100字节,输入

SET LONGCHUNKSIZE 100

LONG数据将会按100字节增量获取,直到整个值被获取,或者到达了SET LONG的值,二者取最小值。

 查看全文
zfnccn 发表于:2009.05.28 22:03 ::分类: ( 数据库 ) ::阅读:(219次) :: 评论 (1) :: 引用 (0)

2009 年 05 月 25日, 星期一

机器莫名重启导致虚拟机无法启动的处理

原因:PC机莫名重启,导致虚拟机RAC环境再次启动时报:

Cannot open the disk 'H:vgorarac_db.vmdk' or one of the snapshot disks it depends on.
Reason: The file specified is not a virtual disk.

解决:将备份的rac_db.vmdk恢复即可。


zfnccn 发表于:2009.05.25 17:12 ::分类: ( 操作系统 ) ::阅读:(114次) :: 评论 (0) :: 引用 (0)

2009 年 05 月 14日, 星期四

复制RAC虚拟机环境到其他PC机上运行报错的处理方法

说明:
1、虚拟机版本:VMware Server Console 1.0.5 build-80187
2、虚拟机操作系统:Red Flag Linux DC Server 4.1
3、PC机操作系统:WindowsXP SP3
4、数据库版本:Oracle 9.2.0.4
5、虚拟机1:Red Flag DC Server4.1
虚拟机2:RF4.1 clone
RAC数据库:vgora

报错信息:
在老PC机上运行虚拟机安装好了9i RAC,换了新机器后,运行虚拟机报错信息如下:
SCSI reservation for virtual device "scsi0:0" cannot be enabled because the disk "Other linux.vmdk" is being used by another virtual machine running on a different host machine. SCSI reservation under VMware Server is only available for machines running on the same host machine.
Failed to configure virtual device scsi0.

解决方法:
1、将虚拟机1和虚拟机2目录中的otherlinux.vmx中的scsi0:1.fileName = "H:vgorarac_db.vmdk"中的盘符路径修改为目前的vgora的盘符。重启后还是报同样的错。但这步必须修改。
2、将虚拟机1中的2个文件Other Linux.vmdk.RESLCK和Other Linux.vmdk.RESLCK.lck移走或删除。
3、将vgora中的2个文件rac_db.vmdk.RESLCK和rac_db.vmdk.RESLCK.lck移走和删除。
4、重新运行虚拟机后运行正常。


zfnccn 发表于:2009.05.14 15:40 ::分类: ( 操作系统 ) ::阅读:(151次) :: 评论 (0) :: 引用 (0)

2008 年 06 月 10日, 星期二

一封感谢信

一附院领导:

我叫**,是心胸外科46床的病人,因自发性气胸于5月25日进行胸腔镜手术,现恢复良好,将于明天出院。在此期间,得到了万于华、喻本桐、刘晓明、徐华、周学亮等医生的精心治疗,特别是主刀医生喻本桐博士,不但医术精湛,而且医德高尚。同时还要感谢麻醉师袁建辉和刘志毅,是他们让我在整个手术中没有什么痛苦的感觉。此外还要感谢胸科全体护士的精心护理。

另外,在我转入心胸外科前,在呼吸内科36床得到了陈国华、刘琴等医生及相关护士的精心治疗及护理,在此一并致以谢意。

**市**路**号:***

2008年5月28日


zfnccn 发表于:2008.06.10 16:27 ::分类: ( 心情日记 ) ::阅读:(12153次) :: 评论 (1) :: 引用 (0)

2008 年 05 月 04日, 星期日

红旗linux上nfs的使用

目的:采用nfs的方式有效解决保险rman备份空间问题。
说明:nfs的服务端为信管机器192.168.0.74;
nfs的客户端为保险双机192.168.0.97/98;
步骤:
1)在192.168.0.74上编辑/etc/exports:
在文件最后增加2行:
/ora_rman_backup 192.168.0.77(rw,sync,no_root_squash)
/ora_rman_backup 192.168.0.78(rw,sync,no_root_squash)
2)在192.168.0.74上依次启动:
Service portmap start
Service nfslock start
Service nfs start
以下操作,均为192.168.0.77和78上都要执行。
3)执行Showmount -e 192.168.0.74 能显示其共享目录后往下执行。
4)依次启动:
Service portmap start
Service nfslock start
Service nfs start
5)mkdir /ora_rman_backup
6)chown -R oracle:dba /ora_rman_backup
7)chmod -R 777 /ora_rman_backup
8)mount -t nfs 192.168.0.74:/ora_rman_backup /ora_rman_backup
都mount成功之后,就可以正常使用该文件系统了,此时使用df -hv看到的就是:
192.168.0.74:/ora_rman_backup 75G 61G 11G 86% /ora_rman_backup

附录:
常用的命令:
exportfs -r 当修改过/etc/exports后,尽量使用此命令更新导出共享,而不要使用exportfs –a ,因为发现使用“-a”参数时,不会刷新已经删除的共享,而是添加上新开的共享目录,而参数“-r”则不会有这样的问题。
showmount -e [ IPADDR ] 显示本机或指定IP地址的共享目录。
rpcinfo -p 显示服务器上面的RPC信息,以查看portmap、nfs服务是否运行正常。
容易出现的问题:
a)Portmap没有正常启动启动
b)当NFS Server 上面的/etc/hosts文件中的域名与本机IP不对称时,会出现无法导出共享目录的现象。即exportfs 命令导出共享时间极长,导致无法导出,
或者showmount –e命令显示本机共离时显示” mount clntudp_create: RPC: Port mapper failure - RPC: Timed out”错误。
c)NFS server端防火墙导致客户端无法连接
d)客户端防火墙导致客户端无法连接:
mount clntudp_create: RPC: Port mapper failure - RPC: Timed out)
注意事项:
rac环境下rman备份时报:
channel ORA_DISK_1: starting piece 1 at 30-APR-08
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 04/30/2008 16:42:57
ORA-19504: failed to create file "/74_bak/20080430_DBBX_8334"
ORA-27040: skgfrcre: create error, unable to create file
Linux Error: 2: No such file or directory
是因为只在一台机器上mount了nfs,只要在另一台机器上mount同样的文件系统就OK了。


zfnccn 发表于:2008.05.04 18:11 ::分类: ( 操作系统 ) ::阅读:(284次) :: 评论 (0) :: 引用 (0)

2008 年 04 月 07日, 星期一

在石家庄集中学习37天后回昌火车上的一条短信20080406 21:31:14

我最爱的女人,是我心中的女神,在我迷茫的时候,是我心灵的明灯;我心中的女神,是为我付出最多的女人,在我攀登的时候,是我坚强的支撑。我心中的女神,是我最爱的女人,因为有你,所以我无所不能。感谢我的女神,亲吻我的女人,你是我的精神,你是我的心魂,你是我爱的永恒。
zfnccn 发表于:2008.04.07 16:39 ::分类: ( 心情日记 ) ::阅读:(137次) :: 评论 (0) :: 引用 (0)

2008 年 01 月 16日, 星期三

目前为止写的最长的一条短信2008.1.12 01:06:43

我刚刚才忙完到家,你该睡了吧。刚去看了一下电动车,还没充满。我对你好、心疼你、牵挂你、呵护你是因为我越来越爱你,想让你过得开心一点、轻松一点,所以默默地做一些事,可能你看不到,可能我没说,因为有时候想给你惊喜,因为有时候事还没完成。可能你觉得我慢慢地不细心了,但是你却不知道,你已经渐渐地走进了我的心里,而且越走越深,我比任何时候都更在乎你。虽然我也很忙,也有很多事要处理,但在工作之外,我总是尽量抽时间陪你,当然活动项目可能单调点,但你也可以说说你的想法啊,你想干些啥,我们可以一起实现。我是那种你对我好一分,我对你好十分的人,你对我不好的时候,我会诚慌诚恐。因为我越来越在乎你的感受,越来越爱把你放在第一位。我今天一天几乎都很忙,包括晚上,都在处理突发故障。工作上有时我也很累,我也很像得到你的理解你的体谅你的照顾你的体贴。第一次发这么多字的短信,没想到一写就好几百字,都可以赶上一篇作文了,呵呵,是不是觉得我罗嗦啊。前几次发的短信你都没收到,希望这次你能收到。本来今天有件小小的高兴事要告诉你,和你一起分享,但我现在心情不太好,就不说了。已经很晚了,可我却没有睡意。你知道我最大的心愿是什么吗,其实很简单,就是玲玲你每天都能健健康康、平平安安、开开心心。我不奢求大富大贵,只希望我们在一起能互相扶持相互照顾一起努力共同成长一起营造家的温馨一起感受家的温暖...


zfnccn 发表于:2008.01.16 17:05 ::分类: ( 心情日记 ) ::阅读:(184次) :: 评论 (0) :: 引用 (0)

2007 年 11 月 26日, 星期一

ORA-00600: internal error code, arguments: [ktsxaffs1], [], [], [], [], [], [], []处理

上周五快下班的时候,同事接到某公司错误日志如下:

通过PL/SQL Devloper连接61.131.*.*数据库,以IIOSV用户登录,执行以下SQL语言:
<说明: 不是所有时候都出现以下错误,而是同一SQL语句存在可能出可能不出以下内部错误,出现的几率大致50%>

Connected to Oracle9i Enterprise Edition Release 9.2.0.8.0
Connected as iiosv

SQL> alter table IIOSV.USER_VPDN_LNS disable constraint FK_USER_VPDN_LNS

ORA-00600: internal error code, arguments: [ktsxaffs1], [], [], [], [], [], [], []


SQL> INSERT INTO IIOSV.USER_VPDN_AUTH SELECT * FROM IIOSP.USER_VPDN_AUTH@DB197

ORA-00600: internal error code, arguments: [], [], [], [], [], [], [], []

SQL> INSERT INTO IIOSV.USER_VPDN_DETAIL SELECT * FROM IIOSP.USER_VPDN_DETAIL@DB197

ORA-00600: internal error code, arguments: [ktsxaffs1], [], [], [], [], [], [], []

SQL> INSERT INTO IIOSV.USER_VPDN_MAC SELECT * FROM IIOSP.USER_VPDN_MAC@DB197

ORA-00600: internal error code, arguments: [ktsxaffs1], [], [], [], [], [], [], []

SQL> INSERT INTO IIOSV.USER_VPDN_TELEPHONE SELECT * FROM IIOSP.USER_VPDN_TELEPHONE@DB197

ORA-00600: internal error code, arguments: [ktsxaffs1], [], [], [], [], [], [], []


SQL> INSERT INTO IIOSV.USER_VPDN_VLANID
SELECT USER_ID, DOMAIN_NAME, NAS_IP, SLOT, PORT, START_VLAN, STOP_VLAN, LIMIT_MODE, LIMIT_DIR, NULL, NULL FROM IIOSP.USER_VPDN_VLANID@DB197

ORA-00600: internal error code, arguments: [ktsxaffs1], [], [], [], [], [], [], []


SQL> INSERT INTO IIOSV.USER_VPDN_VPIVCI SELECT * FROM IIOSP.USER_VPDN_VPIVCI@DB197

ORA-00600: internal error code, arguments: [], [], [], [], [], [], [], []


SQL> alter table IIOSV.USER_VPDN_LNS enable constraint FK_USER_VPDN_LNS

ORA-00600: internal error code, arguments: [ktsxaffs1], [], [], [], [], [], [], []


SQL> alter table IIOSV.USER_VPDN_MAC enable constraint FK_USER_VPDN_MAC

ORA-00600: internal error code, arguments: [ktsxaffs1], [], [], [], [], [], [], []

经分析,是undo_retention值设得过大,建议其减小该值。周六上午见到同事,说确实如此。


zfnccn 发表于:2007.11.26 08:43 ::分类: ( 数据库 ) ::阅读:(307次) :: 评论 (0) :: 引用 (0)

2007 年 11 月 23日, 星期五

关于感恩节的两条短信

收到:

2007.11.22 18:33:36

人生极为重要的三件事便是:用宽容的心对待世界,对待生活;用快乐的心创造世界,改变生活;用感恩的心感受世界,感受生活。祝感恩节快乐!

回复:

20071122 18:57:33

有事,刚到家。不知不觉就到了感恩节,也说说自己的感恩心声:感恩于父母生我养我、感恩于你父母对你的养育、感恩于老师同学同事领导亲朋好友的关爱和帮助、感恩于上天让我们走到一起,特别要感恩于你,感恩于你现在和将来对我和这个家的辛苦和付出,谢谢你......

后记:

今天到网上查了一下,才知道原来2007年的感恩节是11月29日(即每年11月的最后一个周四)。


zfnccn 发表于:2007.11.23 09:18 ::分类: ( 心情日记 ) ::阅读:(12872次) :: 评论 (0) :: 引用 (0)

2007 年 10 月 09日, 星期二

2007.10.8 22:31:49的一条短信

到家了。知道你的手机没电了,还是忍不住发条短信,到家给你发条短信已经成为我生活的一部分了。我嘴笨,不知该怎么说甜言蜜语,但我是用真心关心你、爱惜你、呵护你。我知道我还有很多缺点和不足,但我会为了你为了以后这个家努力上进。你父母已经照顾了你26年了,不容易啊,我会像对待自己的爸妈一样对待他们。如果上天让我再活50年,我会用50年的时间对你好,和你一起喜怒哀乐,和你一起营造一个平凡而幸福的家。如果有幸能再苟活几年,只要那时我们还能走得动,我想在天气好的时候拉着你的手天天散步。就这样牵着你的手慢慢变老...
zfnccn 发表于:2007.10.09 08:26 ::分类: ( 心情日记 ) ::阅读:(170次) :: 评论 (1) :: 引用 (0)

2007 年 09 月 13日, 星期四

HP-UX报Account disable的解决办法

前两天在建国门惠普大厦培训分区管理,上一期是系统和网络安全培训,我用机器的时候,root登陆时报“Account disable,see Account Administrator .”。可能是他们在做实验的时候,设置了高安全模式。解决方法:重启到10秒中断,进单用户,执行tsconvert -r,解除安全模式后重启,正常。


zfnccn 发表于:2007.09.13 16:09 ::分类: ( 操作系统 ) ::阅读:(145次) :: 评论 (0) :: 引用 (0)