1. 安装 Docker 情况
起首,确保你的系统已经安装了 Docker 情况。你可以参考官方文档来安装 Docker:Docker安装文档。安装完成后,确保 Docker 可以正常运行。
2. 拉取 Oracle 镜像
利用 Docker 拉取 Oracle 11g 的镜像。这里我们利用的是阿里云的 Oracle 11g 镜像,你也可以根据需要选择其他来源的镜像。
- docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
复制代码 此命令会从 Docker Hub 拉取一个 6GB 大小的 Oracle 11g 镜像,可能需要一段时间,静等半晌。
3. 查察镜像
镜像拉取完成后,可以利用以下命令查察已下载的 Docker 镜像:
乐成拉取后,您会看到类似如下的输出,表现镜像的相关信息:
4. 创建容器
我们可以利用以下命令创建并运行一个 Docker 容器:
- docker run -d --privileged -p 1521:1521 --name oracle11g --restart=always -v /home/oracle:/data/oracle registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
复制代码 命令解析:
- -d:后台运行容器。
- --privileged: 允许挂载数据卷,默认是读写权限rw
- -p 1521:1521:将容器的 1521 端口映射到宿主机的 1521 端口。
- --name oracle11g:为该容器命名为 oracle11g。
- oracle 数据文件挂载:-v /data/dockerData/oracle:/data/oracle,将容器中的数据文件夹 /data/oracle 挂载到宿主机对应的 /data/dockerData/oracl 文件夹中。
- registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g:利用之前拉取的镜像。
你还可以编写一个 Shell 脚本,便于下次快速启动 Oracle 容器。脚本内容如下:
- # BEGIN ANSIBLE MANAGED BLOCK
- #!/bin/bash
- docker rm -f oracle11;
- docker run -it -d -p 1521:1521 -v /data/oracle:/data/oracle --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
- # END ANSIBLE MANAGED BLOCK
复制代码 **留意:**不推荐每次都利用脚本启动容器,由于为了保存前次配置的值,建议下次直接利用 docker start oracle11 启动。
如果容器创建乐成,系统会返回容器 ID。
5. 进入容器举行配置
创建并启动容器后,你可以进入容器内部举行配置:
- docker exec -it oracle11g bash
复制代码 此命令会让你进入 Oracle 容器的 Bash 情况。
6. 举行软连接
在容器中执行以下命令,尝试利用 sqlplus 工具。如果提示没有该命令,你需要切换到 root 用户:
切换到 root 用户:
输入暗码 helowin(默认暗码)。
7. 配置 Oracle 情况变量
你需要编辑 Oracle 配置文件,设置情况变量。执行以下命令:
在文件末尾添加以下内容:
- # 设置 Oracle 数据库的安装目录
- # ORACLE_HOME 是 Oracle 数据库安装的根目录,许多工具和脚本需要依赖这个路径
- export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
- # 设置 Oracle 实例名
- # ORACLE_SID(System Identifier)是数据库实例的标识符,在 Oracle 中用来区分不同的实例
- # 这里设置为默认的实例名 "helowin",与安装时的配置一致 (不设置默认服务名就是ORCL)
- export ORACLE_SID=helowin
- # 将 ORACLE_HOME/bin 添加到 PATH 环境变量中
- # PATH 是系统查找可执行程序的路径列表,将 Oracle 的 bin 目录加入 PATH,方便直接运行 Oracle 命令(如 sqlplus)
- export PATH=$ORACLE_HOME/bin:$PATH
复制代码 保存并退出后,执行以下命令加载情况变量:
8. 创建软连接
接下来,创建一个软连接,方便在任何地方利用 sqlplus 命令:
- ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
复制代码 9. 切换到 Oracle 用户
切换到 oracle 用户以确保你有足够的权限举行后续操纵:
10. 登录 SQL*Plus 并修改 sys、system 用户暗码
通过 SQL*Plus 登录并修改 sys 和 system 用户的默认暗码:
- # 1. 登录 SQL*Plus# 利用 /nolog 命令启动 sqlplus,并且不立刻连接到任何用户sqlplus /nolog
- # 2. 连接数据库并利用 SYSDBA 权限# 通过以下命令利用 SYSDBA 权限连接到数据库# 该命令表示通过操纵系统身份验证以 sysdba 权限连接数据库,拥有最高管理员权限。conn /as sysdba# 3. 修改 system 用户的暗码# system 是 Oracle 数据库中的一个管理员账户,修改默认的暗码为更安全的暗码# 这里将暗码设置为 system(可以自行修改为更复杂的暗码)alter user system identified by system;# 4. 修改 sys 用户的暗码# sys 用户是 Oracle 数据库的另一个管理员账户,修改 sys 用户的默认暗码# 同样可以将暗码设置为更复杂的值alter user sys identified by system;# 5. 创建新用户 test# 创建一个新的普通用户 test,并设置其暗码为 test# 新用户创建后,可以根据需求授予其特定的权限create user test identified by test;# 6. 授予 test 用户 DBA 权限# 这里我们为新创建的 test 用户授予了 DBA 权限,使其能够举行数据库的管理操纵# 留意:可以根据实际需求调整授予的权限grant connect, resource, dba to test;# 7. 设置暗码永不过期# Oracle 默认有一个暗码过期策略,这里我们将暗码策略设置为永不过期# 这将防止在测试和开发情况中因暗码过期而中断利用ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
- # 8. 修改数据库最大连接数# 默认情况下,Oracle 数据库的最大连接数是有限的,如果需要支持更多并发连接,可以调整该参数# 这条命令将数据库最大连接数设置为 1000,并保存在 spfile 中# 需要重启数据库后才能收效alter system set processes=1000 scope=spfile;# 执行完以上命令后,我们完成了用户暗码修改、新用户创建、权限授予、暗码策略配置和数据库配置
复制代码
11. 重新启动数据库
修改完数据库用户和设置后,需要重新启动 Oracle 数据库。执行以下命令:
- conn /as sysdba
- shutdown immediate; -- 关闭数据库
- startup; -- 启动数据库
复制代码 12. 办理 “Database Not Open” 错误
在执行 alter user 命令时,有时可能会遇到如下错误:
- ORA-01507: database not open
复制代码 如果你遇到此问题,可以按照以下步调办理:
完成后就可以执行修改暗码的操纵了。
修改完后,再次执行 ALTER PROFILE 语句,设置暗码永不过期:
- ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
复制代码 执行完毕后,输入 exit 退出 SQL*Plus。
13. Navicat 连接测试
乐成完成数据库配置后,可以利用 Navicat 或其他数据库管理工具测试连接。确保可以顺利连接到数据库:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |