【国产数据库】GBase学习⑬ - GBase 8c 备份与恢复
导出postgres数据库全量信息
导出postgres数据库全量信息
- 命令:gs_dump
- 格式:纯文本格式、自定义归档格式、目录归档格式、tar归档格式
例: gs_dump -U gbase -W Gbase_123 -f backup/MPPDB_backup.sql -p 15432 postgres -F p
解释:执行命令 备份文件路径 端口 格式:p 纯文本格式
导出指定schema
导出指定schema
- 命令:gs_dump
- 格式:纯文本格式 p、自定义归档格式 c、目录归档格式 d、tar归档格式 t
例:gs_dump -U gbase -W Gbase_123 -f backup/MPPDB_backup.sql -p 15432 postgres -F p
- 场景一: 创建用户(会自动创建模式),在指定模式下创建业务数据,然后通过gs_dump导出指定模式下数据
# test_user1 模式下新建了一张表及插入了数据,public模式下有7张表,下面操作只会导出test_user1模式
create user test_user1 identified by 'Gbase_123';
grant all privileges to test_user1;
set search_path=test_user1;
create table ora_alter_table(pid number,did number,lsn varchar2(24),name varchar2(200),pno number,cnt number,amount number,sale_time date default sysdate);
begin for i in 1...10000 loop
insert into ora_alter_table(pid,did,lsn,name,pno,cnt,amount,sale_time) values(i,i+100,i+9,'name' || i,i+1000,i+10,i+10000,sysdate);
end loop;
commit;
end;
slect count(*) from ora_alter_table;
\d+
set search_path=public;
\d+
gs_dump -U gbase -W Gbase_123 -f backup/test_user1_backup.sql -p 5432 postgres -n test_user1 -F p
其中:-U 指定的数据库用户名
-W 指定用户的密码
-f 指定的备份文件名
-p 指定数据库的端口号
postgres 为数据库名称
-n 指定模式的名称(多个模式可以指定多个-n)
-F 指定备份文件的格式,后面的p代表纯文本格式
-N 排除指定模式(指定下的模式不会导出)
导出指定的表
导出指定的表
- 命令:
gs_dump -U gbase -W Gbase_123 -f backup/test_use1_backup.sql -p 5432 gostgres -t test_use1.ora_alter_table -F p
其中 :
-t 代表指定表名,多张表可以多个-t
-T 代表不导出表的表名,多张表可以指定多个-T
--include-table-file=FILENAME 代表需要备份的表文件
--exclude-table-file=FILENAME 代表不需要备份的表文件
FILENAME文件中格式如下: schema1.table1 schema2.table2
只导出表定义,不导出数据 + 恢复
- 命令:
gs_dump -U gbase -W Gbase_123 -f backup/test_user1_backup.sql -p 5432 postgres -t test_use1.ora_alter_table -s -F p
其中:
-t代表指定表明,多张表可以指定多个-t
-s代表只导出表定义,不导出数据
如果全量导出对象定义而不到处数据,可直接使用-s
恢复1:
- 命令: gsql -f 指定备份文件执行(备份文件的格式仅支持p纯文本格式)
例:
gsql -U gbase -W Gbase_123 -f backup/MPPDB_backup.sql -p 15432 postgres
恢复2:
- 命令: gs_restore(自定义归档格式、目录归档格式、tar归档格式)
例:
gs_restore test_backup.dmp -p 15432 -d postgres -t test
数据导入导出
导出
命令:COPY TO
例:将表test_user1.ora_alter_table的数据导出csv格式
COPY test_user1.ora_alter_table TO '/home/gbase/backup/ora_alter_table.csv';
COPY test_user1.ora_alter_table TO '/home/gbase/backup/ora_alter_table.bat';
导入1:
INSERT 通过INSERT语句插入一行或多行数据,及从指定表插入数据
命令:
insert into customer_t2 values(,'',''),(,'',''),(,'','');
导入2:
使用INSERT 批量插入
命令:
insert into t3 select * from t2;
create table t1 as select * from t2;
导入3:
使用COPY 表名 [(列名[,…])] FROM {‘文件名’}
命令:
create table t1 as select * from test_user1.ora_alter_table where 1=2; 只创建了一张空表
COPY t1 from '/home/gbase/backup/ora_alter_table.csv'; 使用文件名的方式导入数据