Docker 安装 Oracle创建表空间并导入数据库

[一、Docker 安装Oracle](#一、Docker 安装Oracle)

[1、检查docker 版本](#1、检查docker 版本)

[2、docker 下载镜像](#2、docker 下载镜像)

[3、 docker启动容器](#3、 docker启动容器)

[4、 进入容器内部](#4、 进入容器内部)

5、安装成功,使用客户端工具连接

二、创建数据库用户与表空间

1、查询数据库文件位置

2、创建表空间

3、创建用户

4、设置权限

三、导出数据库DMP

1、上传文件到指定目录

2、创建权限目录

3、执行oracle-expdp导出

[四、导入oracle dmp文件](#四、导入oracle dmp文件)

1、创建权限目录

[2、导入oracle dmp文件](#2、导入oracle dmp文件)


一、Docker 安装Oracle

1、检查docker 版本

复制代码
docker version

2、docker 下载镜像

复制代码
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

3、 docker启动容器

复制代码
docker run -d -p 30026:1521 -p 8081:8080 --name oracle_11g -e ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2 -e ORACLE_SID=helowin registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

4、 进入容器内部

docker exec -it oracle_11g bash

复制代码
# 1. 切换至root用户(默认是oracle用户),密码为helowin
su root

# 2. 创建软链接
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

# 3.切换回oracle用户
su oracle

# 4. 登录sql plus
sqlplus /nolog
conn /as sysdba
## 4.1 修改system用户密码为system
alter user system identified by system;
## 4.2 修改sys用户密码为system
alter user sys identified by system;
## 4.3 新增一个测试用户(用户名:test,密码:test123);
create user test identified by test123;
## 4.4 将dba权限给内部管理员账号和密码
grant connect,resource,dba to SYS_ORM;
## 4.5 修改密码策略规则为:密码永不过期
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
## 4.6 修改数据库最大连接数;
alter system set processes=1000 scope=spfile;
## 4.7 最后重启数据库;
shutdown immediate;
startup;

# 5.退出
exit

5、安装成功,使用客户端工具连接

二、创建数据库用户与表空间

1、查询数据库文件位置

复制代码
 select t1.name,t2.name  from v$tablespace t1,v$datafile t2  where t1.ts# = t2.ts#;

2、创建表空间

用sysdba登陆,sqlplus /@sysware as sysdba /PLSQL使用SYSDBA 登录执行

复制代码
CREATE TABLESPACE ORM
DATAFILE '/home/oracle/app/oracle/oradata/helowin/orm.dbf' size 800M  	   --存储地址 初始大小800M
	autoextend on next 50M maxsize unlimited                   --每次扩展10M,无限制扩展
         EXTENT MANAGEMENT LOCAL autoallocate SEGMENT SPACE MANAGEMENT AUTO; 

3、创建用户

用sysdba登陆,sqlplus /@sysware as sysdba /PLSQL使用SYSDBA 登录执行

create user 用户名 identified by 密码 default tablespace 表空间名;

复制代码
create user ORM identified by ORM default tablespace ORM;  

4、设置权限

用sysdba登陆,sqlplus /@sysware as sysdba /PLSQL使用SYSDBA 登录执行

grant connect,resource,create type,create view,recovery_catalog_owner to 用户名

--注意:禁止使用:imp_full_database权限

复制代码
grant connect,resource,create type,create view,recovery_catalog_owner to ORM;

三、导出数据库DMP

注意:导出需要记录用户名、表空间名,导入需要用到

1、上传文件到指定目录

复制代码
docker cp  /home/imp e5w3hr4rrre3:/home/ormexp

2、创建权限目录

用sysdba登陆,

create directory 授权目录名 as '授权目录';

grant read,write on directory 授权目录名 to 数据库用户名;

复制代码
# 切换oracle用户:
su - oracle
# 管理员登录
sqlplus sys/system@orcl as sysdba

create directory ormExp as '/home/ormexp';   
grant read,write on directory ormExp to ORM;

3、执行oracle-expdp导出

在cmd、用户窗口执行:

expdp 数据库用户名/数据库密码@sysware directory=授权目录名 dumpfile=数据文件名称.dmp

复制代码
expdp ORM/ORM@orcl directory=ormExp dumpfile=data.dmp

四、导入oracle dmp文件

1、创建权限目录

用sysdba登陆,

create directory 授权目录名 as '授权目录';

grant read,write on directory 授权目录名 to 数据库用户名;

复制代码
# 切换oracle用户:
su - oracle
# 管理员登录
sqlplus sys/system@orcl as sysdba

create directory ormimp as '/home/ormimp';   
grant read,write on directory ormimp to ORM;

2、导入oracle dmp文件

在cmd、用户窗口执行

impdp 数据库用户名/数据库密码 directory=授权目录名 remap_tablespace=导出数据库的表空间:表空间 dumpfile=数据文件名称.dmp remap_schema=导出数据库的用户名:数据库用户名 transform=OID:N

复制代码
impdp ORM/ORM@orcl directory=impdata remap_tablespace=BLUESYS20240715:ORM dumpfile=BLUESYS.DMP remap_schema=BLUESYS:ORM transform=OID:N
相关推荐
风哥2号2 小时前
数据库教程FGMT27‑MySQL数据库基础知识与体系架构
数据库·mysql
YangYang9YangYan3 小时前
2026 校招商品分析岗位 JD 拆解,核心指标、工具与面试考点
大数据·数据库·数据分析
March.s4 小时前
Docker 容器技术完全指南:从生态到架构的深度解析
docker
西安栈上月明软件科技4 小时前
从业务黑话到本体图谱:OAG本体建模五步法(西安老系统AI化改造实战)
数据库·人工智能·架构
anxiao_m4 小时前
跨云跨机房大数据迁移怎么选?不同场景工具适配指南
数据库·云启快传
wdfk_prog5 小时前
ROS教程:01 搭建 ROS1 Noetic Docker 开发环境
运维·缓存·docker·容器·ros
szephyr5 小时前
Docker + Compose 实战:把本地项目一键搬到云服务器,附完整配置
运维·docker·容器·部署·云服务器
wdfk_prog6 小时前
ros教程02:创建 catkin Workspace、Package 与第一个 ROS1 C++ Node
运维·缓存·docker·容器·ros
风哥2号6 小时前
数据库教程FGMT43‑MySQL性能分析与优化调整
数据库·mysql
随身数智备忘录7 小时前
财务数据分析如何与业务场景结合?财务数据分析如何从数出有据到数出有用?
数据库