12 2020 档案

摘要:数据库初始设置包括创建系统视图、系统表TOAST表等,复制template1来创建template0和postgres,这些操作都用普通的SQL命令来完成。 setup_sysviews函数建立系统视图,从system_views_file指向的文件读取SQL,并控制子进程执行这些SQL。 1 st 阅读全文
posted @ 2020-12-31 13:03 肥叔菌 阅读(369) 评论(0) 推荐(0)
摘要:数据库初始设置包括创建系统视图、系统表TOAST表等,复制template1来创建template0和postgres,这些操作都用普通的SQL命令来完成。如下代码就是用于数据库初始设置。 1 setup_auth(); 2 if (pwprompt || pwfilename) 3 get_set 阅读全文
posted @ 2020-12-29 12:51 肥叔菌 阅读(1029) 评论(0) 推荐(0)
摘要:PostgreSQL系统的主要功能都集中于Postgres程序,其入口是Main模块(src/backend/main/main.c)中的main函数,在初始化数据集簇、启动数据库服务器时,都将从这里开始执行。Main模块主要的工作是确定当前的操作系统平台,并据此做一些平台相关的环境变量设置和初始化 阅读全文
posted @ 2020-12-28 22:32 肥叔菌 阅读(1033) 评论(0) 推荐(0)
摘要:在bootstrap模式下创建数据库template1,存储在数据目录的子目录base/1/中。 1 /* Bootstrap template1 */ 2 bootstrap_template1(short_version); 3 /* Make the per-database PG_VERSI 阅读全文
posted @ 2020-12-26 13:00 肥叔菌 阅读(473) 评论(0) 推荐(0)
摘要:测试当前服务器系统性能,由测试结果创建配置文件postgresql.conf、pg_hba.conf、pg_ident.conf,并对其中定义的参数做一些设置。主要执行流程如下代码所示。 1 /* Top level PG_VERSION is checked by bootstrapper, so 阅读全文
posted @ 2020-12-25 13:03 肥叔菌 阅读(747) 评论(0) 推荐(0)
摘要:创建事务记录软链接symlink,如果xlog_dir不为空字符串,先清理xlog目录名,检查其绝对路径,检查指定xlog目录是否为空。check_data_dir(xlog_dir)如果返回0,说明xlog目录不存在,必须创建;如果返回1,说明xlog目录存在,但是为空,修改权限问题并使用;存在且 阅读全文
posted @ 2020-12-24 23:04 肥叔菌 阅读(597) 评论(0) 推荐(0)
摘要:设置中断信号处理函数,对终端命令行SIGHUP、程序中断SIGINT、程序退出SIGQUIT、软件中断SIGTERM和管道中断SIGPIPE等信号进行屏蔽,保证初始化工作顺利进行。 1 /* now we are starting to do real work, trap signals so w 阅读全文
posted @ 2020-12-24 22:31 肥叔菌 阅读(249) 评论(0) 推荐(0)
摘要:设置环境变量(pg_data等),获取系统配置文件的源文件路径(postgres.bki、postgresql.conf. sample等文件),并检查该路径下各文件的可用性。 一、设置环境变量 set_pglocale_pgservice函数设置应用指定的locale和service目录。对于第一 阅读全文
posted @ 2020-12-24 21:31 肥叔菌 阅读(1334) 评论(0) 推荐(0)
摘要:template1和template0数据库用于创建数据库。PG中采用从模板数据库复制的方法来创建新的数据库,在创建数据库的命令中可以用-T选项来指定以哪个数据库为模板来创建新数据库。template1数据库是创建数据库命令默认的模板,也就是说通过不带-T选项的命令创建的用户数据库和template 阅读全文
posted @ 2020-12-22 22:11 肥叔菌 阅读(3227) 评论(0) 推荐(0)
摘要:后端接口postgres.bki文件是在编译的过程中由/src/backend/catalog目录下的脚本程序genbki.sh读取/src/include/catalog目录下的以.h结尾的系统表定义文件(包括系统表索引和TOAST表定义文件)创建,并通常存放在安装树的share子目录下。 在pg 阅读全文
posted @ 2020-12-21 12:45 肥叔菌 阅读(1123) 评论(0) 推荐(0)
摘要:磁盘管理器是SMGR的一种具体实现,它对外提供了管理磁盘介质的接口,其主要实现在文件md.c中。磁盘管理器并非对磁盘上的文件直接进行操作,而是通过VFD机制进行文件操作。在PG中,凡是要对存储在磁盘中的表进行磁盘操作(如打开/关闭、读/写等),都是必须与磁盘管理器打交道,由它来统一处理。对文件的操作 阅读全文
posted @ 2020-12-09 12:58 肥叔菌 阅读(1500) 评论(0) 推荐(0)
摘要:MemoryContext是一个抽象类,可以有对个实现,但目前只有AllocSetContext一个实现。事实上,MemoryContext并不管理实际上的内存分配,仅仅是用作对MemoryContext树的控制。管理一个内存上下文中的内存块是通过AllocSet结构来完成的,而MemoryCont 阅读全文
posted @ 2020-12-03 23:52 肥叔菌 阅读(1610) 评论(0) 推荐(0)