当前位置: 首页 > news >正文

将导出的数据导入新创建的海量数据库

一、导出数据,对导出数据处理

1,用下面的命令导出特定schema下的数据
pg_dump -h 192.168.190.133 -p 5432 -U knowledge_user \--schema=knowledge \-f /home/vastbase/knowledge_export_$(date +%Y%m%d).sql \knowledge
2,对导出的数据进行修改,要不会带有原来schema的信息,导致导入失败
#备份下数据
cp /home/vastbase/knowledge_export.sql  /home/vastbase/knowledge_export_bak.sql
#在最上面加入这一句
vim knowledge_import.sql;
SET search_path TO knowledge_now;

删除下面没用的信息,留下创建数据表和数据的信息

COPY knowledge.
#将上面的都改成下面的
COPY knowledge_now.

保存文件

二、导入同一用户下不同schema数据

1,在同一个用户创建新的schema
#进入数据库
vsql -d knowledge -U knowledge_user -p 5432
#或者
vsql -d vastbase -p 5432
\c knowledge
#查看所有schema
\dn
#查看某个用户下的schema
SELECT schema_name 
FROM information_schema.schemata 
WHERE schema_owner = 'knowledge_user';
#删除schema
DROP SCHEMA IF EXISTS knowledge_now CASCADE;
#创建新的schema
CREATE SCHEMA knowledge_now;
#查看是否创建成功
\dn knowledge_now
2,向新的schema里导入数据
su - vastbasegsql -h 192.168.190.133 -p 5432 -U knowledge_user -d knowledge -c "SET search_path TO knowledge_now;" -f /home/vastbase/knowledge_export.sql#查看是否导入成功gsql -h 192.168.190.133 -p 5432 -U knowledge_user -d knowledge -c "\dt knowledge_now.*"
#查看数据是否完整
SELECT count(*) FROM knowledge_now.t_software;

如果报权限或者导入到原来的schema里,证明sql文件没有改对,只留下数据表结构相关和数据

导入的时候报
Password for user zsk_knowledge:
/home/vastbase/knowledge_export-edit.sql: Permission denied
total time: 0 ms
这个错误,证明这个文件对用户没有权限,到root用户给这个文件添加权限

# 检查文件权限
ls -l /home/vastbase/knowledge_export.sql# 给当前用户添加读取权限
chmod +r /home/vastbase/knowledge_export.sql# 或者更改文件所有者
sudo chown vastbase:vastbase /home/vastbase/knowledge_export.sql
3,yml里这样修改
spring:datasource:# 基本连接配置driver-class-name: org.postgresql.Driverurl: jdbc:postgresql://ip:5432/knowledge?currentSchema=knowledge_nowusername: knowledge_userpassword: ******

三、导入不同用户下不同schema数据

1,创建新数据库
# 使用管理员账户(如postgres)连接
vsql -d vastbase -p 5432
\c postgres# 在gsql中执行
-- 创建新数据库(使用最简单的语法)
CREATE DATABASE knowledge_zsk;-- 验证数据库创建
SELECT datname FROM pg_database WHERE datname = 'knowledge_zsk';
2,连接到新数据库
-- 连接到新创建的数据库
\c knowledge_zsk-- 确认连接成功
SELECT current_database();
3,创建/配置用户
-- 检查用户是否已存在(从第一步的查询中确认)
-- 如果用户不存在,创建用户:
-- CREATE USER zsk_knowledge WITH PASSWORD 'Know123456';-- 如果用户已存在,确保密码正确:
ALTER USER zsk_knowledge WITH PASSWORD 'Know123456';-- 授予数据库连接权限
GRANT CONNECT ON DATABASE knowledge_zsk TO zsk_knowledge;
4,创建新schema并授权
-- 创建新的schema
CREATE SCHEMA knowledge_neww AUTHORIZATION zsk_knowledge;-- 授予schema所有权限
GRANT ALL PRIVILEGES ON SCHEMA knowledge_neww TO zsk_knowledge;-- 设置用户默认schema
ALTER USER zsk_knowledge SET search_path TO knowledge_neww;-- 验证schema创建
SELECT schema_name FROM information_schema.schemata WHERE schema_name = 'knowledge_neww';
5,优化数据库性能(针对海量数据)
-- 调整数据库参数(需要管理员权限)
-- 在knowledge_zsk数据库中执行:
ALTER SYSTEM SET maintenance_work_mem = '2GB';
ALTER SYSTEM SET work_mem = '256MB';
ALTER SYSTEM SET shared_buffers = '4GB';
ALTER SYSTEM SET checkpoint_timeout = '30min';
ALTER SYSTEM SET max_wal_size = '10GB';-- 重新加载配置
SELECT pg_reload_conf();
6,准备sql导入文件

刚才的sql文件进行修改

#头部改为现在的schema
SET search_path TO knowledge_neww;
#将对应的内容改为下面
COPY knowledge_neww.
#最后一行权限的注释掉,会报错,但不影响导入
#RESET session_replication_role;
7,给文件权限
#进入root
su
# 检查文件权限
ls -l /home/vastbase/knowledge_export.sql
# 给当前用户添加读取权限
chmod +r /home/vastbase/knowledge_export.sql
# 或者更改文件所有者
sudo chown vastbase:vastbase /home/vastbase/knowledge_export-edit.sql
8,导入数据
su - vastbase
gsql -h 192.168.190.133 -p 5432 -U zsk_knowledge -d knowledge_zsk -c "SET search_path TO knowledge_neww;" -f /home/vastbase/knowledge_export-edit.sql 
9,验证数据
 #查看是否导入成功gsql -h 192.168.190.133 -p 5432 -U zsk_knowledge -d knowledge_zsk -c "\dt knowledge_neww.*"
#查看数据是否完整
vsql -d vastbase -p 5432
\c knowledge_zsk
SELECT count(*) FROM knowledge_neww.t_software;
10,yml引入
spring:datasource:driver-class-name: org.postgresql.Driverurl: jdbc:postgresql://192.168.190.133:5432/knowledge_zsk?currentSchema=knowledge_newwusername: zsk_knowledgepassword: Know123456
http://www.dtcms.com/a/483696.html

相关文章:

  • 简单电商网站模板谷歌seo顾问
  • Vue3+Three.js:requestAnimationFrame的详细介绍
  • 找南阳建立网站的公司wordpress彻底禁用google
  • WHAT - 前端动画的前世今生
  • 技术视界 | 破解“1+1>2”的难题:多机器人系统的协同挑战与前沿突破
  • PPT宏代码
  • asp.net网站开发全过程淘宝客网站开发教程
  • 无锡网站优化推广东莞模板网站设计
  • 高级网站开发工程师什么是云速建站服务
  • 建动画网站需要多少钱德阳企业网站建设
  • SpringBootTest运行线程池被拒绝
  • 百度快照和做网站有关系吗企业网站网站建设电话
  • 高港做网站专业网站建设新闻
  • 网页网站设计公司排行榜高端网站创建
  • 工业时序数据分析:波动情况
  • 脚本三合一:设备监控+文档筛选+UUID重命名
  • 数据结构——哈希(自定义hashMap实现、解决哈希冲突、拉链寻址Java实现)
  • 电力电子技术 第二章——稳态分析
  • 湛江做网站苏州厂商如何备案成企业网站
  • 德州极速网站建设小程序网站登录验证码显示不出来
  • PT2000 Dev Studio产生的微码解析一-Channel 1
  • 笔试强训(二)
  • 专业全网推广建站公司网站正能量视频不懂我意思吧
  • Pixel-Perfect:生成像素级深度细节深度提升
  • 如何利用网站赚钱建立网站的公司
  • Java字节码与流量回放
  • 网站开发与设计作业网站全屏轮播怎么做
  • ceph 之跳过监控栈 --skip-monitoring-stack
  • wordpress添加表情合肥建站公司seo
  • 网站建设公司 关于我们目录更新 wordpress