注意:可以从 OTN 下载 Oracle 数据库 10g.Oracle 提供了一个免费的开发和测试许可. 但不提供支持,且该许可不允许用于生产目的. 一.资源需要: 至少1024 MB物理内存 1024-2048 需1.5倍的交互空间 2048-8192 需1倍的交互空间 8192- 需0.75倍的交互空间 至少400 MB /tmp 临时目录空间 oracle软件需要1.5 GB 到 3.5 GB 磁盘空间 默认数据库需要1.2 GB 二.虚拟机分区情况: 三.查看系统资源相关语句: uname命令介绍 1.名称:uname 2.适用对象:所有使用者 3.命令格式:uname [选项]... 4.作用:打印出系统信息 5.参数详解: -a, --all #打印出所有信息,如果-p,-i的结果为unknown,将不显示-p,-i的结果 -s, --kernel-name #打印出内核名称 -n, --nodename #打印出网络上主机名称 -r, --kernel-release #打印出操作系统发行号 -v, --kernel-version #打印出操作系统的版本 -m, --machine #打印出电脑硬件类型 -p, --processor #打印出处理器类型 -i, --hardware-platform #这个不懂什么意思 高手解释下 -o, --operating-system #打印出运行的系统 四.查看系统配置: cat /etc/issue uname -r grep MemTotal /proc/meminfo grep SwapTotal /proc/meminfo grep "model name" /proc/cpuinfo free df -k /tmp df –k 五.安装前的检查和准备工作:(下面是我在RHEL4.0上面安装oracle时需要按章的软件包,一定按顺序安装) Glibc-kernheaders-2.4-9.1.87.i386.rpm Glibc-headers-2.3.4-2.i386.rpm Glibc-devel-2.3.4-2.i386.rpm Compat-gcc-32-3.2.3-47.3.i386.rpm Compat-libstdc -33-3.2.3-47.3.i386.rpm compat-gcc-32-c -3.2.3-47.3.i386.rpm compat-libgcc-296-2.96-132.7.2.i386.rpm compat-libstdc -296-2.96.132.7.2.i386.rpm gcc-3.4.3-9.EL4.i386.rpm libstdc -devel-3.4.3-9.EL4.i386.rpm gcc-c -3.4.3-9.EL4.i386.rpm libaio-0.3.102-1.i386.rpm libaio-devel-0.3.102-1.i386.rpm openmotif21-2.1.30-11.RHEL4.2.i386.rpm zlib-devel-1.2.1.2-1.i386.rpm freetype-devel-2.1.9-1.i386.rpm fontconfig-devel-2.2.3-7.i386.rpm pkgconfig-0.15.0-3.i386.rpm xorg-x11-devel-6.8.1-23.EL.i386.rpm xorg-x11-deprecated-libs-devel-6.8.1-23.EL.i386.rpm compat-libcwait-2.0-2.i386.rpm(补丁包) compat-oracle-rhel4-1.0-5.i386.rpm(补丁包) 1.创建数据库安装的准备工作: ⑴ 创建user/group; groupadd dba groupadd oinstall useradd oracle -g oinstall -G dba passwd oracle 如果nobody用户不存在(id nobody命令查看),则创建: useradd nobody ⑵ 建立oracle安装文件夹(sample); mkdir -p /opt/oracle/product/10g mkdir /opt/oracle/database chown -R oracle.oinstall /opt/oracle chmod 755 -R /opt/oracle 2. 配置环境变量; 要使用 Oracle 产品,应该或设置几个环境变量. 如果您在同一服务器上安装了多个 Oracle 产品或数据库,则 ORACLE_HOME、ORACLE_SID 和 PATH 变量可能会更改. ORACLE_BASE 变量不应更改,并可以在需要时在您的登录配置文件中设置它.Oracle 提供了一个称作 oraenv 的实用程序来设置其他变量. 对于数据库服务器,建议设置以下环境变量: 使用Oracle用户登陆: su oracle vi ~/.bash_profile 以下是配置文件的内容 export ORACLE_BASE=/opt/oracle/ export ORACLE_HOME=/opt/oracle/product/10g export ORACLE_SID=ge01 export PATH=$ORACLE_HOME/bin:$PATH # 安装好后再取消屏蔽这些环境变量设置 # export TNS_ADMIN=$ORACLE_HOME/network/admin #export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #export LANG=AMERICAN_AMERICA.ZHS16GBK 配置好后用 source .bash_profile 命令使配置生效 3.置系统参数; Oracle 数据库 10g 需要以下所示的内核参数设置. 其中给出的是最小值,因此如果您的系统使用的值较大,则不要更改它. 切换到root用户: su root a) 修改/etc/sysctl.conf(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 六.解压缩Oracle10G的安装文件 : 1. Oracle 用户登录 (1) 简化过程(以oracle登录,释放安装文件,使用更少的磁盘空间,速度更快) 在/tmp下解压缩10201_database_linux32.zip: unzip 10201_database_linux32 2.开始安装oracle 以oracle用户登录系统,进行Oracle的安装: cd /tmp/database (或者你解压缩安装程序包的目录) ./runInstaller 过一会儿就会出现Oracle的安装界面 注意:一定在linux图形界面下安装oracle,否则会报错! 1、选择advance install 2、数据库home设置为/opt/oracle/product/10g 3、数据库全局名称设置为ge01 4、数据库字符集选Simplified Chinese ZHS16GBK 5、其他用默认设置! 注意:安装过程中会提示以root用户登陆执行一些脚本 ,执行后再按“ok”按钮继续安装.
3、登陆并启动数据库的操作. [oracle@oracle oracle]$ lsnrctl start [oracle@oracle oracle]$ sqlplus /nolog SQL*Plus: Release 10.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> shutdown immediate 关闭数据库 (OR "dbshut" command) Database closed. Database dismounted. ORACLE instance shut down. 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. 4.dbstart脚本修改 数据库创建完成后,修改vi /etc/oratab,把orcl:/opt/oracle/oracle/product/10g:N那一行的N改成Y, 然后执行dbstart启动数据库数据库可能无法启动,报告Can’t find init file …的错误,需要复制一个初始化文件: cp /opt/oracle/admin/ge01/pfile/init.ora.* /opt/oracle/product/10.2.0/dbs/initge01.ora 重新执行dbstart就可以了. 修改vi /opt/oracle/product/10g/bin/dbstart中ORACLE_HOME_LISTNER=/opt/oracle/oracle/product/10g/ vi /etc/rc.local 加入下面一行 起动ORACLE ON system boot /opt/oracel/product/10g/bin/dbstart 5. 编写启动脚本(OPTION) 为了方便管理,可以写一个启动脚本ora10g: 以root身份进入,编写以下脚本: #!/bin/bash # # chkconfig: 2345 91 19 # description: starts the oracle listener and instance status() { 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 ora10g ln -s /opt/oracle/product/10.2.0/bin/ora10g /etc/rc.d/init.d/ 即可在以后以root身份运行/etc/rc.d/init.d/ora10g start |stop 来管oracle的启动和停止了. 如果要将这个脚本加入到系统中使其可开机运行,那么要运行以下命令: chkconfig --level 345 ora10g on 或者可在/etc/rc.d/rc.local中加入如下: su - oracle -c "lsnrctl start" su - oracle -c "dbstart" 6.关于数据库删除重新安装的问题: 把ORACLE安装目录删除及/etc/ora*.*删除就行了 #rm –f /etc/ora*.* 7.修改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 set SQL> ALTER DATABASE character set INTERNAL_USE zhs16gbk; # 使用INTERNAL_USE可以跳过超集的检查,ALTER DATABASE character set INTERNAL_USE Database 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 ZHS16GBK 8. oracle database备份 (1)vi bachupDb.sh #!/bin/sh #oracle用户下 #crontab -e 增加 "35 4 * * * /home/oracle/dbbackup/backupDb.sh",保存后自动安装 #或echo "35 4 * * * /home/oracle/dbbackup/backupDb.sh" > backupDb.cron #crontab backupDb.cron ############# #@tip 修改为本机数据库home目录 export ORACLE_HOME=/opt/oracle/product/10g export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin # 注意字符集和数据库的字符集一致,以避免字符集转化失败 export NLS_LANG=AMERICAN_AMERICA.zhs16gbk #@tip 125修改为要备份的oracle的ip地址的一段 dmpfile="`echo ~/`dbbackup/gedb_`date %w`.dmp" logfile="`echo ~/`dbbackup/gedb_`date %w`.log" if [ -w $dmpfile ] then echo "rm -f $dmpfile" rm -f "$dmpfile" fi #@tip ip地址修改为要备份的oracle的主机地址 exp USERID=gedb/gedb@10.248.1.5/ge01 file=$dmpfile log=$logfile owner=gedb grants=y (2)copy bachupDb.sh 到slave oracle srever 相应目录, chown oracle.oinstall bachupDb.sh chmod 744 bachupDb.sh vi bachupDb.sh 以符合安装情况 (3)以oracle user role crontab -e 35 4 * * * /home/oracle/dbbackup/backupDb.sh 9. restore oracle backup su - oracle imp USERID=gedb/gedb file=gedb_6.dmp log=implogfile commit=y grants=y full=y |