云服务器centos使用docker安装oracle及使用
1、拉取镜像
# docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
2、创建容器
# docker images --查看
# docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
3、配置
# docker exec -it oracle11g bash
# su root --password:helowin
# 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
加载环境变量:
# source /etc/profile
创建软连接:
# ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
4、初始化
切换用户:
# su - oracle
进入sql:
# sqlplus /nolog
连接数据库:
sql> $ conn /as sysdba;
修改密码及授权:
sql> $ alter user system identified by system;--修改system用户账号密码;
alter user sys identified by system;--修改sys用户账号密码;
create user test identified by test; -- 创建内部管理员账号密码;
grant sysdba to test;
重启数据库:
sql> $ conn /as sysdba;
shutdown immediate;
startup;
退出软连接:
exit;
5、监听配置
查看docker 容器id:
# docker ps --找到第一个字段id并复制
修改tnsnames.ora文件
# docker exec -it oracle11g bash
# vi /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/tnsnames.ora
将docker容器id复制到“Host"中,并设置“SERVICE_NAME = helowin".
修改listener.ora文件
# vi /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/listener.ora
也修改host为容器id,保存并退出
# lsnrctl reload --监听重加载
6、网络策略
安全组白名单开通,此处根据不同的云产品来操作,具体到云产品的控制台操作
系统防火墙,建议开启,设置白名单,不建议直接不启用防火墙
# systemctl start firewalld -- 开启防火墙
# firewall-cmd --permanent --add-port=1521/tcp --开放1521端口号
# firewall-cmd --list-all --查看防火墙白名单列表
# firewall-cmd --reload --重启防火墙生效
7、修改字符集
直接操作修改sql会报错,请按照如下步骤:
登录docker:
# docker exec -it oracle11g bash
# su root --password:helowin
# su - oracle
# sqlplus /nolog
以mount打开数据库:
SQL> conn /as sysdba;
SQL> shutdown immediate;
SQL> startup mount;
设置session:
SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
启动数据库:
SQL> alter database open;
修改字符集:
SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
关闭并重新启动:
SQL> shutdown immediate;
SQL> startup;
8、启动与停止
# docker start oracle11g --启动
# docker stop oracle11g --停止
# systemctl restart docker --启动有问题时重启docker