拉取镜像
拉取oracle_11g镜像
拉取oracle镜像(oracle 11.0.2 64bit 企业版 实例名: helowin)
Oracle主要在Docker基础上安装,安装环境注意空间和内存,Oracle是一个非常庞大的一个软件,
建议使用网易镜像或阿里镜像网站这里以oracle 11.0.2 64bit 企业版
实例名: helowin为例子进行安装详解。
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
运行容器
2.1 默认启动容器方式
docker run -d --name oracle11g -p 1521:1521 --restart=always registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
或
docker run -d -it -p 1521:1521 \
--name oracle11g \
--restart=always registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
2.2 持久化启动的方式
docker run -d -it -p 1521:1521 --name oracle11g --restart=always --mount source=oracle_vol,target=/home/oracle/app/oracle/oradata registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
或
docker run -d -it -p 1521:1521 \
--name oracle11g \
--restart=always \
--mount source=oracle_vol,target=/home/oracle/app/oracle/oradata registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
一般用默认启动方式就可以了,若是需要将数据保存到本地的采用持久化方式。
--mount表示要将Host上的路径挂载到容器中。
source=oracle_vol为Host的持久化卷,若未提前创建会自动创建,可通过
target=/home/oracle/app/oracle/oradata :自己Linux的家目录
docker volume inspect oracle_vol
查看volume的具体位置,target为容器中的路径
查看容器启动状态
docker ps | grep oracle11g
进入oracle11g容器进行配置
docker exec -it oracle11g /bin/bash
切换到root用户下进行配置:
切换root用户:su root
输入密码: helowin ##可以使用passwd命令更改自己的密码
编辑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
保存后加载环境变量,立即生效:
source /etc/profile
创建软连接:
作用:可以直接用oracle命令,而不需要进入bin目录中执行相应的命令。
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
切换到oracle 用户:
su - oracle
登录sqlplus并修改sys、system用户密码:
sqlplus /nolog # 登录oracle
conn /as sysdba # 连接,需要进行操作系统验证,才可进行连接登录
alter user system identified by system; # 修改system用户账号密码system
alter user sys identified by sys; # 修改sys用户账号密码sys
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; # 修改密码规则策略为密码永不过期
exit; # 退出
补充命令
登录sqlplus并修改sys、system用户密码: 需要注意的是再oracle用户下操作
sqlplus /nolog # 登录
conn /as sysdba # 连接
create user test identified by test; #创建内部管理员账号密码;
grant connect,resource,dba to yan_test; #将dba权限授权给内部管理员账号和密码;
alter system set processes=1000 scope=spfile; #修改数据库最大连接数据;
修改以上信息后,需要重新启动数据库
shutdown immediate; #关闭数据库
startup; #启动数据库
SQL> select instance from v$thread; #查看数据库sid(实例名)
clear SCR 或clear screen或clea scre #sqlplus清屏命令
创建表空间
create tablespace pts datafile '/home/oracle/app/oracle/oradata/helowin/pts.dbf' size 100m autoextend on next 10m删除表空间
drop tablespace PTS;查看所有表空间
select tablespace_name from dba_tablespaces;创建用户
create user PTS identified by PTS default tablespace PTS;删除用户
drop user pts cascade;
为sys用户添加sysdba权限
SQL> grant sysdba to sys;
查看哪些用户被授予DBA权限
select * from dba_role_privs where granted_role='DBA';
查看数据库编码
SQL> select userenv('language') from dual;
查看数据库权限和用户
SQL> show parameter password #查看数据库权限
SQL> select * from v$pwfile_users; #查看用户
查看一下oracle实例状态:
lsnrctl status -查看一下oracle实例状态:
监听命令
$ lsnrctl stop listener -停止名为listener的监听服务
$ lsnrctl start listener -启动名为listener的监听服务
$ lsnrctl reload listener -重新加载名为listener的监听服务
查看环境变量
cat /home/oracle/.bash_profile
看到此ORACLE_SID=helowin表示数据库的实例名称