在线安装

在线安装是使用Docker安装Oracle,简单快捷
首先确保Docker安装成功

1 拉取Oracle镜像

  1. docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

这个拉取时间有点长,所以需要耐心等待

2 查看拉取的镜像

  1. docker images

image.png

3 运行Oracle镜像

  1. docker run -d -p 9090:8080 -p 1521:1521 registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

解释命令:
将容器中的Oracle XE 管理界面的8080端口映射为本机的9090端口,将Oracle XE的1521端口映射为本机的1521端口

3 运行Oracle镜像

进入控制台设置用户信息

  1. docker exec -it 容器ID /bin/bash

登录sqlplus,此处发现sqlplus命令不可用,所以需要进行相关配置,操作步骤如下

4 加载环境变量

  1. source /home/oracle/.bash_profile

5 登录sqlplus

image.png

6 配置Oracle

配置环境变量

  1. export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
  2. export ORACLE_SID=helowin
  3. export PATH=ORACLEHOME/bin:PATH

建立软连接

  1. ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

7 用户配置

切换至Oracle

  1. su oracle

登录sqlplus并修改sys、system用户密码

  1. alter user system identified by system;
  2. alter user sys identified by sys;

以上是给system设置密码为system,sys设置密码为sys

离线静默安装Oracle

1.操作系统及oracle版本

Linux版本:CentOS release 6.5
Oracle版本:1.ORACLE11G
2.linux.x64_11gR2_database_1of2.zip

下载地址:wget http://v.yingsun.net/cobra/download/linux.x64_11gR2_database_1of2.zi 3.linux.x64_11gR2_database_2of2.zip

下载地址:wget http://v.yingsun.net/cobra/download/linux.x64_11gR2_database_2of2.zip

2.硬件检测

物理内存不少于1G
硬盘可以空间不少于5G
Sqap分区空间不少于2G
支持256色以上显卡
Cpu主频不少于550mHZ

  1. cat /etc/issue ---查看linux系统
  2. Uanme -r
  3. Grep MemTotal /proc/meminfo
  4. Grep SwapTotal /proc/meminfo
  5. Grep model name /proc/cpuinfo
  6. Free
  7. df -k /tmp

3.检查安装依赖系统包

操作系统依赖的具体包,请参考官方安装文档。

以下为 Asianux 3, Oracle Linux 5, Red Hat Enterprise Linux 5, CentOS 5 操作系统依赖的包
binutils-2.17.50.0.6

compat-libstdc++-33-3.2.3

compat-libstdc++-33-3.2.3 (32 bit)

elfutils-libelf-0.125

elfutils-libelf-devel-0.125

gcc-4.1.2

gcc-c++-4.1.2

glibc-2.5-24

glibc-2.5-24 (32 bit)

glibc-common-2.5

glibc-devel-2.5

glibc-devel-2.5 (32 bit)

glibc-headers-2.5

ksh-20060214

libaio-0.3.106

libaio-0.3.106 (32 bit)

libaio-devel-0.3.106

libaio-devel-0.3.106 (32 bit)

libgcc-4.1.2

libgcc-4.1.2 (32 bit)

libstdc++-4.1.2

libstdc++-4.1.2 (32 bit)

libstdc++-devel 4.1.2

make-3.81

sysstat-7.0.2

unixODBC-2.2.11 (32-bit) or later

unixODBC-devel-2.2.11 (64-bit) or later

unixODBC-2.2.11 (64-bit) or later

检查依赖包

  1. rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc-2.5 glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel

如果包有显示is not installed(没安装),就用yum install 命令安装,如:
yum install compat-libstdc++-33

4.创建所需的操作系统组和用户

  1. groupadd oinstall
  2. groupadd dba
  3. useradd -g oinstall -G dba oracle

设置oracle用户密码

  1. passwd oracle

5.修改内核参数

在/etc/sysctl.conf 文件中,使用文本编辑器或vi命令增加或修改以下参数

  1. fs.aio-max-nr = 1048576
  2. fs.file-max = 6815744
  3. kernel.shmall = 2097152
  4. kernel.shmmax = 536870912
  5. kernel.shmmni = 4096
  6. kernel.sem = 250 32000 100 128
  7. net.ipv4.ip_local_port_range = 9000 65500
  8. net.core.rmem_default = 262144
  9. net.core.rmem_max = 4194304
  10. net.core.wmem_default = 262144
  11. net.core.wmem_max = 1048576

修改后,使设置生效

  1. sysctl -p

6.修改用户限制

在/etc/security/limits.conf 文件中,使用文本编辑器或vi命令增加或修改以下参数

  1. oracle soft nproc 2047
  2. oracle hard nproc 16384
  3. oracle soft nofile 1024
  4. oracle hard nofile 65536
  5. oracle soft stack 10240

在/etc/pam.d/login 文件中,使用文本编辑器或vi命令增加或修改以下内容

  1. session required /lib/security/pam_limits.so
  2. session required pam_limits.so

在/etc/profile 文件中,使用文本编辑器或vi命令增加或修改以下内容

  1. if [ $USER = "oracle" ]; then
  2. if [ $SHELL = "/bin/ksh" ]; then
  3. ulimit -p 16384
  4. ulimit -n 65536
  5. else
  6. ulimit -u 16384 -n 65536
  7. fi
  8. fi

使设置生效

  1. source /etc/profile

7.创建安装目录(可根据情况,选择比较多空间的目录创建)

  1. mkdir -p /u01/oracle
  2. chown -R oracle:oinstall /u01/oracle
  3. chmod -R 775 /u01/oracle

8.创建/etc/oraInst.loc文件,内容如下

  1. inventory_loc=/u01/oracle/oraInventory
  2. inst_group=oinstall

更改文件的权限

  1. chown oracle:oinstall /etc/oraInst.loc
  2. chmod 664 /etc/oraInst.loc

9.设置oracle环境变量

  1. su - oracle
  2. vi .bash_profile

在最后加上以下内容

  1. export ORACLE_BASE=/u01/oracle
  2. export ORACLE_SID=orcl

注意,除了ORACLE_BASE和ORACLE_SID,( /etc/profile和.bash_profile中)不设置任何oracle相关环境变量(ORACLE_HOME, PATH, LD_LIBRARY_PATH等)。

使设置生效

  1. source .bash_profile

检查环境变量:

  1. env

10.解压oracle安装文件

  1. unzip linux.x64_11gR2_database_1of2.zip
  2. unzip linux.x64_11gR2_database_2of2.zip

11.复制响应文件模板

  1. mkdir etc
  2. cp /u01/oracle/database/response/* /home/oracle/etc/

设置响应文件权限

  1. su - root
  2. chmod 700 /home/oracle/etc/*.rsp(注意所有者,oinstall)

12.静默安装Oracle软件

  1. su - oracle

修改安装Oracle软件的响应文件/home/oracle/etc/db_install.rsp

  1. oracle.install.option=INSTALL_DB_SWONLY // 29 安装类型
  2. ORACLE_HOSTNAME=oracle // 37 主机名称(hostname查询)
  3. UNIX_GROUP_NAME=oinstall // 42 安装组
  4. INVENTORY_LOCATION=/home/oracle/oraInventory //47 INVENTORY目录(不填就是默认值) 注意:这里inventory目录最好不要填写与oracle安装路径一致的目录,会报错
  5. SELECTED_LANGUAGES=en,zh_CN,zh_TW // 78 选择语言
  6. ORACLE_HOME=/u01/oracle/product/11.2.0/dbhome // 83 oracle_home
  7. ORACLE_BASE=/u01/oracle // 88 oracle_base
  8. oracle.install.db.InstallEdition=EE // 99 oracle版本
  9. oracle.install.db.isCustomInstall=false //自定义安装,否,使用默认组件
  10. oracle.install.db.DBA_GROUP=dba // 143 dba用户组
  11. oracle.install.db.OPER_GROUP=oinstall // 147 oper用户组
  12. oracle.install.db.config.starterdb.type=GENERAL_PURPOSE // 160 数据库类型
  13. oracle.install.db.config.starterdb.globalDBName=orcl // 165 globalDBName
  14. oracle.install.db.config.starterdb.SID=orcl // 170 SID
  15. oracle.install.db.config.starterdb.memoryLimit=81920 // 200 自动管理内存的内存(M)
  16. oracle.install.db.config.starterdb.password.ALL=oracle // 233 设定所有数据库用户使用同一个密码
  17. SECURITY_UPDATES_VIA_MYORACLESUPPORT=false // 376(手动写了false)
  18. DECLINE_SECURITY_UPDATES=true // 385 设置安全更新(貌似是有bug,这个一定要选true,否则会无限提醒邮件地址有问题,终止安装。PS:不管地址对不对)

开始静默安装

  1. cd /u01/oracle/database
  2. ./runInstaller -silent -force -responseFile /home/oracle/etc/db_install.rsp

这个命令,一直执行失败,失败错误
解决方法是:安装命令中加入选项-ignorePrereq

三、安装完毕遇到了,启动监听失败

一般情况下是 oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

hostname出错了,修改为ip 就可以解决

  1. vim /etc/hosts
  2. 172.19.60.193 oracle
  3. 服务器ip地址 主机名(hostname查看)

从新修改安装命令:

  1. ./runInstaller -ignorePrereq -silent -force -responseFile /home/oracle/etc/db_install.rsp
  2. 报错:[FATAL] [INS-32035] Unable to create a new central inventory at the specified location.
  3. CAUSE: The central inventory location provided is not empty.
  4. ACTION: Please provide another location for the inventory, or clean up the current location.

解决方法:

  1. vim /etc/oralnst.loc
  2. inventory_loc=/home/oracle/oralnventory
  3. inst_group=oinstall

安装完成之后 系统会提示我们用root用户运行如下两个脚本 。

  1. [root@oracle database]$ sh /u01/oracle/oralnventory/orainstRoot.sh
  2. [root@oracle ~]# sh /u01/oracle/product/11.2.0/dbhome/root.sh
  3. su - oracle
  4. [oracle@oracle ~]$ cat .bash_profile
  5. # .bash_profile
  6. umask 022
  7. TMP=/u01/oracle/tmp
  8. TMPDIR=/u01/oracle/tmp
  9. export TMP TMPDIR
  10. # Get the aliases and functions
  11. if [ -f ~/.bashrc ]; then
  12. . ~/.bashrc
  13. fi
  14. # User specific environment and startup programs
  15. PATH=$PATH:$HOME/bin
  16. export PATH
  17. export ORACLE_BASE=/u01/oracle
  18. export ORACLE_SID=orcl
  19. export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome
  20. export TNS_ADMIN=$ORACLE_HOME/network/admin
  21. export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
  22. export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
  23. export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib
  24. export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
  25. export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
  26. export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE
  27. export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE/lib
  28. export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
  29. export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
  30. export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
  31. export LIBPATH=${CLASSPATH}:$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib
  32. export ORACLE_OWNER=oracle
  33. export SPFILE_PATH=$ORACLE_HOME/dbs
  34. export ORA_NLS10=$ORACLE_HOME/nls/data
  35. [oracle@oracle ~]$ source .bash_profile

静默配置网络

  1. [oracle@oracle ~]$ /u01/oracle/product/11.2.0/dbhome/bin/netca /silent /responseFile /home/oracle/etc/netca.rsp
  2. Parsing command line arguments:
  3. Parameter "silent" = true
  4. Parameter "responsefile" = /home/oracle/etc/netca.rsp
  5. Done parsing command line arguments.
  6. Oracle Net Services Configuration:
  7. Profile configuration complete.
  8. Oracle Net Listener Startup:
  9. Running Listener Control:
  10. /u01/oracle/product/11.2.0/dbhome/bin/lsnrctl start LISTENER
  11. Listener Control complete.
  12. Listener started successfully.
  13. Listener configuration complete.
  14. Oracle Net Services configuration successful. The exit code is 0

14.静默安装数据库

静默安装数据库实例 (在oracle 用户安装)
在这里需要配置静默安装数据库响应的模板文件,也是在安装软件包中解压在database下的response 目录下的 dbca_rsp 文件,具体配置如下:

  1. [oracle@localhost response]# vim dbca.rsp
  2. [GENERAL]
  3. RESPONSEFILE_VERSION = "11.2.0"
  4. OPERATION_TYPE = "createDatabase"
  5. [CREATEDATABASE]
  6. GDBNAME = "lanmao" #全局数据库的名字
  7. SID = "orcl" # 数据库实例,根据上面的你写的SID 一样的,随便写。
  8. TEMPLATENAME = "General_Purpose.dbc" # 这个可以是默认的模板,不会写默认的,最好是默认,
  9. 这里是我们dba 写的,所以就用上了。
  10. SYSPASSWORD = "2011@oracle"
  11. SYSTEMPASSWORD = "2011@oracle"
  12. SYSMANPASSWORD = "2011@oracle"
  13. DBSNMPPASSWORD = "2011@oracle" # 前面这四个都可以不管,默认就行
  14. CHARACTERSET = "ZHS16GBK" #编码
  15. NATIONALCHARACTERSET=“UTF8 #编码
  16. [createTemplateFromDB]
  17. SOURCEDB = "myhost:1521:orcl"
  18. SYSDBAUSERNAME = "system"
  19. TEMPLATENAME = "My Copy TEMPLATE"
  20. [createCloneTemplate]
  21. SOURCEDB = "orcl"
  22. TEMPLATENAME = "My Clone TEMPLATE"
  23. [DELETEDATABASE]
  24. SOURCEDB = "orcl"
  25. [generateScripts]
  26. TEMPLATENAME = "New Database"
  27. GDBNAME = "orcl11.us.oracle.com"
  28. [CONFIGUREDATABASE]
  29. [ADDINSTANCE]
  30. DB_UNIQUE_NAME = "orcl11g.us.oracle.com"
  31. NODELIST=
  32. SYSDBAUSERNAME = "sys"
  33. [DELETEINSTANCE]
  34. DB_UNIQUE_NAME = "orcl11g.us.oracle.com"
  35. INSTANCENAME = "orcl11g"
  36. SYSDBAUSERNAME = "sys"

配置完模板之后,进行静默安装数据库

  1. $ORACLE_HOME/bin/dbca -silent -responseFile /db/soft/database/response/dbca.rsp

等到100%安装完成之后就是安装了。

有关详细信息, 请参阅日志文件 /u01/oracle/cfgtoollogs/dbca/lanmao/lanmao.log”。

15.修改oracle启动配置文件

  1. su - oracle
  2. vi /etc/oratab
  3. orcl:/usr/oracle/product/11.2.0/db_1:Y //把“N”改成“Y”

这样就可以通过dbstart 启动此实例,监听器。

  1. dbstart $ORACLE_HOME

此时所有oracle的进程关闭,监听器也停止。

  1. dbshut $ORACLE_HOME

再次查看监听器状态。

  1. lsnrctl start ---启动监听
  2. lsnrctl status ----查看监听

如果使用归档日志Oracle”startup”时报错:

  1. ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file '/u01/oracle/product/11.2.0/dbhome/dbs/initorcl.ora'

解决方法:

  1. /u01/oracle/product/11.2.0/dbhome/srvm/admin/init.ora
  2. cd /u01/oracle/product/11.2.0/dbhome/srvm/admin
  3. init.ora /u01/oracle/product/11.2.0/dbhome/dbs/initorcl.ora
  4. [oracle@localhost ~]$ sqlplus /nolog
  5. SQL> conn / as sysdba ---进入系统管理用户
  6. SQL> startup ; ---启动oracle实例
  7. SQL> shutdown immediate; ---停掉oracle实例
  8. SQL> create tablespace oracle datafile 'oracle.dbf' size 100M reuse, 'oracle2.dbs' size 100M reuse default storage (initial 500K next 300K pctincrease 20); ----创建表空间
  9. SQL> create user duan identified by "duan" default tablespace oracle profile default account unlock; -----创建用户
  10. SQL> grant dba to duan; ----授权用户dba权限
  11. Grant succeeded.
  12. SQL> grant unlimited tablespace to duan;
  13. Grant succeeded.
  14. SQL> create table z_test(id number,name varchar(20)); ----创建表
  15. SQL> insert into z_test select 1,'a' from dual; ---插入表数据
  16. SQL> select name from v$database; ---查看实例名
  17. SQL> select username,default_tablespace from user_users; ---查看当权用户所在表空间
  18. select table_name from all_tables where TABLESPACE_NAME='表空间' ---查看表空间中的所有表(表空间名字一定要大写。)
  19. SQL> alter database archivelog;
  20. SQL> alter database flashback on; (如果要启用数据库闪回功能则执行)
  21. SQL> alter database open;
  22. SQL> execute utl_recomp.recomp_serial(); (重新编译所有可能失效对象)
  23. SQL> alter system archive log current; (手工归档测试)
  24. )
  25. select table_name from dba_tables;

成功.
通过sql查询日志文件位置

  1. SQL> show parameter dump_dest
  2. NAME TYPE
  3. ·------------------------------------ ----------------------
  4. · VALUE
  5. · ------------------------------
  6. · background_dump_dest string
  7. · /home/oracle/oracle/admin/TESTDB/bdump
  8. · core_dump_dest string
  9. · /home/oracle/oracle/admin/TESTDB/cdump
  10. · user_dump_dest string
  11. · /home/oracle/oracle/admin/TESTDB/udump