Docker快速搭建Oracle服务,导入dmp文件

Docker快速搭建Oracle服务,导入dmp文件

代码审计遇到oracle数据库,记录一下如何快速的搭建,然后导入dmp数据库备份文件

0x01 前置环境

  1. macos
  2. Docker

0x02 搭建Oracle服务

1、拉取Oracle镜像

docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

2、运行镜像

docker run -p 1521:1521 --name oracle_11g --restart=always -v /Users/zy/Desktop/logs:/home/oracle/app/oracle/oradata/mydata registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
-v /Users/zy/Desktop/logs:/home/oracle/app/oracle/oradata/mydata

前面/Users/zy/Desktop/logs   是物理机器的路径

/home/oracle/app/oracle/oradata/mydata  是docker里面的路径

image-20210304164235951

3、进入容器设置用户信息

docker exec -it oracle_11g bash

4、切换root用户,密码:helowin

[oracle@8a494f051f36 /]$ su
Password:
[root@8a494f051f36 /]#

5、配置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

创建建立sqlplus软连接

ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

切换到oracle用户

[root@8a494f051f36 /]# exit
exit
[oracle@8a494f051f36 /]$

刷新配置(如果找不到命令,就多刷新配置)

source /etc/profile

登录sqlplus

sqlplus / as sysdba  

修改sys和system用户密码

alter user system identified by 123456;
alter user sys identified by 123456;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

连接配置

image-20210304165951371

//创建用户、用户授权

//创建用户
create user test identified by 123456;
//用户授权
grant connect, resource,dba to test;

登陆测试

[oracle@8a494f051f36 /]$ sqlplus

SQL*Plus: Release 11.2.0.1.0 Production on Thu Mar 4 17:03:17 2021

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Enter user-name: test
Enter password:

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>

0x03 数据库文件拷

从宿主机拷文件 uc.dmp到容器里面

docker cp /Users/zy/Desktop/dbtemp.dmp oracle_11g:/home

改一下权限

[root@8a494f051f36 home]# chmod 777 temp.dmp

恢复数据库

imp test/123456 file=/home/dbtemp.dmp ignore=y full=y
imp  //是oracle自带的导入工具
test/123456  //使用的用户名密码
file=/home/dbtemp.dmp  //备份文件路径
ignore=y full=y  //模式
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Docker容器中导出Oracle数据库的dmp文件,可以按照以下步骤操作: 1. 在Docker容器中安装Oracle客户端工具,例如sqlplus和expdp等。 2. 运行Docker容器并登录到Oracle数据库。 3. 使用expdp命令导出dmp文件。例如,使用以下命令导出整个数据库: ``` expdp username/password@connect_string dumpfile=export.dmp directory=DATA_PUMP_DIR full=y ``` 其中,username是数据库用户名,password是密码,connect_string是连接字符串,dumpfile是导出的dmp文件名,directory是导出文件的目录,full=y表示导出整个数据库。 4. 导出完成后,将dmp文件复制到本地计算机。 ``` docker cp container_id:/path/to/export.dmp /path/on/host ``` 其中,container_id是Docker容器的ID,/path/to/export.dmpdmp文件的路径,/path/on/host是本地计算机上存储dmp文件的路径。 5. 在本地计算机上使用Oracle客户端工具导入dmp文件到另一个Oracle数据库中。例如,使用以下命令导入dmp文件: ``` impdp username/password@connect_string dumpfile=export.dmp directory=DATA_PUMP_DIR ``` 其中,username是目标数据库的用户名,password是密码,connect_string是连接字符串,dumpfile是导入dmp文件名,directory是导入文件的目录。 注意:在使用expdp和impdp命令时,需要先在Oracle数据库中创建数据泵目录。例如,使用以下命令创建数据泵目录: ``` CREATE DIRECTORY DATA_PUMP_DIR AS '/path/to/directory'; ``` 其中,/path/to/directory是数据泵目录的路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值