达梦数据库管理

news2024/11/23 16:29:03

一、表空间管理介绍

在 DM 数据库中,表空间由一个或者多个数据文件组成。

DM 数据库中的所有对象在逻辑上都存放在表空间中,而物理上都存储在所属表空间的数据文件中。

DM数据库中的表空间可以分为普通表空间和混合表空间。普通表空间不能存储HUGE表, 而混合表空间可以同时存储普通(非 HUGE)表和 HUGE 表,其中 HUGE 数据文件存储在混合表空间定义中指定的 HUGE 数据文件路径下。可以通过为普通表空间增加指定HUGE 数据文 件路径将普通表空间升级为混合表空间。

在创建 DM 数据库时,会自动创建 4 个表空间:

SYSTEM 表空间、ROLL 表空间、MAIN 表空间和 TEMP 表空间。

  1. SYSTEM 表空间存放了有关 DM 数据库的字典信息,用户不能在 SYSTEM 表空间创建表和索引。SYSTEM 表空间又称为系统表空间。

  2. ROLL 表空间完全由 DM 数据库自动维护,用户无需干预。该表空间用来存放事务运 行过程中执行 DML 操作之前的值,从而为访问该表的其他用户提供表数据的读一致 性视图。

  3. MAIN 表空间在初始化库的时候,就会自动创建一个大小为 128M 的数据文件 MAIN.DBF,以及一个 HMAIN 目录作为 HUGE 数据文件路径,因此 MAIN 表空间为 混合表空间。在创建用户时,如果没有指定默认表空间,则系统自动指定 MAIN 表 空间为用户默认的表空间。

  4. TEMP 表空间完全由 DM 数据库自动维护。当用户的 SQL 语句需要磁盘空间来完成 某个操作时,DM 数据库会从 TEMP 表空间分配临时段。如创建索引、无法在内存中 完成的排序操作、SQL 语句中间结果集以及用户创建的临时表等都会使用到 TEMP 表空间。

system表空间:数据字典信息和动态性能视图 roll表空间:数据库运行中的回滚记录 main表空间:数据库的默认表空间。创建用户或者创建数据库对象时,没有指定表空间,就存放在默认表空间 main 表空间中 hamin表空间:huge 表空间 temp临时表空间,临时数据,排序都存储在临时表空间

每一个用户都有一个默认的表空间

对于 SYS、SYSSSO、SYSAUDITOR 系统用户,默认的用户表空间是 SYSTEM;SYSDBA 的默认表空间为 MAIN;新创建的用户如果没有指定默认表空间,则系统自动指定 MAIN 表空间为用户默认的表空间。

如果用户在创建表的时候, 指定了存储表空间 A,并且和当前用户的默认表空间 B 不一致时,表存储在用户指定的表空间 A 中,并且默认情况下,在这张表上面建立的索引也将存储在 A 中,但是用户的默认表空 间是不变的,仍为 B。 一般情况下,建议用户自己创建一个表空间来存放业务数据,或者将数据存放在默认的 用户表空间 MAIN 中。

二、创建表空间

windows端

需要开服务win+x

这里服务是关闭的需要手动打开

右键表空间新建

执行时候选中需要执行的语句

创建表空间以后本地磁盘会创建一个后缀为DBF的文件

Linux端

select tablespace_name from dba_tablespaces;
​
select tablespace_name,file_name, status from dba_data_files order by 1;
​
create tablespace dave 
//新建一个表空间
datafile 
​
'/dm8/data/cndba/DAVE01.DBF' size 32, 
//数据文件位置 size 默认文件大小为32兆
'/dm8/data/cndba/DAVE02.DBF' size 32;
​
select tablespace_name, file_name, status from dba_data_files order by 1; 

三、拓展表空间

表空间的扩展有两种方式:

  • 扩展现有数据文件大小

  • 增加新的数据文件

alter tablespace dave add datafile '/dm/dmdbms/data/cndba/DAVE03.DBF' size 32;
//datafile=增加新的数据文件  size:默认文件大小
select 
tablespace_name,file_id,
bytes/1024/1023 as "size",file_name 
from dba_data_files where tablespace_name='DAVE';
​
alter tablespace dave resize datafile'/dm8/data/cndba/DAVE01.DBF' to 64;
​
select 
tablespace_name,file_id,
bytes/1024/1023 as "size",file_name 
from dba_data_files where tablespace_name='DAVE';

修改数据文件拓展属性

create tablespace cndba datafile 
//修改表空间  cndba :表名
'/dm8/data/cndba/CNDBA01.DBF' size 32 autoextend on next 10 maxsize 200;
//数据文件位置
​
alter tablespace cndba datafile '/dm8/data/cndba/CNDBA01.DBF' autoextend on next 10 maxsize 200;
//autoextend:只要容量'n自动扩容每次扩容10兆最多200兆

修改表空间名

alter tablespace cndba rename to test_dba;
​
select 
tablespace_name,file_id,bytes/1024/1023 as "size",
file_name 
from dba_data_files where tablespace_name='DAVE';

移动数据文件

在表空间脱机状态下,可以修改数据文件的位置。

alter tablespace dave offline;
​
​
alter tablespace dave 
rename datafile '/dm8/data/cndba/DAVE01.DBF' 
TO 
'/dm8/data/cndba/TESTDBA01.DBF';
​
alter tablespace dave online;
​
select 
tablespace_name,file_id,
bytes/1024/1023 as "size",
file_name from dba_data_files 
where tablespace_name='DAVE';

注意:这里的移动是操作系统物理的上移动。

删除表空间

只可以删除用户创建的表空间并且只能删除未使用过的表空间。
​
删除表空间时会删除其拥有的所有数据文件。
​
drop tablespace dave;

四、对象管理

在DM数据库中用户管理主要涉及到三块:用户、权限、角色。

用户是用来连接数据库并进行相关操作的。

模式是一个用户拥有的所有数据库对象的集合,每个用户都有自己默认的模式,用户默认的模式名和用户名相同。权限是指执行特定类型SQL命令或访问其他模式对象的权利,它用于限制用户可执行的操作。

角色是将具有相同权限的用户组织在一起,这一组具有相同权限的用户称为角色。

select * from dba_roles; 
​
#查看所有用户的信息:
select username,user_id,account_status from dba_users; 
​
#查看系统中所有用户对应的角色:
select* from dba_role_privs; 
​
#创建用户:
create user dave identified by "dameng123"; 
​
#对用户授权:
grant public,resource to dave; 

视图是从用户的实际需要中抽取出来的虚表。

CREATE VIEW PURCHASING.VENDOR_EXCELLENT AS SELECT*FROM PURCHASING.VENDOR WHERE CREDIT=1; 
查看视图定义:
select view_name,text from dba_views where view_name='VENDOR_EXCELLENT'; 

编译视图:
alter view purchasing.vendor_excellent compile;

删除视图:
drop view purchasing.vendor_excellent;

#在原库dexp用户下创建2张测试表
conn dexp/dameng123
create table anqing as select * from sysobjects;
create table huaining as select * from sysobjects;

#导出这2张表:
dexp dexp/dameng123 file=tables_01.dmp log=tables.log directory=/dm8/dmbak tables=anqing,huaining

#将表导入到原用户dexp用户下:
dimp dexp/dameng123 file=tables_01.dmp log=tables.log directory=/dm8/dmbak tables=anqing,huaining table_exists_action=replace

#将表导入到dimp用户下:
#注意这里连接用户必须是对象的原用户,然后加上remap schema=DEXP:DIMP就可以导入到新用户下:
dimp dexp/dameng123 file=tables_01.dmp log=tables.log directory=/dm8/dmbak tables=anqing,huaining table_exists_action=replace remap_schema=DEXP:DIMP

select count(1)from anqing;
select count(1)from huaining;

基本概念

表空间与数据文件

DM 数据库的表空间是一个逻辑概念,其目的主要是为了方便数据库的管理,数据库的 所有对象在逻辑上都存放在某个表空间中,而物理上都存储在所属表空间的数据文件中。一 个表空间由一个或多个数据文件组成。

数据文件是数据库中最重要的文件类型,是真实数据存储的地方。DM 中数据文件的扩 展名为.DBF,分为系统默认生成的数据文件和用户自己创建的数据文件两类。需要注意的 是,HUGE 数据文件不同于一般数据文件,其扩展名为.DTA。

在创建 DM 数据库时,系统会自动创建 4 个表空间:SYSTEM 表空间、ROLL 表空间、 MAIN表空间和TEMP表空间。

DM自动为这几个自动创建的表空间分别生成默认的数据文件: SYSTEM.DBF、ROLL.DBF、MAIN.DBF 和 TEMP.DBF。

另外,DM 还会自动创建一个 HMAIN 目录,并将其路径作为 MAIN 表空间的 HUGE 数据文件路径,因此 MAIN 表空间为混合表空 间。

用户也可以创建自己的表空间,由用户创建的表空间统称为用户自定义表空间,在创建 自定义表空间时需要为表空间指定数据文件。

SYSTEM 表空间

存放了 DM 数据库全局字典信息和全局系统数据,是 DM 数据库能够正常运行的必要前 提,默认对应数据文件 SYSTEM.DBF。CREATE TABLE 等 DDL 操作会修改 SYSTEM 表空 间数据。

ROLL 表空间

存放 DM 数据库运行过程中产生的所有回滚记录。DM 中几乎所有的数据库修改操作都 会生成回滚记录,并保存在 ROLL 表空间的数据文件中。ROLL 表空间是数据库全局对象, 不论修改哪一个表空间,生成的回滚记录都是写入 ROLL 表空间,该表空间由系统自动维护, 默认数据文件为 ROLL.DBF。

TEMP 表空间

存放临时表数据以及数据库运行过程中产生的临时数据。在数据库运行过程中,SORT、 HASH JOIN 等操作都可能会生成临时结果集,它们作为临时数据存放在 TEMP 表空间中。 TEMP 表空间是数据库全局对象,由系统自动维护。若数据库重启,保存在 TEMP 表空间中 的所有数据都会丢失。TEMP 表空间的默认数据文件为 TEMP.DBF。

DM 的物理备份还原不支持:TEMP 表空间。

MAIN 表空间

MAIN 表空间为混合表空间。在创建用户时,如果没有指定默认表空间,系统自动指定 MAIN 表空间为用户默认的表空间。MAIN 表空间的默认数据文件为 MAIN.DBF,默认 HUGE 数据文件路径为 HMAIN 目录所在路径。

重做日志

重做日志,又叫 REDO 日志,忠实记录了所有物理页的修改,基本信息包括操作类型、 表空间号、文件号、页号、页内偏移、实际数据等。数据库中 INSERT、DELETE、UPDATE 等 DML 操作以及 CREATE TABLE 等 DDL 操作最终都会转化为对某些数据文件、某些数据 页的修改。因此,在系统故障重启时,通过重做 REDO 日志,可以将数据库恢复到故障时的 状态。

DM 数据库默认包含两个扩展名为 log 的日志文件,用来保存 REDO 日志,称为联机重做日志文件。这两个文件循环使用。任何数据页从内存缓冲区写入磁盘之前,必须保证其对 应的 REDO 日志已经写入到联机日志文件。

归档日志

DM 数据库可以在归档和非归档两种模式下运行。DM 支持多种归档方式。系统在归档模式下运行会更安全,当出现介质故障,如磁盘 损坏导致数据文件丢失、异常时,利用归档日志,系统可以恢复至故障发生的前一刻。因此, 为了保证归档日志文件和数据文件不同时出现问题,建议将归档目录与数据文件配置、保存 到不同的物理磁盘上。除了表备份还原,其他的联机备份与还原必须运行在归档模式下。

备份与恢复过程都依赖归档日志,归档日志是保证数据一致性和完整性的重要保障。配 有归档日志的数据库系统在出现故障时丢失数据的可能性更小,这是因为一旦出现介质故障如磁盘损坏时,利用归档日志,系统可被恢复至故障发生的前一刻,也可以还原到指定的时间点。

五、归档管理

通过SQL命令

alter database mount;

alter database add archivelog 'DEST=/dm8/dmarch,TYPE=local,FILE_SIZE=256,space_limit=0';

alter database archivelog;

alter database open;

select arch_mode from v$database;

select arch_name,arch_type,arch_dest,arch_file_size from v$dm_arch_ini;

逻辑备份与还原

逻辑导出(dexp)和逻辑导入(dimp)支持如下四种级别操作:

数据库级(FULL):导出或导入整个数据库中的所有对象。 用户级(OWNER):导出或导入一个或多个用户所拥有的所有对象。 模式级(SCHEMAS):导出或导入一个或多个模式下的所有对象。 表级(TABLE):导出或导入一个或多个指定的表或表分区。

创建测试数据:

#创建用户:

create user dexp identified by dameng123;
grant resource,dba to dexp;
#连接测试用户并创建测试表:
conn dexp/dameng123;

#导出导入过程数据库要保持OPEN状态。
create table dexp as select * from sysobjects;

全库导出 export import

dexp SYSDBA/SYSDBA file=full_01.dmp log=full1.log directory=/dm8/dmbak full=y;

删除测试数据
drop table dexp;

全库导入
dimp USERID=SYSDBA/SYSDBA FILE=full_01.dmp LOG=full2.log directory=/dm8/dmbak full=y table_exists_action=replace;

验证之前创建的测试表
select count(1)from dexp;

导出用户

dexp SYSDBA/SYSDBA file=user_01.dmp log=user1.log directory=/dm8/dmbak owner=dexp

#导入数据到原用户:
dimp USERID=SYSDBA/SYSDBA FILE=user_01.dmp LOG=user.log directory=/dm8/dmbak owner=dexp table_exists_action=replace

#导入数据到其他用户:
create user dimp identified by dameng123;
grant resource,dba to dimp;

#注意这里的remap_schema中的模式名要用大写,否则会导入原来的模式中:
dimp USERID=SYSDBA/SYSDBA FILE=user_01.dmp LOG=user.log directory=/dm8/dmbak remap_schema=DEXP:DIMP table_exists_action=replace

验证数据
conn dexp/dameng123

select count(1)from dexp;

导出模式

dexp SYSDBA/SYSDBA file=schema_01.dmp log=schema_01.log directory=/dm8/dmbak schemas=dexp;

#注意这里的remap schema中的模式名要用大写,否侧会导入原来的模式中:
dimp USERID=dimp/dameng123 FILE=schema_01.dmp LOG=schema.log directory=/dm8/dmbak remap_schema=DEXP:DIMP table_exists_action=replace

验证模式
select count(1)from dexp;

导出表

#在原库dexp用户下创建2张测试表
conn dexp/dameng123
create table anqing as select * from sysobjects;
create table huaining as select * from sysobjects;

#导出这2张表:
dexp dexp/dameng123 file=tables_01.dmp log=tables.log directory=/dm8/dmbak tables=anqing,huaining

#将表导入到原用户dexp用户下:
dimp dexp/dameng123 file=tables_01.dmp log=tables.log directory=/dm8/dmbak tables=anqing,huaining table_exists_action=replace

#将表导入到dimp用户下:
#注意这里连接用户必须是对象的原用户,然后加上remap schema=DEXP:DIMP就可以导入到新用户下:
dimp dexp/dameng123 file=tables_01.dmp log=tables.log directory=/dm8/dmbak tables=anqing,huaining table_exists_action=replace remap_schema=DEXP:DIMP

select count(1)from anqing;
select count(1)from huaining;

联机备份与还原

联机备份在数据库级别只支持备份操作,不支持还原,数据库级别的还原必须在脱机进行。 默认的备份路径为dm.ini中BAK PATH参数配置的路径,若未配置,则使用SYSTEM PATH下的bak目录。

备份类型:分为完全备份 FULL 和增量备份 INCREMENT 两种。缺省为 FULL。

全备:full参数可以省略,不指定备份类型默认为完全备份。 backup database backupset '/dm8/dmbak/full01'; 增量备份 backup database increment with backupdir '/dm8/dmbak' backupset '/dm8/dmbak/inc_back';

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1523589.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《IEEE Transactions on Robotics》发表!北京大学研究团队推出具有多种运动模态的软体两栖机器人

两栖机器人以其在复杂水陆混合环境中的卓越适应性而脱颖而出,成为非结构化场景下信息监测、资源勘探和灾难救援等多元化任务的理想选择。凭借能够在水生和陆生环境中自如切换的优势,两栖机器人在如上任务执行过程中展现出对多变环境的惊人适应能力。 在…

【Godot4.2】颜色完全使用手册

概述 本篇简单汇总Godot中的颜色的构造和使用,内容包括了: RGB、RGBA,HSV以及HTML16进制颜色值、颜色常量等形式构造颜色颜色的运算以及取反、插值用类型化数组、紧缩数组或PNG图片形式存储多个颜色 构造颜色 因为颜色是一种视觉元素&…

配置Web运行环境与第一个网页

安装与配置Web环境: 如下使用了VSC作为web的运行环境。 下面是VSC的官网:Download Visual Studio Code - Mac, Linux, Windowshttps://code.visualstudio.com/download 进入官网后按照自己的系统下载,我下载的是Windows. 下载完之后双击打开。 接下来就是安装&…

探讨TCP的可靠性以及三次握手的奥秘

🌟 欢迎来到 我的博客! 🌈 💡 探索未知, 分享知识 !💫 本文目录 1. TCP的可靠性机制1.2可靠性的基础上,尽可能得提高效率 2. TCP三次握手过程3. 为何不是四次握手? 在互联网的复杂世界中,TCP&am…

Autosar Crypto Driver学习笔记(二)

文章目录 Crypto DriverFunction definitionsGeneral APICrypto_InitCrypto_GetVersionInfo Job Processing InterfaceCrypto_ProcessJob Job Cancellation InterfaceKey Management InterfaceKey Setting Interface密钥设置接口Crypto_KeyElementSetCrypto_KeySetValid Key Ex…

Linux操作系统及进程(一)

一、操作系统的概念 概念 :任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括: 内核(进程管理,内存管理,文件管理,驱动管理) 其他程…

Redis淘汰策略,持久化和集群

Redis淘汰策略 Redis 的 OBJECT 命令提供了多个子命令&#xff0c;用于检查有关键的内部详细信息。以下是可用的子命令及其描述&#xff1a; ENCODING <key>&#xff1a;返回用于存储与键关联的值的内部表示类型。 FREQ <key>&#xff1a;返回键的访问频率索引。返…

并查集

数据结构、算法总述&#xff1a;数据结构/基础算法 C/C_禊月初三的博客-CSDN博客 并查集是一种用于管理元素所属集合的数据结构&#xff0c;实现为一个森林&#xff0c;其中每棵树表示一个集合&#xff0c;树中的节点表示对应集合中的元素。 基本操作&#xff1a; 初始化&…

Windows→Linux,本地同步到服务器

适用背景&#xff1a; 用自己电脑修改代码&#xff0c;使用实验室/公司的服务器炼丹的朋友 优势&#xff1a; 本地 <--> 服务器&#xff0c;实时同步&#xff0c;省去文件传输的步骤 本地改 -> 自动同步到服务器 -> 服务器跑代码 -> 一键同步回本地&#xff…

Elasticsearch:调整搜索速度

在我之前的文章 “Elasticsearch&#xff1a;如何提高查询性能” 及 “Elasticsearch&#xff1a;提升 Elasticsearch 性能” 里&#xff0c;我详细描述了如何提高搜索的性能。在今天的文章里&#xff0c;我从另外一个视角来描述如何调整搜索的速度。希望对大家有所帮助&#x…

Python之Web开发中级教程----搭建虚拟环境

Python之Web开发中级教程----搭建Web框架二 搭建虚拟环境 虚拟环境的作用 虚拟环境可以搭建独立的python运行环境, 使得单个项目的运行环境与其它项目互不影响. 搭建虚拟环境 &#xff08;1&#xff09;安装 sudo pip install virtualenv sudo pip install virtualenvwra…

【LabVIEW FPGA入门】定时

在本节学习使用循环计时器来设置FPGA循环速率&#xff0c;等待来添加事件之间的延迟&#xff0c;以及Tick Count来对FPGA代码进行基准测试。 1.定时快捷VI函数 在FPGA VI中放置的每个VI或函数都需要一定的时间来执行。您可以允许操作以数据流确定的速率发生&#xff0c;而无需额…

科研学习|论文解读——交替协同注意力网络下基于属性的情感分析 (IPM, 2019)

论文题目 Aspect-based sentiment analysis with alternating coattention networks 摘要 基于属性的情感分析&#xff08;ABSA&#xff09;旨在预测给定文本中特定目标的情感极性。近年来&#xff0c;为了获得情感分类任务中更有效的特征表示&#xff0c;人们对利用注意力网络…

使用kettle导入Elasticsearch数据库

资源文件&#xff1a; 操作步骤&#xff1a; 1、删除data-integration\lib 下 所有 jackson- 开头的jar包&#xff0c;然后把jackson-2.8.10-libs文件夹中的jar拷到lib目录下 2、替换data-integration\plugins\elasticsearch-bulk-insert-plugin文件夹 3、如果开启了ssl认证…

Spring6--IOC反转控制 / 基于XML管理bean

1. 容器IOC 先理解概念&#xff0c;再进行实际操作。概念比较偏术语化&#xff0c;第一次看可能看不懂&#xff0c;建议多看几遍&#xff0c;再尝试自己独立复述一遍&#xff0c;效果会好些 1.1. IOC容器 1.1.1. 控制反转&#xff08;IOC&#xff09; IOC (Inversion of Con…

27-Java MVC 模式

Java空对象模式 实现范例 MVC模式代表 Model-View-Controller&#xff08;模型-视图-控制器&#xff09; 模式MVC模式用于应用程序的分层开发 Model&#xff08;模型&#xff09; - 模型代表一个存取数据的对象或 JAVA POJO 它也可以带有逻辑&#xff0c;在数据变化时更新控制…

Sharding sphere分库分表

需要物理自己实现分表分库&#xff0c;然后通过配置文件配置。 配置文件&#xff1a; 需要配置多个数据源&#xff0c;主从表的关系【默认主表修改&#xff0c;从表读取】&#xff0c;定义分库的策略【比如User id】和分表【表Id】的策略 分库和分表策略&#xff1a;分库策略…

K8S之持久化存储

持久化存储 支持的持久化存储类型EmptyDirHostPathNFS 在K8S中部署的应用都是以pod容器的形式运行的&#xff0c;假如部署数据库服务 例如&#xff1a;MySQL、Redis等&#xff0c;需要对产生的数据做备份。如果pod不挂载数据卷&#xff0c;那pod被删除或重启后这些数据会随之消…

双指针 | 移动零 | 复写零

1.移动零 题目描述&#xff1a; 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 示例&#xff1a; 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0]解题思路&#xff1a; right指针一直往后移动&#xff0c;当…

LAMP架构部署--yum安装方式

这里写目录标题 LAMP架构部署web服务器工作流程web工作流程 yum安装方式安装软件包配置apache启用代理模块 配置虚拟主机配置php验证 LAMP架构部署 web服务器工作流程 web服务器的资源分为两种&#xff0c;静态资源和动态资源 静态资源就是指静态内容&#xff0c;客户端从服…