「OushuDB」用户指南数据定义 创建和管理数据库 (中)

简介: CREATE DATABASE实际上是通过拷贝一个现有的数据库进行工作的。缺省时,它拷贝名为template1的标准系统数据库。所以该数据库是创建新数据库的”模板”。如果你给template1增加对象,这些对象将被拷贝到随后创建的用户数据库中。这样的行为允许节点对数据库中的标准套件进行修改。比如,如果你把过程语言PL/Perl安装到template1里,那么你在创建用户数据库的时候它们就会自动可得,而不需要额外的动作。

image.png

1、模板数据库
CREATE DATABASE实际上是通过拷贝一个现有的数据库进行工作的。缺省时,它拷贝名为template1的标准系统数据库。所以该数据库是创建新数据库的”模板”。如果你给template1增加对象,这些对象将被拷贝到随后创建的用户数据库中。这样的行为允许节点对数据库中的标准套件进行修改。比如,如果你把过程语言PL/Perl安装到template1里,那么你在创建用户数据库的时候它们就会自动可得,而不需要额外的动作。
系统里还有名为template0的第二个标准系统数据库,这个数据库包含和template1初始时一样的数据内容,也就是说,只包含标准的OushuDB 对象。在数据库集群初始化之后,我们不应该对template0做任何修改。通过告诉CREATE DATABASE使用 template0而不是template1进行拷贝,你可以创建一个”纯净” 的用户数据库,它不会包含任何template1里所特有的东西。这一点在恢复pg_dump转储的时候是非常方便的:转储脚本应该在一个纯净的数据库中恢复以确保我们正确创建了被转储出的数据库内容,而不会随后和可能已经添加到template1中的对象相冲突。
要通过拷贝template0的方法创建一个数据库,可使用:

CREATE DATABASE dbname TEMPLATE template0;

用于 SQL 环境,或:

createdb -T template0 dbname

用于 shell 环境。
我们可以创建额外的模板数据库,而且实际上我们可以在一个集群中通过将CREATE DATABASE的模板声明为相应的数据库名拷贝任何数据库。不过,我们必须明白,这个功能并非一般性的”COPY DATABASE”工具。实际上,在拷贝操作的过程中,源数据库必需是空闲状态(没有正在处理的数据修改事务)。如果在CREATE DATABASE开始的时候存在其它连接,那么操作将会失败,在拷贝期间,到源数据库的新连接都被阻止直到创建完成。
在pg_database里有两个有用的标志可以用于每个数据库:datistemplate和datallowconn字段。datistemplate 表示该数据库是准备用作CREATE DATABASE模板的。如果设置了这个标志,那么该数据库可以由任何有CREATEDB权限的用户克隆;如果没有设置,那么只有超级用户和该数据库的所有者可以克隆它。如果datallowconn为假,那么将不允许与该数据库发生任何新的连接(不过现有的会话不会因为把该标志设置为假而终止)。template0数据库通常被标记为datallowconn = false以避免对它的修改。template0和template1都应该总是标记为datistemplate = true。
Note
template1和template0没有任何特殊的状态,除了template1是CREATE DATABASE的缺省源数据库名之外。比如, 我们可以删除template1然后从template0中创建它而不会有任何不良效果。如果我们不小心在template1里加了一堆垃圾,那么我们就会建议做这样的操作。(要删除template1,必须使pg_database.datistemplate = false)在初始化数据库集群的时候,也会创建postgres数据库。这个数据库用于作为用户和应用连接的缺省数据库。它只是template1的一个简单拷贝,需要的时候可以删除或者重建。

目录
相关文章
|
1天前
|
监控 关系型数据库 MySQL
初体验:数据库监控、管理和可观测性工具(PMM)
Percona Monitoring and Management (PMM) 是一个开源工具,用于监控MySQL、PostgreSQL和MongoDB的性能。它提供实时监控、数据可视化、故障排除和管理功能,支持本地和云端数据库。要安装PMM,首先需安装Docker,然后通过提供的脚本部署PMM服务器和客户端。在MySQL服务器上创建PMM用户后,使用`pmm-admin`命令添加数据库。访问PMM的HTTPS网址(默认用户名和密码为admin)进行配置。本文还包含了安装Docker和PMM的命令行步骤。
初体验:数据库监控、管理和可观测性工具(PMM)
|
1天前
|
DataWorks Oracle 关系型数据库
DataWorks操作报错合集之尝试从Oracle数据库同步数据到TDSQL的PG版本,并遇到了与RAW字段相关的语法错误,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
31 0
|
1天前
|
关系型数据库 数据库 数据安全/隐私保护
关系型数据库的数据完整性保障
【5月更文挑战第9天】关系型数据库的数据完整性保障
7 1
|
1天前
|
存储 SQL NoSQL
数据库是存储和管理数据的核心组件
【5月更文挑战第14天】数据库是存储和管理数据的核心组件
15 1
|
1天前
|
存储 Oracle 关系型数据库
实验三 Oracle数据库的创建和管理
实验三 Oracle数据库的创建和管理
8 1
|
1天前
|
存储 机器学习/深度学习 人工智能
新一代数据库技术:融合AI的智能数据管理系统
传统数据库管理系统在数据存储和查询方面已经取得了巨大的成就,但随着数据量的不断增长和应用场景的多样化,传统数据库已经难以满足日益增长的需求。本文将介绍一种新一代数据库技术,即融合了人工智能技术的智能数据管理系统。通过结合AI的强大能力,这种系统能够实现更高效的数据管理、更智能的数据分析和更精准的数据预测,为用户带来全新的数据管理体验。
|
1天前
|
分布式计算 Java 关系型数据库
|
1天前
|
NoSQL 关系型数据库 数据库
数据库同步 Elasticsearch 后数据不一致,怎么办?
数据库同步 Elasticsearch 后数据不一致,怎么办?
16 0
|
1天前
|
SQL 关系型数据库 MySQL
【MySQL-1】理解关系型数据库&数据的数据模型
【MySQL-1】理解关系型数据库&数据的数据模型
|
1天前
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之在使用 DataWorks 数据集成同步 PostgreSQL 数据库中的 Geometry 类型数据如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
26 0
http://www.vxiaotou.com