一生能赌什么?

我在故我思 —— 哪里有梦想与希望

A-系统-工具-软件应用

HP 11.0默认的核心参数

    摘要:hp-ux的核心的简单解释~从在线帮助中获得    (全文共51808字)——点击此处阅读全文

发表于 @ 2005年08月22日 11:05 AM | 评论 (0)

wsad(Eclipse) 的两个简单问题

    摘要:使用wsad5.1(eclipse3.0)时的一些问题,怕以后忘,记下来。    (全文共406字)——点击此处阅读全文

发表于 @ 2005年07月12日 10:40 AM | 评论 (0)

does not support authentication protocol问题解决办法

    摘要: mysql从3.xx升级到4.xx的时候经常会出现这个问题,原因是4.xx的权限表格式升级了,需要修复. mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法    (全文共1917字)——点击此处阅读全文

发表于 @ 2005年06月01日 2:08 PM | 评论 (0)

tomcat 5 配置sql server库连接池

    摘要:网上很多配置资料,好像都是一个版本,都不能用。其实只是差了最后一步,就是连接池的配置要在context里。这跟tomcat的admin配置工具默认的地方不一样。 或许有其他方法在context里引用吧,我没找到,只好用这个笨方法,直接在context里配置。    (全文共4448字)——点击此处阅读全文

发表于 @ 2005年05月25日 10:08 AM | 评论 (3)

ORACLE数据库的启动和关闭

ORACLE数据库的启动和关闭

对于DBA们来说,关闭和重新启动数据库以便优化、调整应用的运行是经常碰到的事情。如果用
户已经log进如了数据库,你用SHUTDOWN IMMEDIATE 或SHUTDOWN ABORT命令来执行关闭数据库,
那用户将不能连接,直到数据库重新启动,用户时常会抱怨:怎么又要重起。其实,每次这样的
启动关闭都是为了数据库能更好的运做。这篇文章将具体介绍shutdown/startup操作时应想到的
步骤和许多注意事项,或许这些能对你有所帮助。
NOTE:在执行第一步前,SHUT DOWN 数据库,不要提前关闭SQL*NET,直到你确认关闭了SERVER上
的数据库后再关闭SQL*NET。因为一旦你关闭了SQL*NET,用户将将失去和数据库的会话。

第一步---存档或删除老的trace files 和 logs
当你启动ORACLE的一个实例(INSTANCE)时,ORACLE把关于该实例的诊断信息写入指定的trace
和 log文件。每个后台进程都增加一个TRACE文件,它被存储在指定的目录(该路径由INIT.ORA
或CONFIG.ORA文件中的BACKGROUND_DUMP_DEST参数指定)。用户在数据库中遇到一个内部错误时
也增加 USERS' TRACE文件,该文件的位置由INIT.ORA 或 CONFIG.ORA 文件中的USER_DUMP_DEST
参数指定。

TRACE文件的个数和名称形式由你的操作系统决定。例如在UNIX下,文件名是一个数字加下画线加
后台进程号,类似3_12345.trc,当你下一次启动实例时,一个新的文件将被产生,因为进程号的
不同,文件名可能是3_13245.trc 。

由于每次启动和关闭数据库时,ORACLE并不自动删除TRACE文件,所以如果忽略这个步骤,那这些
没有用的文件将占据大量的自由空间。所以DBA应该主动的管理这些文件,或删除或存档在别的指
定目录下,如何管理主要是根据你自己的开发环境需要而订了。 SQL*NET也产生LOG文件,一般叫
LISTENER.LOG,为了能知道他的位置,可以键入命令
lsnrctl status

LISTENER.LOG文件大小也随着启动的次数不断的变大,所以通过妥善管理它也能有效的利用空间。

第二步---改名ALERT LOG文件
ALERT LOG文件也是用来记录INSTANCE的诊断信息的。它的存放目录也通过BACKGROUND_DUMP_DEST
参数来指定。一般情况下ALERT LOG文件命名方式为:ALERT_ .LOG。ALTER LOG文件包括了一些数
据库主要事件信息,例如:startup,dhutdown, redo log 的使用,tablespace的改变,文件的改
变,内部错误信息,tablespace-backup的状态的改变等。ALTER LOG文件是重要的,同时该文件
的大小增长的速度也很惊人,如果你不检查他,一段时间后你想看看它将是很费劲,因为它已经
很大了,查起来也费劲。

为了既能留下这些有用的信息,同时不至于浪费很大的空间,可以用改名的方法。你可以在任何
时候更改ALTER LOG文件名,甚至在DATABASE OPEN时。当ORACLE不能找到被BACKGROUND_DUMP_DESC
指定的文件时,他将增加一个新的ALTER LOG文件。虽然改名不要求SHUTDOW,但选择在
SHUTDOWN/STARTUP数据库时更改名字是一个好的主意。

NOTE:下面的几步是在restart数据库时做的。

第三步---产生一个增加控制文件(CREATE CONGROLFILE )命令的文件
为了recover一个被破坏的数据库,你不得不用CREATE CONTROLFILE 命令来重建control files。
CREATE CONTROLFILE命令有两个使用:
1、在你的现有CONTROL FILES文件破化后重建它
2、在ALTER DATABASE 级别的参数时,如:MAXDATAFILES

你可以手输入命令,但最好在STARTUP前发送一命令,以便你拥有最新版本的CREATE CONTROLFILE命令。
从进入SQLDBA,SERVER MANAGER或者SQL*PLUS,输入:
alter database backup controlfile to trace;

该命令在USER_DUMP_DESC参数指定的路径产生一个TRACE文件,名字可能是SIDNAME_PROCESSID.TRC,
该文件将包含针对你的数据库的完整的CREATE CONTROLFILE 语法。

第四步--把PACKAGES 和 PROCEDURES驻留SGA区
众所周知,当PL/SQL OBJECTS被一个用户调用时,它将被存储在SGA区的SQL共享池中,当别人再度
调用该OBJECT时直接从SGA区读取,能感受到明显的速度提升。所以,把常用的PACKAGES 和
PROCEDURES在STARTUP时就载入并驻留SGA,将提高应用的整体性能。通过从新编译、调用等方法可以
调用OBJECT(PROCEDURES 或 CURSORS)进SGA,然后用DBMS_SHARED_POOL.KEEP来驻留SGA。如下:
alter package APPOWNER.ADD_CLIENT compile;
execute DBMS_SHARED_POOL.KEEP('APPOWNER.ADD_CLIENT','P');
(P代表PROCEDURES,C代表CURSORS)

一般每个数据库包括两类驻留程序:
1、数据库的核心PACKAGES
2、用户自定义的PACKAGES
核心PACKAGES包括SYS 所有的PACKAGES,STANDARD,DBMS_SQL, DBMS_UTILITY, DIUTIL,为了查看
你的INSTANCE中那些被驻留了,查询DBA_OBJECT_SIZE,用下面的语句:
select Owner,
Name,
Type,
Source_Size+Code_Size+Parsed_Size+Error_Size Total_Bytes
from DBA_OBJECT_SIZE
where Type = 'PACKAGE BODY' order by 4 desc;

发表于 @ 2005年01月19日 1:31 PM | 评论 (1)

ora-03113错误原因分析及解决办法

 

原作者:Fenng(Fenng@itpub.net)

版权声明:转载请注明作者及出处

原作者:Fenng(Fenng@itpub.net)

版权声明:转载请注明作者及出处

前言

每一个DBA在进行数据库管理的过程中不可避免的要遇到形形色色的错误(ORA-xxxx).有些错误由于频繁出现、原因复杂而被DBA们戏称之为"经典的错误".其中ORA-3113 "end of fileon communication channel" 就是这样的一个.

我们可以简单的把这个错误理解为Oracle客户端进程和数据库后台进程连接中断.不过,导致这个错误的原因实际上有很多种,对数据库设置不当、任何能导致数据库后台进程崩溃的行为都可能产生这个错误.这个错误的出现还经常伴随着其它错误,比如说:ORA-1034 ORACLE not available.

此外,该错误出现的场景复杂,可能出现在:

  • 启动的Oracle的时侯;
  • 试图创建数据库的时侯;
  • 试图对数据库进行连接的时侯;
  • 在客户端正在运行SQL/PL/SQL的时侯;
  • 备份/恢复数据库的时侯;
  • 其它一些情况下......

在论坛上也时常可以看到初级DBA对这个问题的求救. 在这里简单的对该问题进行一下整理.不当之处,请多指教!


错误原因种种

根据网络上大家反映的情况来看,错误原因大约有这些:

  • Unix核心参数设置不当
  • Oracle执行文件权限不正确/环境变量问题
  • 客户端通信不能正确处理
  • 数据库服务器崩溃/操作系统崩溃/进程被kill
  • Oracle 内部错误
  • 特定SQL、PL/SQL引起的错误
  • 空间不够
  • 防火墙的问题
  • 其它原因
  • 补充一点:网络上的机器重名也可能导致这个错误(dowei)

在开始解决问题之前,作如下几件事情:

1、 回忆一下在出现错误之前你都做了什么操作,越详细越好;
2、 查看background_dump_dest目录中的alertSID.log文件也是你要做的事情;
3、 Google一下,在互联网上有很多信息等着你去发现,不要什么都问别人.当然,如果你找到了一些对你非常有帮助的东西――这篇文档就不用看了,别耽误你的时间,呵呵.


Unix核心参数设置不当/ init参数设置不当

如果数据库在安装过程中没有设定正确的操作系统核心变量,可能在安装数据库文件的时侯
没甚么问题,在创建数据库的时侯常常会出现03113错误.和此有关的另一个原因是init.ora
参数文件中的processes参数指定了不合理的值,启动数据库导致错误出现(当然这个归根到
底也是核心参数的问题).

这个错误信息一般如下:

 ORA-03113: end-of-file on communication channel
 ORA-01034: ORACLE not available
 ORA-27101: shared memory realm does not exist

 解决办法有两个:
 1修改核心参数,加大相应核心参数的值(推荐);
 2减小init.ora参数的Processes的值.

需要注意的是:
SEMMSL必须设定为至少要10 + 进程数的最大值.
SEMMNS 也依赖于每个数据库上的进程参数值.

-------------------------------------------------------------------------------
注: 
这个错误类型只在Unix平台上出现.在Windows上如果processes的值过大,则会出现:
ORA-00068: invalid value 24200001 for parameter max_rollback_segments, must be
between 2 and 65535  /* 此时指定的参数值超过了65535 */
或者
ORA-27102: out of memory /* 小于65535的一个大参数值 */
我的软件环境:
Windows 2000 Version 5.0 Service Pack 3, CPU type 586
ORACLE RDBMS Version: 8.1.7.0.0.
-------------------------------------------------------------------------------


在特定平台上更改核心参数可能会有差别,请参考Oracle Technet(http://otn.oracle.com)上的安装文档.对特定Unix平台的安装文档也有对核心参数意义的解释.

Init.ora中的参数如果设置不当,会产生该错误.有经验表明:shared_pool_size设置过小会出现错误,此外timed_statistics=true的设置也会带来问题.


Oracle执行文件权限不正确/环境变量问题

这个问题只出现在Unix平台上.常见情况是有的时侯管理员为了方便而使用Unix
的tar命令处理过的压缩包进行的安装,或者是系统管理员指定了额外的OS用户也可以管理数
据库却没有指定正确的环境变量.

Oracle执行文件在$ORACLE_HOME/bin目录下,如果出现问题,应该用如下Unix类似命令来纠正:

chmod 7755 $ORACLE_HOME/bin/oracle

有的时侯要对Oracle进行relink操作.
在Unix上通过cp拷贝安装的时候,常常会出现环境变量的问题,和个别执行程序连接问题.LD_
LIBRARY_PATH如果设置的不正确会导致问题,在这种情况下,需要对Oracle进行relink.如果
可执行文件oralcle被破坏,也要对其relink.

如果安装了并行服务器选项而Distributed Lock Manager没有安装或正确运行也会导致错误.


客户端通信不能正确处理

SQL*Net驱动器的问题:
如果使用的版本比较低的驱动器,请更换到新版本的驱动.SQL*Net
的驱动没有连接到Oracle可执行文件会导致错误.

检查网络是否通畅

Windows平台的常见问题:
在Windows平台创建数据库的时侯,如果出现该问题可以考虑用如下的方法:
首先检查本地网络设置.查看网络上是否有同名的结点或有冲突的IP.如果问题依旧,可以保
守的用下面的方法:
1. 禁用网卡:将本地连接状态改为禁用;
2. 将sqlnet.ora文件打开(以记事本形式)将nts验证注释掉:
    #SQLNET.AUTHENTICATION_SERVICES= (NTS).
3. 创建数据库;
4. 创建成功后,恢复本地连接.

数据库服务器崩溃/操作系统崩溃/进程被Kill

在连接过程中,如果Oracle数据库的服务器崩溃或者数据库所在的操作系统崩溃,就会出现这
个错误.Oracle Server崩溃的原因可能因为主要后台进程死掉.被错误的进行了Kill操作.如果是这个原因还是比较容易解决的.此外,和OS有关的应用程序存在内存泄漏(或者有病毒)的时侯也会导致Oracle后台程序问题.

推荐排错办法:
1、 查看应用软件相关进程是否正常运行;
2、 查看有无内存泄漏;
3、 查杀病毒;
4、 确定系统管理员没有进行误操作;
5、 确定无黑客入侵行为.
6、 其它不确定因素......


Oracle 内部错误/ Bug

如果查看background_dump_dest目录中的alert.log发现有无ora-600等错误,可以到Metalin
k站点上查看具体信息及其解决方案.一般情况下要打软件补丁.


特定SQL、PL/SQL引起的错误

尝试把SQL进行分开执行,也可以用SQL_TRACE来进行跟踪,找到导致问题的SQL语句:
在SQLPlus下:
ALTER SESSION SET SQL_TRACE TRUE;

SQL语句中的非法字符和不合理的处理结果偶尔会带来问题.


系统空间不够

任何时侯都要确保数据库系统有足够的空间.如果 USER_DUMP_DEST
和BACKGROUND_DUMP_DEST没有剩余空间的话,会导致此问题.此外,如果打开了审计,AUDIT目录要由足够的空间.如果激活了Trace的话,Trace目录要由足够的空间.

Dave Wotton的文档表明,在对表进行插入数据的时侯,如果文件超过了2G(而文件系统有2G限制),会导致该问题.


防火墙的问题

如果数据要通过防火墙,请联系系统管理员,询问是否对数据库数据进行了过滤或者是突然禁
止了通行端口.如本地安装有个人防火墙,请检查本地设置.


其它方面说明

导致这个错误的原因有很多种,上面列到的只是一些典型情况.经常去一些数据库技术论坛可
能会有帮助.比如说ITPUB(
http://www.itpub.net)、CNOUG(http://www.cnoug.org)等.

http://www.itpub.net)、CNOUG(http://www.cnoug.org)等.


参考信息/更多阅读

http://Metalink.oracle.com   
Oracle的技术支持站点,要有CSI号码才可以登录.
参考Note编号:
Note:17613.1
ORA-3113 on Unix - What Information to Collect
NOTE:131207.1  
How to Set UNIX Environment Variables 
Note:131321.1
How to Relink Oracle Database Software on UNIX
Note:22080.1

http://www.google.com/grphp?hl=zh-CN 
Google新闻组

http://www.jlcomp.demon.co.uk/faq/ORA-3113.html
技术专家Jonathan Lewis的站点上的一个FAQ

http://home.clara.net/dwotton/dba/ora3113.htm
Dave Wotton总结的一个很经典的文档.

发表于 @ 2005年01月18日 10:08 AM | 评论 (1)

hp-ux 11.11下安装oracle 8.1.7过程

hp-ux 11.11下安装oracle 8.1.7
                                                                                       ----2005-01-13 by dowei

刚装完,写下过程面得以后忘了。

软件:  HP-UX 11.11(补丁包是2004年9月份的)、
  ORACLE 8.1.7 Enterprise Edition (64-bit)
 
一、确认系统环境

# id
uid=0(root) gid=3(sys) groups=0(root),1(other),2(bin),4(adm),5(daemon),6(mail),)
# pwd
/
# model
9000/800/rp4440
# uname -a
HP-UX  hostname B.11.11 U 9000/800 169177919 unlimited-user license
# lanscan
…………
…………

# ifconfig lan0
lan1: flags=843<UP,BROADCAST,RUNNING,MULTICAST>
        inet 192.168.0.122 netmask ffffff00 broadcast 192.168.0.255

# dmesg|grep Physical
Physical: 2097152 Kbytes, lockable: 1572408 Kbytes, available: 1811528 Kbytes   

以上是关于系统的基本信息,oracle的安装对系统有所要求,主要包括:
1、MEM最低128M,
2、SWAP最低400M或为MEM*2,
3、客户端需要安装X-WINDOWS,
4、补丁包已经够新,不用再刻意打补丁。如果操作系统版本低的话,找个新补丁包打一下就可以了,不必再一个个的找那些补丁包。
5、确认入下可执行文件存在:/usr/ccs/bin目录里的make,ar,ld,nm和cc。如果你4做了,那么这些文件是没有问题的。

二、调整系统参数

用SAM调整以下HP-UX的参数,然后REBUILD KERNEL AND REBOOT。以下几个参数是ORACLE要求的:
参数名 ORA要求/现用的值(说明)
SHMMAX 1 GB / 1,500,000,000
SHMSEG 10 / 120 (default)
SHMMNI 100 / 200(default)
SEMMNI 70 / 100
SEMMNS 200/1024(112上是300)
MAX_THREAD_PROC=256 or more
maxdsiz 67108864 / 280000000 (建议不要低于256M)
maxdsiz_64bit 1073741824 / 1200000000 (默认即可)

修改完成后重建内核重新启动机器后开始安装。

设置时要小心,如果内核参数设错了,即使安装成功,但是建库,进sqlplus,svrmgrl及任何操作,可能会出现错误。
如果真的安装完成后发现当初设错了,试着重新调整参数,重建内核重启系统,然后以ORACLE用户登录,看看行不行,

如果仍旧失败,手工编译安装ins_rdbms.mk试试:
$ cd $ORACLE_HOME/rdbms/lib
$ make -f ins_rdbms.mk install

这个过程大约几分钟就好了,

还不行的话,重新安装吧。

三、建ORACLE组、用户、设置环境变量

增加用户组"dba",让后增加"oracle"用户,属于"dba"组,用户主目录是/oracle
建议使用sam增加。

以oracle用户登录
#su - oracle
$vi .profile
设置环境变量,主要的几个如下:
#--------------BEGIN----------------------------------
ORACLE_BASE=/oracle/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/8.1.7
ORACLE_SID=sinodb
ORACLE_TERM=hp
DISPLAY=192.168.0.22:0.0

NLS_LANG=American_America.ZHS16GBK
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
SHLIB_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=$ORACLE_HOME/lib
PATH=$PATH:$ORACLE_HOME/bin:/opt/make/bin:/opt/gcc-3.0.1-32/bin:/usr/sbin:.
TNS_ADMIN=$ORACLE_HOME/network/admin
ORACLE_OWNER=oracle
ORA_DB=$ORACLE_HOME/dbs
export ORACLE_BASE ORACLE_HOME ORACLE_SID ORACLE_TERM NLS_LANG DISPLAY
export ORA_NLS33 DISPLAY SHLIB_PATH LD_LIBRARY_PATH PATH ORACLE_OWNER ORA_DB TNS_ADMIN

umask 022
#--------------END-------------------------------------

完成后,存盘退出,运行下面的命令察看设置是否成功。
$. ./.profile 
$env|grep ORA
ORACLE_BASE=/data1/app/oracle
ORA_DB=/data1/app/oracle/product/8.1.7/dbs
ORACLE_SID=ora8
ORACLE_TERM=vt100
ORA_NLS33=/data1/app/oracle/product/8.1.7/ocommon/nls/admin/data
ORACLE_HOME=/data1/app/oracle/product/8.1.7

好了,搞定。

四、开始安装

打开一窗口以ROOT用户MOUNT DVD:
# nohup /usr/sbin/pfs_mountd &
# nohup /usr/sbin/pfsd &
# /usr/sbin/pfs_mount -t rrip -x unix /dev/dsk/c0t0d0 /cdrom

下面应该在X-WINDOWS环境下以oracle用户执行:
$cd /cdrom
$ls
如果mount成功,则能够看到安装盘里的一些文件,否则,重新mount。

$ cd /
$ ./cdrom/runInstaller (建议在/目录下runInstaller,避免换盘时无法 pfs_umount /cdrom,虽然在 hp_ux上没有关系,不过还是强烈建议)
稍等,出现图形界面,并且按照设置的系统参数设置了路径(如果没有就推出安装,运行.profile文件)
一般选择定制安装,如果不知道该怎么选,默认即可,建立数据库时可适当调整,也可以先不建数据库。

按要求要求运行orainstRoot.sh(在刚才mount DVD的窗口即可)

unix group :dba
sysopra :dba
sysdba  :dba

运行root.sh(同上)

如果使用双cd的安装介质,中间可能需要换盘,换盘前先umount DVD
#/usr/sbin/pfs_umount /cdrom

换盘后再需要再mount

#/usr/sbin/pfs_mount /dev/dsk/c0t0d0 /cdrom
按ok继续即可。


附1:
表1  共享内存和信号参数
参数                                      | 推荐值描述       
-----------------------------------|-------------------------------------------       
SHMMAX 1073741824 or | 单个共享内存段的最大尺寸(以字节为单位)       
0X40000000                       |        
                                              |       
SHMMIN 1                           | 单个共享内存段的最小尺寸(以字节为单位)           
                                              |       
SHMMNI 100                      | 共享内存标识符的数目         
                                              |       
SHMSEG 10                       | 一个进程可用的共享内存段的最大可用数目    
                                              |      
SEMMNS 200                     | 系统中信号量的目数     
                                              |       
SEMMNI 70                         | 系统中信号集标识符的数目       
                                              |      
                                              | SEMMNI 确定了在任一时间可以被创建的信号集的数目
注:相关的知识可参见A4074887.

附2:各参数的意义及计算方法
1.SHMMAX maximum size of a shared memory segment
(共享内存段的最大字节数)
2.SHMMIN minimum size of shared memory segment
(共享内存段的最小尺寸)
3.SHMMNI maximum number of shared memory identifiers in the system 
(系统共享内存标识符的最大数目)
4.SHMSEG maximum number of shared memory segments a user process can attach
(每个用户进程可分配的最大共享内存段数目)
5.SEMMNI maximum number of semaphore identifiers in the system
(系统中信号灯标识符的最大数目)
6.SEMMSL maximum number of semaphores in a set
(每个(信号灯)集合中的信号灯的最大数目)
7.SEMMNS maximum number of semaphores in the system
(系统中信号灯的最大数目)
8.SEMOPM maximum number of operations per semop call
(每个semop调用的信号灯的最大数目)
9.SEMVMX semaphore maximum value
(信号灯最大值)

注意!
上面提到的 SEMMSL 和 SEMMNS 的值仅适用于最初的安装,安装完成后应根据应用的实际情况进行调整,其中

★ SEMMSL 的值可以通过以下方式计算得到:
所有Oracle实例的"init[SID].ora"文件中最大的PROCESSES值 + 10

★ SEMMNS 的值可以通过以下方式计算得到:
系统中各个Oracle实例的"init[SID].ora"文件中PROCESSES值的总和(不包括最大的那个PROCESSES值)+ 最大的那个PROCESSES值 * 2 + 10 * Oracle实例的个数。

注:[SID]即为具体的数据库实例名

例如,一个有三个 Oracle实例的系统,在各自的"initsid.ora"文件中的PROCESSES参数设置为下列值:
ORACLE_SID=A, PROCESSES=100
ORACLE_SID=B, PROCESSES=100
ORACLE_SID=C, PROCESSES=200

则 SEMMSL 值的计算方法如下:
SEMMSL = [(c=200) + 10] = 210
则 SEMMNS 值的计算方法如下:
SEMMNS = [(A=100) + (B=100)] + [(C=200) * 2] + [(# of instances=3) * 10] = 630

发表于 @ 2005年01月13日 4:34 PM | 评论 (1)

oracle数据库启动与关闭
   可以使用两中方式连接:

  第一种,以sys用户连接

  c:\>sqlplus sys/change_on_install[@dbname] as sysdba;

  进入sql*plus环境;(注意,ORACLE9I在安装的时候需要你自己设定sys和system的口令,并且不能才用ORACLE9I以前这两个用户的默认口令,这主要是为了保证数据库系统的安全,我为了好记忆,在安装完成后立刻恢复了默认的口令)

  第二种:

  C:\>sqlplus /nolog

  SQL*Plus: Release 9.2.0.1.0 - Production on 星期一 4月 26 09:42:00 2004

  Copyright (c) 1982, 2002[/img][/img], Oracle Corporation. All rights reserved.

  SQL> connect [sys/change_on_install@dbname] as sysdba

  已连接。

  SQL>

  在进入后就可以进行下面的操作了!

  关闭数据库

  shutdown有四个参数,四个参数的含义如下:
  Normal 需要等待所有的用户断开连接
  Immediate 等待用户完成当前的语句
  Transactional 等待用户完成当前的事务
  Abort 不做任何等待,直接关闭数据库
  normal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接
  immediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。
  transactional 在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。
  abort 执行强行断开连接并直接关闭数据库。

  前三种方式不回丢失用户数据。第四种在不的已的情况下,不建议采用!

  数据库的启动

  数据库启动使用startup命令,它有三种情况:

  第一种:不带参数,启动数据库实例并打开数据库,以便用户使用数据库,在多数情况下,使用这种方式!

  第二种:带nomount参数,只启动数据库实例,但不打开数据库,在你希望创建一个新的数据库时使用,或者在你需要这样的时候使用!

  第三种:带mount参数,在进行数据库更名的时候采用。这个时候数据库就打开并可以使用了!

发表于 @ 2005年01月11日 10:28 AM | 评论 (1)

HP-UX硬盘资源管理
在HPUX下正确使用硬盘的顺序及相应命令如下:

1. 先建物理卷:
# pvcreate -f /dev/rdsk/cCdDtT
这里必须使用硬盘的字符设备文件

2. 再建逻辑卷组:
# mkdir /dev/vg0X X:0~f,逻辑卷组名
# mknod /dev/vg0X/group c 64 0x0X0000
# vgcreate vg0X /dev/dsk/cCdDtT

3. 然后划分逻辑卷:
# lvcreate -L size vg0X size:该逻辑卷大小

4. 在LV上建文件系统:
# newfs -F file_system_type /dev/vg0X/rlvolY
file_system_type:文件系统类型,包括hfs和vxfs,注意此时用该逻辑卷的字符设备文件。

5. 将此文件系统Mount到一个目录下:
# mkdir /directory
# mount /dev/vg0X/lvolY /directory
    到此为止,您已经可以使用这个硬盘了。有时您可能在现有的环境下,需要添加、删除逻辑卷,或者是需要扩大文件系统。我们可以这样做:

6. 添加逻辑卷
1) 添加文件系统卷。例如:在vg01上添加一个200M的文件系统卷,卷名为data,mount到目录/sample 上。
A、创建逻辑卷,在系统提示符下键入命令:
# lvcreate -L 200 -n data /dev/vg01
B、在逻辑卷data上创建文件系统:
# newfs -F hfs /dev/vg01/rdata
注:如果是vxfs文件系统,则用
# newfs -F vxfs /dev/vg01/rdata
C、创建目录/sample,并将逻辑卷data mount 到/sample.
# mkdir sample"
# mount /dev/vg01/data /sample
D、用bdf命令,将会看到/dev/vg01/data mount 到 /sample上。
2) 添加非文件系统卷(raw data volume)。例同上。
A、创建逻辑卷,在系统提示符下键入命令:
# lvcreate -L 200 -n data /dev/vg01
B、创建目录/sample,并将逻辑卷data mount 到/sample.
# mkdir sample
# mount /dev/vg01/data /sample
C、用bdf命令,将会看到/dev/vg01/data mount 到 /sample上。

7. 删除逻辑卷
例如:删除 vg01 中名为 data 的逻辑卷,mount 到/sample。
1) 卸载所要删除的逻辑卷:
A、首先用 umount 命令将逻辑卷 data 从/sample上卸载下来:
# umount /sample
B、若系统提示设备忙,不能卸载;则在根目录系统提示符下,键入以下命令,进入单用户:
# shutdown -y 0
在单用户下,先将所有逻辑卷mount上,键入命令:
# mount -a
用bdf命令看该逻辑卷是否已经mount上,如果mount上,键入以下命令:
# umount /sample
2) 删除逻辑卷 /dev/vg01/data ,用命令:
# lvremove /dev/vg01/data

8. 扩大文件系统
1) 扩大文件系统,首先要找到这个文件系统所对应的逻辑卷,只有首先扩大逻辑卷,给文件系统以扩大的空间,才能扩大文件系统。
2) 为扩大逻辑卷,先进单用户,在根目录系统提示符下,键入命令:
# shutdown -y 0
3) 进入单用户后,先将所有文件系统mount上,键入命令:
# mount -a
4) 用bdf命令看该文件系统是否已经mount上,如果mount上,用命令 #umount文件系统名umount该文件系统。例如,想要扩大"/usr"到500M ,就键入命令:
# umount /usr
5) 用命令:
# lvextend -L 500 /dev/vg00/lvol4
这里,假定 /usr 对应 /dev/vg00/lvol4
6) 用命令:
# extendfs /dev/vg00/lvol4 扩大文件系统。
注:如果是vxfs文件系统,则用
# extendfs -F vxfs /dev/vg00/lvol4
7) 用命令:
# mount /dev/vg00/lvol4 /usr
将文件系统 mount 到 /usr
这样,文件系统"/usr"就被扩大了,
8) 用命令:
# init 3 进入原来多用户运行级。

9. UNIX 的文件系统
    UNIX的文件系统是树状结构,一般指在一个逻辑卷上的文件的集合。从根开始,从表面上看,文件系统好象是一个整体,但实际上,文件系统可以分成不同的部分,单独占据一块逻辑卷,就是一个文件系统。



发表于 @ 2004年12月30日 2:09 PM | 评论 (0)

linux初体验(四)——安装oracle

终于想真正用一下linux了,并没有想象中麻烦,只是,靠~不会。

由于某些原因,又只能用redhat7.3,明显没有9.0来的方便。

今天办正事——装oracle。。

ready……go~~~

安装oracle8.17

所需软件:
glibc-2.1.3-stubs.tar.gz
linux81701.tar

首先建立dba组:
groupadd dba
增加用户
useradd oracle -g dba
修改oracle用户密码:
passwd oracle

用oracle用户登录.
设置oracle用户的环境变量,加入以下设置:
oracle%vi ~oracle/.bash_profile
#####################################################

#java - setup
export JAVA_HOME=/usr/java/jdk1.3.1_12(java路径)

#oracle - setup
export NLS_LANG=american
export ORACLE_BASE=/home/oracle
export ORACLE_HOME=$ORACLE_BASE/product/8.1.7
export ORACLE_SID=gzdb    (默认启动的数据库名,应该与下面建的数据库名相同)
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/local/lib:/usr/lib:/lib
export LD_ASSUME_KERNEL=2.2.5
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=$PATH:$ORACLE_HOME/bin:$JAVA_HOME/bin:$JAVA_HOME
export CLASSPATH=$CLASSPATH:$ORACLE_HOME/jdbc/lib/classe12.zip:$ORACLE_HOME:$JAVA_HOME/lib/classes.zip

#####################################################
如果需要让这些环境设置马上生效:
source .bash_profile

语言环境设置缺省的en_US.UTF-8 (在RedHat 7.3下缺省是en_US.iso885915)改成en_US
root#vi /etc/sysconfig/i18n
改成:
LANG="en_US"
SUPPORTED="en_US:en"
这样安装oracle时显示英文。不改的话将是乱码。如果改了之后无效请重新启动计算机。

到此前期准备完成。

二、开始安装oracle

用oracle帐户登录

1,将linux81701.tar放到 /usr/src解开  

  tar xvf linux81701.tar

2,进入x界面下,如果不行可能学需要重新启动计算机。一定要用oracle帐户。

3,运行解开的包中的 Disk1/runInstaller

4,一路按默认设置(这里路径应该是/home/oracle/product/8.1.7")。中间如果出现有关权限组的,用刚才设置的dba。

5,设置权限组时会要求你运行orainstRoot.sh,打开一个命令窗口,用root权限运行orainstRoot.sh(./orainstRoot.sh).

6, 选择自定义安装,先不安装数据库,等打完补丁再装。

7,快完成时会提示要用root帐户运行root.sh.再命令窗口中运行,不过要先修改

script 的 102 行 :
原 script:
RMF=/bin/rm -f
修正為 :
RMF="/bin/rm -f"

script 的 156 行 :
原 script:
RUID=`/usr/bin/id|$AWK -F( '{print $2}'|$AWK -F) '{print $1}`
修正為 :
RUID=`/usr/bin/id|$AWK -F( '{print $2}'|$AWK -F) '{print $1}'`

一路安装完毕,开始打补丁

三、打补丁(以oracle帐户执行)
oracle%cp glibc-2.1.3-stubs.tar.gz $ORACLE_HOME/
oracle%cd $ORACLE_HOME
oracle%tar zxf glibc-2.1.3-stubs.tar.gz
oracle%./setup_stubs.sh

打完补丁就可以运行dbassist,创建数据库...一路默认就可以(这里建gzdb)。

四、启动

这时候已经可以使用dbstart脚本启动数据库了
oracle%dbstart
或者
oracle%sqlplus
SQL>connect internal
SQL>startup

监听端口启动
oracle%lsnrctl start

三 设置服务自动启动
===================
设置相应数据库实例允许用系统服务自动启动
root# vi /etc/oratab
将最后的:
orcl:/home/oracle/product/8.1.7:N
改为:
orcl:/home/oracle/product/8.1.7:Y


简单的服务自动启动脚本
root# vi /etc/rc.local
#start oracle8i listener first
su - oracle -c ’lsnrctl start’
#start oracle8i
su - oracle -c ’dbstart’ 
注意,oracle前有空格,“c"前没有

重新启动 ,用oracle登陆,测试是否成功启动数据库

oracle#sqlplus

Enter user-name:scott
Enter password:tiger

SQL>select * from emp;

如果有结果出来,则表示安装成功,并且成功启动。

发表于 @ 2004年08月27日 4:50 PM | 评论 (0)

第1页,共2页

news

google 本站

last posts