腾讯云centos7.6 docker安装oracle
- 一、拉取镜像
- 二、数据持久化到宿主主机,启动脚本 文件名为oralce11g.sh
- 三、执行脚本 启动镜像
- 四、配置Oracle服务
- 4.1进入容器
- 4.2切换到root用户
- 4.3配置软连接
- 五、修改Oracle默认密码
- 5.1切换到oracle 用户
- 5.2修改Oracle用户
- 六、docker中Oracle容器中创建数据库、创建表、创建用户并授权
- 6.1进入容器
- 6.2切换用户Oracle
- 6.3创建表空间、创建用户、授权
- 6.3数据库导入导出、表空间删除、删除用户、授权调整
一、拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
二、数据持久化到宿主主机,启动脚本 文件名为oralce11g.sh
oralce11g.sh
#!/bin/sh
docker run \
--restart=always \
-p 22:22 \
-p 1521:1521 \
--name oracle11g \
-v /soft/oracle-11g/data:/data/oracle \
-d registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
三、执行脚本 启动镜像
sh oralce11g.sh
四、配置Oracle服务
4.1进入容器
docker exec -it oracle11g /bin/bash
4.2切换到root用户
su root
#密码 helowin
编辑配置文件
vi /etc/profile
#行末 unset -f pathmunge 下一行 按i 粘贴如下环境变量
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! 按enter
执行生效:
source /etc/profile
注意:
1、必须使用su root 否则 文件只读无法保存 E45: ‘readonly’ option is set (add ! to override)
2、必须source /etc/profile 否则 环境变量无效.
4.3配置软连接
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
五、修改Oracle默认密码
5.1切换到oracle 用户
su - oracle
注意:
一定要写中间的这条 - 必须要,否则软连接无效
需要切换到oracle用户 否则
Enter user-name: system
Enter password:
ERROR:
ORA-12546: TNS:permission denied
5.2修改Oracle用户
#容器切换oracle用户
su - oracle
#登录oracle dba
sqlplus /nolog;
conn /as sysdba;
#修改初始账号
alter user system identified by system;
alter user sys identified by sys ;
#添加自己的dba账号
create user 账户名 identified by 密码;
grant connect,resource,dba to 账户名;
#设置密码永不过期
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
#关闭
shutdown immediate;
#启动数据库
startup
六、docker中Oracle容器中创建数据库、创建表、创建用户并授权
6.1进入容器
docker exec -it oracle11g /bin/bash
6.2切换用户Oracle
先切换到root下,再切换到Oracle用户下
su root
## 密码 helowin
su - oracle
#登录oracle dba
sqlplus /nolog;
conn /as sysdba;
#查看dbf存放位置
select * from dba_data_files;
查出为下面路径下
/home/oracle/app/oracle/oradata/helowin/
6.3创建表空间、创建用户、授权
/*分为四步 */
/*第1步:创建临时表空间 */
create temporary tablespace user_temp
tempfile '/home/oracle/app/oracle/oradata/helowin/user_temp.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
/*第2步:创建数据表空间 */
create tablespace user_data
logging
datafile '/home/oracle/app/oracle/oradata/helowin/user_data.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
/*第3步:创建用户并指定表空间 */
create user username identified by password
default tablespace user_data
temporary tablespace user_temp;
/*第4步:给用户授予权限 */
grant connect,resource,dba to username;
6.3数据库导入导出、表空间删除、删除用户、授权调整
-- 数据库导入1:正常情况
impdp bp_oracle/bp_oracle directory=dump_dir dumpfile=bp_oracle20210309.dmp
-- 数据库导入2:映射情况
impdp bp_oracle/bp_oracle directory=dump_dir dumpfile=ncp20210309.dmp remap_schema=ncp:bp_oracle remap_tablespace=ncp:bp_oracle
-- 数据导出,可以带版本
expdp bp_oracle/bp_oracle DIRECTORY=dump_dir dumpfile=bp_oracle.dmp version=10.2.0.1.0
-- 删除表空间
drop tablespace bp_oracle including CONTENTS and datafiles;
-- 删除用户 ,执行该语句请小心,会级联删除该用户下所有对象。
drop user bp_oracle cascade;
--修改用户密码
alter user bp_oracle identified by bp_oracle;
//撤权:revoke 权限... from 用户名;
revoke dba from xxx;
//改变用户使用表空间的权限:
alter user 用户名 quota unlimited on 表空间;
或 alter user 用户名 quota *M on 表空间;