在Docker中搭建Oracle数据库,并使用PL/SQL Developer链接

最近在学习Docker的同时也在学习Oracle 数据库,就萌生了这个想法。
1.拉取oracle数据库镜像。
在这里我是用的是@wnameless的Oracle 11g镜像,github地址: https://github.com/wnameless/docker-oracle-xe-11g
执行如下命令拉取镜像:
docker pull wnameless/oracle-xe-11g
由于众所周知的原因,为了拉取过程的稳定和快速,可以从阿里云镜像仓库拉取:
docker pull registry.cn-hangzhou.aliyuncs.com/qida/oracle-xe-11g    
2.新建并运行容器
执行如下命令:
docker run -d -p 49160:22 -p 49161:1521 -e ORACLE_ALLOW_REMOTE=true wnameless/oracle-xe-11g
3.下载并配置PL/SQL Developer
为了实现链接你还需要 oracle instance client:
将以上两个文件分别解压,并配置instance client:
在instance client目录中新建名为network的文件夹,并在network目录下新建admin文件夹,在admin文件夹下新建tnsnames.ora文件,使用记事本编写:
xe = 
(DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 49161)) 
    (CONNECT_DATA = 
      (SERVICE_NAME = XE) 
    ) 
) 

其中第一行中的XE是oracle数据库的实例名。
SERVICE_NAME后填写oracle的服务名,可在容器中用lsnrctl status查看,这里我们填写XE。
打开PL/SQL Developer客户端(此时仍无法登陆,关闭登录窗口以未登录状态打开即可),选择Tools-》Preferences,将Oracle Home和OCI Liabrary两栏中填入instance client所在的路径和OCI文件所在路径(oci.dll在instance client目录下),重启PL/SQL Developer。
至此,你就可以使用如下信息登录Oracle数据库了:
username: system
password: oracle







  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在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.dmp是dmp文件的路径,/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是数据泵目录的路径。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值