Linux 下Oracle安装、启动、使用问题、

ORACLE10G在Linux下安装过程

1、建立ORACLE用户,用ORACLE用户安装数据库软件。
可以在系统界面增加:“oracle”用户,再建用户组“dba”,把“dba”做为用户“oracle”附加用户组,“oracle”为默认用户组。也可以用命令方式进行增加,命令如下:
#groupadd dba//创建组用户
#groupadd oracle//创建组用户
#useradd -g oracle -G dba oracle//创建用户oracle,并设定默认用户组为oracle,附加用户组为dba
#passwd oracle//设定oracle用户的密码

2、增加ORACLE用户,该用户组必须是DBA。用ORACLE用户安装数据库软件。

3、在ROOT用户下,设置内核参数。
修改/etc/sysctl.conf这个文件,加入以下语句:
kernel.shmmax=1073741824(1G,2G: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.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144

4、在ROOT帐户下,设置ORACLE对文件的要求。
编辑文件:/etc/security/limits.conf文件加入以下语句:
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc  16384
oracle hard nproc  16384

5、在ORACLE帐户,设置ORACLE环境。
/oracle目录下
安装路径为:/oracle/product/10g。
数据库SID为:ydqx。
编辑文件:ORACLE用户目录下,.bash_profile文件,添加内容如下:
export LD_ASSUME_KERNEL=2.4.1
export ORACLE_BASE=/oracle
export ORACLE_HOME=/oracle/product/10g
export ORACLE_SID=ydqx
export ORACLE_OWNER=oracle
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME/network/lib
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/lib
export LANG=en_US

如果在中文界面下安装,可以修改该配置文件参数。(3个)
export NLS_LANG=american_america.zhs16cgb231280;
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

export   NLS_LANG=American_America.ZHS16CGB231280
LC_ALL=zh_CN.GB18030  
LANG=zh_CN.GB18030 
NLS_LANG="simplified   chinese_china.ZHS16GBK;export   NLS_LANG

6、重新启动机器,让所有参数生效。

7、进行数据库软件安装。
在oracle用户环境下,在oracle10G安装目录下,执行命令:./runInstaller启动按装,在弹出界面中进行如下操作。
A、在UNIX Group Name输入组名"dba",并且勾除“Create Starter Database(additional 720MB)”选项。确定信息后,点击“next”进入下一个界面。
B、在新界面,把“Enter the full path of the invertory directory”输入框中改为“/oracle”,在“Specify Operationg System group name”提示框中是“oracle”不变。确定后进入下一个界面。
C、根据界面提示进行确定,直到出现弹出界面,提示用“root”用户执行以下两个命令:“/oracle/orainstRoot.sh”与“/oracle/product/10G/root.sh”。进入命令行窗口,用root用户执行以下两个命令。
#/tmp/orainstRoot.sh
#/oracle/product/10G/root.sh
执行完成后,继续确认,直到安装结束。
D、在安装结束界面,提示SQLPLUS访问方式。
http://localhost.localdomain:5560/isqlplus
http://localhost.locldomain:5560/isqlplus/dba//这个是iSQL*Plus DBA URL访问方式

8、创建数据库SID。
A、执行ORACLE安装目录(/oracle/produtc/10G/bin)下执行dbca命令。
B、在安装过程中选择数据库创建模板时,选择“General Purpose”,共有四个选项:
“Custom Database”//自定制数据库
“Data Warehouse”//数据仓库:针对大量数据的数据库进行优化
“General Purpose”//通用数据库,olap和oltp两者兼顾
“Transaction Processiong”//联机事物处理,oltp
C、在进行“storage mechanism”选择时,选择“File System”。
D、在进行字符集选择时,“选择ZHS16GBK”选项。其它不变。
E、在安装结束界面,提示企业管理器访问方式为:http://localhost.localdomain:1158/em

9、启动ORACLE数据库监听。
如果出现错误,进行以下改动:如ORACLE SID是“orcl”,则把文件/etc/oratab中数据从:
“orcl:/oracle/product/10G:N”改为“orcl:/oracle/product/10G:Y”。否则dbstart等命令不好使。
在ORACLE安装BIN目录下,启动监听(lsnrctl start),关闭监听(lsnrctl stop)。

10、启动数据库。
在ORACLE安装BIN目录下,启动数据库(dbstart)。

11、启动企业管理器工具。
在启动oracle企业管理器服务后,访问会出现按钮乱码。所以在启动前可以先进行如下操作,以避免有乱码现象。
(访问方式:http://IP:1158/em/)
把以下目录下font.properties文件用同目录下font.properties.zh_CN.Redhat替换,替换前做好备份。
$ORACLE_HOME/javavm/lib/ojvmfonts/font.properties
$ORACLE_HOME/jre/1.4.2/lib/font.properties
$ORACLE_HOME/jdk/jre/lib/font.properties
同时删除以下目录下gif文件。
企业管理器显示界面图片:
$ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zhs/
isqlplus显示界面图片:
$ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/isqlplus/isqlplus/cabo/images/cache/zhs/

启动企业管理器命令:emctl start dbconsole
关闭企业管理器命令:emctl stop dbconsole

 

启动数据库实例,分为两步:
第一步,启动监听
第二步,启动数据库实例
 
一、如何启动数据库实例

1.进入到sqlplus启动实例
[oracle@redhat ~]$ su - oracle                                 --“切换到oracle用户”
Password:
[oracle@redhat ~]$ lsnrctl start                               --“打开监听”
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 14-OCT-2009 19:06:40
 Copyright (c) 1991, 2005, Oracle.  All rights reserved.
 Starting /home/oracle/product/10g/bin/tnslsnr: please wait...
 TNSLSNR for Linux: Version 10.2.0.1.0 - Production
 System parameter file is /home/oracle/product/10g/network/admin/listener.ora
 Log messages written to /home/oracle/product/10g/network/log/listener.log
 Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC2)))
 Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=redhat)(PORT=1522)))
 Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC2)))
 STATUS of the LISTENER
 ------------------------
 Alias                     LISTENER
 Version                   TNSLSNR for Linux: Version 10.2.0.1.0 - Production
 Start Date                14-OCT-2009 19:06:40
 Uptime                    0 days 0 hr. 0 min. 0 sec
 Trace Level               off
 Security                  ON: Local OS Authentication
 SNMP                      OFF
 Listener Parameter File   /home/oracle/product/10g/network/admin/listener.ora
 Listener Log File         /home/oracle/product/10g/network/log/listener.log
 Listening Endpoints Summary...
   (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC2)))
   (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=redhat)(PORT=1522)))
 Services Summary...
 Service "PLSExtProc" has 1 instance(s).
   Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
 The command completed successfully
 
[oracle@redhat ~]$ sqlplus /nolog                                --“进入到sqlplus”
SQL*Plus: Release 10.2.0.1.0 - Production on Wed Oct 14 19:06:45 2009
 Copyright (c) 1982, 2005, Oracle.  All rights reserved.
 SQL> conn /as sysdba                                              --“连接到sysdba”
Connected to an idle instance.
 SQL> startup                                                     --“启动数据库实例”
ORACLE instance started.
 Total System Global Area  285212672 bytes
 Fixed Size      1218968 bytes
 Variable Size     88082024 bytes
 Database Buffers   188743680 bytes
 Redo Buffers      7168000 bytes
 Database mounted.
 Database opened.
 SQL> shutdown immediate                                          --“关闭数据库实例”
Database closed.
 Database dismounted.
 ORACLE instance shut down.
 SQL> exit
 Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
 With the Partitioning, OLAP and Data Mining options

[oracle@redhat ~]$ lsnrctl stop                                 --“关闭监听”
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 14-OCT-2009 19:08:06
 Copyright (c) 1991, 2005, Oracle.  All rights reserved.
 Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC2)))
 The command completed successfully
 
2.用dbstart和dbshut启动和关闭数据库实例
 
先启动监听 lsnrctl start
启动实例  dbstart
 
使用dbstart命令启动数据库比较方便,但是在linux上安装好oracle之后,第一次使用dbstart命令可能会报如下错误:
 
ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
 Usage: /u01/app/oracle/oracle/product/10.2.0/db_1/bin/dbstart ORACLE_HOME

原因:
dbstart和dbshut脚本文件中ORACLE_HOME_LISTNER的设置有问题,分别打开两个文件找到:用vi编辑dbstart,ORACLE_HOME_LISTNER=$1,修改为
ORACLE_HOME_LISTNER=$ORACLE_HOME
 
 
然后保存退出,此时再运行dbstart,已经不报错了,但是没有任何反应,ps一下进程,没有oracle的进程,说明oracle实例没有正常启动。
 
此时的原因是在/etc/oratab的设置问题,我们vi一下,发现
zgz:/home/oracle/product/10g:N
最后设置的是"N"(我的环境中只有一个实例,因此只有一行配置语句),我们需要把“N”修改为“Y”。
 
以上的工作做好之后,dbstart就可以正常使用了:
 
[oracle@redhat bin]$ lsnrctl start                                   --“启动监听”
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 14-OCT-2009 19:44:53
 Copyright (c) 1991, 2005, Oracle.  All rights reserved.
 Starting /home/oracle/product/10g/bin/tnslsnr: please wait...
 TNSLSNR for Linux: Version 10.2.0.1.0 - Production
 System parameter file is /home/oracle/product/10g/network/admin/listener.ora
 Log messages written to /home/oracle/product/10g/network/log/listener.log
 Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC2)))
 Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=redhat)(PORT=1522)))
 Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC2)))
 STATUS of the LISTENER
 ------------------------
 Alias                     LISTENER
 Version                   TNSLSNR for Linux: Version 10.2.0.1.0 - Production
 Start Date                14-OCT-2009 19:44:53
 Uptime                    0 days 0 hr. 0 min. 0 sec
 Trace Level               off
 Security                  ON: Local OS Authentication
 SNMP                      OFF
 Listener Parameter File   /home/oracle/product/10g/network/admin/listener.ora
 Listener Log File         /home/oracle/product/10g/network/log/listener.log
 Listening Endpoints Summary...
   (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC2)))
   (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=redhat)(PORT=1522)))
 Services Summary...
 Service "PLSExtProc" has 1 instance(s).
   Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
 The command completed successfully
 [oracle@redhat bin]$ dbstart                                   --“启动数据库实例”
Processing Database instance "zgz": log file /home/oracle/product/10g/startup.log
 [oracle@redhat bin]$ dbshut                                    --“关闭数据库实例”
[oracle@redhat bin]$ lsnrctl stop                              --“关闭监听”
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 14-OCT-2009 19:45:33
 Copyright (c) 1991, 2005, Oracle.  All rights reserved.
 Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC2)))
 The command completed successfully
 
二、如何使数据库实例和linux系统一起启动
 在/etc/rc.d/rc.local中加入如下语句即可实现同系统启动实例:

su oracle -lc "lsnrctl start"
su oracle -lc dbstart

 

本地没有装Oracle、PL/SQL远程访问Oracle数据库、配置

由于Oracle的庞大、有时候我们需要在只安装Oracle客户端如PLSQL、TOAD等的情况下去连接远程数据库、可是没有安装Oracle就没有一切的配置文件去支持。最后终于发现一个有效的方法、Oracle的Instant client工具包可以很好的解决这个问题、而且小而方便。
1、首先到Oracle官方下载Instant Client:
http://www.oracle.com/us/solutions/index-097480.html
解压之后的文件夹叫:instantclient_11_2、可以放在本地磁盘任意目录下、例如:C:/instantclient_11_2

2、在C:/instantclient_11_2目录下新建目录network、在network目录下再建admin目录。从服务器的$ORACLE_HOME/network/admin/下拷贝tnsnames.ora文件到该目录下

3、添加一个环境变量、名为TNS_ADMIN、值为tnsnames.ora文件所在路径、

4、下载并安装PLSQL配置应用
配置tools->preferences->connection

Oracle Home
C:/instantclient_11_2

OCL library
C:/instantclient_11_2/oci.dll

配置完成后关闭PL/SQL、再重启。

主机名就会出现在PL/SQL的列表里、输入用户名密码、就可以远程登陆Oracle数据库了。。

当我们连接成功后有时候查询出来的数据会出现乱码的问题、这是因为本地的编码和服务器端编码不一致、这时候我们可以通过SQL语句:

select userenv('language') from dual;
查询出服务器端的编码、如我自己查询的结果为
USERENV('LANGUAGE')
AMERICAN_AMERICA.ZHS16GBK

我们就需要添加一个环境变量、值为:AMERICAN_AMERICA.ZHS16GBK
然后重启PLSQL就不会再有乱码问题了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值