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
相关推荐
新中地GIS开发老师3 分钟前
地信职业百科④:GIS开发工程师
前端·数据库·gis·webgis·三维gis开发
云和恩墨11 分钟前
从“第二存储”到多智能体协作,云和恩墨充实数据基础设施产品矩阵
数据库
ClouGence18 分钟前
SAP HANA 到 Doris 数据迁移:4 种方案对比与迁移教程
数据库·后端·dba
霸道流氓气质19 分钟前
ApiPost 中配置自动获取 Token 并调用业务接口完整指南
java·服务器·数据库
我不想名字重复22 分钟前
redis缓存和数据库数据保持一致
数据库·redis·缓存
宇宙第一小趴菜43 分钟前
三、Oracle 核心原理
数据库·oracle
BullSmall2 小时前
Sonarqube9.9 docker 镜像启动后 conf 下的配置文件没有了
docker·容器·eureka
ruofu332 小时前
wsl端是py312,但是项目是py311, 如何下载py311的依赖包(wheels)
python·docker
码出钞能力2 小时前
apache-shardingsphere-5.5.3自定义分片算法
数据库
兜有米啦2 小时前
数据库第二次作业
数据库