直接使用docker安装,太麻烦了!
参考地址 docker安装oracle11g

1、更新yum源为国内的镜像源、更新wget、关闭防火墙和SELinux

1、备份
cd /etc/yum.repos.d
# 全部备份到backup
mkdir backup && mv *repo backup/
2、下载阿里云的 yum 源文件并替换本地 yum 源文件:
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo

或者(centos8默认不带wget)

sudo wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo

3、更新缓存
yum clean all && yum makecache
4、安装wget
yum install wget

关闭防火墙和SELinux

systemctl status firewalld
systemctl start firewalld
systemctl stop firewalld
systemctl disable firewalld
# 开放端口
sudo firewall-cmd --zone=public --add-port=1521/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8082/tcp --permanent
sudo firewall-cmd --zone=public --add-port=5000/tcp --permanent
# 重载
sudo firewall-cmd --reload
# docker容器间相互访问处理办法,
1、启动时使用link指定docker容器名
例:docker run -p 8082:8082 -itd --name transLine --link oracle11g:oracle11g --link lineCode:lineCode --restart=always trans-line-java:latest
2、防火墙上 把docker0网卡添加到trusted域(先通过ip addr 查看docker0网卡)
firewall-cmd --permanent --zone=trusted --change-interface=docker0

3、记录启动docker中java服务时报错:library initialization failed - unable to allocate file descriptor table - out of memoryAborte
解决方法:https://www.cnblogs.com/exmyth/p/17511915.html
采用第二种解决:
在 /etc/systemd/system/ 目录下, 创建 docker.service.d 目录
进入该目录,创建一个文件,名为 docker.conf
在文件中加入以下配置:
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --default-ulimit nofile=65535:65535 -H fd://
1
2
3
啥意思呢? 就是说在执行docker命令时,直接默认使用该参数, 不需要在docker run 命令中定义了。
执行 systemctl daemon-reload (重启Docker daemon)
执行 systemctl restart docker (重启Docker 服务)


vi /etc/selinux/config
# 修改 SELINUX=disabled,用于指示系统在启动时禁用 SELinux。
# 立即将 SELinux 切换到“宽松模式”,允许警告但不会阻止操作
setenforce 0

1、拉取oracle_11g镜像

# 2个多g
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
#拉取 结果:
[root@localhost ~]# docker images;
REPOSITORY                                             TAG       IMAGE ID       CREATED       SIZE
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g   latest    3fa112fd3642   8 years ago   6.85GB

2、创建oracle11g容器

docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g --restart=always
docker run -d -p 1522:1521 --name oracle11g1522 registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g --restart=always

若 忘记设置开机自启,可以使用以下命令:

docker update --restart=always oracle11g

3、查看oracle11g容器是否创建成功

docker ps -a

# 结果:
[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE                                                  COMMAND                  CREATED             STATUS          PORTS                    NAMES
acbd05f8f050   registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g   "/bin/sh -c '/home/o…"   About an hour ago   Up 57 minutes   0.0.0.0:1521->1521/tcp   oracle11g

4、启动docker start oracle11g容器

docker start oracle11g

5.进入oracle11g容器进行配置

docker exec -it oracle11g bash 

6.切换到root用户下进行配置

su root

输入密码为:helowin

7、编辑profile文件配置ORACLE环境变量

vi /etc/profile

8、最后添加以下3行配置

export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH

保存 ::wq
让配置生效:source /etc/profile

9、创建软连接

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

10、切换到oracle 用户

su - oracle

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

sqlplus /nolog
conn /as sysdba

12、修改sys、system用户密码并刷新权限

alter user system identified by oracle;
alter user sys identified by oracle;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

退出:exit;

13、查看一下oracle实例状态

lsnrctl status

14、用nacivat连接oracle数据库
服务名:helowin(一定要填写helowin)
密码:oracle(第12步设置的密码)

主机:192.168.145.130
端口:1521
服务名:helowin
用户名:system
密码:oracle

15、单独创建用户 绑定一个数据库
参考地址:https://blog.csdn.net/qq_44732146/article/details/129874104

16、常见oracle数据库操作

# root权限进入oracle11g的docker容器内
docker exec -it -u root oracle11g /bin/bash
# 普通权限进入(oracle用户权限)
docker exec -it oracle11g /bin/bash
# 1、root用户不能直接使用sqlplus、需要切换到oracle用户下去
# 切换用户到oracle
su - oracle
# 切换用户到root
su - 
#进入dba可以操作的项目:
sqlplus / as sysdba
	# 用户解锁,需要进入dba
	ALTER USER test001 ACCOUNT UNLOCK;
	# 修改密码
	alter user test001 identified by password111;
	# 密码中有特殊字符的最好使用双引号
	alter user MYTOOLS identified by "!Aa123456."
	# 创建用户、连接用户、授权用户
	CREATE USER test002 IDENTIFIED BY password111;
	GRANT CONNECT TO test001;
	GRANT DBA TO test001;
# oracle用户下 登录sqlplus	
sqlplus -L 'test001/password111';

17、拷贝文件入、出 docker容器

# 拷贝文件夹及内容到docker容器中
docker cp database_oracle_linux oracle11g:/data/
# 拷贝docker容器中的文件到 /home/user/下载/database_oracle_linux文件夹中
sudo docker cp oracle11g:/data/xxxx.txt /home/user/下载/database_oracle_linux


Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐