标签:数据库 为什么 db2 属性 自己 post 建库 所有者 克隆
模板数据库就是创建新database时,PostgreSQL会基于模板数据库制作一份副本,其中会包含所有的数据库设置和数据文件。 CREATE DATABASE 实际上是通过拷贝一个现有的数据库进行工作的。 在拷贝操作的过程中,源数据库必需是空闲状态(没有正在处理的数据修改事务)。 CREATE DATABASE 在操作开始时将会检查确保没有会话(除它自己以外)与源数据库联接, 但是这样并不能保证在拷贝过程中不会发生修改的事情, 因此,建议那些用做模板的数据库应该当做只读库对待。PostgreSQL安装好以后会默认附带两个模板数据库:template0和template1。也可以创建额外的模板数据库。
在 pg_database 里有两个有用的标志可以用于每个数据库: 字段 datistemplate 和 datallowconn。 datistemplate 表示该数据库是准备用做 CREATE DATABASE 的模板的。 如果设置了这个标志,那么该数据库可以由任何有 CREATEDB 权限的用户克隆;如果没有设置,那么只有超级用户和该数据库的所有者可以克隆它。 如果 datallowconn 为假,那么将不允许与该数据库发生任何新的连接,现有对话不受影响。
建库时如果不指定 TEMPLATE 属性,默认用的是 template1 模板库:create database db1;
也可以指定模板库为 template0:create database db2 template template0;
这里已经有个 db1 库了,现在想复制一个 db2库,内容和 db1库一样。
标签:数据库 为什么 db2 属性 自己 post 建库 所有者 克隆
原文地址:https://www.cnblogs.com/Pusteblume/p/10259188.html