在实际项目中,需要在演示环境中去部署数据库,项目中使用Docker来部署环境,需要提前准备好资源镜像,在离线情况下去部署oracle。
1.镜像准备
本文中提供了 oracle11g 的原始镜像 如下;
链接:https://pan.baidu.com/s/1tDcYr_o4p6SJ9s1rEzxAwA
提取码:slz5
1.1 镜像导入导出操作
在项目中经常会将镜像进行导入导出
导出:如果在命令中不选择路径会默认导入到当前目录中。
首先查看磁盘空间剩余量:
df -h
选择容量较多的空间去创建一个文件夹用来保存导出的镜像。
在创建的文件夹目录下 运行下面的指令就会将镜像打包出来
命令:docker save [OPTIONS] IMAGE [IMAGE...]
示例: docker save my_oracle11g.tar oracle11g:1.0;
导入:
命令:docker load [OPTIONS]
示例:docker load --input /home/app/my_oracle11g.tar
2.安装oracle及基本配置
查看镜像
docker images
创建容器
docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
进入镜像进行配置
docker exec -it oracle11g bash --进入容器
su root --进入root权限
输入密码:helowin
编辑profile文件配置ORACLE环境变量
打开: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
ESC :wq 保存并退出
保存后执行source /etc/profile 加载环境变量;
创建软连接
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
切换到oracle 用户
su oracle
登录sqlplus 进行基本配置
sqlplus /nolog --登录
conn /as sysdba
alter user system identified by system; --修改system用户账号密码;
alter user sys identified by system; --修改sys用户账号密码;
create user test identified by test; -- 创建内部管理员账号密码;
grant connect,resource,dba to test; --将dba权限授权给内部管理员账号和密码;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; --修改密码规则策略为密码永不过期;
alter system set processes=1000 scope=spfile; --修改数据库最大连接数据;
修改以上信息后,需要重新启动数据库;
shutdown immediate; --关闭数据库
startup; --启动数据库
连接: 修改完之后 服务名为helowin 初始用户名密码为 system system ;
修改服务名
查询
show parameter service_name;
select * from global_name;
修改:
alter system set service_names='orcl' scope=both;
alter database rename global_name to orcl;
创建新用户
CREATE USER oracle2022 IDENTIFIED BY oracle2022;
授权
GRANT CONNECT, RESOURCE, DBA TO oracle2022;
综上: 修改完成之后 再次通过Navicat 使用创建的新用户进行链接此时的服务名就为orcl