公司最近开始逐步推广使用PostgreSQL,为方便开发人员和实施人员操作,特整理数据库初始化、备份、恢复的推荐脚本如下:

1. 连接数据库

psql -h 127.0.0.1 -p 1921 -U postgres -d postgres -W

2. 数据库初始化脚本

Create Role <login_role> Login Password '<password>' SUPERUSER Valid Until 'infinity';
Create tablespace <tablespace_name> location '<tablespace_directory>';
GRANT all on tablespace <tablespace_name> to <login_role>;
Create Database <db_name> With owner = <login_role> tablespace=<tablespace_name>;
Alter Database <db_name> Set search_path="$user", public;
/*以下两句在上面创建用户登录,在对应的数据库下执行。*/
Create Schema <schema_name>;
GRANT all ON Schema <schema_name> to <login_role>;

使用说明:将<>内容替换为对应的名称,执行后数据库基本创建完成。

注意:如果是Windows操作系统下使用administrators权限组用户登录,创建表空间时,对应目录需要赋予EveryOne操作权限。

3. 数据库备份脚本

备份方案

pg_dump -h <db_ip> -p <db_port> -U <user_name> -j 3 -F d -C -c -d <db_name> -v -f <backup_directory>

注意:上面的<backup_directory>为本地目录。

这种备份方式,会将相应的变量设置、Schema配置等都备份好,所以在恢复的时候就无需再进行相关的配置了,恢复详见下一节描述。

4. 数据库恢复脚本

恢复步骤:

  1. 创建登录用户;
  2. 创建表空间;
  3. 创建数据库;
  4. 通过pg_restore 命令恢复(依然是以1.3种描述的推荐使用的备份方案为基础的)。

    具体命令如下:
Create Role <login_role> Login Password '<password>' SUPERUSER Valid Until 'infinity';
Create tablespace <tablespace_name> location '<tablespace_directory>';
GRANT all on tablespace <tablespace_name> to <login_role>;
Create Database <db_name> With owner = <login_role> tablespace=<tablespace_name>;
pg_restore -h <db_ip> -p <db_port> -U <user_name> -d <db_name> -j 3 -v <backup_directory>

OK,到此为止数据库恢复成功。

PostgreSQL数据库常用脚本-初始化、备份、恢复推荐脚本的更多相关文章

  1. Linux 下的 PostgreSQL 数据库+文件通用自动备份脚本

    由于 Odoo(原名 OpenERP)自 8.0 以来会生成 CSS,并把附件存储在文件系统中,因此以前单纯备份数据库的脚本已经不够用了.出于实际部署的考虑,我专门写了个较为通用的 Odoo 备份脚本 ...

  2. postgresql数据库常用操作命令及SQL语言

    (1)登录 peng@peng-virtual-machine:~$ sudo -u postgres psql 以用户postgres身份登录,postgres为用户名,可有多个用户,登录时会要求输 ...

  3. postgresql数据库常用命令

    --获取数据库软件版本select version();--获取数据库启动时间select pg_postmaster_start_time();--获取配置文件最近load时间select pg_c ...

  4. mysql 导出导入数据库(Mysqldump)备份

    使用mysql不熟练啊!!! mysqldump导出数据库,必须以cmd命令行的形式,在Navicat中以新建查询形式使用Mysqldump不好使的.(本来使用Navicat转储SQL,再导入SQL, ...

  5. MongoDB 备份恢复

    备份: mongodump --host -u admin -p -o /tmp/alldb/ // 备份所有的库 mongodump --host -u admin -p -d mydb -o /t ...

  6. postgresql 和 mysql 数据库备份恢复以及时区问题

    概要 postgesql 12 备份/恢复脚本 时区设置 mysql 5.6 备份/恢复脚本 时区设置 概要 postgresql 和 mysql 是最常用的 2 种开源关系数据库, 很多项目也会优先 ...

  7. postgresql数据库备份和恢复

    PostgreSQL自带一个客户端pgAdmin,里面有个备份,恢复选项,也能对数据库进行备份 恢复(还原),但最近发现数据库慢慢庞大的时候,经常出错,备份的文件过程中出错的几率那是相当大,手动调节灰 ...

  8. Mysql数据库常用的命令 数据备份 恢复 远程

    远程数据库 格式: mysql -h主机地址 -u用户名 -p用户密码数据库 mysql -h 42.51.150.68 -u yang -p discuz mysql设置密码 mysql>us ...

  9. MySQL用户管理、常用sql语句、MySQL数据库备份恢复

    1.MySQL用户管理 给远程登陆用户授权:grant all on *.* to 'user1'@'127.0.0.1' identified by '123456' (这里的127.0.0.1是指 ...

随机推荐

  1. HDUOj 看病要排队 优先队列的使用 题目1873

    STL优先队列的具体描写叙述 http://blog.csdn.net/yueloveme/article/details/47106639 题目地址:http://acm.hdu.edu.cn/s ...

  2. jquery outerHeight方法 outerWidth方法 获取元素实际宽度高度

    曾经写代码中,每当须要获取元素的实际"宽度"(这里的宽度是指元素宽度加上其边距)时,都须要用元素宽度加上margin值才行,今天发现一个叫outerWidth(options)的方 ...

  3. mysql int(m)与int(m)的差别

    预计大多数開始接触mysql的朋友们都会有这个问题:int(M) 里面的数值究竟是什么意思? 依据相关资料总结了下: int(M) zerofill,加上zerofill后M才表现出有点点效果,比方  ...

  4. hibernate之4.延迟载入

    延迟载入: 仅仅有当使用以实体对象的属性(除主键属性外)时,才会发送查询语句到数据库 get不支持延迟载入 @Test public void getTest(){ Session session=n ...

  5. Android开发之视图动画基础

    Android的animation由四种类型组成 XML中  alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转 ...

  6. python微框架Bottle(http)

    环境: win7系统 Python2.7 一 背景和概述 眼下项目中须要加入一个激活码功能,打算单独弄一个httpserver来写. 由于之前的游戏中已经有了一套完整的激活码生成工具和验证httpse ...

  7. bzoj2663: [Beijing wc2012]灵魂宝石(二分+匈牙利)

    2663: [Beijing wc2012]灵魂宝石 题目:传送门 题解: 又是一道卡精度的题目. 很容易就可以看出单调性啊,如果R越大,选的人就越多,R越小,选的人就越少. 那最小值就直接搞咯. 那 ...

  8. Oracle 10g RAC (linux) ASM 共享存储的管理详解

    ---------ASM 的管理(共享磁盘的管理)1.以 instance 的方式管理 ASM,启动 database 之前必须先启动 ASM instance,ASM instance 启动后,挂载 ...

  9. 访问Storm ui界面,出现org.apache.storm.utils.NimbusLeaderNotFoundException: Could not find leader nimbus from seed hosts ["master" "slave1"]. Did you specify a valid list of nimbus hosts for confi的问题解决(图文详解)

    不多说,直接上干货! 前期博客 apache-storm-1.0.2.tar.gz的集群搭建(3节点)(图文详解)(非HA和HA)  问题详情 org.apache.storm.utils.Nimbu ...

  10. Ubuntu16.04 Mysql

    1.安装mysql root@ubuntu:~# sudo apt-get install mysql-server root@ubuntu:~# apt install mysql-client r ...