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

openGauss每日一练第 3 天 |学习笔记

原创 newdata 2022-11-26
432

openGauss每日一练第3天

今日目标:学习openGauss体系结构,了解实例(集簇或服务)和数据库的关系

1.相关概念

  • 数据库 数据库用于管理各类数据对象,与其他数据库隔离。创建数据对象时可以指定对应的表空间,如果不指定相应的表空间,则相关对象会默认保存在PG_DEFAULT空间中。数据库管理的对象可分布在多个表空间上。
  • 表空间 在openGauss中,表空间是一个目录,可以存在多个,里面存储的是它所包含的数据库的各种物理文件。由于表空间是一个目录,仅是起到了物理隔离的作用,其管理功能依赖于文件系统
  • 模式 openGauss的模式是对数据库做一个逻辑分割。所有的数据库对象都建立在模式下面。openGauss的模式和用户是弱绑定的,所谓的***弱绑定是指虽然创建用户的同时会自动创建一个同名模式,但用户也可以单独创建模式,并且为用户指定其他的模式***。
  • 在一个openGauss DBMS上,一个数据库集簇(Database Cluster)中,可以创建、管理多个数据库。
  • sql语法

2. 数据库和表空间操作

2.1 数据库

  • 创建数据库

    – 语法格式
    CREATE DATABASE [IF NOT EXISTS] database_name
    [ [ WITH ] { [ OWNER [=] user_name ] |
    [ TEMPLATE [=] template ] |
    [ ENCODING [=] encoding ] |
    [ LC_COLLATE [=] lc_collate ] |
    [ LC_CTYPE [=] lc_ctype ] |
    [ DBCOMPATIBILITY [=] compatibilty_type ] |
    [ TABLESPACE [=] tablespace_name ] |
    [ CONNECTION LIMIT [=] connlimit ]}[…] ];

  • 删除数据库

    – 语法格式
    DROP DATABASE [ IF EXISTS ] database_name ;

    注意 删除数据库操作,一旦执行将无法撤销

2.3 表空间

创建表空间

– 语法格式
CREATE TABLESPACE tablespace_name
[ OWNER user_name ] [RELATIVE] LOCATION ‘directory’ [ MAXSIZE ‘space_size’ ]
[with_option_clause];
tablespace_name

  • tablespace_name要创建的表空间名称。
    表空间名称不能和openGauss中的其他表空间重名,且名称不能以“pg”开头,这样的名称留给系 统表空间使用。
    取值范围:字符串,要符合标识符的命名规范。

  • OWNER user_name
    指定该表空间的所有者。缺省时,新表空间的所有者是当前用户。
    只有系统管理员可以创建表空间,但是可以通过OWNER子句把表空间的所有权赋给其他非系统管理员。
    取值范围:字符串,已存在的用户。

  • RELATIVE
    使用相对路径,LOCATION目录是相对于各个数据库节点数据目录下的。
    目录层次:数据库节点的数据目录/pg_location/相对路径
    相对路径最多指定两层。

  • LOCATION directory
    用于表空间的目录,对于目录有如下要求:
    openGauss系统用户必须对该目录拥有读写权限,并且目录为空。如果该目录不存在,将由系统自动创建。
    目录必须是绝对路径,目录中不得含有特殊字符(如$、> 等)。
    目录不允许指定在数据库数据目录下。
    目录需为本地路径。
    取值范围:字符串,有效的目录。

  • MAXSIZE 'space_size
    指定表空间在单个数据库节点上的最大值。
    取值范围:字符串格式为正整数+单位,单位当前支持K/M/G/T/P。解析后的数值以K为单位,且范围不能够超过64比特表示的有符号整数,即1KB~9007199254740991KB。

  • random_page_cost
    指定随机读取page的开销。
    默认值:使用GUC参数random_page_cost的值。

  • seq_page_cost
    指定顺序读取page的开销。
    默认值:使用GUC参数seq_page_cost的值。

3.每日一练作业

3.1创建表空间,并在该表空间上创建多个数据库

omm=# create tablespace music_tbs RELATIVE LOCATION 'tablespace/test_ts1'; CREATE TABLESPACE omm=# create database musicdb with tablespace = music_tbs ; CREATE DATABASE omm=# create database musicdb1 with tablespace = music_tbs ; CREATE DATABASE omm=# create database musicdb2 with tablespace = music_tbs ; CREATE DATABASE omm=# create database musicdb3 with tablespace = music_tbs ; CREATE DATABASE

3.2 执行\db命令,查看openGauss数据库上有哪些表空间

omm=# \db List of tablespaces Name | Owner | Location ------------+-------+--------------------- music_tbs | omm | tablespace/test_ts1 pg_default | omm | pg_global | omm | (3 rows) omm=#

3.3 执行\l命令,查看openGauss实例中有哪些数据库

\l命令 : 显示openGauss数据库集簇中,目前有哪些数据库。

omm=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+-------+----------+---------+-------+------------------- musicdb | omm | UTF8 | C | C | musicdb1 | omm | UTF8 | C | C | musicdb2 | omm | UTF8 | C | C | musicdb3 | omm | UTF8 | C | C | omm | omm | UTF8 | C | C | postgres | omm | UTF8 | C | C | template0 | omm | UTF8 | C | C | =c/omm + | | | | | omm=CTc/omm template1 | omm | UTF8 | C | C | =c/omm + | | | | | omm=CTc/omm (8 rows) omm=#

3.4 查看openGauss数据库上实例的进程、线程(操作系统命令)

  • ps -ef |grep gaussdb
    查看实例中的进程
  • ps -Tp
    查看实例中的线程
omm@modb:~$ ps -ef |grep gaussdb omm 1 0 0 17:07 ? 00:00:14 gaussdb omm 677 615 0 18:03 pts/0 00:00:00 grep gaussdb omm@modb:~$ ps -Tp 1 PID SPID TTY TIME CMD 1 1 ? 00:00:00 gaussdb 1 292 ? 00:00:00 jemalloc_bg_thd 1 298 ? 00:00:00 gaussdb 1 299 ? 00:00:00 syslogger 1 300 ? 00:00:00 jemalloc_bg_thd 1 301 ? 00:00:00 alarm 1 302 ? 00:00:00 reaper 1 303 ? 00:00:00 jemalloc_bg_thd 1 304 ? 00:00:00 jemalloc_bg_thd 1 348 ? 00:00:00 checkpointer 1 349 ? 00:00:00 Spbgwriter 1 350 ? 00:00:01 pagewriter 1 351 ? 00:00:00 pagewriter 1 352 ? 00:00:00 pagewriter 1 353 ? 00:00:00 pagewriter 1 354 ? 00:00:00 pagewriter 1 355 ? 00:00:00 WALwriter 1 356 ? 00:00:00 WALwriteraux 1 357 ? 00:00:00 AVClauncher 1 358 ? 00:00:00 Jobscheduler 1 359 ? 00:00:00 asyncundolaunch 1 365 ? 00:00:01 TrackStmtWorker 1 364 ? 00:00:06 ashworker 1 360 ? 00:00:00 globalstats 1 361 ? 00:00:00 applylauncher 1 362 ? 00:00:00 statscollector 1 363 ? 00:00:01 percentworker 1 367 ? 00:00:00 2pccleaner 1 366 ? 00:00:00 auditor 1 368 ? 00:00:00 faultmonitor 1 369 ? 00:00:00 WLMworker 1 370 ? 00:00:00 WLMmonitor 1 371 ? 00:00:00 WLMarbiter 1 372 ? 00:00:00 undorecycler
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论