Ubuntu用Docker安装Oracle 11g

以下都在root用户下运行。

一、拉取Oracle镜像

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

二、创建容器

docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

如果创建成功能会返回容器id。之后可以通过命令docker start oracle11快速启动。

三、进入镜像进行配置

[root@ytlib: /]# docker exec -it oracle11g bash
[oracle@c1af26ab1452 /]$ sqlplus /nolog
bash: sqlplus: command not found
# 发现没有该命令,所以切换root用户,这里密码是helowin
[oracle@c1af26ab1452 /]$ su root
Password:
# 配置ORACLE环境变量
[root@c1af26ab1452 /]# vi /etc/profile
# 在文件最后写入以下内容
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH

# 加载环境变量
[root@c1af26ab1452 /]# source /etc/profile

# 创建软连接
[root@c1af26ab1452 /]#  ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

# 切换回Oracle用户
[root@c1af26ab1452 /]# su - oracle

# 登录sqlplus,连接数据库
[oracle@c1af26ab1452 ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Tue Oct 25 11:15:24 2022
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
SQL> conn /as sysdba
Connected.

# 修改系统密码
alter user system identified by 新密码;
alter user sys identified by 新密码;

# 创建新的连接用户并赋予管理员权限
create user 新用户名 identified by 密码;
grant connect,resource,dba to 新用户名;

# 修改密码规则策略为密码永不过期;
alter profile default limit PASSWORD_LIFE_TIME UNLIMITED;

四、用Navicat建立连接

  • 端口:1521
  • 服务名:helowin
  • SID:ytlib
  • 用户名密码:上面配置好的

五、修改Oracle的sid

1、登录数据库查看SID

SQL> select instance_name,status from v$instance;

INSTANCE_NAME    STATUS
---------------- ------------
helowin          OPEN

2、关闭数据库

SQL> shutdown immediate;
SQL> exit;

3、修改SID

# 修改ORACLE_SID环境变量
[oracle@c1af26ab1452 ~]$ vi /home/oracle/.bash_profile
# 修改export ORACLE_SID=新的实例名
[oracle@c1af26ab1452 ~]$ source /home/oracle/.bash_profile

# 修改/etc/oratab文件
[oracle@c1af26ab1452 ~]$ vi /etc/oratab
# 修改为:
新SID:/home/oracle/app/oracle/product/11.2.0/dbhome_2:Y

# 将$ORACLE_HOME/dbs目录下所有包含原来sid的都修改为新的
$ cd $ORACLE_HOME/dbs

$ mv lk旧SID大写 lk新SID大写
$ mv orapw旧SID orapw新SID
$ mv hc_旧SID.dat hc_新SID.dat
$ mv init旧SID.ora init新SID.ora
$ mv spfile旧SID.ora spfile新SID.ora

4、重建口令文件

$ orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=ststem管理密码 entries=5 force=y

5、启动数据库

$ sqlplus / as sysdba
SQL>> startup;

6、检查数据库实例名

SQL> select instance from v$thread;

INSTANCE
--------------------------------------------------------------------------------
ytlib
无标签