签到成功

知道了

CNDBA社区CNDBA社区

Mac 平台 Docker 安装 DM达梦数据库

2023-02-17 23:58 4604 0 原创 Linux DM 达梦
作者: dave

之前Mac平台的docker 环境已经安装好了:

Mac 安装 Docker 并修改源
https://www.cndba.cn/dave/article/116440

Docker 命令大全
https://www.cndba.cn/dave/article/4104

本篇看下mac平台下docker 安装达梦数据库。 http://www.cndba.cn/dave/article/116442http://www.cndba.cn/dave/article/116442

1. 下载并导入Docker 安装包

官网的链接如下:http://www.cndba.cn/dave/article/116442http://www.cndba.cn/dave/article/116442

https://eco.dameng.com/document/dm/zh-cn/start/dm-install-docker.htmlhttp://www.cndba.cn/dave/article/116442

达梦docker 镜像下载地址:

https://download.dameng.com/eco/dm8/dm8_20220822_rev166351_x86_rh6_64_ctm.tar

http://www.cndba.cn/dave/article/116442

进入docker文件目录后执行导入命令:

david@DaviddeMBP DM % pwd
/Users/david/Documents/Software/DM
david@DaviddeMBP DM % docker load -i dm8_20220822_rev166351_x86_rh6_64_ctm.tar 
644879075e24: Loading layer  117.9MB/117.9MB
d7ff1dc646ba: Loading layer  15.87kB/15.87kB
686245e78935: Loading layer  14.85kB/14.85kB
d73dd9e65295: Loading layer  5.632kB/5.632kB
2de391e51d73: Loading layer  3.072kB/3.072kB
5d3893664e8e: Loading layer  42.94MB/42.94MB
86739628cd5d: Loading layer  275.5MB/275.5MB
a8cca048a547: Loading layer  4.608kB/4.608kB
8af79446e96a: Loading layer   2.56kB/2.56kB
a28e591b0aad: Loading layer  4.608kB/4.608kB
Loaded image: dm8_single:v8.1.2.128_ent_x86_64_ctm_pack4
david@DaviddeMBP DM % docker images
REPOSITORY   TAG                               IMAGE ID       CREATED        SIZE
dm8_single   v8.1.2.128_ent_x86_64_ctm_pack4   ccb727ce9dce   5 months ago   432MB
david@DaviddeMBP DM %

2. 创建容器

david@DaviddeMBP data % docker run -d -p 5236:5236 --name dm8 --privileged=true -e PAGE_SIZE=16 -e LD_LIBRARY_PATH=/opt/dmdbms/bin -e INSTANCE_NAME=dm8 -v /Users/david/Documents/Software/DM/data:/opt/dmdbms/data dm8_single:v8.1.2.128_ent_x86_64_ctm_pack4
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
b608c67d6f5a52f1fe1acc8028c7077a0a9a9d7d8351da053d6d21ce478894b7

查看容器状态:

david@DaviddeMBP data % docker ps -a
CONTAINER ID   IMAGE                                        COMMAND                  CREATED          STATUS          PORTS                    NAMES
b608c67d6f5a   dm8_single:v8.1.2.128_ent_x86_64_ctm_pack4   "/bin/bash /opt/star…"   15 seconds ago   Up 12 seconds   0.0.0.0:5236->5236/tcp   dm8
david@DaviddeMBP data %

查看日志:

david@DaviddeMBP data % docker logs b608c67d6f5a
file dm.key not found, use default license!
License will expire on 2023-08-04
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL

 log file path: /opt/dmdbms/data/DAMENG/DAMENG01.log


 log file path: /opt/dmdbms/data/DAMENG/DAMENG02.log

write to dir [/opt/dmdbms/data/DAMENG].
create dm database success. 2023-02-17 23:05:04
initdb V8
db version: 0x7000c
Init DM success!
Start DmAPService...
Starting DmAPService:                                      [ OK ]
/opt/dmdbms/conf/dm.ini does not exist, use default dm.ini
Start DMSERVER success!
Dmserver is running.
DM Database is not OK, please wait...
DM Database is not OK, please wait...
DM Database is OK
Finished soft link DM current dm_DMSERVER_202302.log to dm_DMSERVER.log
 * Starting periodic command scheduler cron
   ...done.
2023-02-17 23:05:32.527 [INFO] database P0000000120 T0000000000000000200  total 0 active crash trx, pseg_crash_trx_rollbacksys_only(0) begin ...
2023-02-17 23:05:32.527 [INFO] database P0000000120 T0000000000000000200  pseg_crash_trx_rollback end, total 0 active crash trx, include 0 empty_trxs, 0 empty_pages which only need to delete mgr recs.
2023-02-17 23:05:32.527 [INFO] database P0000000120 T0000000000000000200  pseg_crash_trx_rollback end
2023-02-17 23:05:32.527 [INFO] database P0000000120 T0000000000000000200  hpc_clear_active_trx adjust n_crash_active_trx from 0 to 0.
2023-02-17 23:05:32.535 [INFO] database P0000000120 T0000000000000000120  backup control file /opt/dmdbms/data/DAMENG/dm.ctl to file /opt/dmdbms/data/DAMENG/dm_20230217230532_533427.ctl
2023-02-17 23:05:32.539 [INFO] database P0000000120 T0000000000000000120  backup control file /opt/dmdbms/data/DAMENG/dm.ctl to file /opt/dmdbms/data/DAMENG/ctl_bak/dm_20230217230532_537538.ctl succeed
2023-02-17 23:05:32.540 [INFO] database P0000000120 T0000000000000000120  local instance name is DMSERVER, mode is NORMAL, status is OPEN.
2023-02-17 23:05:32.540 [INFO] database P0000000120 T0000000000000000120  SYSTEM IS READY.
2023-02-17 23:05:32.540 [INFO] database P0000000120 T0000000000000000120  set g_dw_stat from UNDEFINED to NONE success, g_dw_recover_stop is 0
2023-02-17 23:05:33.532 [INFO] database P0000000120 T0000000000000000202  trx4_min_tid_collect set min_active_id_opt, min_active_id: 3643, first_tid: 3006
2023-02-17 23:08:20.032 [INFO] database P0000000120 T0000000000000000249  checkpoint requested, rlog free space[527585280], used space[9277440]
2023-02-17 23:08:20.033 [INFO] database P0000000120 T0000000000000000249  checkpoint generate by ckpt_interval
2023-02-17 23:08:20.034 [INFO] database P0000000120 T0000000000000000192  checkpoint begin, used_space[9277440], free_space[527585280]...
2023-02-17 23:08:20.046 [INFO] database P0000000120 T0000000000000000192  ckpt2_log_adjust: full_status: 160, ptx_reserved: 0
2023-02-17 23:08:20.047 [INFO] database P0000000120 T0000000000000000192  ckpt2_log_adjust: ckpt_lsn(37715), ckpt_fil(0), ckpt_off(9252864), cur_lsn(37828), l_next_seq(4643), g_next_seq(4643), cur_free(9282560), total_space(536862720), used_space(29696), free_space(536833024), n_ep(1)
2023-02-17 23:08:20.047 [INFO] database P0000000120 T0000000000000000192  checkpoint end, 0 pages flushed, used_space[29696], free_space[536833024].
david@DaviddeMBP data %

查看本地映射文件:

david@DaviddeMBP data % pwd
/Users/david/Documents/Software/DM/data
david@DaviddeMBP data % ll
zsh: command not found: ll
david@DaviddeMBP data % ls -l
total 0
drwxr-xr-x  18 david  staff  576  2 17 23:05 DAMENG
david@DaviddeMBP data % cd DAMENG 
david@DaviddeMBP DAMENG % ls -l
total 133192
-rw-r--r--  1 david  staff  268435456  2 17 23:09 DAMENG01.log
-rw-r--r--  1 david  staff  268435456  2 17 23:05 DAMENG02.log
drwxr-xr-x  2 david  staff         64  2 17 23:05 HMAIN
-rw-r--r--  1 david  staff  134217728  2 17 23:05 MAIN.DBF
-rw-r--r--  1 david  staff  134217728  2 17 23:08 ROLL.DBF
-rw-r--r--  1 david  staff   52428800  2 17 23:08 SYSTEM.DBF
-rw-r--r--  1 david  staff   27262976  2 17 23:05 TEMP.DBF
drwxr-xr-x  2 david  staff         64  2 17 23:05 bak
drwxr-xr-x  4 david  staff        128  2 17 23:05 ctl_bak
-rw-r--r--  1 david  staff       5632  2 17 23:05 dm.ctl
-rw-r--r--  1 david  staff      59755  2 17 23:05 dm.ini
-rw-r--r--  1 david  staff        633  2 17 23:05 dm_service.prikey
-rw-r--r--  1 david  staff        973  2 17 23:05 dminit20230217230501.log
-rw-r--r--  1 david  staff         12  2 17 23:05 rep_conflict.log
-rw-r--r--  1 david  staff        481  2 17 23:05 sqllog.ini
drwxr-xr-x  2 david  staff         64  2 17 23:05 trace
david@DaviddeMBP DAMENG %

启动和关闭容器:

david@DaviddeMBP DAMENG % docker ps -a
CONTAINER ID   IMAGE                                        COMMAND                  CREATED         STATUS         PORTS                    NAMES
b608c67d6f5a   dm8_single:v8.1.2.128_ent_x86_64_ctm_pack4   "/bin/bash /opt/star…"   6 minutes ago   Up 6 minutes   0.0.0.0:5236->5236/tcp   dm8
david@DaviddeMBP DAMENG % docker stop b608c67d6f5a
b608c67d6f5a
david@DaviddeMBP DAMENG % docker ps -a            
CONTAINER ID   IMAGE                                        COMMAND                  CREATED         STATUS                       PORTS     NAMES
b608c67d6f5a   dm8_single:v8.1.2.128_ent_x86_64_ctm_pack4   "/bin/bash /opt/star…"   6 minutes ago   Exited (137) 3 seconds ago             dm8
david@DaviddeMBP DAMENG % docker start b608c67d6f5a
b608c67d6f5a
david@DaviddeMBP DAMENG % docker ps -a             
CONTAINER ID   IMAGE                                        COMMAND                  CREATED         STATUS         PORTS                    NAMES
b608c67d6f5a   dm8_single:v8.1.2.128_ent_x86_64_ctm_pack4   "/bin/bash /opt/star…"   6 minutes ago   Up 3 seconds   0.0.0.0:5236->5236/tcp   dm8
david@DaviddeMBP DAMENG %

3. 进入容器并操作DM 数据库

  1. 如果使用 docker 容器里面的 disql,进入容器后,先执行 source /etc/profile 防止中文乱码。
  2. 新版本 Docker 镜像中数据库默认用户名/密码为 SYSDBA/SYSDBA001。
david@DaviddeMBP ~ % docker ps -a
CONTAINER ID   IMAGE                                        COMMAND                  CREATED          STATUS         PORTS                    NAMES
b608c67d6f5a   dm8_single:v8.1.2.128_ent_x86_64_ctm_pack4   "/bin/bash /opt/star…"   14 minutes ago   Up 7 minutes   0.0.0.0:5236->5236/tcp   dm8
david@DaviddeMBP ~ % docker exec -it dm8 bash
root@b608c67d6f5a:/# source /etc/profile
root@b608c67d6f5a:/# cd /opt/dmdbms/bin
root@b608c67d6f5a:/opt/dmdbms/bin# ./disql SYSDBA/SYSDBA001       

Server[LOCALHOST:5236]:mode is normal, state is open
login used time : 22.175(ms)
disql V8
SQL> select * from v$version;

LINEID     BANNER                           
---------- ---------------------------------
1          DM Database Server 64 V8
2          DB Version: 0x7000c
3          08134283904-20220804-166351-20005

used time: 32.583(ms). Execute id is 500.
SQL>

然后就可以进行相关的操作。

http://www.cndba.cn/dave/article/116442

因为我们这里没有给容器创建独立的网络,如果是用DBeaver客户端工具连接,直接使用127.0.0.1:5236 进行连接即可。

http://www.cndba.cn/dave/article/116442

david@DaviddeMBP ~ % docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
47c7849a5cec   bridge    bridge    local
2566e6b16470   host      host      local
efbfe7aeff74   none      null      local
david@DaviddeMBP ~ %

我们这里创建一个示例用户:

DM7 达梦 数据库 示例用户 安装 说明
https://www.cndba.cn/cndba/dave/article/3712

http://www.cndba.cn/dave/article/116442
http://www.cndba.cn/dave/article/116442

因为创建容器的时候做了目录映射:

/Users/david/Documents/Software/DM/data:/opt/dmdbms/data

所以直接将sql文件放到/Users/david/Documents/Software/DM/data 目录下即可,当然也可以使用cp命令进行复制。

root@b608c67d6f5a:/opt/dmdbms/data/DAMENG# ls
DAMENG01.log  HMAIN     ROLL.DBF    TEMP.DBF  ctl_bak   dm.ctl  dm_service.prikey  dminit20230217230501.log  sqllog.ini
DAMENG02.log  MAIN.DBF  SYSTEM.DBF  bak       dave.ini  dm.ini  dmhr.sql           rep_conflict.log          trace
root@b608c67d6f5a:/opt/dmdbms/data/DAMENG# pwd
/opt/dmdbms/data/DAMENG
root@b608c67d6f5a:/opt/dmdbms/data/DAMENG# which disql
root@b608c67d6f5a:/opt/dmdbms/data/DAMENG# /opt/dmdbms/bin/disql SYSDBA/SYSDBA001

Server[LOCALHOST:5236]:mode is normal, state is open
login used time : 24.071(ms)
disql V8
SQL> ` dmhr.sql
SQL> CREATE TABLESPACE DMHR DATAFILE 'DMHR.DBF' size 128;
executed successfully
used time: 159.420(ms). Execute id is 900.
SQL> /
CREATE TABLESPACE DMHR DATAFILE 'DMHR.DBF' size 128;
[-3401]:Error in line: 2
tablespace [DMHR] is already exist.
used time: 0.857(ms). Execute id is 0.
SQL> 
CREATE SCHEMA DMHR;
executed successfully
used time: 17.517(ms). Execute id is 901.
SQL> CREATE TABLE "DMHR"."REGION"
(
"REGION_ID" INT NOT NULL,
"REGION_NAME" VARCHAR(25) NULL
);

……
SQL> ALTER TABLE "DMHR"."JOB_HISTORY" ADD CONSTRAINT "JHIST_EMP_ID_ST_DATE_PK" PRIMARY KEY("EMPLOYEE_ID","START_DATE");
executed successfully
used time: 19.026(ms). Execute id is 1889.
SQL> ALTER TABLE "DMHR"."JOB_HISTORY" ADD CONSTRAINT "JHIST_JOB_FK" FOREIGN KEY("JOB_ID") REFERENCES "DMHR"."JOB"("JOB_ID");
executed successfully
used time: 15.954(ms). Execute id is 1890.
SQL> ALTER TABLE "DMHR"."JOB_HISTORY" ADD CONSTRAINT "JHIST_DEPT_FK" FOREIGN KEY("DEPARTMENT_ID") REFERENCES "DMHR"."DEPARTMENT"("DEPARTMENT_ID");
executed successfully
used time: 17.068(ms). Execute id is 1891.
SQL> ALTER TABLE "DMHR"."JOB_HISTORY" ADD CONSTRAINT "JHIST_EMP_FK" FOREIGN KEY("EMPLOYEE_ID") REFERENCES "DMHR"."EMPLOYEE"("EMPLOYEE_ID");
executed successfully
used time: 18.192(ms). Execute id is 1892.
SQL> ALTER TABLE "DMHR"."JOB_HISTORY" ADD CHECK ("END_DATE" > "START_DATE");
executed successfully
used time: 9.631(ms). Execute id is 1893.
SQL> 

SQL> select * from dmhr.city;

LINEID     CITY_ID CITY_NAME REGION_ID  
---------- ------- --------- -----------
1          BJ      北京    1
2          SJZ     石家庄 1
3          SH      上海    2
4          NJ      南京    2
5          GZ      广州    3
6          HK      海口    3
7          WH      武汉    4
8          CS      长沙    4
9          SY      沈阳    5
10         XA      西安    6
11         CD      成都    7

11 rows got

used time: 8.376(ms). Execute id is 1894.
SQL>

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2283
    原创
  • 3
    翻译
  • 579
    转载
  • 196
    评论
  • 访问:8164928次
  • 积分:4428
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ