注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

PostgreSQL 中文网

 
 
 

日志

 
 

The Parameter "-c" of pg_restore  

2011-06-13 17:06:37|  分类: PG备份与恢复 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

        
        今天在坛子上看到一个问题,有点意思,这里记录下;问题是这样的,想将 A库 的
一部分表数据导入到 B库里,  而A库里的这部分表有些已经存在B库中,目标是在导入B库
的过程中,先将B库已存在的表删除,再导入A库表。

       后来查了下手册,发现 pg_resotre 有个 "-c" 参数可以达到这个目标,即在导入
数据库对像之前先将已存在的对像删除掉。
  

--pg_restore "-c" 参数
 -c, --clean              clean (drop) database objects before recreating
 
  接下来做下实验,看看这个参数的效果:
 
--1 创建测试表,并插入测试数据
skytf=> create table test_41 (id integer,name varchar(32));
CREATE TABLE

skytf=> insert into test_41 values (1,'a'),(2,'b'),(3,'c');
INSERT 0 3

skytf=> select * from test_41;
 id | name
----+------
  1 | a
  2 | b
  3 | c
(3 rows)
 
 
--2 备份表 test_41
pg_dump -E UTF8 -Fc -t "skytf.test_41"  skytf > skytf.test_41.dmp
 
 
--3 在备份表后,删除表数据
skytf=> delete from test_41 where id=3;
DELETE 1

skytf=> delete from test_41 where id=2;
DELETE 1

skytf=> select * from test_41;
 id | name
----+------
  1 | a
(1 row)


--4 使用 "-c" 参数还原表 test_41
[postgres@tf]$  pg_restore -U skytf -d skytf  -c -v  skytf.test_41.dmp
pg_restore: connecting to database for restore
pg_restore: dropping TABLE DATA test_41
pg_restore: dropping TABLE test_41
pg_restore: creating TABLE test_41
pg_restore: restoring data for table "test_41"
pg_restore: setting owner and privileges for TABLE test_41
pg_restore: setting owner and privileges for TABLE DATA test_41

   备注:从 pg_restore 日志看出,PG在导入表 test_41 之前,先将表 test_41 drop 掉,然后再
             创建表,再导表数据,表权限。
        
--5 验证:查询下表数据
skytf=> select * From test_41;
 id | name
----+------
  1 | a
  2 | b
  3 | c
(3 rows)

     备注:在导数据之前 test_41 只有一条记录,导数据后,表 test_41 数据已经为三条了。        
   
   
--6 总结
    pg_restore 的 "-c" 参数在生产环境中很少用到,但在导库\数据的某些场合提供了便利。   

  评论这张
 
阅读(28147)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016