oracle克隆镜像,备份,迁移和克隆docker镜像

(一)备份:

我们用docker ps看有几个container,注意如果加-a参数,则没有running的container也会显示出来。

LoveHousedeiMac:idocker lovehouse$ docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

c9f09116cc83 oracle/database:12.2.0.1-ee "/bin/sh -c 'exec ..." 23 hours ago Exited (137) 4 hours ago oracle

LoveHousedeiMac:idocker lovehouse$

1

2

3

4

LoveHousedeiMac:idockerlovehouse$dockerps-a

CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES

c9f09116cc83oracle/database:12.2.0.1-ee"/bin/sh -c 'exec ..."23hoursagoExited(137)4hoursagooracle

LoveHousedeiMac:idockerlovehouse$

我们先将该container commit成镜像:

先检查一下已经存在的image:

LoveHousedeiMac:idocker lovehouse$ docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

oracle/database 12.2.0.1-ee 4f9df5f46a19 23 hours ago 14.8 GB

oraclelinux 7-slim 442ebf722584 4 weeks ago 114 MB

LoveHousedeiMac:idocker lovehouse$

1

2

3

4

5

LoveHousedeiMac:idockerlovehouse$dockerimages

REPOSITORYTAGIMAGEIDCREATEDSIZE

oracle/database12.2.0.1-ee4f9df5f46a1923hoursago14.8GB

oraclelinux7-slim442ebf7225844weeksago114MB

LoveHousedeiMac:idockerlovehouse$

停下container,并进行commit:

LoveHousedeiMac:idocker lovehouse$ docker stop oracle

oracle

LoveHousedeiMac:idocker lovehouse$

LoveHousedeiMac:idocker lovehouse$ docker commit -p c9f09116cc83 container-backup

sha256:f58f6143fca7d2e001ce810b2d13b8adac9d64e4cc9f50477f0108bb246db3c0

LoveHousedeiMac:idocker lovehouse$

1

2

3

4

5

6

LoveHousedeiMac:idockerlovehouse$dockerstoporacle

oracle

LoveHousedeiMac:idockerlovehouse$

LoveHousedeiMac:idockerlovehouse$dockercommit-pc9f09116cc83container-backup

sha256:f58f6143fca7d2e001ce810b2d13b8adac9d64e4cc9f50477f0108bb246db3c0

LoveHousedeiMac:idockerlovehouse$

检查现有的image:

LoveHousedeiMac:idocker lovehouse$ docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

container-backup latest f58f6143fca7 4 seconds ago 15.3 GB

oracle/database 12.2.0.1-ee 4f9df5f46a19 23 hours ago 14.8 GB

oraclelinux 7-slim 442ebf722584 4 weeks ago 114 MB

LoveHousedeiMac:idocker lovehouse$

1

2

3

4

5

6

LoveHousedeiMac:idockerlovehouse$dockerimages

REPOSITORYTAGIMAGEIDCREATEDSIZE

container-backuplatestf58f6143fca74secondsago15.3GB

oracle/database12.2.0.1-ee4f9df5f46a1923hoursago14.8GB

oraclelinux7-slim442ebf7225844weeksago114MB

LoveHousedeiMac:idockerlovehouse$

将container-backup 这个image做成tar文件:

LoveHousedeiMac:idocker lovehouse$ ls

docker-images-master

LoveHousedeiMac:idocker lovehouse$ docker save -o ./container-backup.tar container-backup

LoveHousedeiMac:idocker lovehouse$

LoveHousedeiMac:idocker lovehouse$ ls -l

total 29910416

-rw------- 1 lovehouse staff 15314129920 May 21 21:48 container-backup.tar

drwxr-xr-x@ 19 lovehouse staff 646 May 20 20:04 docker-images-master

LoveHousedeiMac:idocker lovehouse$

1

2

3

4

5

6

7

8

9

LoveHousedeiMac:idockerlovehouse$ls

docker-images-master

LoveHousedeiMac:idockerlovehouse$dockersave-o./container-backup.tarcontainer-backup

LoveHousedeiMac:idockerlovehouse$

LoveHousedeiMac:idockerlovehouse$ls-l

total29910416

-rw-------1lovehousestaff15314129920May2121:48container-backup.tar

drwxr-xr-x@19lovehousestaff646May2020:04docker-images-master

LoveHousedeiMac:idockerlovehouse$

我们将container-backup.tar备份或者迁移至别的主机,或者路径。实现了docker container的迁移。

注意,由于之前我们建立database采用了分离式的持久化,即数据文件不是在container,是在/Users/[username]/oradata下,所以我们也要备份一份这个文件。

cd /Users/lovehouse

tar cvf oradata.tar oradata

1

2

cd/Users/lovehouse

tarcvforadata.taroradata

(二)还原或克隆:

我们这里将备份的东西,load进去,并且成为oracle_2

先将数据文件还原,且文件夹命名成oradata_2

LoveHousedeiMac:~ lovehouse$ pwd

/Users/lovehouse

LoveHousedeiMac:~ lovehouse$ ls -l

total 7356176

drwxr-xr-x 4 lovehouse staff 136 May 21 21:48 iDocker

drwxr-xr-x@ 6 lovehouse staff 204 May 21 22:21 oradata

drwxr-xr-x@ 6 lovehouse staff 204 May 21 22:21 oradata_2

LoveHousedeiMac:~ lovehouse$

1

2

3

4

5

6

7

8

LoveHousedeiMac:~lovehouse$pwd

/Users/lovehouse

LoveHousedeiMac:~lovehouse$ls-l

total7356176

drwxr-xr-x4lovehousestaff136May2121:48iDocker

drwxr-xr-x@6lovehousestaff204May2122:21oradata

drwxr-xr-x@6lovehousestaff204May2122:21oradata_2

LoveHousedeiMac:~lovehouse$

将备份的tar包 load进去

LoveHousedeiMac:~ lovehouse$ cd idocker

LoveHousedeiMac:idocker lovehouse$ ls

container-backup.tar docker-images-master

LoveHousedeiMac:idocker lovehouse$

LoveHousedeiMac:idocker lovehouse$ docker load -i ./container-backup.tar

94fd1a061ee3: Loading layer [==================================================>] 433.9 MB/433.9 MB

Loaded image: container-backup:latest

LoveHousedeiMac:idocker lovehouse$

LoveHousedeiMac:idocker lovehouse$

LoveHousedeiMac:idocker lovehouse$

LoveHousedeiMac:idocker lovehouse$ docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

container-backup latest f58f6143fca7 About an hour ago 15.3 GB

oracle/database 12.2.0.1-ee 4f9df5f46a19 25 hours ago 14.8 GB

oraclelinux 7-slim 442ebf722584 4 weeks ago 114 MB

LoveHousedeiMac:idocker lovehouse$

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

LoveHousedeiMac:~lovehouse$cdidocker

LoveHousedeiMac:idockerlovehouse$ls

container-backup.tardocker-images-master

LoveHousedeiMac:idockerlovehouse$

LoveHousedeiMac:idockerlovehouse$dockerload-i./container-backup.tar

94fd1a061ee3:Loadinglayer[==================================================>]433.9MB/433.9MB

Loadedimage:container-backup:latest

LoveHousedeiMac:idockerlovehouse$

LoveHousedeiMac:idockerlovehouse$

LoveHousedeiMac:idockerlovehouse$

LoveHousedeiMac:idockerlovehouse$dockerimages

REPOSITORYTAGIMAGEIDCREATEDSIZE

container-backuplatestf58f6143fca7Aboutanhourago15.3GB

oracle/database12.2.0.1-ee4f9df5f46a1925hoursago14.8GB

oraclelinux7-slim442ebf7225844weeksago114MB

LoveHousedeiMac:idockerlovehouse$

运行docker run创建container,注意端口要修改一下,以免占用原来的oracle这个container的端口。如果不修改,那么第二个container启动的时候会报错:port is already allocated

LoveHousedeiMac:idocker lovehouse$ docker run --name oracle_2 -p 1522:1521 -p 5501:5500 -v /Users/lovehouse/oradata_2:/opt/oracle/oradata container-backup:latest

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 21-MAY-2017 15:21:22

Copyright (c) 1991, 2016, Oracle. All rights reserved.

Starting /opt/oracle/product/12.2.0.1/dbhome_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 12.2.0.1.0 - Production

System parameter file is /opt/oracle/product/12.2.0.1/dbhome_1/network/admin/listener.ora

Log messages written to /opt/oracle/diag/tnslsnr/e12ff2cf32f2/listener/alert/log.xml

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))

STATUS of the LISTENER

------------------------

Alias LISTENER

Version TNSLSNR for Linux: Version 12.2.0.1.0 - Production

Start Date 21-MAY-2017 15:21:26

Uptime 0 days 0 hr. 0 min. 2 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Listener Parameter File /opt/oracle/product/12.2.0.1/dbhome_1/network/admin/listener.ora

Listener Log File /opt/oracle/diag/tnslsnr/e12ff2cf32f2/listener/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))

The listener supports no services

The command completed successfully

SQL*Plus: Release 12.2.0.1.0 Production on Sun May 21 15:21:26 2017

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

Connected to an idle instance.

SQL> ORACLE instance started.

Total System Global Area 1610612736 bytes

Fixed Size 8793304 bytes

Variable Size 520094504 bytes

Database Buffers 1073741824 bytes

Redo Buffers 7983104 bytes

Database mounted.

Database opened.

SQL> Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

#########################

DATABASE IS READY TO USE!

#########################

The following output is now a tail of the alert.log:

Shared IO Pool defaulting to 64MB. Trying to get it from Buffer Cache for process 83.

===========================================================

Dumping current patch information

===========================================================

No patches have been applied

===========================================================

Starting background process CJQ0

2017-05-21T15:21:43.968340+00:00

CJQ0 started with pid=40, OS id=295

Completed: ALTER DATABASE OPEN

2017-05-21T15:21:44.275108+00:00

db_recovery_file_dest_size of 12780 MB is 0.00% used. This is a

user-specified limit on the amount of space that will be used by this

database for recovery-related files, and does not reflect the amount of

space available in the underlying filesystem or ASM diskgroup.

2017-05-21T15:21:47.119178+00:00

Setting Resource Manager plan SCHEDULER[0x4AC9]:DEFAULT_MAINTENANCE_PLAN via scheduler window

Setting Resource Manager CDB plan DEFAULT_MAINTENANCE_PLAN via parameter

ORCLPDB1(3):Setting Resource Manager plan SCHEDULER[0x4AC3]:DEFAULT_MAINTENANCE_PLAN via scheduler window

ORCLPDB1(3):Setting Resource Manager plan DEFAULT_MAINTENANCE_PLAN via parameter

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

LoveHousedeiMac:idockerlovehouse$dockerrun--nameoracle_2-p1522:1521-p5501:5500-v/Users/lovehouse/oradata_2:/opt/oracle/oradatacontainer-backup:latest

LSNRCTLforLinux:Version12.2.0.1.0-Productionon21-MAY-201715:21:22

Copyright(c)1991,2016,Oracle.Allrightsreserved.

Starting/opt/oracle/product/12.2.0.1/dbhome_1/bin/tnslsnr:pleasewait...

TNSLSNRforLinux:Version12.2.0.1.0-Production

Systemparameterfileis/opt/oracle/product/12.2.0.1/dbhome_1/network/admin/listener.ora

Logmessageswrittento/opt/oracle/diag/tnslsnr/e12ff2cf32f2/listener/alert/log.xml

Listeningon:(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))

Listeningon:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))

Connectingto(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))

STATUSoftheLISTENER

------------------------

AliasLISTENER

VersionTNSLSNRforLinux:Version12.2.0.1.0-Production

StartDate21-MAY-201715:21:26

Uptime0days0hr.0min.2sec

TraceLeveloff

SecurityON:LocalOSAuthentication

SNMPOFF

ListenerParameterFile/opt/oracle/product/12.2.0.1/dbhome_1/network/admin/listener.ora

ListenerLogFile/opt/oracle/diag/tnslsnr/e12ff2cf32f2/listener/alert/log.xml

ListeningEndpointsSummary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))

Thelistenersupportsnoservices

Thecommandcompletedsuccessfully

SQL*Plus:Release12.2.0.1.0ProductiononSunMay2115:21:262017

Copyright(c)1982,2016,Oracle.Allrightsreserved.

Connectedtoanidleinstance.

SQL>ORACLEinstancestarted.

TotalSystemGlobalArea1610612736bytes

FixedSize8793304bytes

VariableSize520094504bytes

DatabaseBuffers1073741824bytes

RedoBuffers7983104bytes

Databasemounted.

Databaseopened.

SQL>DisconnectedfromOracleDatabase12cEnterpriseEditionRelease12.2.0.1.0-64bitProduction

#########################

DATABASEISREADYTOUSE!

#########################

Thefollowingoutputisnowatailofthealert.log:

SharedIOPooldefaultingto64MB.TryingtogetitfromBufferCacheforprocess83.

===========================================================

Dumpingcurrentpatchinformation

===========================================================

Nopatcheshavebeenapplied

===========================================================

StartingbackgroundprocessCJQ0

2017-05-21T15:21:43.968340+00:00

CJQ0startedwithpid=40,OSid=295

Completed:ALTERDATABASEOPEN

2017-05-21T15:21:44.275108+00:00

db_recovery_file_dest_sizeof12780MBis0.00%used.Thisisa

user-specifiedlimitontheamountofspacethatwillbeusedbythis

databaseforrecovery-relatedfiles,anddoesnotreflecttheamountof

spaceavailableintheunderlyingfilesystemorASMdiskgroup.

2017-05-21T15:21:47.119178+00:00

SettingResourceManagerplanSCHEDULER[0x4AC9]:DEFAULT_MAINTENANCE_PLANviaschedulerwindow

SettingResourceManagerCDBplanDEFAULT_MAINTENANCE_PLANviaparameter

ORCLPDB1(3):SettingResourceManagerplanSCHEDULER[0x4AC3]:DEFAULT_MAINTENANCE_PLANviaschedulerwindow

ORCLPDB1(3):SettingResourceManagerplanDEFAULT_MAINTENANCE_PLANviaparameter

至此,2个docker container已经同时跑起来。container-backup:latest这个container是利用第一个克隆出来的,并且做了端口映射,将1522映射到内部的1521,将5501映射到内部的5500。

LoveHousedeiMac:idocker lovehouse$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

e12ff2cf32f2 container-backup:latest "/bin/sh -c 'exec ..." 3 minutes ago Up 2 minutes 0.0.0.0:1522->1521/tcp, 0.0.0.0:5501->5500/tcp oracle_2

c9f09116cc83 oracle/database:12.2.0.1-ee "/bin/sh -c 'exec ..." 24 hours ago Up 6 minutes 0.0.0.0:1521->1521/tcp, 0.0.0.0:5500->5500/tcp oracle

LoveHousedeiMac:idocker lovehouse$

LoveHousedeiMac:idocker lovehouse$

1

2

3

4

5

6

LoveHousedeiMac:idockerlovehouse$dockerps

CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES

e12ff2cf32f2container-backup:latest"/bin/sh -c 'exec ..."3minutesagoUp2minutes0.0.0.0:1522->1521/tcp,0.0.0.0:5501->5500/tcporacle_2

c9f09116cc83oracle/database:12.2.0.1-ee"/bin/sh -c 'exec ..."24hoursagoUp6minutes0.0.0.0:1521->1521/tcp,0.0.0.0:5500->5500/tcporacle

LoveHousedeiMac:idockerlovehouse$

LoveHousedeiMac:idockerlovehouse$

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值