docker 安装 Oracle_12c
最近做一个功能,需要连接:mysql、mssql、oracle,开发语言是nodejs,框架是nestjs框架,orm使用的typeorm,package包括:
"oracledb": "^6.4.0"
"mssql": "^10.0.2"
"mysql2": "^3.9.7"
公司没有mysql及oracle数据库,所以我在自己的云上用docker安装下,测试下。mysql还行,但是这个oracle真是太大了....我小小服务器整不住了,所以我只能按需买了一个12v12G的(其实不用这么高,4G就行,12运行起来内存占用2G多一点)
1、CentOS7.9安装好docker
2、docker安装Oracle_12c
# 拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/lhrbest/oracle_12cr2_ee_lhr_12.2.0.1:2.0
# 启动docker,这里就是基本参数,设置网络、开机启动啥的多余的都删掉了,自己根据需求来吧
docker run -itd --name oracle12c -p 1521:1521 -p 2222:22 -p 5500:5500 -p 5501:5501 registry.cn-hangzhou.aliyuncs.com/lhrbest/oracle_12cr2_ee_lhr_12.2.0.1:2.0 init
3、配置Oracle
3.1 进入容器
# 进入容器
docker exec -it oracle12c bash
3.2 修改环境变量
# 修改环境变量(i 插入 :w 保存 :q 离开)
vi /etc/profile
# 在文件最下面增加以下三行
export ORACLE_HOME=/u01/app/oracle/product/12.2.0.1/dbhome_1/
export ORACLE_SID=lhrcdb1
export PATH=$ORACLE_HOME/bin:$PATH
然后执行
source /etc/profile
3.3 切换用户
su oracle
sqlplus /nolog
conn /as sysdba
#启动数据库
startup
3.4 启动监听
在上面步骤完成后,键入 exit 然后输入启动监听命令
lsnrctl start
3.5 修改帐号密码
这些根据需要来就行,我就用的系统system帐号,没有创建帐号
alter user system identified by system;--修改system用户账号密码;
alter user sys identified by system;--修改sys用户账号密码;
create user user1 identified by user1; --创建内部管理员账号密码;
grant connect,resource,dba to user1; --将dba权限授权给内部管理员账号和密码;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; --修改密码规则策略为密码永不过期;
alter system set processes=1000 scope=spfile; --修改数据库最大连接数据;
3.6 查看db的service_name
这个在连接的时候会用到,我们可能不知道,所以可以查询下
show parameter service_name
4、操作截图
5. DBeaver连接截图
5、问题记录
过程中在【启动监听】的时候提示以下错误,其实能看出来是HOST名字错误这个需要是你的计算机名字,我这块改成了0.0.0.0,因为是测试环境,无所谓。
打开监听配置文件并进行修改,然后就可以了。
vi /u01/app/oracle/product/12.2.0.1/dbhome_1/network/admin/listener.ora