Kingbase备份与还原及表的约束(Kylin)

news2024/11/19 4:29:05

备份与还原

  • 逻辑备份是对整个数据库好数据库中的部分对象利用逻辑备份工具导出数据到备份文件
  • 在需要数据恢复的情况下利用逻辑还原工具把备份文件恢复到数据库中

使用场景

  1. 逻辑备份主要用于数据库逻辑错误的恢复,恢复后对其他数据没有太大影响
  2. 逻辑备份可用于在大型数据库中执行部分静态对象的备份
  3. 逻辑备份可用于跨平台数据恢复
  4. 逻辑备份在生产中是对物理备份的有效补充

备份单表或多表

# 使用system用户将test数据库中的schema01模式下t开头的表备份至/back/dump/table.dmp
sys_dump -U system -d test -f /backup/dump/table.dmp -Fc -t schema01.t*
# -U 备份使用的用户
# -d 备份的数据库
# -f 保存路径
# -Fc 输出文件为定制
# -t 备份的数据表

备份模式

# 使用system用户将test数据库中的schema模式备份至/back/dump/schema.dmp
sys_dump -U system -d test -f /back/dump/schema.dmp -Fc -n schema01
# -U 备份使用的用户
# -d 备份的数据库
# -f 保存路径
# -Fc 输出文件为定制
# -n 备份的模式

备份数据库

# 使用system用户将test数据库备份至/back/dump/dbidr目录下,添加插入语句,使用双并发备份
sys_dump -U system -d test -f /back/dump/dbdir -Fd --inserts -j 2
# /back/dump下的/dbdir目录不能存在,系统会自动创建
# -U 备份使用的用户
# -d 备份的数据库
# -f 保存的路径
# -Fd 输出文件为文件夹
# --inserts 以inserts语句备份而不是默认的copy语句

备份数据到COPY格式的SQL脚本

# 使用system用户将test数据库下的schema01模式中的t01表备份至/back/dump/copy.sql
sys_dump -U system -d test -f /back/dump/copy.sql -Fp -t schema01.t01
# -U 备份使用的用户
# -d 备份的数据库
# -f 保存的路径
# -Fp 输出文件为明文
# -t 保存的数据表

备份数据到INSERT格式的SQL脚本

# 使用system用户将test数据库下的schema01模式中的t01表备份至/back/dump/inserts.sql
sys_dump -U system -d test -f /back/dump/inserts.sql -Fp -t schema01.t01 --inserts
# -U 备份使用的用户
# -d 备份使用的数据库
# -f 保存的路径
# -Fp 数据文件为明文
# --inserts 使用inserts语句备份

只备份对象定义 不包含表数据

# 使用system用户将test数据库下的对象信息备份至/back/dump、ddl.sql
sys_dump -U system -d test -f /back/dump/ddl.sql -Fp -s
# -U 备份使用的用户
# -d 备份的数据库
# -s 只存储模式,不包含数据
# -f 保存的路径
# -Fp 数据文件为明文

从DUMP格式的备份中还原表

sys_restore -U system -d test /back/dump/table.dmp -Fc -t t0

表的约束

数据完整性约束是指为了防止不符合规范的数据进入数据库,在录入数据或数据发生变化时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,是数据库中存储的数据正确、有效、相容。

表的三类完整性约束约束可以在列或者在表级定义,单列约束可以定义在列级或表级,多列约束必须定义在表级

  • 实体完整性
  • 参照完整性
  • 用户定义完整性

实体完整性

实体完整性定义

  1. 关系数据库中每个元组应该是可区分的,是唯一的,这样的约束条件用实体完整性来保证。
  2. 实体完整性约束对应的属性被称为表的主键(primary key)或称为关系的主码
  3. 实体完整性约束可以定义在表中的一列或多列中

实体完整性规则

  1. 实体完整性规则是针对基本表而言的,一个基本表通常对应于现实世界的一个实体集
  2. 主键对应的列值在表中不能重复且不能为空
  3. 每个表最多只能拥有一个主键

创建表时添加主键约束

# 列级定义主键
CREATE TABLE student(
	name varchar(10),
    CONSTRAINT RULE_NAME PRIMARY KEY(name)  # 设置主键约束:约束名为RULE_NAME,约束列为name
);

# 表级定义主键
CREATE TABLE sutent (name varchar(10),PRIMARY KEY(name));

修改表增加主键约束

ALTER TABLE student ADD CONSTRAINT pk_student_name PRIMARY KEY(name);
# 修改student表增加约束,约束名为pk_student_nmae,主键字段为name

在这里插入图片描述

参照完整性约束

参照完整性定义

  1. 现实世界中的实体主键往往存在某种关系、关系和关系之间存在相互引用。
  2. 一个表的属性需要依赖另一个表的属性,这样的约束条件使用参照完整性来保证。
  3. 参照完整性约束对应的属性被称为表的外键(foreign key),或称为关系的外码。
  4. 参照完整性约束课定义在表中的一列或多列上。

参照完整性规则

  1. 被参照的相应列上必须被定义为主键约束或唯一键约束
  2. 表的外键列可以取空值
  3. 表的外键非空时,只能取被参照表中已经存在的值
CREATE TABLE student(
	name varchar(10),
    CONSTRAINT RULE_NAME FOREIGN KEY(name) REFERENCES student1 (name) # 设置外键约束:约束名为RULE_NAME,约束列为name,参照对象为student1的name列
);

修改表添加外键约束

ALTER TABLE student ADD CONSTRAINT fk_student1_name FOREIGN KEY (name) REFERENCES student1(name);

在这里插入图片描述

用户定义的完整性约束

非空约束非空约束保证一个表中某列不能取空值

CREATE TABLE t1 (name varchar(10) NOT NULL);
# 限制name字段不能为空

唯一约束唯一约束保证一个表的某列或多列的值在表中所有元组间是不能重复的,但可以为空

CREATE TABLE t1 (name varchar(10) UNIQUE);
# 限制字段name不可为空

check约束限制一个特定列中的值必须要满足一个条件表达式

CREATE TABLE t1 (name varchar(10),score numeric CHECK(score>0));
# 限制字段score必须大于0

约束的状态控制

enable/disable对新进入数据的约束检查

validate/novalidate对现有数据的约束检查
在这里插入图片描述

约束控制方法

  1. enable + validate

    新插入的数据与表中现有数据均需符合约束条件,默认状态

  2. enable + novalidate

    对表中现有数据和新插入的数据都不执行完整性约束检查

  3. disable + validate

    对现有的数据执行完整性约束检查,不允许对表执行DML操作

  4. disable + novalidate

    对现有数据不执行完整性约束检查,对新插入的数据会执行检查

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

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

相关文章

Java:ApacheHttpClient连接寿命(timeToLive)未配置问题分析

一、问题描述 若 Apache HttpClient 未设置 timeToLive,通过服务域名访问服务的实例并且服务域名解析出的 IP 发生变化时,在短时间内会有部分请求出现连接异常错误。 二、问题分析 Apache HttpClient 通过服务域名从连接池获取连接,当连接…

IDEA中SpringBoot项目的yml多环境配置

SpringBoot的yml多环境配置 创建多个配置文件 application.yml #主配置文件 application-dev.yml #开发环境的配置 application-test.yml #测试环境的配置在application.yml中添加多环境配置属性 spring:profiles:active: profiles.active项目启动可能不会识别&#x…

简单了解一下:Node的util工具模块

了解util模块,知道怎么使用util来格式化字符串,把对象转化为字符串,检查对象类型。 那么util模块有哪些方法呢?如下图所示: 常用的几个方法: 格式化输出字符串 util提供的格式化方法为:form…

0基础学习PyFlink——模拟Hadoop流程

学习大数据还是绕不开始祖级别的技术hadoop。我们不用了解其太多,只要理解其大体流程,然后用python代码模拟主要流程来熟悉其思想。 还是以单词统计为例,如果使用hadoop流程实现,则如下图。 为什么要搞这么复杂呢? 顾…

快速入门python机器学习

文章目录 机器学习概述1.1 人工智能概述机器学习与人工智能、深度学习1.1.2 机器学习、深度学习能做些什么 1.2 什么是机器学习1.2.1 定义1.2.2 解释1.2.3 数据集构成 1.3 机器学习算法分类1.3.1 总结1.3.2 练习1.3.3 机器学习算法分类 1.4 机器学习开发流程(了解&a…

小程序之自定义组件 结合案例

🎬 艳艳耶✌️:个人主页 🔥 个人专栏 :《Spring与Mybatis集成整合》《Vue.js使用》 ⛺️ 越努力 ,越幸运。 1.自定义组件 开发者可以将页面内的功能模块抽象成自定义组件,以便在不同的页面中重复使用&#…

【基础知识补充】三个重要理化参数和计算预测、药代动力学(PK)、毒性预测 / ADME

一、药物理化性质预测 药物的理化性质包括分子的脂溶性、水溶性和解离常数(Dissociation Constant)pKa,这些理化参数与药代动力学性质、生物活性强度以及作用靶标的选择性密切相关,下面分别介绍。 1、脂溶性(logP&am…

数据分析入门

B站:01第一课 数据分析岗位职责和数据分析师_哔哩哔哩_bilibili 一、岗位:数据分析师 Q1 数据分析师在公司做什么工作? 数据来源于公司核心业务,通过监测业务健康度来确定业务的健康状况; 通过对用户精细化分析&am…

一站式智慧校园解决方案 SaaS云平台智慧校园管理系统源码

SaaS云平台 智慧校园管理平台 教师端、家长端、学生端 智慧校园以互联网为基础,以“大数据云服务”为核心,融合校园教学、管理、生活软硬件平台,定义智慧校园新生活。智慧校园管理平台管理者、教师、学生、家长提供一站式智慧校园解决方案&a…

Zynq中断与AMP~双核串口环回之PS与PL通信

实现思路: 额外配置:通过PL配置计数器,向CPU0和CPU1发送硬中断。 1.串口中断CPU0,在中断中设置接收设置好字长的数据,如果这些数据的数值符合约定的命令,则关闭硬中断,并将这部分数据存入AxiLi…

SystemVerilog Assertions应用指南 Chapter1.29“ disable iff构造

在某些设计情况中,如果一些条件为真,则我们不想执行检验。换句话说,这就像是一个异步的复位,使得检验在当前时刻不工作。SVA提供了关键词“ disable iff来实现这种检验器的异步复位。“ disable iff”的基本语法如下。 disable iff (expression) <property definition> …

SystemVerilog Assertions应用指南 Chapter1.31 在属性中使用形参

可以用定义形参( formal arguments)的方式来重用一些常用的属性。属性“arb”使用了4个形参,并且根据这些形参进行检验。其中还定义了特定的时钟。SVA允许使用属性的形参来定义时钟。这样,属性可以应用在使用不同时钟的相似设计模块中。同样的,时序延迟也可以参数化,这使得属性…

微信小程序开发之自定义组件(会议OA项目其他页面搭建)

目录 前言 一、WeChat中的自定义组件 1. 基本概述 2. 包含文件及作用 3. 自定义组件的作用 4.使用步骤&#xff1a; 二、tabs组件及会议管理布局 tabs组件 1. 创建组件 准备 创建 使用组件 会议管理布局 tabs.wxml指定组件模版 tabs.wxss完成样式设计 tabs.js定义属…

Ubuntu docker安装mysql

本文介绍如何在docker中安装mysql&#xff0c;之前有尝试过先在docker中安装一个ubuntu到镜像&#xff0c;然后进去再去安装mysql相关的东西&#xff0c;发现不行&#xff0c;这边整理一下一个可行的方式。 在下载镜像的时候&#xff0c;直接下载mysql镜像。 1.搜索镜像 doc…

【C++】类和对象(初阶认识)#下篇#

目录 初始化列表 匿名 explicit、隐式类型转换、连续构造的优化 友元 类中的静态变量 类中类 话接上回 运算符重载 内置类型是祖师爷定义的&#xff0c;赋值、或 加减乘除 祖师爷自己知道这些运算符应该进行怎么样的操作&#xff0c;平常给我们直接用就好&#xff1b;但是自定义…

力扣刷题 day49:10-19

1.二进制手表 二进制手表顶部有 4 个 LED 代表 小时&#xff08;0-11&#xff09;&#xff0c;底部的 6 个 LED 代表 分钟&#xff08;0-59&#xff09;。每个 LED 代表一个 0 或 1&#xff0c;最低位在右侧。 例如&#xff0c;下面的二进制手表读取 "4:51" 。 给你…

根据SpringBoot Guides完成进行示例学习(详细步骤)

目录 1.打开Spring | Guides官网&#xff0c;或者直接搜索springboot都可 2.选择要学习的内容 3.根据提示的网址&#xff0c;Git到本地 4.将文件用IDEA打开&#xff0c;根据教程完成示例&#xff0c;这里不做细致讲解 5.运行项目 6.在终端查看运行结果 以Scheduling Task…

蓝桥每日一题(day2 暴力)扫雷 easy

ac代码&#xff1a; #include <iostream> using namespace std; const int N 110;int n, m; int arr[N][N]; int dx[8] {0, 1, 0, -1, -1, 1, -1, 1}; int dy[8] {1, 0, -1, 0, -1, 1, 1, -1}; int main() {cin >> n >> m;for(int i 0; i < n; i )fo…

ESP32出现喂狗失败处理办法

前言 &#xff08;1&#xff09;今天在使用ESP32S3的时候&#xff0c;做移植测试的时候&#xff0c;不知道为什么出现了看门狗报错。简单查了一下&#xff0c;测试发现是任务阻塞导致的。 报错 &#xff08;1&#xff09;报错信息如下&#xff1a; <1>E (5368) task_wdt:…

tcp专题

目录 一.TCP的连接建立 1.1面向连接 1.2TCP报文结构 1.3TCP三次握手 1.4TCP的状态变化 1.5为什么必须是三次握手&#xff0c;而不是两次或者四次 二.TCP的连接断开 2.1TCP的"四次挥手 2.2TCP的状态变化 2.3为什么要有TIME_WAIT状态 2.4为什么TIME_WAIT状态的时…