检查Linux系统配置(内存、硬盘)神马的就不说 ,一般都是满足的,除非是哥们你用自己电脑搞着玩。。。
安装oracle 10g 数据库
1、 下载oracle文件到/root目录并解压 cd /root wget –c http://nadmin.haott.com/oracle_linux32.zip (此处我的安装包在另一台服务器上,故需下载到被安装的服务器) unzip ./oracle_linux32.zip(解压)
2、 参数设置 OS参数要求vi /etc/sysctl.conf , 在行末添加以下内容 kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 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 运行sysctl -p应用以上参数, /sbin/sysctl -p ,结果如下:
|
vi /etc/security/limits.conf 行末添加以下内容: #use for oracle 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 注意:如果你的操作系统是x64的则为session required /lib64/security/pam_limits.so 否则系统拒绝登录
vi /etc/selinux/config 确保以下内容,关闭SELIINUX SELINUX=disabled
如果是c shell,则环境变量文件 /etc/csh.login的修改值如下(此处若不确定,跳过): if ( \$USER == "oracle" ) then limit maxproc 16384 limit descriptors 65536 umask 022 endif
在/etc/profile里添加如下行 vi /etc/profile export LIBXCB_ALLOW_SLOPPY_LOCK=true if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi umask 022 fi 使用命令source profile使环境变量生效 source /etc/profile
3、 创建用户及组 groupadd oinstall groupadd dba useradd -g oinstall -G dba oracle passwd oracle
4、 创建目录 mkdir -p /u01/app/oracle/product/10.2.0/db_1 chown -R oracle.oinstall /u01 chmod -R 755 /u01
5、 创建oracle profile文件 su – oracle vi /home/oracle/.bash_profile 用oracle用户编辑加入以下内容 #Oracle Settings umask 022; export ORACLE_BASE=/u01/app/oracle; export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_SID=TSH1; export PATH=$ORACLE_HOME/bin:$PATH; export LANG=en_US.UTF-8 source .bash_profile 然后再设置本地字符集型export LANG=en_US.UTF-8
6、 安装依赖包 (此处选择在线安装,因为某个包可能会依赖其它几个包) 以root用户运行 su root cd /etc/yum.repos.d wget http://www.linuxidc.com/files/2011/05/06/CentOS-Base.repo 通过yum在线安装 yum -y install openmotif yum -y install compat-db yum -y install compat-gcc-34 yum -y install compat-libstdc++-33 yum -y install compat-libstdc++-296 yum -y install sysstat yum -y install libXp libaio yum -y install libaio-devel yum -y install compat-libgcc* yum -y install compat-gcc* --skip-broken yum -y install libXp yum -y install libXtst
7、 修改vi /etc/redhat-release文件,如下: Red Hat Enterprise Linux AS release 4 (Nahant Update 4)
8、 配置inittab vi /etc/inittab 把 id:5:initdefault: 修改为 id:3:initdefault 注意:改为3是没有图形化界面的 5是有的
9、配置静态ip (此步可选择跳过,我安装时没有执行) linux系统在安装时若无更改,系统的网络默认为DHCP,若想将IP设置为静态的IP该怎么办呢?如安装 Oracle时,就被要求配置静态IP(Oracle吃内存,吃硬盘容量,需要一堆rpm包支持,IP也是那么的挑剔,苦哇~)。 今天在自己的笔记本上对RedHat Linux进行了上网配置,一切还算顺利。原来在Linux下配置网络也挺简单的。 步骤如下: 配置文件位于: /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ROOTPROTO=static HWADDR=00:0C:29:A3:2C:FB ONBOOT=yes NETMASK=255.255.255.0 -- redhat linux 子网掩码 IPADDR=192.168.0.6 -- redhat linux 的IP地址 GATEWAY=192.168.0.1 -- redhat linux的默认网关跟windows主机的默认网关是一致的 TYPE=Ethernet USERCTL=no IPV6INIT=no PEERDNS=yes 将上面的IPADDR和GATEWAY换成自己的就可以了。也可以设置MAC的逻辑地址(地址欺骗),在上面的配置文件中加一行 HWADDR=你想填的MAC地址。 最后运行两个命令使新的设置生效 /sbin/ifdown ifcfg-eth0 /sbin/ifup ifcfg-eth0
还需配置DNS的主机名为 localhost.localdomain 主DNS解析域名为:202.96.209.5 第二DNS为:202.96.209.133 DNS 搜寻路径:ocaldomain 不然在安装的过程中同样会报checking network configuration requirements is: Not executed的错误提示 还需修改 vi /etc/hosts 文件 在安装oracle 10g的过程中,遇到了checking network configuration requirements is: Not executed的错误提示。发现是 /etc/hosts中没有指定静态ip地址导致,检测/etc/hosts发现果真如此,修改如下配置 127.0.0.1 localhost.localdomain localhost #::1 192.168.18.192 localhost6.localdomain6 localhost6 ---192.168.18.192是linux redhat 的ip地址不是windows ip 地址 重新检测,显示正常 需要将虚拟机连接方式设置为:桥接,而不是NAT,Host-only 的连接方式,不然也不能上网
10、 配置enterprise.rsp文件 mv /root/database /home/oracle/ chown –R oracle:oinstall /home/oracle/database vi /home/oracle/database/response/enterprise.rsp 修改以下值 RESPONSEFILE_VERSION=2.2.1.0.0 UNIX_GROUP_NAME="oinstall" ORACLE_HOME_NAME="OraDb10g_home1" ORACLE_HOME="/u01/app/oracle/product/10.2.0/db_1" SHOW_INSTALL_PROGRESS_PAGE= true SHOW_END_OF_INSTALL_MSGS= true COMPONENT_LANGUAGES={"zh_CN"} s_nameForDBAGrp= "dba" s_nameForOPERGrp="dba" INSTALL_TYPE="EE" n_configurationOption=3 RESTART_SYSTEM=false RESTART_REMOTE_SYSTEM=false 说明:这几项要视情况而定比如说 UNIX_GROUP_NAME="oinstall" 和s_nameForDBAGrp= "dba" s_nameForOPERGrp="dba"还有环境变量都要参照前面自己定义好的来
11、正式安装 su - oracle /home/oracle/database/runInstaller -silent -responseFile /home/oracle/database/response/enterprise.rsp
12、接下来按提示操作, root身份登录 su root sh /u01/app/oracle/oraInventory/orainstRoot.sh sh /u01/app/oracle/product/10.2.0/db_1/root.sh
13、安装网络监听器 vi /home/oracle/database/response/netca.rsp 修改以下值: INSTALL_TYPE=""custom"" #安装的类型 LISTENER_NUMBER=1 #监听器数量 LISTENER_NAMES={"LISTENER"} #监听器的名称列表 LISTENER_PROTOCOLS={"TCP;1521"} # 监听器使用的通讯协议列表 LISTENER_START=""LISTENER"" # 监听器启动的名称
su - oracle $ORACLE_HOME/bin/netca /silent /responseFile /home/oracle/database/response/netca.rsp 注意:此处可能会有错误 oracle 需要的软件包不全。 请根据 1 中列出的软件包,确保所有的软件包都已经正确安装( 2 ) 6 中对 gennttab 文件的修改不正确,本人就是没有去掉 n 后的空格导致了该错误。 如下报的缺少libXtst包 Exception in thread "main" java.lang.UnsatisfiedLinkError: /u01/app/oracle/product/10.2.0/db_1/jdk/jre/lib/i386/libawt.so: libXtst.so.6: cannot open shared object file: 用yum下载安装即可解决 [root@oraclebk ~]# yum install libXp
14、修改 dbstart vi $ORACLE_HOME/bin/dbstart ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle 改为: ORACLE_HOME_LISTNER=$ORACLE_HOME 确保数据库启动时,网络监听器同时启动。
15、增加数据实例 vi /home/oracle/database/response/dbca.rsp 根据数据库建立方式的不同编辑不同的数据库库选项。 比如在本次安装过程中设置了下列参数:( 注意下面参数视情况而定啦不要照抄该选项原文件都有说明的) RESPONSEFILE_VERSION = "10.0.0" OPERATION_TYPE = "createDatabase" GDBNAME = "orcl" # 数据库全局名称 SID = "TSH1" #这个sid 必须要和前面的/home/oracle/.bash_profile文件中的sid相同 # 注意:一定要注意上面两个变量设置的两个值是不同的,但大多数情况下设置是相同的,相同值我没有测试,感兴趣的可以试一下(相同值会更容易理解) TEMPLATENAME = "New_Database.dbt" SYSPASSWORD = "system" # SYS 用户的初始密码 SYSTEMPASSWORD = "system" #SYSTEM 用户的初始密码 DATAFILEDESTINATION ="/u01/app/oracle/oradata/" RECOVERYAREADESTINATION="/u01/app/oracle/flash_recovery_area" STORAGETYPE=FS CHARACTERSET = "ZHS16GBK" #数据库字符集(中文为 ZHS16GBK ) MEMORYPERCENTAGE = "40" SCRIPTDESTINATION ="/u01/app/oracle/admin/ora10g/scripts" EMCONFIGURATION=”LOCAL” SYSMANPASSWORD = "system" DBSNMPPASSWORD = "system"
su – oracle $ORACLE_HOME/bin/dbca -silent -responseFile /home/oracle/database/response/dbca.rsp 执行结果: Creating and starting Oracle instance 1% complete 4% complete Creating database files 8% complete Creating data dictionary views 9% complete 10% complete 12% complete 13% complete 14% complete 15% complete 17% complete 18% complete 20% complete 21% complete Adding Oracle JVM 22% complete 28% complete 34% complete 40% complete 42% complete Adding Oracle Data Mining 43% complete 44% complete 46% complete Adding Oracle Text 47% complete 49% complete 50% complete Adding Oracle XML DB 52% complete 53% complete 54% complete 58% complete Adding Oracle Intermedia 59% complete 60% complete 71% complete Adding Oracle OLAP 72% complete 73% complete 74% complete 75% complete Adding Oracle Spatial 76% complete 77% complete 78% complete 83% complete Adding Enterprise Manager Repository 84% complete 86% complete 88% complete Completing Database Creation 89% complete 90% complete 91% complete 95% complete 99% complete 100% complete Look at the log file "/u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/dbca/orcl/orcl.log" for further details. 最后提示创建成功后 数据库创建成功后需要修改一些信息: vi /etc/oratab THS1:/ u01/app/oracle/product/10.2.0/db_1:N 改为: TSH1:/u01/app/oracle/product/10.2.0/db_1:Y 保证数据库实例能自动启动。
16、创建数据库和监听器自启动的服务 su - root cd /etc/rc.d/init.d/ touch oradbstart vi oradbstart 脚本内容如下: #!/bin/bash # chkconfig: 345 99 10 # description: Startup Script for Oracle Databases # /etc/rc.d/init.d/oradbstart export ORACLE_BASE=/u01/app/oracle/ export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1 export ORACLE_SID=TSH1 export PATH=$ORACLE_HOME/bin:$PATH case "$1" in start) su oracle -c $ORACLE_HOME/bin/dbstart touch /var/lock/oracle echo "OK" ;; stop) echo -n "Shutdown Oracle: " su oracle -c $ORACLE_HOME/bin/dbshut rm -f /var/lock/oracle echo "OK" ;; *) echo "Usage: 'basename $0' start|stop" exit 1 esac exit 0
17、修改数据脚本的权限 su - root chown oracle.oinstall /etc/rc.d/init.d/oradbstart chmod 775 /etc/rc.d/init.d/oradbstart
18、把oradbstart 服务添加到 chkconfig 中(此处可不执行) chkconfig --add oradbstart chkconfig --list oradbstart
19、启动数据库实例 su - oracle $ORACLE_HOME/bin/dbstart
20、测试: su - oracle sqlplus /nolog SQL> connect /as sysdba SQL> startup 测试成功。
21、修改两个配置文件(此处比较重要,如果不改,可能在本地用plsql远程连接数据库连接失败) 修改tnsnames.ora文件 vi /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = AY1311041658000357deZ)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = HOSTNAME)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = PLSExtProc) ) ) 改为: ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 115.29.147.229)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )
EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 115.29.147.229)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = PLSExtProc) ) ) 注:标红部分请替换实际ip
修改listener.ora文件 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1) (PROGRAM = extproc) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = AY1311041658000357deZ)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0)) ) ) 改为: SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME = orcl) (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1) (SID_NAME = TSH1) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST=115.29.147.229)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0)) ) ) 注:标红部分为修改部分,请替换实际ip
22、重启oracle su – oracle -bash-3.2$ sqlplus "/as sysdba" SQL*Plus: Release 10.2.0.1.0 - Production on Sat Dec 7 15:44:19 2013 SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> quit -bash-3.2$ $ORACLE_HOME/bin/lsnrctl stop -bash-3.2$ $ORACLE_HOME/bin/lsnrctl start -bash-3.2$ sqlplus "/as sysdba" SQL> startup open SQL> quit
完成。
截止到上面其实oracle安装已经完成,下面代码就是创建表空间、用户、数据库导入了,基于完整性,一并贴出来。
23、用系统用户创建表空间、用户等 su - oracle sqlplus “/as sysdba” #创建表空间 create TEMPORARY TABLESPACE AFINITOR_TEMP TEMPFILE '/u01/app/oracle/oradata/orcl/AFINITOR_TEMP.ORA' SIZE 32M AUTOEXTEND ON NEXT 32M MAXSIZE 2048M EXTENT MANAGEMENT LOCAL; #创建临时表空间 create TABLESPACE AFINITOR LOGGING DATAFILE '/u01/app/oracle/oradata/orcl/AFINITOR.DBF' SIZE 32M AUTOEXTEND ON NEXT 32M MAXSIZE 2048M EXTENT MANAGEMENT LOCAL; #创建用户 create user afinitor identified by afinitor default tablespace AFINITOR temporary tablespace AFINITOR_TEMP; #给用户授权 grant resource,connect,EXP_FULL_DATABASE,IMP_FULL_DATABASE,CREATE SESSION to afinitor; grant dba to afinitor; #授权导入导出 GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,DBA,CONNECT,RESOURCE,CREATE SESSION TO afinitor;
24、数据导入 cd /home wget –c http://nadmin.haott.com/afinitor_db.dmp (此处是在另一服务器下载所需要的数据库dmp文件) su – oracle imp afinitor/afinitor@orcl file=/home/afinitor_data_20131206.dmp full=y ignore=y #导入命令 |