oracle相关知识
Windows下Oracle因主机名或IP变动,导致EM无法启动的问题。
[
|
2008/04/03 13:51]
|
2008/04/03 13:51]
错误信息:
WIN的事件查看器:
An error occured while trying to initialize the service.
手工启动:emctl start dbconsole
Environment variable ORACLE_SID not defined. Please define it.
当执行set OARCLE_SID=orcl,继续报错
Unable to determine local host from URL REPOSITORY_URL=http://localhost:%EM_UPLOAD_PORT%/em/upload/
注意以下地方:
1: 主机名:
C:\WINDOWS\system32\drivers\etc\hosts
2: EM链接JDBC:
$ORACLE_HOME\oc4j\j2ee
OC4J_DBConsole_fox-kook_kook
OC4J_DBConsole_localhost_kook (从fox-kook主机名复制这个目录为localhost)
3: 监听修改为主机名的连接方式,不要以IP方式。
$ORACLE_HOME\NETWORK\ADMIN\listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = kook.glfsoft.com)
(ORACLE_HOME = G:\oracle\product\10.2.0\db_1)
(SID_NAME = kook)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = fox-kook)(PORT = 1521))
)
$ORACLE_HOME\NETWORK\ADMIN\tnsnames.ora同样。
KOOK =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = fox-kook)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = kook.glfsoft.com)
)
)
最终实现,IP更改不会影响到Oracle的EM启动问题。
附重建EM的命令组
创建一个EM资料库
emca -repos create
重建一个EM资料库
emca -repos recreate
删除一个EM资料库
emca -repos drop
配置数据库的 Database Control
emca -config dbcontrol db
删除数据库的 Database Control配置
emca -deconfig dbcontrol db
重新配置db control的端口,默认端口在1158
emca -reconfig ports
emca -reconfig ports -dbcontrol_http_port 1160
emca -reconfig ports -agent_port 3940
先设置ORACLE_SID环境变量后,启动EM console服务
emctl start dbconsole
先设置ORACLE_SID环境变量后,停止EM console服务
emctl stop dbconsole
先设置ORACLE_SID环境变量后,查看EM console服务的状态
emctl status dbconsole
配置dbconsole的步骤
emca -repos create
emca -config dbcontrol db
emctl start dbconsole
重新配置dbconsole的步骤
emca -repos drop
emca -repos create
emca -config dbcontrol db
emctl start dbconsole
WIN的事件查看器:
An error occured while trying to initialize the service.
手工启动:emctl start dbconsole
Environment variable ORACLE_SID not defined. Please define it.
当执行set OARCLE_SID=orcl,继续报错
Unable to determine local host from URL REPOSITORY_URL=http://localhost:%EM_UPLOAD_PORT%/em/upload/
注意以下地方:
1: 主机名:
C:\WINDOWS\system32\drivers\etc\hosts
2: EM链接JDBC:
$ORACLE_HOME\oc4j\j2ee
OC4J_DBConsole_fox-kook_kook
OC4J_DBConsole_localhost_kook (从fox-kook主机名复制这个目录为localhost)
3: 监听修改为主机名的连接方式,不要以IP方式。
$ORACLE_HOME\NETWORK\ADMIN\listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = kook.glfsoft.com)
(ORACLE_HOME = G:\oracle\product\10.2.0\db_1)
(SID_NAME = kook)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = fox-kook)(PORT = 1521))
)
$ORACLE_HOME\NETWORK\ADMIN\tnsnames.ora同样。
KOOK =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = fox-kook)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = kook.glfsoft.com)
)
)
最终实现,IP更改不会影响到Oracle的EM启动问题。
附重建EM的命令组
引用
创建一个EM资料库
emca -repos create
重建一个EM资料库
emca -repos recreate
删除一个EM资料库
emca -repos drop
配置数据库的 Database Control
emca -config dbcontrol db
删除数据库的 Database Control配置
emca -deconfig dbcontrol db
重新配置db control的端口,默认端口在1158
emca -reconfig ports
emca -reconfig ports -dbcontrol_http_port 1160
emca -reconfig ports -agent_port 3940
先设置ORACLE_SID环境变量后,启动EM console服务
emctl start dbconsole
先设置ORACLE_SID环境变量后,停止EM console服务
emctl stop dbconsole
先设置ORACLE_SID环境变量后,查看EM console服务的状态
emctl status dbconsole
配置dbconsole的步骤
emca -repos create
emca -config dbcontrol db
emctl start dbconsole
重新配置dbconsole的步骤
emca -repos drop
emca -repos create
emca -config dbcontrol db
emctl start dbconsole
关于Oracle的逻辑备份,应用exp/imp和expdp/impdp的一些差别。
[
|
2008/01/17 14:10]
|
2008/01/17 14:10]
关于Oracle的逻辑备份,应用exp/imp和expdp/impdp的一些差别。
常用命令操作
A: exp/imp的使用 (服务器端和客户端都可以执行。并且备份文件可以在客户端产生。)
exp user/password@servicename file=dump.dmp
imp user/password@servicename fromuser=fuser touser=tuser file=dump.dmp
2: expdp/impdp的使用 (服务器端和客户端都可以执行。备份文件只能存在服务器里面。)
I:在使用expdp导出时在Oracle需要定义目录变量,在导出的时候需要制定这个变量。如果可以,你可以为每个用户都建立一个单独的备份目录。
SQL>create directory dmpdir_user1 as '/home/oracle/backup';
SQL>grant read,write on directory dmpdir_user1 to user1;
对了,操作系统内必须创建这个目录。在SQL命令行下,并不会产生这个目录的。
[oracle@kook ~]$ mkdir backup
如果你没有制定这个目录的话,默认exp导出存放的目录是$HOME/rdbms/log里面。至少我的是这样。很奇怪,为什么在这里。
II:执行导出导入命令
expdp user1/password@servicename schemas=user1 directory=dmpdir_user1 dumpfile=user1.dmp
impdp user2/password@servicename directory=dmpdir_user1 dumpfile=user1.dmp remap_schema=user1:user2 remap_tablespace=user1ts:user2ts
使用expdp/impdp最大的好处可以让我转换表空间。而exp/imp这个是不支持的。处理起来非常麻烦。
就是这样了。没有什么东西。四个命令的帮助参数可以通过command help=y来进行查看。
常用命令操作
A: exp/imp的使用 (服务器端和客户端都可以执行。并且备份文件可以在客户端产生。)
exp user/password@servicename file=dump.dmp
imp user/password@servicename fromuser=fuser touser=tuser file=dump.dmp
2: expdp/impdp的使用 (服务器端和客户端都可以执行。备份文件只能存在服务器里面。)
I:在使用expdp导出时在Oracle需要定义目录变量,在导出的时候需要制定这个变量。如果可以,你可以为每个用户都建立一个单独的备份目录。
SQL>create directory dmpdir_user1 as '/home/oracle/backup';
SQL>grant read,write on directory dmpdir_user1 to user1;
对了,操作系统内必须创建这个目录。在SQL命令行下,并不会产生这个目录的。
[oracle@kook ~]$ mkdir backup
如果你没有制定这个目录的话,默认exp导出存放的目录是$HOME/rdbms/log里面。至少我的是这样。很奇怪,为什么在这里。
II:执行导出导入命令
expdp user1/password@servicename schemas=user1 directory=dmpdir_user1 dumpfile=user1.dmp
impdp user2/password@servicename directory=dmpdir_user1 dumpfile=user1.dmp remap_schema=user1:user2 remap_tablespace=user1ts:user2ts
使用expdp/impdp最大的好处可以让我转换表空间。而exp/imp这个是不支持的。处理起来非常麻烦。
就是这样了。没有什么东西。四个命令的帮助参数可以通过command help=y来进行查看。
Oracle的日志记录研究分析(究竟是谁?干了些什么?)
[
|
2008/01/17 13:27]
|
2008/01/17 13:27]
Oracle的日志记录
做个流水帐。
相信总会有这种情况发生。一个开发团队,有人在开发数据库上误删除和表或者错误的操作。领导追查下来,结果没有人承认,老大说,那个谁呀,就你,别瞅别人了,赶紧给我查出来。
结果你就得研究一下了。谁干的?从哪连过来的,IP多少;用什么客户端;执行啥操作了?
我是DBA吗?不是,但是这公司没有DBA啊,那就未来的吧。研究一下吧。对了,这只是事情的一半。你还得会恢复。这需要你有良好的备份策略。否则就不要谈什么恢复了。
简单分析:
开发中客户端连接过来的动作常是toad,或者是应用程序本身连接过来。异或客户端的终端命令,如exp,imp等动作。
依据上述,逐步来处理。我找到了文件记录客户端的连接日志。就是下面的listener.log
[oracle@kook ~]$ ls $ORACLE_HOME/network/log
listener.log sqlnet.log
以下为抽取的典型的连接的日志文件格式
1:本机应用程序连接
15-JAN-2008 17:15:45 * (CONNECT_DATA=(SID=fundoa)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.1)(PORT=63943)) * establish * fundoa * 0
2:客户端工具连接
15-JAN-2008 17:23:49 * (CONNECT_DATA=(SID=fundoa)(SERVER=DEDICATED)(CID=(PROGRAM=C:\Program Files\Quest Software\Toad for Oracle\TOAD.exe)(HOST=KOOK1)(USER=Administrator))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.23)(PORT=1892)) * establish * fundoa * 0
3:客户端命令连接
15-JAN-2008 18:06:44 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=fundoa.glfsoft.com)(CID=(PROGRAM=C:\oracle\product\10.2.0\client_1\bin\exp.exe)(HOST=KOOK2)(USER=Administrator))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.31)(PORT=2360)) * establish * fundoa.glfsoft.com * 0
通过上述的日志情况,可以看出一些端倪。但是不足以应对所有状况。
自己水平不行,继续查吧。找到了logminer的使用。可以用来分析SQL语句了。今天不行了,回头再研究吧。上面的那点东西,已经足够我解决目前的问题了。
做个流水帐。
引用
相信总会有这种情况发生。一个开发团队,有人在开发数据库上误删除和表或者错误的操作。领导追查下来,结果没有人承认,老大说,那个谁呀,就你,别瞅别人了,赶紧给我查出来。
结果你就得研究一下了。谁干的?从哪连过来的,IP多少;用什么客户端;执行啥操作了?
我是DBA吗?不是,但是这公司没有DBA啊,那就未来的吧。研究一下吧。对了,这只是事情的一半。你还得会恢复。这需要你有良好的备份策略。否则就不要谈什么恢复了。
简单分析:
开发中客户端连接过来的动作常是toad,或者是应用程序本身连接过来。异或客户端的终端命令,如exp,imp等动作。
依据上述,逐步来处理。我找到了文件记录客户端的连接日志。就是下面的listener.log
[oracle@kook ~]$ ls $ORACLE_HOME/network/log
listener.log sqlnet.log
以下为抽取的典型的连接的日志文件格式
1:本机应用程序连接
15-JAN-2008 17:15:45 * (CONNECT_DATA=(SID=fundoa)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.1)(PORT=63943)) * establish * fundoa * 0
2:客户端工具连接
15-JAN-2008 17:23:49 * (CONNECT_DATA=(SID=fundoa)(SERVER=DEDICATED)(CID=(PROGRAM=C:\Program Files\Quest Software\Toad for Oracle\TOAD.exe)(HOST=KOOK1)(USER=Administrator))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.23)(PORT=1892)) * establish * fundoa * 0
3:客户端命令连接
15-JAN-2008 18:06:44 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=fundoa.glfsoft.com)(CID=(PROGRAM=C:\oracle\product\10.2.0\client_1\bin\exp.exe)(HOST=KOOK2)(USER=Administrator))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.31)(PORT=2360)) * establish * fundoa.glfsoft.com * 0
通过上述的日志情况,可以看出一些端倪。但是不足以应对所有状况。
自己水平不行,继续查吧。找到了logminer的使用。可以用来分析SQL语句了。今天不行了,回头再研究吧。上面的那点东西,已经足够我解决目前的问题了。
CentOS 5.1(RHEL5 Update1)x86_64系统安装Oracle 10g Release 2(10.2.0.1.0)for Linux x86-64
[
|
2007/12/13 07:18]
|
2007/12/13 07:18]
CentOS 5.1(RHEL5 Update1)x86_64系统安装Oracle 10g Release 2(10.2.0.1.0)for Linux x86-64
简单介绍:用于测试应用,主要用于数据库的备份和恢复的演练。首先通过网络安装操作系统,修改gdm.conf支持xdmcp,然后通过xmanager图形化安装Oracle。
所需软件和文档:
1:文档
http://www.oracle.com/pls/db102/homepage
2:软件
http://www.oracle.com/technology/software/products/database/index.html
filename: 10201_database_linux_x86_64.cpio.gz
Part I 安装操作系统
插点东西,关于远程安装操作系统。服务器端,直接将DVD的ISO挂载到某个安装目录。然后做个软链接
到/var/www的http根目录下。如:http://192.168.101.250/install
同时创建1个kickstart的配置文件。如:http://192.168.101.250/minot.cfg
客户端安装服务器时,不需要光驱,可以直接在U盘启动后,引导提示符下:linux ks=http://192.168.101.250/minot.cfg
再其后的安装中,处了网卡需要设定一下,剩余的全都自动搞定了。可以节省很多时间。如果总是重复安装的话。
如果时间更充裕自己个做个DHCP+TFTP+[NFS FTP HTTP]配合做个网络安装。更省事,可以启动后就可以完成安装。
安装操作系统CentOS 5.1(等效与RHEL5 UPDATE1)
操作系统:CentOS 5.1 主机名:minot.glfsoft.com
ip:192.168.101.247 mac:00:00:00:00:00:00
内存:2048M
分区 文件系统类型 容量大小 挂载点
/dev/hda1 ext3 200M /boot
/dev/hda2 ext3 15G /
/dev/hda3 ext3 10G /home
/dev/hda4 Extended
/dev/hda5 swap 4G swap
/dev/hda6 ext3 44G /opt
安装的选择。可以自己选。以下是我的选择。至于缺失的RPM,后面加了判断方法。
Destop - Gnome
Server
操作系统完成后的一些调整。
1:IPtables开启
2:关闭SElinux
3:NTP 同步指向 210.72.145.44
4:这里插入关于主机名的注意事项:在安装过程中发现主机名对于Oracle的影响很大,至于怎么影响我不清楚。简单来说,尽量安装时保持主机名与services name的一致性。具体操作安装完操作系统,进入/etc/hosts调整。将原本在127内的主机名调整至,主机真实IP的行内。包括主机名和完整主机名。(这个动作也是weblogic里面必须的,否则weblogic无法获取监听,进而只能在127本机进行访问。)
5:更改Yum库/etc/yum.repos.d/,将CentOS-Base.repo关闭更新,将DVDISO添加到CentOS-Media.repo,并UPDATE,便于后来RPM补全的安装。
6:添加中文语系
7:修改版本号/etc/redhat-release,修改为4.4.当初下载10gr2的时候RHEL5还没有出,所以那个时候,Oracle的预判脚本是不支持的。如果你是新下载的10gR2,也许不需要改。我是懒得下载新的了。
Part II Oracle的预安装准备工作
系统完成后,检核必须的RPM包。此处请参考Oracle官方文档关于所需的软件包(具体位置URL)。也就是这个最主要的参考文档的地方。总算这次可以依据文档找全这些包了,真不容易,以前总是缺这个,少那个的。
[root@minot ~]# rpm -q binutils compat-gcc-34 compat-gcc-34-c++ compat-libstdc++-33 control-center gcc gcc-c++ gdbm glibc glibc-common glibc-devel libgcc libgnome libstdc++-devel libXp make sysstat util-linux
[root@minot ~]# yum install compat-gcc-34 compat-gcc-34-c++ compat-libstdc++-33 gcc gcc-c++ glibc-devel libstdc++-devel sysstat libXp
插播几句:当你发现任何提示什么的,少这个库,那个库之类的。可以通过以下yum命令例子,查询这个库属于哪个RPM包,再次之前rpm命令只能查询已安装的。(rpm -qf)
[root@minot ~]# yum whatprovides 库名
以下修改内核参数等文件,已保证Oracle的预安装准备成功。执行如下:
vi /etc/sysctl.conf 行末添加以下内容
# 20071212 add content for oracle install
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
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
执行下述命令。导入刚才写入的参数。不执行,oracle在后面安装前的检测会报警。
sysctl -p
vi /etc/security/limits.conf 行末添加以下内容
# 20071212 add content for oracle install
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
vi /etc/pam.d/login 行末添加以下内容
# 20071212 add content for oracle install
session required pam_limits.so
vi /etc/selinux/config 确保以下内容
SELINUX=disabled
此处再确认一下吧。
Part III 以Oracle 用户安装 Oracle
创建oracle用户,和一些安装目录。
groupadd dba
groupadd oinstall
useradd -g oinstall -G dba -m oracle
passwd oracle
mkdir -p /opt/oracle
chown -R oracle.oinstall /opt/oracle
将oracle的安装文件置于家目录,进行加压。
gzip -dc 10201_database_linux_x86_64.cpio.gz | cpio -div
添加环境变量,定义SID等。
su - oracle
vi .bash_profile
#--------------------------------------
# Set for Oracle10g Install;
#--------------------------------------
trap " " 0 1 2 3 5 9 15
trap clear 0
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=minot
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/usr/X11R6/lib64/
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export LD_ASSUME_KERNEL=2.6.18
export NLS_LANG="Simplified Chinese_china".UTF8
LC_CTYPE=zh_CN.UTF8
LC_ALL=zh_CN.UTF8
LANG=zh_CN.UTF8
umask 022
#
引用环境变量
source ~/.bash_profile
进行安装动作runInstall和dbca.
图形安装过程中的一些注意选项:/runinstall执行后,选择高级安装.
语言选项是加上中文简体和繁体2种。选择仅安装数据库,然后再用DBCA创建数据库。
1归档 2:全是utf8地区中国 语言中文 3:安装后记得激活scott,用于测试
说明:中文utf8环境安装完全没有问题,图形界面。此处不详细描述了。
~/database/runInstaller
dbca
Part IV 安装后的调整dbstart,添加自启动脚本。
在运行$ORACLE_HOME/bin/dbstart时报错,
Failed to auto-start Oracle Net Listene using /ade/vikrkuma_new/oracle/bin/tnslsnr
解决方法:修改dbstart这个文件,找到ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle
su - oracle
vi `which dbstart`
ORACLE_HOME_LISTNER=$ORACLE_HOME
修改/etc/oratab文件
minot:/datas/apps/oracle/product/10.2.0/db_1:Y
创建自启动脚本。
解释一下脚本中的注释行:# chkconfig: 2345 80 05
三组个数字的意义是,“启动模式”、“启动顺序”、“关闭顺序”
oracle 10g在自身的dbstart已经启动了lsnrctl,所以下面的脚本上注释掉了lsnrctl的启动
touch dbora
chmod 700 dbora
vi dbora
#!/bin/bash
#
# chkconfig: 2345 80 05
# description: Oracle 10g Server
# /etc/init.d/dbora
#
# Run-level Startup script for the Oracle Instance, Listener, and
# Web Interface
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=minot
export PATH=$PATH:$ORACLE_HOME/bin
ORA_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
echo -n "Starting Oracle: "
# su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl start"
su $ORA_OWNR -c $ORACLE_HOME/bin/dbstart
touch /var/lock/oracle
su $ORA_OWNR -c "$ORACLE_HOME/bin/emctl start dbconsole"
su $ORA_OWNR -c "$ORACLE_HOME/bin/isqlplusctl start"
echo "OK"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
# su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"
su $ORA_OWNR -c $ORACLE_HOME/bin/dbshut
rm -f /var/lock/oracle
su $ORA_OWNR -c "$ORACLE_HOME/bin/emctl stop dbconsole"
su $ORA_OWNR -c "$ORACLE_HOME/bin/isqlplusctl stop"
echo "OK"
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: `basename $0` start|stop|restart|reload"
exit 1
esac
exit 0
cp dbora /etc/rc.d/init.d
chkconfig --add dbora
chkconfig --list | grep dbora
dbora 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
Part V 一些服务介绍和补充
主要服务启动方式
a:$ORACLE_HOME/bin/dbstart | dbshut
b:$ORACLE_HOME/bin/lsnrctl start | stop 监听器启动|关闭。
c:$ORACLE_HOME/bin/emctl start | stop dbconsole
访问 http://yourIP:1158/em
d:$ORACLE_HOME/bin/isqlplusctl start | stop
访问 http://yourIP:5560/isqlplus
简单介绍:用于测试应用,主要用于数据库的备份和恢复的演练。首先通过网络安装操作系统,修改gdm.conf支持xdmcp,然后通过xmanager图形化安装Oracle。
所需软件和文档:
1:文档
http://www.oracle.com/pls/db102/homepage
2:软件
http://www.oracle.com/technology/software/products/database/index.html
filename: 10201_database_linux_x86_64.cpio.gz
Part I 安装操作系统
引用
插点东西,关于远程安装操作系统。服务器端,直接将DVD的ISO挂载到某个安装目录。然后做个软链接
到/var/www的http根目录下。如:http://192.168.101.250/install
同时创建1个kickstart的配置文件。如:http://192.168.101.250/minot.cfg
客户端安装服务器时,不需要光驱,可以直接在U盘启动后,引导提示符下:linux ks=http://192.168.101.250/minot.cfg
再其后的安装中,处了网卡需要设定一下,剩余的全都自动搞定了。可以节省很多时间。如果总是重复安装的话。
如果时间更充裕自己个做个DHCP+TFTP+[NFS FTP HTTP]配合做个网络安装。更省事,可以启动后就可以完成安装。
安装操作系统CentOS 5.1(等效与RHEL5 UPDATE1)
操作系统:CentOS 5.1 主机名:minot.glfsoft.com
ip:192.168.101.247 mac:00:00:00:00:00:00
内存:2048M
分区 文件系统类型 容量大小 挂载点
/dev/hda1 ext3 200M /boot
/dev/hda2 ext3 15G /
/dev/hda3 ext3 10G /home
/dev/hda4 Extended
/dev/hda5 swap 4G swap
/dev/hda6 ext3 44G /opt
安装的选择。可以自己选。以下是我的选择。至于缺失的RPM,后面加了判断方法。
Destop - Gnome
Server
操作系统完成后的一些调整。
1:IPtables开启
2:关闭SElinux
3:NTP 同步指向 210.72.145.44
4:这里插入关于主机名的注意事项:在安装过程中发现主机名对于Oracle的影响很大,至于怎么影响我不清楚。简单来说,尽量安装时保持主机名与services name的一致性。具体操作安装完操作系统,进入/etc/hosts调整。将原本在127内的主机名调整至,主机真实IP的行内。包括主机名和完整主机名。(这个动作也是weblogic里面必须的,否则weblogic无法获取监听,进而只能在127本机进行访问。)
5:更改Yum库/etc/yum.repos.d/,将CentOS-Base.repo关闭更新,将DVDISO添加到CentOS-Media.repo,并UPDATE,便于后来RPM补全的安装。
6:添加中文语系
7:修改版本号/etc/redhat-release,修改为4.4.当初下载10gr2的时候RHEL5还没有出,所以那个时候,Oracle的预判脚本是不支持的。如果你是新下载的10gR2,也许不需要改。我是懒得下载新的了。
Part II Oracle的预安装准备工作
系统完成后,检核必须的RPM包。此处请参考Oracle官方文档关于所需的软件包(具体位置URL)。也就是这个最主要的参考文档的地方。总算这次可以依据文档找全这些包了,真不容易,以前总是缺这个,少那个的。
[root@minot ~]# rpm -q binutils compat-gcc-34 compat-gcc-34-c++ compat-libstdc++-33 control-center gcc gcc-c++ gdbm glibc glibc-common glibc-devel libgcc libgnome libstdc++-devel libXp make sysstat util-linux
[root@minot ~]# yum install compat-gcc-34 compat-gcc-34-c++ compat-libstdc++-33 gcc gcc-c++ glibc-devel libstdc++-devel sysstat libXp
插播几句:当你发现任何提示什么的,少这个库,那个库之类的。可以通过以下yum命令例子,查询这个库属于哪个RPM包,再次之前rpm命令只能查询已安装的。(rpm -qf)
[root@minot ~]# yum whatprovides 库名
以下修改内核参数等文件,已保证Oracle的预安装准备成功。执行如下:
vi /etc/sysctl.conf 行末添加以下内容
# 20071212 add content for oracle install
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
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
执行下述命令。导入刚才写入的参数。不执行,oracle在后面安装前的检测会报警。
sysctl -p
vi /etc/security/limits.conf 行末添加以下内容
# 20071212 add content for oracle install
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
vi /etc/pam.d/login 行末添加以下内容
# 20071212 add content for oracle install
session required pam_limits.so
vi /etc/selinux/config 确保以下内容
SELINUX=disabled
此处再确认一下吧。
Part III 以Oracle 用户安装 Oracle
创建oracle用户,和一些安装目录。
groupadd dba
groupadd oinstall
useradd -g oinstall -G dba -m oracle
passwd oracle
mkdir -p /opt/oracle
chown -R oracle.oinstall /opt/oracle
将oracle的安装文件置于家目录,进行加压。
gzip -dc 10201_database_linux_x86_64.cpio.gz | cpio -div
添加环境变量,定义SID等。
su - oracle
vi .bash_profile
#--------------------------------------
# Set for Oracle10g Install;
#--------------------------------------
trap " " 0 1 2 3 5 9 15
trap clear 0
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=minot
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/usr/X11R6/lib64/
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export LD_ASSUME_KERNEL=2.6.18
export NLS_LANG="Simplified Chinese_china".UTF8
LC_CTYPE=zh_CN.UTF8
LC_ALL=zh_CN.UTF8
LANG=zh_CN.UTF8
umask 022
#
引用环境变量
source ~/.bash_profile
进行安装动作runInstall和dbca.
图形安装过程中的一些注意选项:/runinstall执行后,选择高级安装.
语言选项是加上中文简体和繁体2种。选择仅安装数据库,然后再用DBCA创建数据库。
1归档 2:全是utf8地区中国 语言中文 3:安装后记得激活scott,用于测试
说明:中文utf8环境安装完全没有问题,图形界面。此处不详细描述了。
~/database/runInstaller
dbca
Part IV 安装后的调整dbstart,添加自启动脚本。
在运行$ORACLE_HOME/bin/dbstart时报错,
Failed to auto-start Oracle Net Listene using /ade/vikrkuma_new/oracle/bin/tnslsnr
解决方法:修改dbstart这个文件,找到ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle
su - oracle
vi `which dbstart`
ORACLE_HOME_LISTNER=$ORACLE_HOME
修改/etc/oratab文件
minot:/datas/apps/oracle/product/10.2.0/db_1:Y
创建自启动脚本。
解释一下脚本中的注释行:# chkconfig: 2345 80 05
三组个数字的意义是,“启动模式”、“启动顺序”、“关闭顺序”
oracle 10g在自身的dbstart已经启动了lsnrctl,所以下面的脚本上注释掉了lsnrctl的启动
touch dbora
chmod 700 dbora
vi dbora
#!/bin/bash
#
# chkconfig: 2345 80 05
# description: Oracle 10g Server
# /etc/init.d/dbora
#
# Run-level Startup script for the Oracle Instance, Listener, and
# Web Interface
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=minot
export PATH=$PATH:$ORACLE_HOME/bin
ORA_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
echo -n "Starting Oracle: "
# su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl start"
su $ORA_OWNR -c $ORACLE_HOME/bin/dbstart
touch /var/lock/oracle
su $ORA_OWNR -c "$ORACLE_HOME/bin/emctl start dbconsole"
su $ORA_OWNR -c "$ORACLE_HOME/bin/isqlplusctl start"
echo "OK"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
# su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"
su $ORA_OWNR -c $ORACLE_HOME/bin/dbshut
rm -f /var/lock/oracle
su $ORA_OWNR -c "$ORACLE_HOME/bin/emctl stop dbconsole"
su $ORA_OWNR -c "$ORACLE_HOME/bin/isqlplusctl stop"
echo "OK"
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: `basename $0` start|stop|restart|reload"
exit 1
esac
exit 0
cp dbora /etc/rc.d/init.d
chkconfig --add dbora
chkconfig --list | grep dbora
dbora 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
Part V 一些服务介绍和补充
主要服务启动方式
a:$ORACLE_HOME/bin/dbstart | dbshut
b:$ORACLE_HOME/bin/lsnrctl start | stop 监听器启动|关闭。
c:$ORACLE_HOME/bin/emctl start | stop dbconsole
访问 http://yourIP:1158/em
d:$ORACLE_HOME/bin/isqlplusctl start | stop
访问 http://yourIP:5560/isqlplus
数据操作语句
[
|
2007/12/10 10:47]
|
2007/12/10 10:47]
清空表数据
delete from table
导数据
insert into tb1 select * from tb2
备份表
create table newtb as select * from tab
delete from table
导数据
insert into tb1 select * from tb2
备份表
create table newtb as select * from tab




