暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

达梦数据库基础知识(一)

IT小Chen 2022-09-18
1479

安装

准备安装介质

    [dmdba@cjc-db-01 dm8]$ cd stage/
    [root@cjc-db-01 stage]# ls -lrth
    total 621M
    -rw-r--r--. 1 root root 621M Feb 24 2021 dm8_20201107_x86_rh7_64_ent_8.1.1.144.iso
    -rw-r--r--. 1 root root 54K Apr 22 2021 nmon-14i-1.gf.el6.x86_64.rpm

    创建用户,组

      [root@cjc-db-01 ~]# groupadd dinstall
      [root@cjc-db-01 ~]# useradd -g dinstall dmdba
      [root@cjc-db-01 ~]# id dmdba
      uid=1001(dmdba) gid=1001(dinstall) groups=1001(dinstall)
      [root@cjc-db-01 ~]# passwd dmdba

      调整limit.conf

        [root@cjc-db-01 security]# pwd
        /etc/security
        [root@cjc-db-01 security]# cp limits.conf limits.conf_20220917
        [root@cjc-db-01 security]# vi limits.conf
        dmdba soft nofile 65536
        dmdba hard nofile 65536

        创建目录、授权

          [root@cjc-db-01 security]# chown -R dmdba.dinstall dm8

          检查并关闭防火墙

            [root@cjc-db-01 stage]# systemctl status firewalld.service

            检查并关闭selinux

              [root@cjc-db-01 stage]# more etc/selinux/config

              挂载安装介质

                [root@cjc-db-01 stage]# mount -t iso9660 -o loop dm8_20201107_x86_rh7_64_ent_8.1.1.144.iso mnt
                mount: dev/loop0 is write-protected, mounting read-only


                [root@cjc-db-01 stage]# ls -lrth mnt
                total 621M
                -r-xr-xr-x 1 root root 2.8M Nov 6 2020 DM8 Install.pdf
                -r-xr-xr-x 1 root root 618M Nov 6 2020 DMInstall.bin

                配置用户环境变量

                  [root@host02 mnt]# echo $DISPLAY
                  localhost:11.0
                    [dmdba@cjc-db-01 ~]$ vi .bash_profile 
                    export PATH
                    export DISPLAY=:11.0
                    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dm8/bin"
                    export DM_HOME="/dm8"
                    export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool

                    DM支持图形化安装和非图行化安装,今天介绍下图形话安装

                    xshell连接操作系统,配置图形。

                      [root@cjc-db-01 mnt]# xhost +
                      access control disabled, clients can connect from any host
                      [dmdba@cjc-db-01 ~]$ source .bash_profile
                      export DISPLAY=:11.0

                      安装xclock,测试图形

                        yum install xclock
                        xclock

                        开始安装DM软件

                          [dmdba@cjc-db-01 mnt]$ ./DMInstall.bin
                          Extract install files.

                          执行脚本

                            [root@cjc-db-01 ~]# dm8/script/root/root_installer.sh
                            Move /dm8/bin/dm_svc.conf to /etc
                            Modify the files' mode of DM Server
                            Create the DmAPService service
                            Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service.
                            Finished to create the service (DmAPService)
                            Start the DmAPService service

                            初始化数据库

                            安装完成数据库软件,继续初始化数据库

                            或者通过dbca.sh命令启动图形初始化数据库

                            也可以通过dminit工具进行初始化数据库

                            注意:

                            这块命令和Oracle不同,OracledbcaDMdbca.sh


                            默认时区-7:00,在修改时区时,发现冒号自动变成分号了,修改时最好只将-7改成8,不要动冒号,或者在文本写好+8:00后复制粘贴过来。

                            按提示配置并启动服务

                              [root@cjc-db-01 ~]# mv /dm8/bin/DmServiceDMSERVER.service /usr/lib/systemd/system/DmServiceDMSERVER.service
                                [root@cjc-db-01 ~]# systemctl enable DmServiceDMSERVER.service
                                Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service to /usr/lib/systemd/system/DmServiceDMSERVER.service.
                                [root@cjc-db-01 ~]# systemctl start DmServiceDMSERVER.service

                                dminit初始化数据库

                                除了dbca.sh、图形初始化数据库以外,还支持dminit工具初始化。

                                这里尝试通过dminit工具创建第二个实例

                                指定数据库名、实例名、端口等

                                  [dmdba@cjc-db-01 dm8]$ dminit path=/dm8/data DB_NAME=dameng02 instance_name=TEST port_num=5238
                                    initdb V8
                                    db version: 0x7000b
                                    file dm.key not found, use default license!
                                    License will expire in 14 day(s) on 2022-09-30
                                    log file path: /dm8/data/dameng02/dameng0201.log
                                    log file path: /dm8/data/dameng02/dameng0202.log
                                    write to dir [/dm8/data/dameng02].
                                    create dm database success. 2022-09-16 22:48:04

                                    查看帮助信息

                                      [dmdba@cjc-db-01 ~]$ dminit help
                                      initdb V8
                                      db version: 0x7000b
                                      file dm.key not found, use default license!
                                      License will expire on 2022-10-01
                                      Format: ./dminit KEYWORD=value
                                      Example: ./dminit PATH=/public/dmdb/dmData PAGE_SIZE=16
                                      Keyword Explanation(default value)
                                      --------------------------------------------------------------------------------
                                      INI_FILE dm.ini path
                                      PATH database path
                                      CTL_PATH control file path
                                      LOG_PATH log file path
                                      EXTENT_SIZE extent size of data file(16), optional value: 16, 32, 64, unit: PAGE
                                      PAGE_SIZE page size(8), optional value: 4, 8, 16, 32, unit: K
                                      LOG_SIZE log file size(256), unit: M, range: 64M ~ 2G
                                      CASE_SENSITIVE whether case is sensitive(Y), optional value: Y/N or 1/0
                                      CHARSET/UNICODE_FLAG CHARSET(0), optional value:0[GB18030],1[UTF-8],2[EUC-KR]
                                      SEC_PRIV_MODE security privilege mode(0), optional value£º0[TRADITION], 1[BMJ], 2[EVAL]
                                      LENGTH_IN_CHAR whether LENGTH for VARCHAR is in characters(N), optional value: Y/N, 1/0
                                      SYSDBA_PWD set SYSDBA password(SYSDBA)
                                      SYSAUDITOR_PWD set SYSAUDITOR password(SYSAUDITOR)
                                      DB_NAME database name(DAMENG)
                                      INSTANCE_NAME instance name(DMSERVER)
                                      PORT_NUM listener port(5236)
                                      BUFFER System buffer size(100), unit: M
                                      TIME_ZONE set time zone(+08:00)
                                      PAGE_CHECK page check mode(0), optional value: 0/1/2
                                      EXTERNAL_CIPHER_NAME set default encrypt/decrypt algorithm
                                      EXTERNAL_HASH_NAME set default hash algorithm
                                      EXTERNAL_CRYPTO_NAME set crypto name to encrypt svr key
                                      RLOG_ENC_FLAG whether encrypt redo log(N), optional value: Y/N, 1/0
                                      USBKEY_PIN set usbkey pin
                                      PAGE_ENC_SLICE_SIZE slice size for page encryption, optional value: 512, 4096, unit: Byte
                                      ENCRYPT_NAME set algorithm for encrypt the whole database
                                      BLANK_PAD_MODE set blank padding mode(0), optional value:0/1
                                      SYSTEM_MIRROR_PATH mirror path of system data file
                                      MAIN_MIRROR_PATH mirror path of main file
                                      ROLL_MIRROR_PATH mirror path of roll file
                                      MAL_FLAG MAL_INI flag(0) in dm.ini
                                      ARCH_FLAG ARCH_INI(0) flag in dm.ini
                                      MPP_FLAG MPP_INI(0) flag in dm.ini
                                      CONTROL control file path!
                                      AUTO_OVERWRITE whether overwrite all files with the same name(0) 0: no 1: part 2: all
                                      USE_NEW_HASH whether use new hash algorithm for string. (default 1)
                                      DCP_MODE whether is DM CLUSTER PROXY mode(default 0)
                                      DCP_PORT_NUM in DCP mode, set dcp_port_num
                                      ELOG_PATH set the path of log file recording the contents during initialization
                                      AP_PORT_NUM in ECS mode, AP listener port for cooperative work
                                      DFS_FLAG DFS_INI flag(0) in dm.ini
                                      DFS_PATH default path of db file when dfs_flag is true
                                      DFS_HOST ip of ddfs(localhost)
                                      DFS_PORT port number of ddfs(3332)
                                      DFS_COPY_NUM copy num of dfs file(3)
                                      DFS_DB_NAME database name in ddfs(default same as DB_NAME)
                                      SHARE_FLAG database share flag in ddfs(default 0)
                                      REGION_MODE system tablespace datafile region policy in ddfs(default 0) 0: MICRO 1: GREAT
                                      HUGE_WITH_DELTA Only support to create with delta huge table(default 1) 1: YES 0: NO
                                      RLOG_GEN_FOR_HUGE whether to generate redo log for with delta huge table(default 0) 1: YES 0: NO
                                      PSEG_MGR_FLAG Only use manager segment to record trx info(default 0) 1: YES 0: NO
                                      HELP print help information

                                      将新实例手动注册到服务

                                      查看帮助信息

                                        [root@cjc-db-01 mnt]# /dm8/script/root/dm_service_installer.sh --help
                                        Usage: dm_service_installer.sh -t service_type [-p service_name_postfix] [-dm_ini dm_ini_file]
                                        [-watcher_ini watcher_ini_file ] [-monitor_ini monitor_ini_file] [-cssm_ini cssm_ini_file]
                                        [-dfs_ini dfs_ini_file] [-dcr_ini dcr_ini_file]
                                        [-dss_ini dss_ini_file] [-drs_ini drs_ini_file] [-dras_ini dras_ini_file] [-dcs_ini dcs_ini_file] [-server server_info]
                                        [-dmap_ini dmap_ini_file] [-m open|mount] [-y dependent_service] [-auto true|false]
                                        or dm_service_installer.sh [-s service_file_path]
                                        or dm_service_installer.sh -h

                                        注册服务

                                          [root@cjc-db-01 mnt]# /dm8/script/root/dm_service_installer.sh -t dmserver -p TEST -dm_ini /dm8/data/dameng02/dm.ini
                                          Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceTEST.service to /usr/lib/systemd/system/DmServiceTEST.service.
                                          Finished to create the service (DmServiceTEST)

                                          启动服务

                                            [root@cjc-db-01 mnt]# systemctl start DmServiceTEST.service

                                            连接数据库

                                            当前启动了2个实例

                                              [dmdba@cjc-db-01 ~]$ ps -ef|grep -i dmserver
                                              dmdba 19280 1 0 21:00 ? 00:00:12 /dm8/bin/dmserver /dm8/data/DAMENG/dm.ini -noconsole
                                              dmdba 21420 1 6 22:51 ? 00:00:05 /dm8/bin/dmserver

                                              连接是通过端口区分不同实例

                                                [root@cjc-db-01 mnt]# su - dmdba
                                                Last login: Fri Sep 16 20:41:37 PDT 2022 on pts/1
                                                [dmdba@cjc-db-01 ~]$ disql sysdba/SYSDBA:5238
                                                Server[LOCALHOST:5238]:mode is normal, state is open
                                                login used time : 5.352(ms)
                                                disql V8
                                                SQL>

                                                已经开启了自启动

                                                  [root@cjc-db-01 mnt]# systemctl list-unit-files |grep -i DMS
                                                  DmServiceDMSERVER.service enabled
                                                  DmServiceTEST.service enabled

                                                  配置连接字符串,类似oracle数据库的tnsname.ora

                                                    [dmdba@cjc-db-01 ~]$ cat /etc/dm_svc.conf
                                                    TIME_ZONE=(480)
                                                    LANGUAGE=(en)
                                                    cjc=(192.168.80.130:5236)
                                                      [dmdba@cjc-db-01 ~]$ disql sysdba/Dameng123@cjc
                                                      Server[192.168.80.130:5236]:mode is normal, state is open
                                                      login used time : 4.276(ms)
                                                      disql V8
                                                      SQL> exit

                                                      DM数据库启动和关闭

                                                      启动

                                                      服务方式启动

                                                      需要使用root用户启动

                                                        [root@cjc-db-01 mnt]# systemctl start DmServiceTEST.service

                                                        前台启动

                                                        使用dmdba用户启动

                                                          [dmdba@cjc-db-01 ~]$ dmserver /dm8/data/DAMENG/dm.ini

                                                          进程会挂在前台,执行ctrl+c后会自动关闭数据库

                                                          后台启动

                                                            [dmdba@cjc-db-01 tool]$ DmServiceDMSERVER status
                                                            DmServiceDMSERVER is stopped
                                                            [dmdba@cjc-db-01 tool]$ DmServiceDMSERVER start
                                                            Starting DmServiceDMSERVER: [ OK ]

                                                            dmservice方式

                                                              [dmdba@cjc-db-01 tool]$ pwd
                                                              /dm8/tool
                                                              [dmdba@cjc-db-01 tool]$ ./dmservice.sh

                                                              关闭

                                                              服务方式关闭

                                                              需要使用root用户

                                                                [root@cjc-db-01 mnt]# systemctl stop DmServiceTEST.service

                                                                前台关闭

                                                                使用dmdba用户

                                                                  [dmdba@cjc-db-01 ~]$ dmserver /dm8/data/DAMENG/dm.ini

                                                                  进程会挂在前台,执行ctrl+c后会自动关闭数据库

                                                                  后台关闭

                                                                    [dmdba@cjc-db-01 tool]$ DmServiceDMSERVER status
                                                                    DmServiceDMSERVER (pid 25313) is running.
                                                                    [dmdba@cjc-db-01 tool]$ DmServiceDMSERVER stop
                                                                    Stopping DmServiceDMSERVER: [ OK ]
                                                                    [dmdba@cjc-db-01 tool]$ DmServiceDMSERVER status
                                                                    DmServiceDMSERVER is stopped

                                                                    dmservice方式

                                                                      [dmdba@cjc-db-01 tool]$ pwd
                                                                      /dm8/tool
                                                                      [dmdba@cjc-db-01 tool]$ ./dmservice.sh

                                                                      状态切换

                                                                      DM数据库实例有以下几种状态

                                                                        SHUTDOWN
                                                                        MOUNT
                                                                        OPEN
                                                                        SUSPEND

                                                                        注意和Oracle的区别,DM数据库实例没有NOMOUNT状态。

                                                                        查看当前数据库实例状态

                                                                          SQL> select status$ from v$instance;
                                                                          LINEID STATUS$
                                                                          ---------- -------
                                                                          1 OPEN

                                                                          注意:

                                                                          状态列名和oracle不同,oracle的列名是status没有$

                                                                          OPEN状态转换成MOUNT状态

                                                                            SQL> alter database mount;
                                                                            executed successfully
                                                                            used time: 00:00:01.778. Execute id is 0.
                                                                            SQL> select status$ from v$instance;
                                                                            LINEID STATUS$
                                                                            ---------- -------
                                                                            1 MOUNT

                                                                            这块操作和Oracle是有区别,Oracle数据库OPEN状态如果需要转换成MOUNT状态,需要先SHUTDOWN,在启动到MOUNT,而DM可以通过一条命名完成。

                                                                            同理也可以转换到suspend状态。

                                                                              SQL> alter database suspend;
                                                                              executed successfully
                                                                              used time: 103.432(ms). Execute id is 0.
                                                                              SQL> alter database open;
                                                                              executed successfully
                                                                              used time: 0.986(ms). Execute id is 0.

                                                                              卸载

                                                                              停服务

                                                                                [root@cjc-db-01 ~]# systemctl stop DmServiceDMSERVER.service
                                                                                [root@cjc-db-01 ~]# su - dmdba

                                                                                卸载

                                                                                  [dmdba@cjc-db-01 dm8]$ ./uninstall.sh -i
                                                                                    Whether to uninstall DM database(/dm8/)? (y/Y:Yes n/N:No):y
                                                                                    [dmdba@cjc-db-01 dm8]$ ./uninstall.sh -i
                                                                                    Whether to uninstall DM database(/dm8/)? (y/Y:Yes n/N:No):y
                                                                                    Whether to deletet the dm_svc.conf file? (y/Y:Yes n/N:No):y
                                                                                    Uninstalling all database services
                                                                                    Uninstalling DmJobMonitorService database services
                                                                                    Uninstalling DmInstanceMonitorService database services
                                                                                    Uninstalling DmAuditMonitorService database services
                                                                                    Uninstalling DmAPService database services
                                                                                    Uninstalling DmServiceDMSERVER database services
                                                                                    Uninstall all database services completed
                                                                                    Uninstalling database directorys
                                                                                    Uninstalling bin directory
                                                                                    Uninstall bin directory completed
                                                                                    Uninstalling bin2 directory
                                                                                    Uninstall bin2 directory completed
                                                                                    Uninstalling include directory
                                                                                    Uninstall include directory completed
                                                                                    Uninstalling desktop directory
                                                                                    Uninstall desktop directory completed
                                                                                    Uninstalling doc directory
                                                                                    Uninstall doc directory completed
                                                                                    Uninstalling drivers directory
                                                                                    Uninstall drivers directory completed
                                                                                    Uninstalling jdk directory
                                                                                    Uninstall jdk directory completed
                                                                                    Uninstalling jar directory
                                                                                    Uninstall jar directory completed
                                                                                    Uninstalling samples directory
                                                                                    Uninstall samples directory completed
                                                                                    Uninstalling script directory
                                                                                    Uninstall script directory completed
                                                                                    Uninstalling tool directory
                                                                                    Uninstall tool directory completed
                                                                                    Uninstalling web directory
                                                                                    Uninstall web directory completed
                                                                                    Uninstalling uninstall directory
                                                                                    Uninstall uninstall directory completed
                                                                                    Uninstalling license_en.txt file
                                                                                    Uninstall license_en.txt file completed
                                                                                    Uninstalling license_zh.txt file
                                                                                    Uninstall license_zh.txt file completed
                                                                                    Uninstalling uninstall.sh file
                                                                                    Uninstall uninstall.sh file completed
                                                                                    Uninstall database directorys completed
                                                                                    Execute the command by "root":
                                                                                    /dm8/root_uninstaller.sh

                                                                                    执行脚本

                                                                                    执行脚本,删除服务

                                                                                      [root@cjc-db-01 ~]# /dm8/root_uninstaller.sh
                                                                                        Delete DmAPService service
                                                                                        Removed symlink /etc/systemd/system/multi-user.target.wants/DmAPService.service.
                                                                                        Delete DmServiceDMSERVER service
                                                                                        Removed symlink /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service.
                                                                                        Delete /etc/dm_svc.conf

                                                                                        删除用户、组、文件等

                                                                                          [root@cjc-db-01 ~]# userdel dmdba
                                                                                          [root@cjc-db-01 ~]# groupdel dinstall

                                                                                          文章转载自IT小Chen,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                                                                          评论