04_Greenplum定义数据库对象_创建管理数据库_表空间
一、创建与管理数据库
1、一个GPDB系统可以有多个数据库
关于数据库模板
数据库基于模板创建
缺省数据库模板为template1
GP系统内部使用:template0和postgres
2、创建数据库
具备CREATEDB权限或者SUPERUSER身份
通过CREATE DATABASE命令创建:CREATE DATABASE database_demo;
通过CREATEDB客户端程序创建:createdb -h master -p 5432 database_demo;
克隆一个数据库:CREATE DATABASE database_demo_col TEMPLATE database_demo;
\l 可以查看有哪些数据库
代码:
psql -d template1
\l(查看数据库)
\h create database(查看有哪些命令)
create database devdw;(创建好了但是没有权限是创建表,所以需要切换到gpadmin)
\c devdw;(切换到gpadmin)
create table tb_01(id_int);
\d(查看表)
insert into tb_01 values(101);
commit;(提交)
create database col_devdw template devdw;(克隆)
createdb -h master -p 5432 devdw2;(用主机命令来创建数据库)
3、查看数据库列表
可以通过查询pg_database系统日志表:SELECT * from gp_database; 或 \l
4、变更数据库
Ower或者SUPERUSER权限;
使用ALTER DATABASE命令来改变DB的属性:ALTER DATABASE testdw SET search_path TO public, pg_catalog;(search_path是参数)
代码:
\h alter database;(查看命令)
\c testdw;
show search_path;(查看参数)
create schema sch01;
create schema sch01.tb01(id int);
create table sch01.tb01(id int);
select * from tb01;(不能查询到,报错,需要修改search_path权限)
alter database set search_path TO public, pg_catalog.sch01;(有的参数需要用=)
show search_path;(当前看不到变化,需要重进数据库)
\c testdw
show search_path
5、删除数据库
代码:
\h drop database
二、创建与管理表空间
表空间建立在文件空间之上,文件空间建立在一系列文件系统之上。
1、创建文件空间
2、转移临时文件或事务文件的位置
代码:
在gpadmin上执行
gpfilespace --movetempfilespace test_fs;(如果有连接的会话,可以强制的关闭,关闭后在执行)
gpstop -a;(关闭会话;gpstop是强制关闭数据库)
select * from gp_filespace;(查看数据库的文件空间)
\db(查看表空间)
3、创建表空间
代码:
\db
create tablespace testspace filespace test_fs
\db
grant create on tablespace testspace to admin;(赋给admin这个用户)
\du;(查看用户)
4、使用表空间存储DB对象(对象就是:表、索引、视图等等)
代码:
\d(查看有那些表)
create table tb03(id int) tablespace test_fs;
set default_tabelspace=testspace;
create table tb04(id int);(默认会使用testspace表空间,因为缺省空间参数)
select tablespace from pg_tables where tablename = 'tb04';(查看表所属的表空间)
5、查看现有的表空间和文件空间
6、删除表空间和文件空间
注:用来存储临时文件的也不能删除,需要先转移;