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

听起来与众不同的国产数据库——崖山数据库

呆呆的私房菜 2024-08-21
342
    Whoami:5年+金融、政府、医疗领域工作经验的DBA
    Certificate:OCP、PCP
    Skill:Oracle、Mysql、PostgreSQL
    Platform:CSDN、墨天伦、公众号(呆呆的私房菜)


    在国产化浪潮下,国产数据库市场百花齐放,那么选择一个适合自己业务场景做国产化替代的据库日益显得重要!最近在很多政府行业做技术服务期间,频频听到YashanDB这个新的国产数据库的声音。刚好今天有时间,就写一篇关于YashanDB数据库的安装手记吧。


    01

    YashanDB概述
    • 崖山数据库系统YashanDB是深圳计算科学研究院自主设计研发的新型数据库管理系统,融入原创的有界计算、近似计算、并行可扩展和跨模融合计算理论,可满足金融、政企、能源等关键行业对高性能、高并发及高安全性的要求。

    • 关于YashanDB的更多内容,建议各位看官上官网了解。

    https://www.yashandb.com/


    02

    数据库安装
    • 崖山数据库的安装方式有两种,一种是通过命令行方式进行安装,一种是通过可视化界面(WEB服务)进行安装。


    • 下面介绍的是通过命令行方式安装YashanDB的方式。


    • 1. 操作系统配置

      ## 1. 开发环境调试模式
      cat >> /etc/security/limits.conf <<EOF
      soft core unlimited
      hard core unlimited
      EOF
      ulimit -c unlimited


      ## 2. 关闭交换分区
      echo "vm.swappiness = 0">> /etc/sysctl.conf
      sysctl -w vm.swappiness=0


      ## 3. 配置自动调整本地端口范围
      sysctl -w net.ipv4.ip_local_port_range='32768 60999'
      echo "net.ipv4.ip_local_port_range = 32768 60999" >> /etc/sysctl.conf


      ## 4. 调整进程的VMA上限
      echo "vm.max_map_count=2000000" >> /etc/sysctl.conf
      sysctl -w vm.max_map_count=2000000


      ## 5. 调整资源限制值
      cat >> /etc/security/limits.conf <<EOF
      * soft nofile 65536
      * hard nofile 65536
      * soft nproc 65536
      * hard nproc 65536
      * soft rss unlimited
      * hard rss unlimited
      * soft stack 8192
      * hard stack 8192
      EOF


      ## 6. 关闭透明大页
      echo never > /sys/kernel/mm/transparent_hugepage/enabled
      echo never > /sys/kernel/mm/transparent_hugepage/defrag
      cat >> /etc/rc.local <<EOF
      echo never > sys/kernel/mm/transparent_hugepage/enabled
      echo never > sys/kernel/mm/transparent_hugepage/defrag
      EOF
      chmod +x etc/rc.local


      ## 7. 关闭防火墙
      systemctl stop firewalld
      systemctl disable firewalld


      ## 8. 历史残留配置文件
      rm -f etc/ld.so.conf.d/yashandb*.conf


      ## 9. 清理共享内存
      ipcrm -a
      • 2. 数据库安装

        ## 1. 创建用户
        useradd -d home/yashan -m yashan
        groupadd YASDBA
        usermod -a -G YASDBA yashan
        echo "yashan" | passwd --stdin yashan


        ## 2. 配置sudo免密
        cat >> etc/sudoers <<EOF
        yashan ALL=(ALL) NOPASSWD:ALL
        EOF
        chmod -w /etc/sudoers


        ## 3. 创建目录
        mkdir -p data/yashan/{soft,data,yashan}
        chown -R yashan.YASDBA data
        chmod 755 /data


        ## 4. 解压软件
        tar xzf /home/yashan/yashandb-personal-23.1.1.100-linux-x86_64.tar.gz -C /data/yashan/soft


        ## 5. 数据库安装部署
        cd data/yashan/soft/
        yashan_soft="/data/yashan/soft"
        ##生成数据库部署文件
        ${yashan_soft}/bin/yasboot package se gen --cluster yashandb -u yashan -p yashan --ip 127.0.0.1 --port 22 --install-path /data/yashan/yashan/yasdb_home --data-path /data/yashan/data/yasdb_data --begin-port 1688
        ##执行数据库安装,结束之后会启动yasagent和yasom两个
        ${yashan_soft}/bin/yasboot package install -t hosts.toml -i /home/yashan/yashandb-personal-23.1.1.100-linux-x86_64.tar.gz
        ##数据库部署
        ${yashan_soft}/bin/yasboot cluster deploy -t yashandb.toml


        ## 6. 环境变量配置
        cat data/yashan/yashan/yasdb_home/yashandb/23.1.1.100/conf/yashandb.bashrc >> home/yashan/.bash_profile
        source ~/.bash_profile


        ## 7. 修改sys用户口令
        ${yashan_soft}/bin/yasboot cluster password set -n yashan#2023 -c yashandb


        ##8. 查看数据库状态
        ${yashan_soft}/bin/yasboot cluster status -c yashandb -d


        ## 9. 崖山登录测试
        ${yashan_soft}/bin/yasql sys/yashan#2023@127.0.0.1:1688 -c "select 'Hello, yashan' from dual;"


        ## 看到命令结束,回显输出OPEN状态,即表示数据库安装完成。
        • 来个效果图,对Oracle熟悉的朋友,是不是感觉就来了?


        03

        数据库优化
        • YashanDB数据库提供了一个数据库参数优化包,可以根据业务类型和系统资源状况,使用该高级包查看和应用推荐参数。

          # 这个存储过程用于生成推荐参数
          DBMS_PARAM.OPTIMIZE (
          apply_parameter BOOL,
          table_type VARCHAR,
          os_memory_limit NUMBER,
          os_cpu_limit NUMBER,
          data_path VARCHAR,
          redo_path VARCHAR
          );




          # 1. 使用默认的HEAP表类型,分配100%的内存,100%的CPU,生成推荐参数后,不写入配置文件。
          EXEC DBMS_PARAM.OPTIMIZE(NULL, NULL, 80, 80);


          # 2. 查看最近一次推荐参数的报告
          SELECT DBMS_PARAM.SHOW_RECOMMEND() FROM dual;


          # 3. 应用参数
          EXEC DBMS_PARAM.APPLY_RECOMMEND();


          04

          YashanDB系统视图
          • YashanDB提供了一系列系统视图,向用户展现了数据库的各项动静态数据,包括:

          • 动态视图:实时展现数据库运行中的各项数据,尤其与性能相关数据,用户通过查询这些视图,对系统进行管理和优化。

            v$session
            v$session_wait
            v$session_roles
            v$session_worker
            v$sql
            v$sqltext
            v$sql_plan
            v$sysstat
            ...
            • DBA视图:根据数据库的结构定义,展现整个数据库的全局视图,其中包含了所有用户的对象信息,一般供DBA使用。

              dba_objects
              dba_tables
              dba_views
              dba_tirggers
              dba_jobs
              dba_users
              dba_profiles
              dba_recyclebin
              ...
              • ALL视图:基于DBA视图的一类扩展视图,其中包含了用户有权限访问的所有对象信息。

                all_tables
                all_views
                all_indexes
                all_tab_cols
                all_objects
                all_synonyms
                all_db_links
                ...
                • USER视图:基于DBA视图的一类扩展视图,其中包含了以用户为属主的所有对象信息。

                  user_tables
                  user_indexes
                  user_mviews
                  user_tab_cols
                  user_tab_partitions
                  user_views
                  user_objects
                  ...
                  • 相信看到这里,拥有Oracle数据库基础的朋友们都能轻松上车了!


                  • YashanDB是一款对标ORACLE的国产数据库产品,它不仅支持与ORACLE相同的系统视图和存储过程,还提供了丰富的同名功能,极大地简化了从ORACLE到YashanDB的迁移过程。

                  • YashanDB的性能优化和成本效益使其成为企业级应用的理想选择。ORACLE DBA可以轻松地将他们的技能转移到YashanDB上,快速上手并进行高效运维。



                  本文就先聊到这啦,国产数据库百花齐放的时代下,我们坚信一定会有一批又一批优秀的产品脱颖而出,为数字化转型浪潮不断添砖加瓦,最终实现技术自主可控的重要使命。我们下篇再见!

                  点击上方公众号,关注我吧!

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

                  评论