Oracle

本文详细介绍了如何在Docker中拉取并运行Oracle11g镜像,包括启动容器、数据持久化、修改默认参数、设置字符集、创建用户以及配置nginx进行反向代理。还提及了OracleXE11g作为轻量级测试选项的相关信息。
摘要由CSDN通过智能技术生成

拉取镜像

https://cr.console.aliyun.com/images/cn-hangzhou/oracle11-helowin/oracle11-helowin/detail?accounttraceid=24cfa63bff0f483db7d63268686a7a32yabl

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

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

docker rmi registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11

启动容器

docker run -d -p 1521:1521 --name oracle_11g oracle_11g

数据持久化

docker volume create oracle-11g

docker run -d -p 1521:1521 --name oracle_11g -v oracle-11g:/home/oracle/app/oracle/oradata/ oracle_11g

oracle默认参数

hostname: localhost

port: 1521

sid: helowin

username: system

password: helowin

修改默认参数

进入容器

docker exec -it oracle_11g bash -c "su - root"

修改 /etc/profile

vi /etc/profile

# add

export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2

export ORACLE_SID=helowin

export PATH=$ORACLE_HOME/bin:$PATH

# 执行

source /etc/profile

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

登录oracle数据库,修改密码

su oracle

sqlplus /nolog

conn /as sysdba

alter user system identified by password;

alter user sys identified by password;

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

修改字符集

# 默认字符集 AL32UTF8 --> ZHS16GBK

SQL> conn /as sysdba

SQL> shutdown immediate;

SQL> startup mount

SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;

SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;

SQL> alter database open;

SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;

ERROR at line 1:

ORA-12712: new character set must be a superset of old character set

提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改(但是已有数据这样做会乱码):

SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;

SQL> select * from v$nls_parameters;

SQL> shutdown immediate;

SQL> startup

至此,字符集的修改就完成了,我们可以通过输入命令验证一下,其结果已经变成了ZHS16GBK了。

SQL> select userenv('language') from dual;

创建普通用户

用system登录

create user test identified by 123456;

grant connect, resource, dba to test;

使用普通用户登陆

-- 查询数据库名, 表名

select name from v$database;

select table_name from all_tables -- where table_name like '%PER' ; --where ROWNUM <10 ;

配置nginx: 反向代理oracle服务

# nginx 反向代理

stream {

upstream oracle{

hash $remote_addr consistent;

server 192.168.99.101:1521 max_fails=3 fail_timeout=30s;

}

server {

listen 1521;

proxy_connect_timeout 3000s;

proxy_timeout 6000s;

proxy_pass oracle;

}

}

1、网上还有针对sath89/oracle-xe-11g这个镜像的教程,需要注意的是:Oracle快捷版(Oracle XE)是一款基于 Oracle 11g 第2版代码库的小型入门级数据库。Oracle Database XE对安装主机的规模和CPU数量不作限制(每台计算机一个数据库), 但XE将最多存储11GB的用户数据,同时最多使用1GB内存和主机上的一个CPU。

2、如果仅作测试也可以安装这个镜像,镜像大约700兆。而教程中的镜像大约近7G。

3、https://github.com/wnameless/docker-oracle-xe-11g

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值