下载地址
Win64
http://download.oracle.com/otn/nt/oracle11g/112010/win64_11gR2_client.zip
http://download.oracle.com/otn/nt/oracle11g/112010/win64_11gR2_database_1of2.zip
http://download.oracle.com/otn/nt/oracle11g/112010/win64_11gR2_database_2of2.zip
Win32
http://download.oracle.com/otn/nt/oracle11g/112010/win32_11gR2_client.zip
http://download.oracle.com/otn/nt/oracle11g/112010/win32_11gR2_database_1of2.zip
http://download.oracle.com/otn/nt/oracle11g/112010/win32_11gR2_database_2of2.zip
Oracle Database 11g Release 2 (11.2.0.1.0) for Linux x86-64
http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_client.zip
http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_1of2.zip
http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_2of2.zip
Oracle Database 11g Release 2 Client (11.2.0.1.0) for Linux x86
http://download.oracle.com/otn/linux/oracle11g/R2/linux_11gR2_client.zip
http://download.oracle.com/otn/linux/oracle11g/R2/linux_11gR2_database_1of2.zip
http://download.oracle.com/otn/linux/oracle11g/R2/linux_11gR2_database_2of2.zip
注意
client不用安装
下载可以使用迅雷,其他工具无法下载。
用户及环境配置
1 创建运行oracle数据库的系统用户和用户组
1 | #切换到root |
2、修改/etc/sysctl.conf
文件
1 | vi /etc/sysctl.conf |
添加如下内容
1 | fs.file-max = 6815744 |
使用命令使 sysctl.conf
配置生效。
1 | /sbin/sysctl -p |
3、修改操作系统核心参数
输入命令:
1 | vi /etc/security/limits.conf |
将下列内容加入该文件。
1 | oracle soft nproc 2047 |
4.、修改/etc/pam.d/login
文件,
输入命令:
1 | vi /etc/pam.d/login |
将下列内容加入该文件。
1 | session required /lib/security/pam_limits.so |
5、 编辑 /etc/profile
输入命令:
1 | vi /etc/profile |
将下列内容加入该文件。
1 | if [ $USER = "oracle" ]; then |
6、切换为 root 用户,关闭 selinux
1 | su root |
修改SELINUX
为disabled,如下:
1 | SELINUX=disabled |
软件包依赖
安装oracle之前需要许多软件包依赖,使用如下命令安装。
1 | yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686 |
检测依赖是否都已安装
1 | rpm -q binutils compat-libstdc++-33 elfutils-libelf expat gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel | grep "未安装" |
目录生成
如果安装失败可以先删除之前的安装文件
再重新创建文件夹
1 | rm -rf /data/tools/oracle |
创建数据库软件目录和数据文件存放目录,注意磁盘空间即可,这里我放到oracle用户下,输入如下命令:
1 | mkdir -p /data/tools/oracle/app |
更改目录属主为 oracle 用户所有,输入命令:
1 | chown -R oracle:oinstall /data/tools/oracle |
解压
1 | unzip linux.x64_11gR2_database_1of2.zip |
使用图形化界面安装
安装 vnc server
用于图形化界面安装
1 | yum -y install tigervnc-server |
如果没有安装Linux图形界面,则需要安装:
1 | #【检查是否安装了图形界面】 |
配置使用gnome桌面
1 | vi /root/.vnc/xstartup |
结尾添加一行
1 | gnome & |
切换到oracle用户
1 | su - oracle |
启动vnc服务
1 | #启动vnc服务 |
配置使用gnome桌面
1 | vi /home/oracle/.vnc/xstartup |
结尾添加一行
1 | gnome & |
vncserver
1 | #列出当前用户所建立的所有远程桌面。 |
环境变量
配置 oracle 用户环境变量
切换为oracle用户登录
1 | su - oracle |
编辑 .bash_profile
,输入命令:
1 | vi ~/.bash_profile |
添加如下环境变量。
1 | export ORACLE_BASE=/data/tools/oracle/app |
生效
1 | source ~/.bash_profile |
安装
切换到oracle用户
1 | su - oracle |
进入 database 目录,使用./runInstaller
命令安装,如下
1 | cd database |
vnc viewer安装
Windows上使用vnc viewer连接
连接地址是192.168.7.101:1
前面的是服务器的IP,后面的可以通过下面的命令查看
1 | vncserver -list |
取消勾选
安装选项,三个选项分别为:
①创建并配置一个新数据库。
②只安装数据库软件,适用于已有Oracle数据库数据用于数据迁移的。
③升级已有数据库。
这里选择第一个选项。
选择服务器模式
选择单实例
选择自定义安装
添加简体中文
选择企业版
安装位置会自动使用之前设置的环境变量的值,直接下一步
以下保持默认下一步
内存使用4G
字符集使用UTF-8
以下保持默认
自动备份
开不开启都可以
开启的话 注意密码为之前创建用户的密码
设置Oracle用户密码,密码强度弱会显示红色,但是不影响。
忽略所有
点击Finish进行安装
安装过程中报错
错误1
Error in invoking target ‘install’ of makefile ‘/data/tools/oracle/app/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk’.
日志中的错误为
1 | INFO: //usr/lib64/libstdc++.so.5: undefined reference to `memcpy@GLIBC_2.14' |
解决方式
编辑创建脚本:
fix_ins_ctx.sh
1 | # Fix ctx/lib/ins_ctx.mk |
运行
1 | chmod 777 fix_ins_ctx.sh |
错误2
Error in invoking target ‘agent nmhs’ of makefile ‘/data/tools/oracle/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk’.
解决方式
打开ins_emagent.mk
,将里面的
1 | $(MK_EMAGENT_NMECTL) |
替换为
1 | $(MK_EMAGENT_NMECTL) -lnnz11 |
注意:lnnz
和$(MK_EMAGENT_NMECTL)
之间有空格,然后点击重试按钮或者retry按钮
新打开控制台,使用root运行
1 | /data/tools/oracle/oraInventory/orainstRoot.sh |
直接回车即可。
命令行安装
安装
1 | su - oracle |
复制配置文件
1 | mkdir ~/etc |
添加配置
1 | vi ~/etc/db_install.rsp |
修改如下的项,不要直接覆盖
1 | #安装类型 |
运行安装
1 | ./runInstaller -silent -ignorePrereq -ignoreSysPrereqs -responseFile ~/etc/db_install.rsp |
可按他提示的查看日志,新增一个命令窗口,执行
1 | tail -f /data/tools/oracle/oralnventory/logs/installActions2023-01-31_06-19-59PM.log |
根据提示新打开一个窗口运行以下命令
运行
1 | /data/tools/oracle/oralnventory/orainstRoot.sh |
启动监听程序
1 | su - oracle |
如下
1 | #for oracle |
配置生效
1 | source ~/.bash_profile |
配置监听程序
1 | netca /silent /responsefile /home/oracle/etc/netca.rsp |
启动监听程序
1 | lsnrctl start |
建库
静默dbca建库
1 | vi ~/etc/dbca.rsp |
内容如下
1 | [GENERAL] |
运行
1 | dbca -silent -responseFile ~/etc/dbca.rsp |
查看
查看oracle实例进程
1 | ps -ef | grep ora_ | grep -v grep |
删除实例
1 | dbca -silent -deleteDatabase -sourcedb orcl |
查看监听状态
1 | lsnrctl status |
重启Oracle
切换为oracle用户登录
1 | su - oracle |
启动
1 | #启动监听 |
启动过程中发现内存不够 执行1
mount -o remount,size=3G /dev/shm/
退出
1 | quit |
停止
1 | sqlplus /nolog |
测试
查看
1 | lsof -i:1521 |
连接数据库
1 | sqlplus / as sysdba |
SQL语法
数据库实例
1 | #查看登录的数据库实例 |
全局查找
1 | -- 查看所有的表 |
表空间和用户
临时表空间
1 | 创建临时表空间 |
表空间
1 | -- 创建表空间 |
注意
一个用户可以有多个表空间,一个表空间可以有多个用户,但是为了方便,一个用户只设置一个表空间,这样在执行SQL的时候就不用再指定表空间了。
建用户
1 | create user zhangjian identified by zhangjian |
指定表空间给用户
1 | alter user zhangjian default tablespace ZDB; |
修改密码
1 | alter user zhangjian identified by zhangjian; |
删除用户
1 | --查看用户的连接状态 |
Oracle赋权限
1 | grant connect,resource,dba to zhangjian; |
表操作
创建表
1 | CREATE TABLE T_USER ( |
在表空间下建表
1 | CREATE TABLE T_USER ( |
用户下建表
1 | CREATE TABLE "ZHANGJIAN"."T_USER" ( |
删除表
1 | DROP TABLE T_USER; |
插入数据
1 | insert into T_USER(id,name) values(3,'xiaoming_oracle'); |
用户到期
重新设置密码
1 | sqlplus /nolog |
修改有效期
1 | # 获取有效期 |
Java连接
jar包位置
/data/tools/oracle/app/oracle/product/11.2.0/db_1/jdbc/lib
找到ojdbc6.jar
添加到Maven中
添加到maven中
1 | mvn install:install-file -Dfile="D:\Jars\ojdbc6.jar" -DgroupId="com.oracle" -DartifactId="ojdbc6" -Dversion="11.2.0.3" -Dpackaging=jar -DgeneratePom=true |
pom中引用
1 | <!--连接Oracle--> |
Java中使用
1 | import java.sql.*; |
开放防火墙
开放1521端口
1 | firewall-cmd --zone=public --add-port=1521/tcp --permanent |