oracle 11g在本地系统上安装可能会出现很多的问题, 所以我选择在docker上运行oracle11g来使用.
下面是我的配置步骤. (该配置过程与具体的系统无关, 只需要部分改动)
该配置步骤, 我的系统是centos7.3, 使用的是阿里云服务器. 如果你是其他的系统或者平台, 仅需改动1-4步中的oracle安装文件的下载方式和解压方式, 然后根据自己的进行解压的数据库安装包路径, 更改第四步中的<install_folder>即可.
开始前的准备
- 确保你系统上的docker服务是可以使用的.
- 下载具体的oracle安装文件, 也就是两个压缩文件, 下载到你指定的系统上.
notice:我选择的docker image其实是一个"自动配置安装"oracle 11g的镜像, 所以你需要自己下载oracle11g的安装包. windows和mac等桌面平台比较好下载, 通过shell命令推荐wget. 下面给出示例:(因为oracle现在下载软件需要登录用户, 所以我这里示例的下载链接你可能不能使用, 这时候你再去oracle官网重新更换下载链接即可)
wget -c -b https://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_2of2.zip?AuthParam=1561175324_b6f19c00413750b39fbe89d3a7dce441
wget -c -b https://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_2of2.zip?AuthParam=1561175324_b6f19c00413750b39fbe89d3a7dce441
开始
-
创建一个目录
mkdir install cd install mkdir database
[root@iz2zehkwp9rwg4mvyl3jaez database]# pwd /install/database
这是我创建的目录, 不需要一定和我一样.
-
将下载的oracle安装压缩文件解压到/install/database
unzip oracle1/2.zip -d /install/database unzip oracle1/2.zip -d /install/database
如果你的系统中没有unzip, 可以通过yum install unzip安装
-
docker image准备
systemctl start docker
docker pull jaspeen/oracle-11g
该image在docker hub的地址: Here 如果你想进一步了解,里面有具体的说明, 这里感谢该image的作者~
-
通过镜像开启容器服务
<install_floader> 是你将oracle11g安装文件解压到的文件路径docker run --privileged --name oracle11g -p 1521:1521 -v <install_folder>:/install jaspeen/oracle-11g
这里给出我的
docker run --privileged --name oracle11g -p 1521:1521 -v /install/database:/install jaspeen/oracle-11g
这里如果出现了Checking swap space: 0 MB available, 150 MB required. Failed
给出一个我找到的解决方案: centos 安装oracle 报Checking swap space: 0 MB available, 150 MB required. Failed <<<<
其他的错误如果没有自动跳出docker的run启动过程, 就不用管, 这个过程有点慢, 如果最后停止不动, 可能是已经开启了服务, 这个时候ctrl+z可能不好使, 退出console重新连接, 然后进行下一步. -
查看结果
docker ps
看到这里, oracle11g的容器已经开启.
- 进入oracle11g容器
docker exec -it oracle11g /bin/bash
切换到image的oracle用户
su - oracle
进入oracle数据库
sqlplus / as sysdba
- 解锁scott用户
SQL> alter user scott account unlock;
User altered.
SQL> commit;
Commit complete.
SQL> conn scott/tiger
ERROR:
ORA-28001: the password has expired
Changing password for scott
New password:
Retype new password:
Password changed
Connected.
SQL>
8.通过数据库管理工具连接oracle数据库(这里我是通过datagrip)
HOST地址根据你的数据库所在系统的ip地址进行设置