Mac电脑通过docker安装oracle,并导入数据

一、Mac中Docker的部署

     首先,你需要在Mac中部署Docker,也就是安装Docker。安装Docker分了两种途径,一种是通过terminal终端并下载相关依赖包进行安装,另一种是通过下载dmg格式的安装包直接对Docker进行安装。我推荐使用第二种方式来安装Docker,本片博文也是基于此种方式进行的讲解,希望各位熟知。因为第一种安装Docker的方式会让我们自己再配置一些Docker的基本配置,对于不懂的小白来说,不太现实。

    Docker桌面版本提供了用户GUI界面的支持,使用户对Docker的相关配置直接通过界面即可,不过是英文的,不用再写其他和配置有关的命令,部分截图如下:

      安装成功之后会在Mac中显示出Docker的Logo。

      同时会在Mac顶部菜单栏中出现Docker的Logo,点击它,如下图:


     在成功安装完Docker桌面版之后,Docker会默认启动并默认开机启动,当你在菜单栏中发现Docker Desktop is running时,说明你的Docker桌面版已经安装成功了,我们进行接下来的操作。

二、通过Docker来安装Oracle11g

      (1)Docker是一个容器,在容器内部存在很多镜像文件,通过具体的镜像文件可以运行具体的容器。要想在Docker中安装Oracle镜像,我们首先应该在Docker的远程仓库中进行搜索,因为Docker没有自带Oracle相关镜像,命令如下(根据你Mac的实际情况决定是否要加sudo):

        sudo docker search docker-oracle-xe-11g

        为什么选择该Oracle镜像,因为该镜像是我在安装了两三个Oracle镜像之后发现的占用内存最小,功能最全,安装简便的镜像,前前后后我换了两三个镜像,碰到过5.7GB的,碰到过4.2GB的,只有这个是2.7GB的,而且功能还全。搜索结果如下:

      我们选择第一个STAR最多的一个镜像进行安装,拉取镜像命令如下:

          sudo docker pull deepdiver/docker-oracle-xe-11g



       因为我已经安装过了,所以这里就不再展示了,只需要等待镜像下载完毕就可。待镜像下载完毕之后,我们需要将该镜像转成容器并使用该容器,命令如下:

          sudo docker run -d -p 1521:1521 --name oracle11g deepdiver/docker-oracle-xe-11g


      值得注意的就是将容器内部的1521端口映射到宿主机中的1521端口,这样一来就能在宿主机中通过Navicat等数据库可视化管理工具进行连接了。在这步完成之后,我们需要进到容器内部对已经安装的Oracle进行简单配置。

    (2)在Oracle容器中简单配置你的Oracle数据库并通过Navicat进行连接

         进入容器内部的命令如下:

         sudo docker exec -it  你的容器Id(可通过docker ps命令获得)  /bin/bash

         通过sqlplus进入Oracle:

         sqlplus system/oracle 

        依次进行如下操作:

              查看数据库用户名和密码:

                  select username,password from dba_users;

              当然,你可以通过已经存在的用户名和密码来登录数据库,推荐使用新创建的用户来进行数据库的登录,sql如下:

                 create user cqj(用户名) identified by password(密码)

               创建完之后,可以通过如下sql进行验证:

                 select * from all_users;     

               在创建完新用户之后,需要对该用户进行授权,该用户具有什么权限都是通过自己指定的,这也是为什么推荐使用自定义用户登录数据库的原因,sql如下:

                grant connect,resource to CQJ(这里需要将用户名大写,否则授权不成功)

                connect表示具有连接数据库的权限;resource表示具有操作数据库的权限

               至此,所有需要配置的数据库配置都已经配置完毕,可以通过Navicat进行连接了,如下图所示:


      几个需要注意的地方:

              主机就是localhost或127.0.0.1

              端口为docker内部Oracle容器映射到宿主机的端口,上述命令有将,我的是映射到1521端口

              选择服务名进行连接,并且该版本Oracle数据库的服务名为XE(唯一)

              角色选择默认就行

              用户名和密码就是我们在上述创建的用户名和密码

      在配置完上述内容之后,点击连接测试,即可连接成功:


至此,所有的操作都已经完成了,赶快在你的Mac上使用Oracle吧!!

三、用sys用户登录

1.用sys超级管理员用户登录

     sqlplus / as Sysdba;

2.创建oracle数据库逻辑目录 

     create directory datadump as '/datadump';

3.创建cqj用户并授权(上面已经创建过,此步骤在这里省略) 

     create user cqj identified by cqj;   grant dba to cqj;

4.给cqj用户对datadump文件的读写权限 

     grant write,read on directory datapump to cqj;

四、在docker容器中创建目录并将dmp文件备份到容器中

1.在容器中创建目录datadump

    mkdir datadump

2.将dmp文件备份到datadump目录下   

    sudo docker cp /Users/XXX/Desktop/cqj_20191231.dmp  993746984ba6(容器的id,可通过docker ps查询):/datadump/cqj.dmp

3.导入成功后,查看一下文件的详细信息 

   ls -l

如果该文件不是oracle dba操作的权限,可进行修改

在root账户登录下: chown oracle:dba cqj.dmp

4.导入数据泵命令

impdp cqj/cqj directory=datadump dumpfile=cqj.dmp transform=segment_attributes:n table_exists_action=replace logfile=cqj.log

5.如果导入的表太大,担心表空间不够的时候,可以适当的增加表空间

先查询一下该用户使用的哪个表空间

-- 查看当前用户的缺省表空间

select * from user_users;

因为我使用的表空间是SYSTEM,所以,增大表空间的命令如下:

ALTER TABLESPACE SYSTEM(表空间)  ADD DATAFILE  '/u01/app/oracle/oradata/XE

/system2.dbf'(文件存放位置)  SIZE 1024M AUTOEXTEND ON NEXT 1024M MAXSIZE 30720M;


查看数据库表空间使用情况:

SELECT D.TABLESPACE_NAME,SPACE "SUM_SPACE(M)",BLOCKS SUM_BLOCKS,SPACE-NVL(FREE_SPACE,0) "USED_SPACE(M)",

ROUND((1-NVL(FREE_SPACE,0)/SPACE)*100,2) "USED_RATE(%)",FREE_SPACE "FREE_SPACE(M)"

FROM

(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) SPACE,SUM(BLOCKS) BLOCKS

FROM DBA_DATA_FILES

GROUP BY TABLESPACE_NAME) D,

(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) FREE_SPACE

FROM DBA_FREE_SPACE

GROUP BY TABLESPACE_NAME order by TABLESPACE_NAME) F

WHERE  D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)

UNION ALL  --if have tempfile

SELECT D.TABLESPACE_NAME,SPACE "SUM_SPACE(M)",BLOCKS SUM_BLOCKS,

USED_SPACE "USED_SPACE(M)",ROUND(NVL(USED_SPACE,0)/SPACE*100,2) "USED_RATE(%)",

NVL(FREE_SPACE,0) "FREE_SPACE(M)"

FROM

(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) SPACE,SUM(BLOCKS) BLOCKS

FROM DBA_TEMP_FILES

GROUP BY TABLESPACE_NAME) D,

(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES_USED)/(1024*1024),2) USED_SPACE,

ROUND(SUM(BYTES_FREE)/(1024*1024),2) FREE_SPACE

FROM V$TEMP_SPACE_HEADER

GROUP BY TABLESPACE_NAME) F

WHERE  D.TABLESPACE_NAME = F.TABLESPACE_NAME(+);

©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,744评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,505评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,105评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,242评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,269评论 6 389
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,215评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,096评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,939评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,354评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,573评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,745评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,448评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,048评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,683评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,838评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,776评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,652评论 2 354

推荐阅读更多精彩内容