腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
视频
用户
沙龙
专栏
专区
综合排序
丨
最热优先
丨
最新优先
时间不限
postgres
相关
#host replication
postgres
127.0.0.1/32 md5 #host replication
postgres
java攻城狮
2020-10-10
1.6K
0
标签:
数据库
sql
tcp/ip
Postgres
源码学习 2—
Postgres
的 VFD 机制
操作系统中的文件 数据库的本质其实就是用来存储数据的,所以免不了和文件系统、存储进行交互,万丈高楼平地起,存储一般是一个数据库的最底层,
Postgres
在存储的文件管理方面也有很多的设计与抽象。 在操作系统层面,提供了一些文件操作相关的系统调用(fopen、fclose、fsync 等),我们作为上层使用者,可以直接通过 C 语言库进行调用即可(
Postgres
使用 C 语言编写)。
Postgres
的 VFD 作用
Postgres
数据库在运行的过程当中,可能会打开非常多的文件,比如数据表对应的文件,元数据表文件,以及一些在 SQL 运行时打开的临时文件,例如排序、哈希表所需的文件 VFD 的基本工作方式
Postgres
主要通过一个进程私有的数组来维护 VFD,名为 VfdCache。 通过这种方式,
Postgres
可以打开远超过系统和进程限制的文件数量,是一个非常精妙的设计。
roseduan
2024-04-19
835
0
标签:
操作系统
进程
链表
源码学习
存储
Postgres
源码学习 3—
Postgres
存储管理器
前面一节说到,在
Postgres
的 VFD 机制之上,我们可以避开打开文件数量的系统限制,通过 VFD 可以进行打开、读写、关闭、删除文件等操作,简单来说就是 VFD 为我们提供了一个抽象,屏蔽了操作系统文件描述符的接口 文件类型和文件块 要了解
Postgres
的存储管理,需要先对
Postgres
的表文件的组织方式、类型有一个简单的了解。
Postgres
中的表文件可能会非常大,在物理存储上会将表文件拆分为多个,每一个表文件通过 segno 来区分。 在
Postgres
的数据目录中,表文件的存储格式为 base/<database oid>/<table relfilenode>。 但是目前在操作系统层面,已经提供了文件系统的抽象,所以存储管理器其实已经没有存在的必要了,但是
Postgres
依然选择将其保留,主要是认为这层抽象并没有什么其他的影响。
roseduan
2024-05-30
765
0
标签:
源码学习
存储管理
操作系统
磁盘
数据
Postgres
源码学习 1—
Postgres
源码编译和 debug
su <username> 安装依赖 安装
Postgres
编译所需的依赖(这里是摘取了 Greenplum 的安装依赖,可能包含了一些没必要安装的,但肯定是涵盖了
Postgres
需要的依赖,所以全部安装上也没啥问题 的源代码,并进入到
postgres
代码目录中。 如果是拉取最新版本的代码,可以从 Github 上获取: git clone https://github.com/
postgres
/
postgres
.git 如果想要获取对应版本的源代码,则可以从
Postgres
官网中下载: 地址:https://www.postgresql.org/ftp/source/
Postgres
有非常多的编译选项,详情可以参考官方文档:https://www.postgresql.org pg_ctl -D pg-data start 启动之后,可以查看
postgres
的进程状态。
roseduan
2024-04-18
1.4K
0
标签:
debug
编译
进程
源码
源码学习
Oracle转换
Postgres
可以在
postgres
中创建一个视图作为这个表从而消除上述问题。这样就可以在不干扰
Postgres
的解析器情况下兼容Oracle的SQL。迁移过程中,尽可能去掉“FROM DUAL”子句。
Postgres
的ctid起同样的作用。 序列 Oracle的序列语法是sequence_name.nextval。
Postgres
的序列语法是nextval('sequence_name')。 虽然
postgres
具备大部分功能,但是一些特性还需要等待其新版本发布。
Postgres
中,对于空字符串得到的结果是FALSE,而NULL得到的是TRUE。当从Oracle向
postgres
转换时,需要分析字符代码,分离出NULL和空字符串。 Oracle to
postgres
:不使用ODBC和其他中间件。转换表结构、数据、索引、主键和外键。
yzsDBA
2020-01-20
7.2K
0
标签:
oracle
编程算法
postgresql
云数据库 postgresql
sql
Postgres
源码安装
id:
postgres
: no such user [root@Centos ~]# groupadd
postgres
[root@Centos ~]# useradd -g
postgres
postgres
-rwxr-xr-x. 1
postgres
postgres
568656 Feb 9 2021 configure -rw-r--r--. 1
postgres
postgres
82388 1
postgres
postgres
1192 Feb 9 2021 COPYRIGHT drwxrwxr-x. 3
postgres
postgres
87 Feb 9 2021 1
postgres
postgres
1665 Feb 9 2021 Makefile -rw-r--r--. 1
postgres
postgres
1213 Feb 9 2021 : ~~~bash
postgres
=# \c
postgres
You are now connected to database "
postgres
" as user "
postgres
".
postgres
用户8006012
2022-05-22
2.5K
0
标签:
postgresql
Deepin 安装
Postgres
postgres
安装完成默认存在一个
postgres
数据库 psql -U
postgres
-h 127.0.0.1 -p 5432 -d
postgres
# -U 用户名 -h 连接地址 - p 端口 -d 数据库名 如果连接失败或者说用户不存在则使用
postgres
用户登录 sudo su -
postgres
# 切换到
postgres
用户 psql # 登录 \password /
postgres
.sql 使用
postgres
官方源安装
postgres
12 首先卸载旧版本或配置错误的版本 sudo apt remove postgresql --purge # purge run -d --name
postgres
-server -p 5432:5432 -e "
POSTGRES
_PASSWORD=progres"
postgres
# --name 容器运行的名称 测试持久化 docker exec -it
postgres
-server bash su -
postgres
\c
postgres
postgres
=# create table test1(id
caoayu
2020-12-01
3.6K
0
标签:
云数据库 postgresql
容器
postgresql
容器镜像服务
数据库
Oracle转换
Postgres
可以在
postgres
中创建一个视图作为这个表从而消除上述问题。这样就可以在不干扰
Postgres
的解析器情况下兼容Oracle的SQL。迁移过程中,尽可能去掉“FROM DUAL”子句。
Postgres
的ctid起同样的作用。 序列 Oracle的序列语法是sequence_name.nextval。
Postgres
的序列语法是nextval('sequence_name')。 虽然
postgres
具备大部分功能,但是一些特性还需要等待其新版本发布。
Postgres
中,对于空字符串得到的结果是FALSE,而NULL得到的是TRUE。当从Oracle向
postgres
转换时,需要分析字符代码,分离出NULL和空字符串。 Oracle to
postgres
:不使用ODBC和其他中间件。转换表结构、数据、索引、主键和外键。
yzsDBA
2020-10-28
9.7K
0
标签:
oracle
编程算法
云数据库 postgresql
postgresql
sql
sqlite迁移到
postgres
vim load.test 2.写入以下参数 load database from sqlite://path to/xxx.db 这里是Sqlite地址 into
postgres
soon
2019-02-14
2.5K
0
标签:
迁移
Postgres
容器使用
下载
postgres
镜像 $ sudo docker pull
postgres
启动
postgres
容器 $ sudo docker run --name mypostgres -e
POSTGRES
_PASSWORD =Letmein -d -p 5432:5432
postgres
上面命令会启动一个名为mypostgres的容器,并且设置
postgres
用户的密码为Letmein。 =Letmein -d -p 5432:5432 -v `pwd`/scripts:/docker-entrypoint-initdb.d
postgres
使用命令行连接到
postgres
数据库 启动一个容器并使用 psql连接到容器 $ sudo docker run -it --rm --link mypostgres
postgres
psql -h mypostgres -U
postgres
Password
postgres
=# \dt
postgres
=# select 1; 使用nodejs连接到
postgres
数据库 安装pg库 npm install pg 连接并查询
postgres
数据库 const
kongxx
2024-09-04
874
0
标签:
命令行
数据库
容器
脚本
连接
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档