触点数字孪生,揭秘它的独特魅力
829
2022-10-14
PG主程序模块(Main)——single模式
命令行指定–single,以单用户模式进入数据库。
PostgresMain是PostmasterMain主进程fork出来的服务后端子进程相同的执行函数。单用户也是通过这个PostgresMain函数调用的。但是这里的输入参数dbname为NULL。get_user_name_or_exit是用于获取操作系统数据库用户用户名。
initdb initialize_data_directory中创建完template1之后执行的代码
//打开 "/home/perrynzhou/Database/pgsql/bin/postgres\" --single -F -O -j -c search_path=pg_catalog -c exit_on_error=true template1 >/dev/null 命令,等待执行命令 PG_CMD_OPEN; //通过执行" REVOKE ALL on pg_authid FROM public"授权 setup_auth(cmdfd); // 往系统表pg_xxx插入默认的数据 setup_depend(cmdfd); //在template1中执行system_views.sql 语句 setup_sysviews(cmdfd); // 初始化系统表xxx_description setup_description(cmdfd); //初始化系统表pg_collation setup_collation(cmdfd); setup_conversion(cmdfd); //执行snowball_create.sql语句 setup_dictionary(cmdfd); //初始化授权相关的表 setup_privileges(cmdfd); //通过执行information_schema.sql初始化information_schema表, setup_schema(cmdfd); //执行 CREATE EXTENSION plpgsql语句 load_plpgsql(cmdfd); //执行ANALYZE和VACUUM FREEZE vacuum_db(cmdfd); //通过template1初始化template0 make_template0(cmdfd); //创建postgres数据库 make_postgres(cmdfd);
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。