本文档详细说明AS4下Oracle10g服务器端的安装和配置,包括有关系统配置、开机自启动设置、定时备份、手工导入等,为以后的安装和维护提供方便。
内部文档请不要随便外传。
1.配置系统内核参数以满足oracle需求
通过vi /etc/sysctl.conf语句在/etc/sysctl.conf文件中加入
kernel.shmmax=536870912
net.core.rmem_max=262144
net.core.rmem_default=262144
net.core.wmem_max=262144
net.core.wmem_default=262144
net.ipv4.ip_local_port_range=1024 65000
kernel.sem=250 32000 100 128
修改完毕,保存文件:
Ctrl + C
:wq
2.设置环境变量
●通过vi /etc/profile语句编辑/etc/profile
# Oracle Home
export ORACLE_BASE=/home/oracle/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=ora9i
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export LC_CTYPE=en_US.UTF-8
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
修改完毕,保存文件:
Ctrl + C
:wq
●重启设备
●注意环境变量路径设置的正确性
3.安装过程及注意事项
●最好不要在光盘上安装,拷到服务器硬盘上的/home/database/目录下安装;
●安装linux系统时交换分区swap space大小给4G;过大会导致warning,过小会报错导致安装不成功;
●若是在以前装过oracle的机器上安装,安装前到/home/oracle/oracle/product
/10.2.0/db_1/bin/目录下运行dbca,删除所有已有的数据库;
●然后到/home/oracle/下删除所有文件;
●创建oracle用户:
useradd oracle -p dspboss
# adduser oracle
# passwd oracle
●用oracle用户安装,根据界面提示一步一步操作:
# su – oracle
●运行runInstaller前,保证服务器端已经接好显示器,设置DISPLAY语句为:
export DISPLAY=":0.0"
xhost +
(需要在服务器上运行 用root用户和oracle用户均执行)出现access control
disabled, clients can connect from any host表示终端可以显示。
●cd /home/database/运行./runInstaller
●安装过程中不要创建数据库
●安装完成后,/etc/profile中的内容会被安装程序修改,如果数据库不能启动,则
需要检查此文件的内容,确保环境变量的正确性。
4.创建数据库
安装完oracle后,到/home/oracle/oracle/product/10.2.0/db_1/bin/目录下运行dbca建portal数据库,命令dbca运行后是oracle创建数据库的图形界面,按照提示一步一步创建即可。
5.设置ORACLE自启动
●自启动ORACLE文件为root目录下的startOracle.sh,停止ORACLE文件为root目录下的stopOracle.sh;
●chmod 777 /root/*.sh;
●到/etc/rc.local中加入/root/startOracle.sh即可;
●重启设备。
注:/root/startOracle.sh的内容如下
-------------------------------------------------
#!/bin/sh
echo "begin to start oracle"
su - oracle -c "lsnrctl start"
# su - oracle -c "agtctl start"
su - oracle -c "sqlplus /nolog" < startup open exit ------------------------------------------------- 6.创建用户 以创建用户名为dsp,密码为dsp为例: -------------------------------------------------------------------------------------- [root@tvod6 rc5.d]# su - oracle -bash-3.00$ sqlplus /nolog SQL*Plus: Release 10.2.0.1.0 - Production on Wed May 16 12:06:40 2007 Copyright (c) 1982, 2005, Oracle. All rights reserved. SQL>conn /as sysdba SQL>startup 创建用户dsp: SQL>create user dsp identified by dsp default tablespace users temporary tablespace TEMP; User created 注:创建用户时,应该定义它的表空间(default tablespace),否则,它会使用系统表空间(system tablespace)。 授权用户: SQL>grant connect,resource,dba to dsp; Grant succeeded 提交: SQL>commit; Commit complete -------------------------------------------------------------------------------------- 用dsp用户登录后show user即可看到当前用户即为dsp。 7.解决中文字符(比较危险的办法) SQL> update props$ set value$='ZHS16GBK' where name='NLS_CHARACTERSET'; 1 row updated. SQL> commit; Commit complete. 重启数据库 SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup ORACLE instance started. 8.设置定时备份 设置在每天零点备份数据库里的数据,打包压缩后在零点三十分使用ftp工具(lftp)上传到指定服务器上。 终端提示符下输入: # mkdir /home/oracle/oracle/backup/script 建立备份脚本存储目录 # mkdir /home/oracle/oracle/backup/dmpbk 用于存储备份数据 Script目录下vi backdb.sh,内容如下: ------------------------------------------------------------------------------- #su - oracle -c "sqlplus /nolog" #connect / as sysdba #ALTER TABLESPACE USERS BEGIN BACKUP #!cp USERS $ORACLE_HOME/back/db/ #ALTER TABLESPACE USERS END BACKUP #alter database backup controlfile to `date "+%Y-%M-%d"` reuse; #!eibase)les #`ls $ORACLE_HOME/back/db/arch*.dbf`;export files export FILE_N=`date "+%Y-%m-%d"` su - oracle -c "/home/oracle/oracle/product/10.2.0/bin/exp dsp/dsp@ora9i file=/home/oracle/oracle/backup/dmpbk/${FILE_N}.dmp full=yes" chmod 777 /home/oracle/oracle/backup/dmpbk -Rf ------------------------------------------------------------------------------- 注: exp为oracle的热备份命令。 Ora9i是建立的数据库,exp文件格式为exp user/passwd@ora9i file=... 生成的dmp文件文件名格式为yy-mm-dd.dmg如2007-07-24.Dmp,存储路径为/home/oracle/oracle/backup/dmpbk/。 Root用户登录,编辑root的crontab文件。终端输入: # su - # crontab -e 编辑为: ------------------------------------------------------------------------------- 00 00 * * * sh /home/oracle/oracle/backup/script/backdb.sh ------------------------------------------------------------------------------- 即可。 注1:Crontab文件格式说明 # Use the hash sign to prefix a comment # +---------------- minute (0 - 59) # | +------------- hour (0 - 23) # | | +---------- day of month (1 - 31) # | | | +------- month (1 - 12) # | | | | +---- day of week (0 - 7) (Sunday=0 or 7) # | | | | | # * * * * * command to be executed 注二(未解决): 不能通过建立oracle用户的crontab文件实现,此时会报错:Standard in must be a tty. 如果要建立oracle用户的crontab文件则需要将oracle的环境变量加到脚本中,且在cron中不能使用“su -”,必须另外调用脚本。 9数据库的导入 当数据库崩溃或数据不完整时,需要导入备份的数据. 数据库的备份导入前,需要先对备份的数据进行解压,并拷贝到指定目录,然后在进行导入指令。 解压: [root@localhost root]#tar zxvf *.tar.gz 生成*.dmp文件 拷贝到指定目录: [root@localhost root]#cp *.dmp /home/oracle 数据导入: [root@localhost root]# su – oracle [oracle@localhost oracle]$ imp 新用户名/密码 file=*.dmp fromuser=导出数据库的用户名 touser=新用户名 commit=Y ignore=Y 比较好的更改字符集的办法 将数据库启动到RESTRICTED模式下做字符集更改: $sqlplus /nolog SQL> conn /as sysdba Connected. SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup mount ORACLE instance started. Total System Global Area 236000356 bytes Fixed Size 451684 bytes Variable Size 201326592 bytes Database Buffers 33554432 bytes Redo Buffers 6678 bytes Database mounted. 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> ALTER DATABASE CHARACTER SET ZHS16GBK;(problem) SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK; Database altered. SQL> select * from v$nls_parameters;(查看语句) Shutdown->Open 从一个处于关闭(shutdown) 状态,到打开(open)一个Oracle 数据库包括以下三步: 1)创建一个Oracle 实例(nomount,非安装阶段)。 2)由实例安装数据库(mount,安装阶段)。 3)打开数据库(open,打开阶段)。 启用oracle 归档模式 在archivelog模式与noarchivelog模式间切换 step1:更改数据库参数,设置LOG_ARCHIVE_DEST_1 参数指向正确位置,设置LOG_ARCHIVE_START 参数为TRUE step2:SQL>shutdown immediate step3:SQL>startup mount step4:SQL>alter database archivelog; step5:SQL>alter database open; 切换回noarchivelog 模式 step2:SQL>shutdown step3:SQL>startup mount step4:SQL>alter database noarchivelog; step5:SQL>alter database open; 显示 SQL>archive log list 在归档模式下恢复数据 recover database using backup controlfile; linux 环境变量的配置 /etc/profile export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC export JAVA_HOME=/usr/local/jdk1.5.0_15 export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar export ANT_HOME=/usr/local/apache-ant-1.7.0 export CATALINA_HOME=/usr/local/apache-tomcat-6.0.16 export TOMCAT_HOME=/usr/local/apache-tomcat-6.0.16 export GERONIMO_HOME=/usr/local/geronimo-tomcat6-javaee5-2.1.4 export PATH=$PATH:$JAVA_HOME/bin:$ANT_HOME/bin:$CATALINA_HOME/bin:$GERONIMO_HOME/bin #Oracle Home export ORACLE_BASE=/home/oracle/oracle export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 export ORACLE_SID=ora9i export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib export LC_CTYPE=en_US.UTF-8 export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK linux 自启动配置 /etc/rc.local export JAVA_HOME=/usr/local/jdk1.5.0_15 export ANT_HOME=/usr/local/apache-ant-1.7.0 export CATALINA_HOME=/usr/local/apache-tomcat-6.0.16 export TOMCAT_HOME=/usr/local/apache-tomcat-6.0.16 export PATH=$PATH:$JAVA_HOME/bin:$ANT_HOME/bin:$CATALINA_HOME/bin /usr/local/apache-tomcat-6.0.16/bin/startup.sh /usr/local/geronimo-tomcat6-javaee5-2.1.4/bin/startup.sh