postgres安装及实现mysql到pg的数据迁移

匿名 (未验证) 提交于 2019-12-02 22:02:20
  • pg操作手册:http://www.ruanyifeng.com/blog/2013/12/getting_started_with_postgresql.html
  • psql命令
    :https://ywnz.com/linux/psql/
  • 线上sql已经开发完成
  • 测试数据库环境搭建完成
  • ods表结构:从源库导入
  • 中间表表结构:从线上pg库导入
  • 保留用户标签需要的源表和数仓中间表:
    文档底部列出用户标签的相关的源表和中间表清单:
  • 只导表数据,全量抽取,抽取前清空数据
supress_data: false supress_ddl: true force_truncate: true
  • 开发负责的表均替换成正式命名的表:

    tag_user_temp

    tag_member_temp

    tag_user

  • 中间表:f_order_item,d_user,f_user_list有调整(删除跟用户标签取值不相关的源表),其余中间表etl脚本与线上一致。

    etl脚本需要单独从git_lab:bi_etl_dev/etl
    导到测试服务器。

  • tag_user表:1 会员属性的标签全量更新。2 普通用户的标签必须增量更新
  • 其余中间表全量更新。
  • 测试调度任务脚本mysql2udw_dev.sh:
    /data/scripts/mysql2udw_dev.sh

  • 源数据抽取配置文件yaml:
    /home/hjmrunning/bi_etl_dev/ods_mysql2udw/
    维度表:/home/hjmrunning/bi_etl_dev/dw_sqldesign/dw_demension

  • 事实表:/home/hjmrunning/bi_etl_dev/dw_sqldesign/dw_fact

git_lab:bi_etl_dev/mysql2udw_dev.sh >> 10.10.184.217:/data/scripts/   维度表2张:       d_product       d_user 路径:  git_lab:bi_etl_dev/etl  >> 10.10.184.217:/home/hjmrunning/bi_etl_dev/dw_sqldesign/dw_demension/ 事实表3张:        f_user_list        f_order_itme        f_app_log_item 路径: git_lab:bi_etl_dev/etl/  >> 10.10.184.217:/home/hjmrunning/bi_etl_dev/dw_sqldesign/dw_fact/      
   mysql2udw -v -f /home/hjmrunning/bi_etl_dev/ods_mysql2udw/h_goods.yaml 
/usr/bin/psql -U admin -d ahaschool_udw -h 127.0.0.1 -p 5432  passwd: WZgNV0Pcp0
nohup /data/scripts/mysql2udw_dev.sh >> /data/logs/cron_day.log 2>&1 & 
  • IP:10.10.184.217
  • 用户名:hjmrunning
  • 通过dev:120.132.70.125 跳转
    ssh hjmrunning@120.132.70.125      ssh hjmrunning@10.10.184.217 
host:10.10.82.107  database:hjm_dev  password:hjm_dev 
数据库:    数据库用户名:admin     密码:WZgNV0Pcp0     主机:10.10.184.217     端口:5432     数据库:postgres

步骤一:本地:

scp -r /Users/cheney/git_work/bi_etl_product/* hjmrunning@120.132.70.125:/home/hjmrunning/bi_etl_dev/

步骤二:dev120.132.70.125:

scp -r /home/hjmrunning/bi_etl_dev/*  hjmrunning@10.10.184.217:/home/hjmrunning/bi_etl_dev/ 
scp hjmrunning@120.132.70.125:/home/hjmrunning/bi_etl_dev/* hjmrunning@120.132.70.125:/home/hjmrunning/bi_etl_dev2/  scp -r /home/hjmrunning/bi_etl_dev/* hjmrunning@120.132.70.125:/home/hjmrunning/bi_etl_dev2/
登录控制台:psql postgres 退出: \q
  • 命令行连接数据库控制台:
psql -h 127.0.0.1 -d ahaschool_udw -U admin psql -h 10.10.184.217 -d ahaschool_udw -U admin
  • 查询所连接数据库的IP地址与端口
SELECT inet_server_addr(), inet_server_port();

## 4.1. 创建pg数据库

  • 连接:psql postgres
 这时相当于系统用户postgres以同名数据库用户的身份,登录数据库,这是不用输入密码的。如果一切正常,系统提示符会变为"postgres=#",表示这时已经进入了数据库控制台。以下的命令都在控制台内完成。
  • 第一件事是使用\password命令,为postgres用户设置一个密码:
\password postgres
  • 第二件事是创建数据库用户dbuser(刚才创建的是Linux系统用户),并设置密码:
CREATE USER admin WITH PASSWORD 'WZgNV0Pcp0';
  • 第三件事是创建用户数据库,这里为exampledb,并指定所有者为dbuser:
create database ahaschool_udw owner admin;
  • 第四件事是将exampledb数据库的所有权限都赋予dbuser,否则dbuser只能登录控制台,没有任何数据库操作权限:
GRANT ALL PRIVILEGES ON DATABASE ahaschool_udw to admin;
  • 查看pg服务器版本: psql --version
停止服务: /data/postgresql/bin/pg_ctl -D /data/postgresql/data -l /data/postgresql/server.log  stop  启动服务: /data/postgresql/bin/pg_ctl -D /data/postgresql/data -l /data/postgresql/server.log  start  查看数据库状态: /data/postgresql/bin/pg_ctl -D /data/postgresql/data -l /data/postgresql/server.log  status 
  • 卸载的话,直接删除/data/下的postgresql文件夹
  • 然后把/etc/profile文件里的,postgresql的export HOME注释掉就可以了
  • 源码安装方式:
wget https://ftp.postgresql.org/pub/source/v8.4.20/postgresql-8.4.20.tar.gz
scp -r postgresql-8.4.20.tar.gz hjmrunning@120.132.70.125:/home/hjmrunning/ scp -r /home/hjmrunning/postgresql-8.4.20.tar.gz  hjmrunning@10.10.184.217:/data/  
tar -zxvf postgresql-8.4.20.tar.gz /data/ 
  • 指定安装路径

指定安装路径:

./configure --help --prefix=dir可以指定安装目录 ./configure --prefix=/data/postgresql

执行make,从Makefile中读取指令,编译源码

make

执行make install,将软件安装至指定目录

make install   显示:PostgreSQL installation complete.  安装成功
mkdir /data/postgresql/data

初始化数据库并生成:data/postgres/data/postgresql.conf等pg等配置文件

/data/postgresql/bin/initdb -D /data/postgresql/data 
listen_addresses配置监听地址范围,改为*则为所有: listen_addresses = '*'   port = 5432
vim /data/postgresql/data/pg_hba.conf
TYPE DATABASE USER ADDRES METHOD
host all all 0.0.0.0/0 trust
需要所有IP都可以访问则对应为0.0.0.0/0
chkconfig --add postgresql

报错:

postgres cannot access the server configuration file "/data/postgresql/data/postgresql.conf": No such file or directory
  • 原因分析:未初始化数据库

查看指定文件路径

sudo find / -name postgresql.conf
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!